Файл: Министервтсво цифрового развития, связи и массовых коммуникаций российской федерации.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 238
Скачиваний: 10
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Задание № 2: Кластеризация данных
1.1. Задание на курсовую работу
Исследовать возможности классификации данных с использованием алгоритмов t-SNE и UMAP.
Исходные данные для анализа загрузить из ресурса WineQuality (http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/) репозитория [1]. Варианты заданий (номер варианта определяется последней цифрой номера зачетки) приведены в табл. 2.
Вариант | Обучающая выборка |
Четная цифра | winequality-red.csv |
Таблица 2. Варианты задания
Анализируемые данные включают 11 объективных параметров различных сортов вина:
-
фиксированная кислотность; -
летучая кислотность; -
лимонная кислота; -
остаточный сахар; -
хлориды; -
свободный диоксид серы; -
общий диоксид серы; -
плотность; -
pH; -
сульфаты; -
спирт.
Последний, 12-й параметр является субъективной оценкой качества, проставляемой экспертом, и имеет несколько градаций.
Основная задача исследования состоит в определении качества субъективной оценки экспертов и формированию обоснованной кластеризации вин.
1.2. Загрузка и подготовка исходных данных для анализа
Исходные данные для анализа загружаем из ресурса WineQuality (http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)
2. Основные сведения необходимые для выполнения курсовой работы
2.1. Главные теоретические положения лежащие в основе решения поставленной задачи
Алгоритм t-SNE
t-распределенное стохастическое соседнее вложение t-SNE (t-DistributedStochasticNeighborEmbedding) — это алгоритм нелинейного уменьшения размерности, используемый для исследования данных большой размерности. Он отображает многомерные данные в двух или более измерениях, подходящих для наблюдения человеком. Алгоритм t-SNE (2008), в ряде случаев намного эффективнее PCA (1933). Важно подчеркнуть, что большинство нелинейных методов, кроме t-SNE, не способны одновременно сохранять локальную и глобальную структуру данных [L.J.P. vanderMaatenandG.E. Hinton. Visualizing High-Dimensional Data Using t-SNE. Journal of Machine Learning Research 9(Nov):2579-2605, 2008].
SNE начинается с преобразования многомерной евклидовой дистанции между точками в условные вероятности, отражающие сходство точек. Математически это выглядит следующим образом:
Формула показывает, насколько точка xj близка к точке xi при гауссовом распределении вокруг xiс заданным отклонением σ. Сигма будет различной для каждой точки. Она выбирается так, чтобы точки в областях с большей плотностью имели меньшую дисперсию. Для этого используется оценка перплексии (perplexity):
,
где
- энтропия Шеннона.
Перплексия может быть интерпретирована как сглаженная оценка эффективного количества «соседей» для точки xi. Она задается в качестве параметра метода t-SNE и рекомендуется использовать ее значение в интервале от 5 до 50. Сигма определяется для каждой пары xi и xj при помощи алгоритма бинарного поиска.
Таким образом, t-SNE алгоритм нелинейного уменьшения размерности, находит закономерности в данных, идентифицируя наблюдаемые кластеры на основе сходства точек данных с несколькими функциями. Но это не алгоритм кластеризации, а алгоритм уменьшения размерности, который просто отображает многомерные данные в более низкоразмерное пространство, а не идентифицирует входные объекты. Таким образом, вы не можете делать никаких выводов, основываясь только на t-SNE. По сути, это в основном техника исследования и визуализации данных. Но алгоритм t-SNE можно использовать в процессе классификации и кластеризации, используя его выходные данные в качестве входных характеристик для других алгоритмов классификации.
Алгоритм t-SNE можно использовать практически для всех многомерных наборов данных. Он особенно широко применяется в обработке изображений, естественного языка и геномных данных.
Ниже приведены распространенные ошибки, которых следует избегать при интерпретации результатов анализа с использованием алгоритма t-SNE:
-
Чтобы алгоритм работал правильно перплексия должнанаходиться в диапазоне от 5 до 50 и должна быть меньше количества переменных. -
Размеры кластеров на любом графике t-SNE не должны оцениваться на предмет стандартного отклонения, дисперсии или любых других аналогичных показателей. Это связано с тем, что t-SNE расширяет более плотные кластеры и сжимает более разреженные кластеры для выравнивания размеров кластеров. Это одна из причин получения четких и ясных графиков. -
Расстояния между кластерами могут измениться, потому что глобальная геометрия тесно связана с оптимальной сложностью. А в наборе данных с множеством кластеров с разным количеством элементов одна перплексия не может оптимизировать расстояния для всех кластеров. -
Шаблоны также могут быть обнаружены в случайном шуме, поэтому необходимо проверить несколько запусков алгоритма с разными наборами гиперпараметров, прежде чем решать, существует ли шаблон в данных. -
Различные формы кластеров могут наблюдаться на разных уровнях сложности. -
Топология не может быть проанализирована на основе одного графика t-SNE, перед проведением какой-либо оценки необходимо наблюдать несколько графиков.
Алгоритм UMAP
Аппроксимация и проекция однородного многообразия UMAP (UniformManifoldApproximationandProjection) — это метод уменьшения размерности, который можно использовать для визуализации аналогично t-SNE, но также для общего нелинейного уменьшения размерности. Алгоритм основан на трех предположениях о данных:
-
данные равномерно распределены на римановом многообразии; -
метрика Римана локально постоянна (или может быть аппроксимирована как таковая); -
многообразие локально связно.
Исходя из этих предположений, можно смоделировать многообразие с нечеткой топологической структурой. Вложение находится путем поиска низкоразмерной проекции данных, которая имеет наиболее близкую возможную эквивалентную нечеткую топологическую структуру.
Подробности лежащей в основе математики можно найти у авторов этого алгоритма в [https://arxiv.org/pdf/1802.03426.pdf ].
UMAP — это новый алгоритм уменьшения размерности, библиотека с реализацией которого вышла совсем недавно. Авторы алгоритма считают, что UMAP способен бросить вызов современным моделям снижения размерности, в частности, t-SNE, который на сегодняшний день является наиболее популярным. По результатам их исследований, у UMAP нет ограничений на размерность исходного пространства признаков, которое необходимо уменьшить, он намного быстрее и более вычислительно эффективен, чем t-SNE, а также лучше справляется с задачей переноса глобальной структуры данных в новое, уменьшенное пространство.
2.2. Описание используемых библиотечных функций с примерами
Пример использования алгоритма t-SNE
Ниже представлен пример использования алгоритма t-SNE для анализа набора данных MNIST и сравним его возможности с результатом, полученным ранее с использованием метода РСА (листинг 3):
Листинг 3. Анализ MNIST методами PCA и t-SNE
В листинг 3 добавлена функция Rtsne (строка 9) для реализации алгоритма t-SNE. Она имеет много входных параметров для настройки.
В строке 15 параметр par(mflow= c(1,2)) определяет вывод двух графиков рядом в оной строке. В результате мы получим следующую визуализацию (рис. 13).
Рис. 13. Визуализация MNIST по двум компонентам с использованием PCA и tSNE
Пример использования алгоритма UMAP
Ниже представлен пример использования алгоритма UMAP (листинг 5) для анализа набора данных MNIST и сравним его возможности с результатом, полученным ранее с использованием методов РСА и t-SNE в листинге 3.
Код листинга 4 максимально идентичен коду листинга 3, с той лишь разницей, что здесь используется функция umap().
Листинг 4. Анализ MNIST методом UMAP
В результате получается следующую визуализацию (рис. 14), которая показывает потенциальные возможности классификации набора.
Рис. 14. Визуализация MNIST по двум компонентам с использованием UMAP
3. Решение
3.1. Программный код с подробными комментариями
Листинг 5.
Сначала нужно загрузить необходимые для работы библиотеки: импорта данных, алгоритмов t-SNEиUMAP (строки 2–3). Подключаем их (строки 6–7). После этого нужно считать файл с исходными данными в формате .csv и получаем data.frame (строка 10). Потом необходимо удалить повторяющиеся строки из data.frame и конвертируем все переменные в numeric, т.к. иначе ф-иUMAP и Rtsne не сработают (строки 11–12). На этом заканчивается подготовка данных. После этого нужно применить функции алгоритмов t-SNEи UMAP (строки 15 и 17). Последующий код отвечает за построение графиков на основании полученных данных:
-
colorsотвечает за палитру графиков; -
par(mfrow=c(1,2)) позволяет расположить два графика рядом; -
plot()строит координатную плоскость с заданными параметрами осей, подписей и масштабирования (t='n', поэтому именно плоскость без данных); -
text() отображает данные в виде цифр (его параметры задают каким цветом они отобразятся) -
legend() позволяет добавить к графику легенду, чтобы лучше ориентироваться в данных
3.2. Полученные результаты с выводами, пояснения полученных графических материалов