Нечеткие множества в хранилище данных

Нечеткие множества в хранилище данных

Автор: Потапов Евгений Николаевич
31 Мая 2011 г.

История нечетких множеств

Нечёткое (или размытое, расплывчатое, туманное, пушистое) множество - понятие, введённое Лотфи Заде в 1965 г. в статье «Fuzzy Sets» (нечёткие множества) в журнале Information and Control. Л. Заде расширил классическое канторовское понятие множества, допустив, что характеристическая функция (функция принадлежности элемента множеству) может принимать любые значения в интервале [0,1], а не только значения 0 или 1.

С конца 80-х годов и до сих пор идет бумом практического применения теории нечеткой логики в разных сферах науки и техники. До 90-ого года появилось около 40 патентов, относящихся к нечеткой логике. Сорок восемь японских компаний создают лабораторию LIFE (Laboratory for International Fuzzy Engineering), японское правительство финансирует 5-летнюю программу по нечеткой логике, которая включает 19 разных проектов — от систем оценки глобального загрязнения атмосферы и предвидения землетрясений до АСУ заводских цехов. Результатом выполнения этой программы было появление целого ряда новых массовых микрочипов, базирующихся на нечеткой логике. Сегодня их можно найти в стиральных машинах и видеокамерах, цехах заводов и моторных отсеках автомобилей, в системах управления складскими роботами и боевыми вертолетами. В США развитие нечеткой логики идет по пути создания систем для большого бизнеса и военных. Нечеткая логика применяется при анализе новых рынков, биржевой игре, оценки политических рейтингов, выборе оптимальной ценовой стратегии и т.п. Появились и коммерческие системы массового применения.

Описание

Характеристикой нечеткого множества выступает функция принадлежности (membership function). Обозначим через µ(x) степень принадлежности элемента x к нечеткому множеству, представляющую собой обобщение понятия характеристической функции обычного множества. Тогда нечетким множеством С называется множество упорядоченных пар вида C = {µ(x)/x}, при этом µ(x) может принимать любые значения в интервале [0, 1]. Значение µ(x) = 0 означает отсутствие принадлежности к множеству, 1 — полную принадлежность.

Проиллюстрируем это на простом примере. Формализуем неточное определение «неблагонадежный заемщик». В качестве X (область рассуждений) будет выступать количество случаев просроченной задолженности по кредиту за последние 6 месяцев. Пусть оно изменяется от 0 до 6. Нечеткое множество, определенное экспертом, может выглядеть следующим образом:
C = {0/0; 0,4/1; 0,7/2; 0,9/3; 1/4; 1/5; 1/6}.

Так, заемщик, совершивший две просрочки, принадлежит к множеству «неблагонадежный» со степенью принадлежности 0,7. Для одного банка такое число просрочек может быть крайне существенным, для другого — просто тревожным сигналом. Именно в этом и проявляется нечеткость задания соответствующего множества.

Для переменных, относящихся к непрерывному виду данных, функцию принадлежности удобнее задать аналитической формулой и для наглядности изобразить графически. Существует свыше десятка типовых форм кривых для задания функций принадлежности. Рассмотрим самые популярные кусочно-линейные: треугольную и трапецеидальную.

Типовые функции принадлежности
Рис. 1. Типовые функции принадлежности

Треугольная функция принадлежности определяется тройкой чисел (a, b, c), и ее значение в точке x вычисляется согласно выражению:

Треугольная функция

Аналогично для задания трапецеидальной функции принадлежности необходима четверка чисел (a, b, c, d):

Нечеткие множества в хранилище данных

Для нечетких множеств, как и для обычных, определены основные логические операции. Самыми необходимыми для расчетов являются пересечение, объединение и отрицание.

Для нечетких множеств можно применить визуальное представление. Рассмотрим прямоугольную систему координат, на оси ординат которой откладываются значение mA(x), на оси абсцисс в произвольном порядке расположены элементы E. Если E по своей природе упорядочено, то этот порядок желательно сохранить в расположении элементов на оси абсцисс. Такое представление делает наглядными простые операции над нечеткими множествами.

Пусть A нечеткий интервал между 5 до 8 и B нечеткое число около 4, как показано на рисунке.

Нечеткие множества в хранилище данных

  • Пересечение двух нечетких множеств A ∩ B (нечеткое «И»):

µ(x) = min(µA(x), µB(x)).

Нечеткие множества в хранилище данных
Рис.2. Нечеткое множество между 5 и 8 И (AND) около 4 (синяя линия)

  • Объединение двух нечетких множеств A ∪ B (нечеткое «ИЛИ»):

µ(x) = max(µA(x), µB(x)).

Нечеткие множества в хранилище данных
Рис.3. Нечеткое множество между 5 и 8 ИЛИ (OR) около 4 показано на следующем рисунке (снова синяя линия).

  • Отрицание нечеткого множества -A:

µ(x) = 1 - µA(x),

Нечеткое множество. Операцию отрицания
Рис.4. Операцию отрицания. Синяя линия — это ОТРИЦАНИЕ нечеткого множества A.

где
µ(x) — результат операции;
µA(x) — степень принадлежности элемента x к множеству A;
µB(x) — степень принадлежности элемента x к множеству B.

Совокупность нечетких множеств, относящихся к одному объекту, образует лингвистическую переменную. Например, лингвистическая переменная Возраст может принимать значения Молодой, Средний, Пожилой (их еще называют базовым терм-множеством, или термами). Зададим область рассуждений в виде X = {x | 0 < x < 90} (годы). Теперь осталось построить функции принадлежности для каждого терма (рис. 5).

Каждая функция принадлежности описывается четверкой чисел: Молодой = {0; 0; 12; 40}, Средний = {20; 30; 50; 70}, Преклонный = {50; 60; 90; 90}.

Графическое изображение лингвистической переменной Возраст
Рис. 5. Графическое изображение лингвистической переменной «Возраст»

Нечеткий поиск в хранилище данных

Лингвистические переменные можно задать для любого измерения, атрибута измерения или факта, значения которого имеют непрерывный вид. Их параметры: названия, терм-множества, параметры функций принадлежности — будут содержаться в семантическом слое хранилища данных (рис. 6).

Вариант организации хранилища данных с поддержкой нечетких срезов
Рис. 6. Вариант организации хранилища данных с поддержкой нечетких срезов

Результатом выполнения нечеткого среза, помимо самого подмножества ячеек гиперкуба, удовлетворяющих заданным условиям, является индекс соответствия срезу CI [0, 1]. Он представляет собой итоговую степень принадлежности к нечетким множествам измерений и фактов, участвующих в сечении куба, и рассчитывается для каждой записи набора данных. Чтобы ускорить выполнение запросов к ХД, часто задают верхнюю границу индекса соответствия CI > а. Это позволяет уже на уровне SQL-запроса отсеять записи, которые заведомо не будут удовлетворять минимальному порогу индекса соответствия (рис. 7). На рисунке видно, что элементы нечеткого множества со значениями в интервале [xf, x2] обеспечат степень принадлежности не ниже а.

Нечеткие множества в хранилище данных
Рис. 7. Нечеткое множество

Алгоритм получения нечеткого среза
Рис. 8. Алгоритм получения нечеткого среза

Алгоритм формирования нечеткого среза иллюстрирует схема (рис. 8). На шаге 1 используется семантический слой хранилища данных. На шаге 3 в результирующий SQL-запрос попадают границы с учетом минимального индекса соответствия а. Шаг 5 предполагает применение нечетких логических операций pouvez trouver ici.

Рассмотрим пример. Пусть в хранилище содержится информация о соискателях вакансий, и срез (четкий) по измерениям Код анкеты, Возраст и Стаж работы обеспечивает следующий набор данных (табл. 1).

Очевидно, что Код анкеты — это служебное поле. Для возраста будем использовать лингвистическую переменную, определенную на рис. 5, а для поля Стаж работы — переменную, определенную на рис. 9. Каждая функция принадлежности описывается числами: Малый = {0; 0; 6}, Продолжительный = {3; 6; 10; 20}, Большой = {15; 25; 40; 40}.

Таблица 1. Срез по измерениям «Возраст» и «Стаж работы»

Код анкеты Возраст Стаж работы
1 23 4
2 34 11
2 34 11
3 31 10
4 54 36
5 46 26
6 38 15
7 21 1
8 23 2
9 30 8
10 30 12

Нечеткое множество
Рис. 9. Графическое изображение лингвистической переменной «Стаж работы»

Сделаем нечеткий срез «Возраст = Средний и Стаж работы = Продолжительный». Например, для анкеты 4 получим:

Нечеткий срез

Аналогично рассчитаем степени принадлежности к итоговому нечеткому множеству для каждого претендента, зададим минимальный индекс соответствия, равный 0,3, и получим результат, показанный в табл. 2.

Таблица 2. Результат нечеткого среза

Код анкеты Возраст Стаж работы Индекс соответствия
3 31 10 1
9 30 8 1
6 38 15 1
2 34 11 0,9
10 30 12 0,8
8 23 2 0,3
1 23 4 0,3

Нечеткий поиск в хранилищах данных принесет аналитику максимальную пользу в случаях, когда требуется не только извлечь информацию, оперируя нечеткими понятиями, но и каким-то образом проранжировать ее по убыванию (возрастанию) степени релевантности запроса. Это позволит ответить на следующие вопросы: каких клиентов обзвонить в первую очередь, кому сделать рекламное предложение и т.д.

Источники:
[1] книга «Бизнес-аналитика: от данных к знаниям» Орешков В.И., Паклин Н.Б.
[2] Википедия
[3] Теория логики