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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DBSCAN

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

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

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

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

Affinity

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

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

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

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

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

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

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

Источник: https://habr.com/ru/post/718108/


Интересные статьи

Интересные статьи

Привет! Меня зовут Ольга Татаринова, я руковожу отделом аналитики в Agima.ai. Один из самых частых запросов, с которым к нам приходят клиенты, такой: «Сделайте нам дашборд c бизнес-KPI. Мы хотим найти...
Данная статья - это не научный прорыв, а лишь помощник быстрее понять как работает стандартный функционал в BitrixДавайте представим, что в разделе каталога у нас 150 запросов к БД. Вроде бы немного п...
В этой статье я постарался описать базовые знания о мире хранилищ и баз данных. Они помогут вам начать свой путь, укрепить знания или выбрать бд для своего нового проекта...
Это вторая часть интервью с Андреем Карсаковым (kapc3d), к.т.н., старшим научным сотрудником Национального центра когнитивных разработок, доцентом Факультета цифровых трансформаций. ...
Как быстро определить, что на отдельно взятый сайт забили, и им никто не занимается? Если в подвале главной страницы в копирайте стоит не текущий год, а старый, то именно в этом году опека над са...