1. Введение 3
1.1. Формализация и постановка задачи 5
1.2. Обработка текста 6
1.3. Выделение признаков 7
1.4. Методы оценки результата алгоритма 11
2. Наивные алгоритмы 13
2.1. Шар 15
2.2. Максимальное отклонение по координатам 19
2.3. Эвристики 22
2.4. Метод k-ближайших соседей 23
3. Метод опорных векторов 26
3.1. Описание 26
3.2. Формализация 27
3.3. Ядра 30
3.4. Оценка результатов 33
4. Наивный байесовский классификатор 34
4.1. Описание 34
4.2. Формализация 34
4.3. Применение к задаче 36
4.4. Оценка результатов 38
Заключение 39
Список литературы 40
Если взглянуть на нынешний уровень доступа к информации, то можно обнаружить, что найти нужную информацию без каких-либо специальных средств почти невозможно.
Во многих случаях, чтобы как-то работать с этими данными, приходится сначала их классифицировать или кластеризовывать. У читателя может возникнуть вопрос, что это такое и зачем вообще это нужно?
Определение. Кластеризация (или кластерный анализ) — задача разбиения множества объектов на группы, называемые кластерами. Внутри каждого кластера должны оказаться похожие объекты, а объекты различных групп должны быть как можно более отличны.
Цели кластеризации
• Понимание структуры данных. Разбиение множества объектов на группы позволяет упростить их дальнейшую обработку, например, зная структуру данных, можно применять какой-то конкретный алгоритм для каждого кластера.
• Обнаружение новизны. Можно найти объект, который невозможно отнести ни к одной из групп.
Рис. 1: Кластеризация
Определение. Классификация — задача состоит в присвоении каждому объекту из заданного множества, одной из заранее заданных групп.
Цели классификации
Понимание структуры данных нового объекта. Присвоение группы объекту явно определяет его свойства и структуру. Эти свойства можно учесть при дальнейшей обработке.
Предсказание данных. На основе известных данных можно предсказывать вероятность принадлежности объекта классификации к какому-либо классу.
Рис. 2: Классификация
Отличием кластеризации от классификации является то, что перечень групп четко не задан и определяется в процессе работы алгоритма.
Многие крупные корпорации, такие как Яндекс или Google для обработки данных используют классификацию. Классификация является достаточно простой, но при этом часто решаемой задачей Data Mining. Компания Insecurityinsight, которая занимается мониторингом противоправных действий в отношении медицинких работников в горячих точках, по запросу которой реализован один из методов, рассмотренных в текущей работе, хочет выделять части преступления из статей(кто? когда? где? совершил преступление). Но для начала, им необходимо научиться понимать, является ли статья криминальной или нет. Далее в этой работе будут рассмотрены только методы, решающие задачу классификации.
1.1. Формализация и постановка задачи
Пусть существует множество классов C = {ci, c2, ... , cm} и множество объектов X = {xi, x2, ... , xi, ...}. Также существует функция f: X ! C, то есть такая функция, которая бы каждому объекту определяла класс. При этом, пусть для некоторых объектов Xi = {x1, ..., Xi} (Xlearning) известны значения yi = f(xi). Тогда все пары (xi, yi) называются обучающей выборкой. Если |С| = 2, то такая задача называется бинарной классификацией.
Возникает следующая проблема - объекты X имеют непредсказуемую природу. Элементом множества X может быть изображение, текст и т.д. Так как данная работа ориентируется на NLP(natural language processing), то будем считать, что элемент множества X - это текст (документ). Но к таким объектам нельзя напрямую применить существующий математический аппарат.
Рассмотрим задачу классификации подробнее. В задаче классификации можно выделить следующие этапы:
• Обработка текста
• Выделение признаков из текста
• Выбор классификатора
• Обучение классификатора и его практическое применение
Именно на этапе выделения признаков производится формирование пространства и перевод каждой статьи в это пространство. После этого математический аппарат использовать уже представляется возможным. Рассмотрим каждый из этапов отдельно.
1.2. Обработка текста
Этап обработки текста нужен, чтобы все слова, которые имеют одинаковую смысловую нагрузку, привести к одному виду, а также удалить слова, которые лишь мешают классификации документа. Для этого используются следующие методы:
• Стемминг слов
• Удаление стоп-слов
• Приведение слов к нижнему регистру
При стемминге происходит приведение слов к их основе. Основа слова - та часть слова, которая выражает его лексическое значение. Так, слова ’’final” и ’’finalize” преобразуются к ’’final”.
Следующим этапом происходит удаление стоп-слов. Стоп-слова - это слова, которые не несут смысловой нагрузки, но при этом часто употребляются в тексте. Примером могут служить слова ”be”, ”was”, ’’is” и т.д.
Также стоит приводить слова к одному и тому же регистру, иначе слова ’Victim”, ’victim” и ”ViCtim”, обозначающие одно и тоже, будут считаться разными.
При обработке любого документа в данной работе все слова приводятся к нижнему регистру, удаляются стоп-слова и используется стем- мер Портера. Алгоритм Портера последовательно применяет ряд правил для отсечения суффиксов и окончаний слов, основываясь на особенностях языка. Вследствие этого, алгоритм достаточно быстр и при этом имеет достаточно высокую точность. Также любые слова, длина которых меньше либо равна двум символам, будут удалены из этого документа. Это объясняется тем, что в английском языке крайне мало слов, которые бы имели такую длину и при этом могли бы как-то охарактеризовать документ.
1.3. Выделение признаков
Существует множество моделей для преобразования текста в вектор, принадлежащий n-мерному пространству, лишь некоторые часто используемые:
• Bag of words
• Bag of n-grams
• TF-IDF
После того, как элемент множества X преобразуется через одну из вышеперечисленных моделей, получается n-мерный вектор, который характеризует этот элемент. Теперь, говоря о множестве X, будем понимать не первоначальные объекты, а их вектора, т.е. X с Rn.
Bag of words
Этот метод является одним из самых распространенных в практике. Суть метода заключается в том, что каждое слово рассматривается отдельно и ’’кладется в мешок”. Таким образом, теряется первоначальный порядок слов и документ превращается в набор (’’мешок”) слов. При формировании ’’мешка” может учитываться количество вхождений слова, или же просто признак наличия или отсутствия. Также иногда применяют нормализацию, т.е. подсчет доли каждого слова во всех словах документа. Важно понимать, что каждому слову соответствует размерность пространства.
Пример. Рассмотрим как из предложения ”Man was seriously injured and he was hospitalized” сформируется bag of words. Каждому слову в этом предложении поставим в соответствие частоту вхождения, т.е. ”Man” = 1, ”was” = 2, ..., ’hospitalized” = 1. Таким образом, это предложение преобразуется в вектор (1, 2,1,..., 1).
Bag of n-grams
Подход похож на bag of words, но вместо слов используются n-граммы. n-грамма - последовательность из n слов. Преимущество этого подхода в том, что n-граммы сохраняют семантику. Этот подход имеет смысл использовать только в том случае, если предполагается, что появление текущего слова зависит только от n предыдущих.
Пример. Рассмотрим предложение ”Man was seriously injured and he was hospitalized”. Используем биграммы, тогда ’’мешок” будет состоять из [’’Man”, ”Man was”, ”was seriously”, ’’seriously injured”, ..., ”was hospitalized”, ’hospitalized”]. В общем случае n-граммы могут встречаться в тексте несколько раз, некоторые алгоритмы классификации могут учитывать эту информацию, другие - нет.
TF-IDF
TF-IDF (от англ. term frequency-inverse document frequency) состоит из трех этапов. После того, как слово проходит через эту модель, получается некоторая оценка этого слова, которая совмещает в себе и его важность, и его частоту вхождений.
Первым этапом выполняется подсчет доли вхождений каждого слова (TF).
TF(word) = W ;
W(word) - количество вхождений слова word в документ;
A - количество всех слов в документе.
Вторым этапом выполняется измерение того, насколько важно это слово (IDF). При вычислении TF все слова считаются одинаково важными. Однако такие слова, как ”say”, ’’just” встречаются в документе достаточно часто, при этом они не характеризуют его.
IDF(word) = log D—ж ;
DW (word)
D - общее число документов;
DW(word) - количество документов, которые содержат слово word.
Третий этап совмещает первые две оценки.
RES (word) = TF (word) * IDF (word)
Пример. Допустим, документ содержит 100 слов, а слово ’’weapon” встретилось в документе 5 раз. TF(”weapon”) = 0.05. Пусть, при этом у нас есть 1000 документов, а слово ’weapon” встретилось всего лишь в 10 из них. IDF(”weapon”) = 4,6. В итоге оценка TF-IDF(”weapon”) = 0.23.
Модель TF-IDF можно применять и к Bag of words, и к Bag of ngrams. В случае с Bag of words ничего не требуется изменять. Если же применять TF-IDF к Bag of n-grams, то во всех формулах нужно заменить word на n-грамму.
Получившееся простраство можно дополнить метрикой. Многие алгоритмы классификации нуждаются в расстоянии между двумя документами. Поэтому рассмотрим некоторые функции расстояния, которые в дальнейшем понадобятся.
Метрика Минковского
n d(xyy) = (^хг - yp)p, x,y с Rn i=i
При p = 2, является Евклидовым расстоянием.
Косинусное сходство
ELi x * yi
/'n Д * /'n Id
v 2^i=i xi * V 2щ=1 yi
Расстояние Махаланобиса
d(x, y) = ^ (Xi 2yi ; x,y с Rn
s“ i=i
Здесь si - среднеквадратическое отклонение xi от yi в обучающей выборке.
Классификаторы
В данной работе будут рассматриваться и сравниваться следующие классификаторы:
1. Наивные алгоритмы
2. Байесовский классификатор
3. Метод опорных векторов
4. Метод k-ближайших соседей
Все эти классификаторы требуют обучения перед их использованием. Для обучения классификаторов был проанализирован сайт theguardian.com и, с помощью простого парсера, были извлечены все предоставляемые этим сайтом криминальные статьи, а также часть статей, которые не являются криминальными (спорт, технологии, жизнь, стиль).
1.4. Методы оценки результата алгоритма
При работе алгоритмов бинарной классификации может возникнуть одна из следующих ситуаций:
Таблица.
Пусто | Пусто | Настоящие значения
Пусто | Пусто | Криминальные | Не криминальные
Предсказанные значения | Криминальные | True positive | False positive
Предсказанные значения | Не криминальные | False negative | True negative
Конец таблицы.
Введем обозначения, соответствующие всем возможным результатам:
• tp - количество true positive результатов при классификации;
• fp - количество false positive результатов при классификации;
• tn - количество true negative результатов при классификации;
• fn - количество false negative результатов при классификации.
На основе этих данных можно рассчитать некоторые общие оценки для классификации, которые не зависят от самого алгоритма.
Точность
Эта оценка показывает, насколько точно происходит классификация, т.е. сколько из предсказанных криминальных документов оказалась действительно крминальными. Чем ближе это значение к 1, тем больше true positive результатов в сравнении с false positive.
(формула в виде рисунка)
True positive rate
Показывает, сколько документов из общего числа реальных криминальных документов были отнесены к криминальным. Также TPR часто называют полнотой. Чем ближе значение TPR к 1, тем больше true positive результатов в сравнении с false negative.
TPR = tp/tp + fn
False positive rate
Показывает, сколько документов из общего числа реальных некриминальных документов были отнесены к криминальным.
FPR = fP fp + tn
F-мера
Одновременно оценивает оба параметра - Precision и TPR
1 , , : — а 2 (0 1)
Precision + (1 а) * TPR
С помощью а можно увеличивать или уменьшать значимость параметров. Если а = 0.5, то такая F-мера называется сбалансированной.
ROC-кривая
Кривая, позволяющая оценить качество бинарной классификации. Она показывает зависимость TPR от FPR. Если классификатор может оценить вероятность принадлежности объекта к каждому классу, то будем использовать количественную интерпретацию ROC-кривой - AUC. AUC (англ. area under curve) - количественная оценка, которая означает площадь под ROC-кривой.
Как видно из результатов тестирования, ни один из наивных алгоритмов не показал результатов, которые были бы близки к SVM или наивному байесу. В итоге, наилучшим образом себя показали следующие алгоритмы:
• Наивный байесовский классификатор с мультиномиальным распределением.
• Метод опорных векторов с RBF ядром.
В связи с тем, что в приоритете скорость классификации, то был выбран наивный байесовский классификатор, который удовлетворяет всем требованиям заказчика.
[1] C. Brandford Barber David P. Dobkin Hannu Huhdanpaa. The Quickhull Algorithm for Convex Hulls.
[2] Kozma Laszlo. k Nearest Neighbors algorithm (kNN).
[3] The Porter stemming algorithm.— 2017.— URL: http://snowball. tartarus.org/algorithms/porter/stemmer.html.
[4] Shimodaira Hiroshi. Text Classification using Naive Bayes.
[5] Воронцов К. В. Лекции по методу опорных векторов.
[6] Воронцов К. В. Лекции по статистическим алгоритмам классификации.
[7] Задачи классификации // Профессиональный информационноаналитический ресурс, посвященный машинному обучению, распознаванию образов и интеллектуальному анализу данных.— 2017.— URL: http://www.machinelearning.ru.