Python / [Из песочницы] Анализ данных. Приближенные множества

в 11:42, , рубрики: Новости, метки: , ,

Python / [Из песочницы] Анализ данных. Приближенные множества
Решил создать серию постов об анализе данных. Несколько лет работаю в этой (и как оказалось, весьма интересной) области информатики. Предлагаю Вашему вниманию анализ данных с точки зрения Теории приближенных множеств.
О чем пойдет речь?
Теория приближенных множеств (rough sets) была разработана [Zdzisław Pawlak, 1982] как новый математический подход для описания неопределенности, неточности и неуверенности. Она основана на утверждении, что с каждым объектом универсума мы связываем некоторую информацию (данные, знания). Объекты, характеризуемые одинаковой информацией, являются неразличимыми (сходными) с точки зрения имеющейся о них информации. Отношение неразличимости, порождаемое таким способом, является математической основой теории приближенных (грубых) множеств.
Основой концепции теории приближенных множеств являются операции аппроксимации множеств.
Дадим теперь понятие аппроксимации приближенных множеств:
Нижняя аппроксимация множества Х включает в себя элементы, которые действительно принадлежат множеству Х.

Верхняя аппроксимация множества Х + включает в себя элементы, которые возможно принадлежат множеству Х.

Граница (разница между верхней и нижней аппроксимацией) представляет собой область неразличимости.

Собственно применение

Приближенные множества находят применение при работе с таблицами данных, которые называются также таблицами атрибут-значение, или информационными системами, или таблицами принятия решений (decision tables). Таблица принятия решений (decision table) – это тройка Τ = (U, C, D), где
U – это множество объектов,
С – это множество атрибутов условий (condition attributes),
D – это множество атрибутов решений (decision attributes).
Пример таблицы

U

C

D

Головная боль

Температура

Грипп

U1

да

нормальная

нет

U2

да

высокая

да

U3

да

нормальная

нет

U4

да

очень высокая

нет

U5

нет

высокая

нет

U6

нет

очень высокая

да

U7

нет

высокая

да

U8

нет

очень высокая

да

Анализ таблицы

Множества:
U = {U1, U2, U3, U4, U5, U6, U7, U8}
C = {Головная боль, Температура}
D = {Грипп}
Возможные значения атрибутов:
VГоловная боль = {да, нет}
VТемпература = {нормальная, высокая, очень высокая}
VГрипп = {да, нет}
Разбиение множества U в соответствии со значениями атрибута Головная боль имеет вид:Sда = {1, 2, 3, 4}

Sнет = {5, 6, 7, 8}

S = {{1, 2, 3, 4}, {5, 6, 7, 8}}

Разбиение множества U в соответствии со значениями атрибута Температура имеет вид:Sнормальная = {1, 3}

Sвысокая = {2, 5, 7}

Sочень высокая = {4, 6}

S = {{1, 3}, {2, 5, 7}, {4, 6}}

Разбиение множества U в соответствии со значениями атрибута решения Грипп имеет вид:Sда = {2, 6, 7, 8}

Sнет = {1, 3, 4, 5}

S = {{2, 6, 7, 8}, {1, 3, 4, 5}}

Представленые в этой таблице данные, например U5 и U7 — противоречивые, а U6 и U8 — повторяются.
U5

нет

высокая

нет

U6

нет

очень высокая

да

U7

нет

высокая

да

U8

нет

очень высокая

да

Собственно используя приближенные множества мы можем «извлечь» из неточных, противоречивых данных те, которые «полезны нам».
Над чем будем работать?

В следующих постах будет продемонстрирована практическая реализация (в Python) анализа данных с использаванием данной теории, в том числе:Алгоритм принятия решения, состоящий из решающих правил типа «ЕСЛИ … ТО…»

Алгоритм LEM, LEM2 [Grzymała-Busse, 1992] генерирования решающих правил типа «ЕСЛИ … ТО…»

Поделиться

* - обязательные к заполнению поля