Как стать автором
Обновить

Неудачный опыт: выявление аномалий в данных методами кластеризации

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 4.1K

Проект представлял из себя идею предсказания влияния новости на финансовый рынок. Были получены новости из раздела "Бизнес" и "Технологии", подгруженные с New York Times. Однако, перед тем, как приступать к предсказанию влияния, необходимо было очистить данные и отсечь новости, которые явным образом не повлияли бы на рынок. И тут нам на помощь пришла кластеризация.

Что мы делали:

  1. Предобработали данные

  2. Построили матрицу эмбеддингов

  3. Кластеризовали то, что получилось

А теперь обо всем по порядку.

Очистка и предобработка данных

Учитывая, что модель машинного обучения не может воспринимать текст в принципе, появляется необходимость в его векторизации (то есть создания матрицы эмбеддингов, но об этом позже). Однако, перед векторизацией данные должны быть хорошо очищены.

Что включает в себя очистка данных:

  • Приведение всего текста к нижнему регистру;

  • Удаление пунктуации;

  • Удаление стоп-слов;

  • Стемминг или лемматизация слов;

  • Разбиение на токены.

С приведением текста к нижнему регистру и удалением пунктуации - в принципе все понятно. Рассмотрим подробнее удаление стоп-слов, стемминг\лемматизацию текста и токенизацию.

Стоп-слова - это символы, служебные части речи, местоимения, союзы, междометия, и любые слова не несущие самостоятельно никакой смысловой нагрузки. Их удаление необходимо для корректного построения эмбедингов.

Стемминг\лемматизация - это приведение всех слов к начальной форме. Чтобы одни и те же слова, но стоящие в разных частях речи\родах и т.д. не рассматривали как отдельные слова.

Токенизация (иногда – сегментация) по словам – это процесс разделения предложений на слова-компоненты.

Построение матрицы эмбедингов

На данном этапе происходит построение матрицы эмбедингов для обучения на ней моделей. Для этого была подгружена предобученная нейронная сеть Word2Vec и дополнительно обучена на наших данных.

Кластеризация

А теперь, когда матрица эмбедингов готова, наступает самый интересный этап - построение кластеризации и отсеивание аномалий.

В исследовании новостей силами кластеризации возможно отсечь нерелевантные новости. Но проблема состоит в том, что число кластеров для кластеризации нам неизвестно. Данный проект требовал подбора определенных моделей кластеризации, не требующих на вход количество кластеров. Были выбраны следующие модели: DBSCAN, Affinity, иерархическая кластеризация и также попытки выделения оптимального количества кластеров методом локтя для Kmeans.

Также стоит отметить, что для визуализации результатов работы моделей использовалось Стохастическое вложение соседей с t-распределением (коротко t-SNE) - это алгоритм машинного обучения для визуализации. Он является техникой нелинейного снижения размерности, хорошо подходящей для вложения данных высокой размерности для визуализации в пространство низкой размерности (двух- или трехмерное).

В результате адекватные результаты показали две модели: DBSCAN и иерархическая кластеризация. Результаты представлены ниже.

DBSCAN

В результате обучения DBSCAN было получено два кластера. Основным является нулевой кластер, а отсекаемые новости вошли в отдельный кластер, получив признак «-1».

Стоит отметить, что кластера «-1» обозначают, что модель не смогла распознать их принадлежность к какому-либо кластеру.

Иерархическая кластеризация

В результате обучения иерархической кластеризации также было получено два кластера. В данном случае отсекаемых новостей получилось значительно больше, чем при DBSCAN. Основным кластером является нулевой кластер, а отсекаемые новости сформировали кластер с признаком «1».

Affinity

Алгоритм кластеризации при всех наших попытках и стараниях не смог выделить отсекаемые новости в отдельный кластер, а адекватные - в другой :(

Вместо этого она наплодила нам множество различных кластеров, а понять какие аномалии, какие нет, в данных условиях достаточно трудно.

Kmeans: метод локтя

Метод локтя заключается в подборе оптимального количества кластеров для алгоритма кластеризации. Однако, применив данный метод, мы не смогли определить тот самый “локоть”. Результаты представлены ниже:

Подведение итогов и очистка аномалий

В итоге проведения всех манипуляций и исследований в лидеры выбились две модели: DBSCAN и иерархическая кластеризация (как уже было сказано выше) и очистка данных шла уже на основе результатов этих двух моделек.

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

Теги:
Хабы:
+2
Комментарии 4
Комментарии Комментарии 4

Публикации

Истории

Работа

Data Scientist
66 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн