Лабораторная работа №2.
При предварительной обработке данных важным этапом является выделение похожих данных в группы, или кластеризация, и поиск центров этих кластеров, то есть точек, около которых группируются экспериментальные данные. Выявление подобных центров позволяет сопоставить с этими центрами функции принадлежности переменных при последующем проектировании системы нечеткого вывода.
Для поиска центров кластеров используются различные алгоритмы кластеризации. В данной лабораторной работе будет разработана модель для исследования алгоритмов нечеткой кластеризации, таких как алгоритм нечетких С-средних и алгоритм субтрактивной кластеризации.
Кластеризация, или кластерный анализ – это задача разбиения множества объектов на группы, называемых кластерами. В результате кластеризации внутри каждой группы должны оказаться схожие объекты, а объекты разных группы должны быть как можно более различны. В метрическом пространстве схожесть объектов обычно определяется через расстояние, причем расстояние может рассчитываться как между объектами, так и между потенциальными центрами кластеров и объектами: чем меньше расстояние, тем объекты более схожи. Чаще всего координаты центров кластеров заранее неизвестны и находятся в процессе разбиения данных на кластеры.
Например, если при нечеткой кластеризации объект A относится к кластеру K1 со степенью принадлежности 0.9, к кластеру K2 – со степенью 0.04 и к кластеру К3 – со степенью 0.06, то при четкой кластеризации объект А будет отнесен к кластеру K1.
Подробное описание алгоритма нечетких С-средних и субтрактивной кластеризации представлено на странице справочной информации для блока «Нечеткая кластеризация» библиотеки «Нечеткая логика».
Рисунок 1. Диаграмма рассеяния: а – малое СКО, визуальная оценка количества кластеров равна трем; б – большое СКО, невозможно визуально оценить количество кластеров.
Для генерации множеств, качественно похожих на представленные на рисунке (Рисунок 1), для каждого случая будет сгенерировано по три пары выборок, для каждой пары будет задан свой центр, определяемый МО. Выборки для первого и второго случая будут иметь разные СКО для задания необходимого разброса точек на плоскости. Выборки будут генерироваться с помощью функции языка программирования – функции генерации Гауссовского шума с возможностью задания математического ожидания и среднеквадратического отклонения.
Чтобы исследовать алгоритмы нечеткой кластеризации, необходимо подготовить входные данные для кластеризации согласно методике, описанной выше. На первом этапе необходимо сгенерировать выборки таким образом, чтобы по отображению полученного множества точек на диаграмме рассеяния было легко оценить количество кластеров, на которое следует разбивать данное множество, то есть необходимо, чтобы точки были сконцентрированы около центров кластеризации и было мало точек, которые бы находились между кластерами. Таким образом, при генерации необходимо задать СКО достаточно малым.
Рисунок 2. Окно проекта с установленными блоками.
Сохранить проект под именем «Генерация выборок.prt».
Рисунок 3. Окно редактора блока «Язык программирования».
С помощью функции «randg» генерируются шесть выборок, содержащих по 100 случайных чисел, принадлежащих распределению Гаусса с указанными в аргументах функции МО и СКО, полученные выборки объединяются с помощью оператора «&» для формирования выходных массивов «x» и «y» с координатами точек полученного множества. С помощью функции «savetab» координаты точек этого множества сохраняются в файл «data_1.dat» в виде таблицы: в первый столбец записываются координаты по оси абсцисс, во второй – по оси ординат.
Рисунок 4. Окно проекта с блоками, соединенными линиями связи.
Рисунок 5. Окно «Свойства графика» блока «График Y от X» с выделенными свойствами, которые необходимо изменить.
Рисунок 6. Окно «Свойства графика» блока «График Y от X», вкладка «Общие», с выделенным свойством, которое необходимо изменить.
Рисунок 7. Окно «Свойства графика» блока «График Y от X», вкладка «Дополнительно», с выделенным свойством, которое необходимо изменить.
Сохранить изменения и закрыть окно нажатием кнопки «Ok».
После настройки схемы для генерации выборок, записи полученного множества точек в файл и построения диаграммы рассеяния этого множества необходимо запустить процесс моделирования и дождаться окончания расчета. При этом в директории с текущим проектом будет создан файл «data_1.dat», содержащий таблицу координат сгенерированного множества точек.
Рисунок 8. Диаграмма рассеяния при малом значении среднеквадратического отклонения.
Полученная диаграмма рассеяния показывает, что для данного множества точек предопределенное значение количества кластеров и визуальная оценка количества кластеров совпадают и равны трем.
Генерация выборок для случая, когда количество кластеров можно оценить визуально, завершена.
Далее необходимо сгенерировать выборки таким образом, чтобы по отображению полученного множества точек на диаграмме рассеяния было невозможно оценить количество кластеров, на которое следует разбивать данное множество, то есть необходимо, чтобы точки располагались не исключительно около центров кластеризации, но и между кластерами. Таким образом, чтобы разброс точек относительного математического ожидания был большим, необходимо задать среднеквадратические отклонения достаточно большими.
Рисунок 9. Окно редактора блока «Язык программирования» с выделенными строками, которые необходимо изменить.
После изменения скрипта для генерации выборок, записи полученного множества точек в файл и построения диаграммы рассеяния этого множества необходимо запустить процесс моделирования и дождаться окончания расчета. При этом в директории с текущим проектом будет создан файл «data_2.dat», содержащий таблицу с координатами сгенерированного множества точек.
Рисунок 10. Диаграмма рассеяния при большом значении среднеквадратического отклонения.
Полученная диаграмма рассеяния показывает, что для данного множества точек невозможно визуально оценить количество кластеров вследствие большого разброса точек относительно потенциальных центров – заданных математических ожиданий, и смешения точек разных кластеров.
Генерация выборок для случая, когда количество кластеров нельзя оценить визуально, завершена, требуется сохранить проект.
После подготовки данных для проведения кластерного анализа необходимо создать новый проект «Схема модели общего вида» и сохранить под именем «Нечеткая кластеризация.prt».
Рисунок 11. Окно проекта с добавленным блоком «НЛ – Нечеткая кластеризация».
Рисунок 12. Главное окно SimInTech с выделенной кнопкой «Панель примитивов».
Рисунок 13. Окно проекта с добавленным примитивом «Текст».
Рисунок 14. Окно «Редактирование текста» с выделенной кнопкой «Применить и закрыть».
Рисунок 15. Окно проекта с измененным текстом и измененным расположением примитива «Текст».
Рисунок 16. Окно проекта с контекстным меню блока с выделенным пунктом «Свойства объекта».
Рисунок 17. Окно «Свойства» блока «НЛ – Нечеткая кластеризация» с выделенной кнопкой доступа к проводнику для выбора файла.
Рисунок 18. Окно «Открытие» с выбранным файлом «data_1.dat».
Рисунок 19. Окно «Свойства» блока «НЛ – Нечеткая кластеризация» с измененным значением свойства «Имя файла с матрицей входных данных».
Рисунок 20. Окно «Свойства» блока «НЛ – Нечеткая кластеризация» с кратким вариантом задания свойства «Имя файла с матрицей входных данных».
Рисунок 21. Окно «Свойства графика» блока «НЛ – Нечеткая кластеризация» с выделенными свойствами, которое необходимо изменить.
Сохранить изменения и закрыть окно нажатием кнопки «Ok».
После задания свойств для построения диаграммы рассеяния необходимо запустить процесс моделирования и дождаться окончания расчета.
Рисунок 22. Диаграмма рассеяния при наличии информации о количестве кластеров.
По полученной диаграмме рассеяния видно, что центры кластеров найдены правильно.
Рисунок 23. Окно графика с контекстным меню с выделенным пунктом «Анализ данных» подпунктом «Табличный просмотр».
Рисунок 24. Окно «Табличный просмотр данных» с выделенными колонками, содержащими найденные координаты центров кластеров.
В результате сравнения полученных значений координат центров кластеров с заданным математическими ожиданиями координат центров, равными «(0.2, 0.6)», «(0.6, 0.15)» и «(0.75, 0.8)», установлено, что полученные значения практически совпадают с заданными.
Рисунок 25. Окно проекта с добавленным блоком и подписью.
Рисунок 26. Окно «Свойства» блока «НЛ – Нечеткая кластеризация» с подписью «Кластеризация при отсутствии информации о количестве кластеров».
После этого необходимо подготовить оформление окна, в котором будет отображаться график. Для этого двойным нажатием левой кнопки мыши по блоку «НЛ – Нечеткая кластеризация» с подписью «Кластеризация при отсутствии информации о количестве кластеров» вызвать окно «График Y от X». После этого необходимо открыть окно «Свойства графика» и на вкладке «Графики и оси» в колонках «Ось X» и «Ось Y» задать значения свойств «Шаг сетки» равными «0.2». На вкладке «Общие» задать название графика как «Кластеризация при отсутствии информации о количестве кластеров». Сохранить изменения и закрыть окно нажатием кнопки «Ok».
Рисунок 27. Диаграмма рассеяния при значении свойства «Диапазон влияния» равного «0.5».
Полученная диаграмма рассеяния показывает, что при заданных значениях свойств количество кластеров, на которые следует разбить данное множество точек, равно «3».
Для исследования влияния параметра кластеризации «Диапазон влияния» на количество центров кластеров необходимо изменить значение данного свойства.
Рисунок 28. Диаграмма рассеяния при значении свойства «Диапазон влияния» равного «0.55».
Полученная диаграмма рассеяния показывает, что при заданных значениях свойств количество кластеров, на которые следует разбить данное множество точек, равно «2».
Рисунок 29. Диаграмма рассеяния при значении свойства «Диапазон влияния» равного «0.35».
Полученная диаграмма рассеяния показывает, что при заданных значениях свойств количество кластеров, на которые следует разбить данное множество точек, равно «6».
Полученные диаграммы рассеяния (Рисунок 27, Рисунок 28, Рисунок 29) показывают, что при увеличении диапазона влияния количество кластеров, на которые следует разбить данное множество точек, уменьшается, а при уменьшении диапазона – количество кластеров увеличивается.
Перед следующим шагом, исходя из визуальной оценки найденного примерного расположения центров кластеров относительно точек множества входных данных, необходимо выбрать наиболее подходящее количество кластеров, на которое следует разбить сгенерированное множество.
Рисунок 30. Окно «Свойства» блока «НЛ – Нечеткая кластеризация» с подписью «Кластеризация при отсутствии информации о количестве кластеров» с измененным алгоритмом кластеризации.
Рисунок 31. Диаграмма рассеяния при количестве кластеров, заданным равным «3».
По полученной диаграмме рассеяния видно, что центры кластеров найдены правильно. Из сравнивая диаграмм, полученных в результате использования разных алгоритмов (Рисунок 27 и Рисунок 31), видно, что алгоритм нечетких С-средних более точно определяет центры кластеров. В свою очередь, алгоритм субтрактивной кластеризации менее точен, но для него не требуется информации о количестве кластеров.
Рисунок 32. Окно «Табличный просмотр данных» блока «НЛ – Нечеткая кластеризация» с подписью «Кластеризация при отсутствии информации о количестве кластеров».
В результате сравнения полученных значений координат центров кластеров с заданным математическими ожиданиями координат центров, равными «(0.2, 0.6)», «(0.6, 0.15)» и «(0.75, 0.8)», установлено, что найденные значения практически совпадают с заданными, а отклонение обусловлено случайностью выборок и большим разбросом точек относительно центров кластеризации.
В ходе данной лабораторной работы была разработана модель для генерации случайных выборок с заданными математическими ожиданиями и среднеквадратическими отклонениями, построены диаграммы рассеяния для сгенерированных выборок и разработана модель для проведения кластерного анализа. В результате моделирования были найдены центры кластеров сгенерированных выборок для двух случаев – при наличии и при отсутствии возможности оценить количество кластеров по диаграмме рассеяния.