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

1. О наборе данных

Набор данных Enron состоит из электронных писем, отправленных в основном высшим руководством корпорации Enron. В этом эксперименте мы используем обработанную версию этого набора данных, специально созданную для классификации спама и радиолюбителей. Набор данных состоит из 30207 писем, из которых 16545 писем помечены как ветчины, а 13662 письма помечены как спам.

2. Методология

2.1 Предварительная обработка данных

2.1.1 Машинное обучение

Для алгоритмов машинного обучения я использовал подход «мешок слов». Это способ извлечения функций из текста для использования в алгоритмах машинного обучения [1]. В этом случае мы сначала токенизируем электронные письма и составляем словарь всех слов во всех электронных письмах. Затем мы берем из него 3000 наиболее распространенных слов в качестве нашего последнего словаря. Затем мы перебираем каждое электронное письмо и записываем частоту появления каждого токена в электронном письме, соответствующем токену в словаре. Таким образом, максимальная длина последовательности для всех писем становится 3000.

2.1.2 Рекуррентная нейронная сеть

Для предварительной обработки электронных писем для модели RNN использовался несколько иной подход с использованием набора слов. Мы начинаем с токенизации электронных писем и составляем словарь всех слов во всех электронных письмах, как мы это делали для моделей машинного обучения. Затем все слова будут проиндексированы, начиная с 1. Затем будет повторяться итерация коллекции электронных писем, и для каждого слова в электронном письме будет использоваться словарь, чтобы сопоставить слово с соответствующим индексом. Такой подход гарантирует, что последовательность слов в электронном письме сохраняется. Но теперь у нас есть проблема с тем, что каждое электронное письмо имеет разную длину последовательности. Чтобы смягчить это, мы получим длину самого длинного электронного письма и дополним все электронные письма этой длиной. Заполнение будет выполняться путем добавления «0» (ноль) к началу каждой последовательности, чтобы это не повлияло на процедуру обучения. В этом сценарии длина последовательности всех писем составляет 3425.

2.2 Алгоритмы машинного обучения

Набор данных Enron будет использоваться для обучения моделей машинного обучения классификации электронной почты как спама или радиолюбителей. Все используемые алгоритмы машинного обучения были взяты из библиотеки scikit learn. Настройка параметров для всех алгоритмов производилась вручную. Причина этого в том, что, поскольку размер набора данных составляет 30207, выполнение поиска по сетке занимает слишком много времени.

2.2.1 Разделение данных

Для всех алгоритмов данные были разделены на три группы: набор для обучения, проверки и тестирования. Набор для проверки использовался для настройки параметров. После настройки параметров набор для тестирования использовался для получения окончательных результатов. Обучающая выборка состояла из 80% данных, а 20% были даны для валидационной выборки. Затем эти 20% были разделены поровну, так что 50% из них были взяты для проверки, а остальные 50% были взяты для тестирования.

2.2.2 Классификация опорных векторов (SVC)

Алгоритм классификации опорных векторов моделирует ситуацию, создавая пространство признаков, которое представляет собой конечномерное векторное пространство, каждое измерение которого представляет «особенность» конкретного объекта [2].

Сначала наблюдения проводились без каких-либо оптимизаций. Ниже показаны первоначальные результаты:

После получения начальных результатов с использованием линейного ядра параметр C был настроен для получения окончательных результатов. Ниже показаны окончательные результаты, полученные для проверки, и набор тестов. Это наивысшие оценки валидации, полученные во время наблюдения.

2.2.3 Классификатор случайного леса

Классификатор случайного леса создает набор деревьев решений из случайно выбранного подмножества обучающего набора. Затем он объединяет голоса из разных деревьев решений, чтобы определить окончательный класс тестового объекта [3].

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

Первоначальные результаты были улучшены за счет изменения различных параметров, которые могут иметь наибольшее влияние на конечный результат. Исследуемые параметры: n_estimators, max_features и Max_depth. Ниже показаны окончательные результаты:

2.2.4 Логистическая регрессия

Логистическая регрессия используется для описания данных и объяснения взаимосвязи между одной зависимой двоичной переменной и одной или несколькими номинальными, порядковыми, интервальными или пропорциональными независимыми переменными [4].

Алгоритм был запущен с настройками по умолчанию, так как не было параметров для оптимизации. Ниже представлены полученные результаты тестирования набора.

2.2.5 Резюме

Сравнивая эти модели, мы будем в основном ориентироваться на результат f1. Согласно наблюдениям, несмотря на оптимизацию алгоритма svc, существенного улучшения добиться не удалось. Но классификатор случайного леса показал довольно значительное улучшение после настройки значений параметров. Несмотря на то, что оба этих алгоритма дали хорошие результаты, конечный результат алгоритма логистической регрессии был наивысшим. Как вы можете видеть, конечный результат алгоритма логистической регрессии и алгоритма svc не так уж далеки друг от друга, но нам придется отдать победу алгоритму логистической регрессии, поскольку он является максимальным, который мы смогли получить.

Мы продолжим изучение этого предмета и посмотрим, сможем ли мы улучшить конечные результаты, используя другой подход. А именно рекуррентная нейронная сеть. Тип рекуррентной нейронной сети, которую мы будем использовать для этого наблюдения, - это модель LSTM.

2.3 Модель LSTM

LSTM расшифровывается как сети с долгосрочной краткосрочной памятью, это особый вид RNN, способный изучать долгосрочные зависимости. Они специально разработаны, чтобы избежать проблемы долгосрочной зависимости, присутствующей в большинстве моделей. LSTM запоминают информацию в течение длительных периодов времени, помогая моделировать долгосрочные зависимости [5].

Фреймворк Tensorflow использовался для создания модели LSTM. Модель LSTM состоит из нескольких уровней. При загрузке данных в модель мы сначала пропустим их через встроенный слой. Функциональность встроенного слоя заключается в том, что он будет представлять каждый индекс, который представляет слово в словаре, в вектор заданного размера случайных числовых значений в пределах диапазона. Такой подход помогает моделировать отношения между словами. Затем вывод встроенного слоя будет отправлен через слой LSTM. Для этой задачи мы использовали «базовую ячейку LSTM», предоставленную Tensorflow. Слой LSTM будет добавлять к выходным данным выпадение, чтобы случайным образом приглушить некоторые нейроны в нейронной сети, чтобы уменьшить вероятность чрезмерной подгонки [6]. Затем скрытый слой будет потреблять выходные данные уровня LSTM и производить окончательный результат.

При вычислении функции стоимости ей будет передан логит (конечный результат, который не был отправлен через функцию активации). Используемая функция затрат - это «перекрестная энтропия softmax с логитами». Затем функция оптимизации будет использоваться для снижения стоимости. Используемая функция оптимизации - оптимизатор Adam.

Прогнозы были сделаны путем передачи полученного логит-значения через функцию активации. Для этого использовалась сигмовидная функция, поскольку рассматриваемая задача представляет собой двоичную классификацию.

2.3.1 Разделение данных

Данные были разделены на 3 группы в виде набора для обучения, проверки и тестирования, как упоминалось ранее в подходе к машинному обучению. После получения начального результата набор проверки был использован для настройки гиперпараметров с целью улучшения окончательных оценок. Затем набор для тестирования использовался для окончательной оценки. Процент данных по обучению, проверке и тестированию был таким же, как и для подхода машинного обучения.

2.3.2 Результаты

Ниже показаны первоначальные результаты, полученные с использованием набора данных проверки:

Приведенные ниже результаты показывают окончательный результат после настройки гиперпараметров.

После получения удовлетворительных результатов с использованием вышеуказанной модели. Наблюдения проводились путем наложения большего количества скрытых слоев, чтобы увидеть, можно ли улучшить результат.

Ниже показаны результаты, полученные при использовании 2 скрытых слоев.

2.3.3 Резюме

Чтобы оценить модель, мы будем в основном рассматривать оценку f1, как мы это делали с алгоритмами машинного обучения. Рассматривая полученные результаты после оптимизации параметров, мы видим небольшое улучшение показателей.

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

3. Кто справился лучше?

Как обсуждалось выше, алгоритм логистической регрессии дал лучшие результаты, чем оба других алгоритма машинного обучения. Итак, теперь мы подходим к вопросу, кто лучше справился с рассмотрением алгоритма логистической регрессии и модели LSTM. Ниже показано сравнение окончательных результатов алгоритма логистической регрессии и модели LSTM.

Из таблицы видно, что показатель f1 LSTM лучше, чем у алгоритма логистической регрессии. По сути, все оценки модели LSTM лучше, чем у алгоритма логистической регрессии. Это дает легкую победу модели LSTM.

4. Заключение

Учитывая полученные результаты, модель LSTM превзошла все остальные рассмотренные алгоритмы машинного обучения. Причина этого - способность LSTM моделировать долгосрочные зависимости. Enron представляет собой набор текстовых данных, поэтому возможность запоминать зависимости между словами в электронном письме увеличивает шанс лучше догадаться, спам это или любительское письмо. Поскольку LSTM по своей конструкции отлично справляется с этой задачей, он смог дать лучшие результаты, чем остальные алгоритмы машинного обучения.

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

5. Ссылки

[1] https://medium.com/greyatom/an-introduction-to-bag-of-words-in-nlp-ac967d43b428

[2] https://mindmajix.com/support-vector-machine-algorithm

[3] https://medium.com/machine-learning-101/chapter-5-random-forest-classifier-56dc7425c3e1

[4] http://www.statisticssolutions.com/what-is-logistic-regression/

[5] http://colah.github.io/posts/2015-08-Understanding-LSTMs/

[6] https://www.quora.com/How-does-the-dropout-method-work-in-deep-learning-And-why-is-it-claimed-to-be-an-effective- уловка для улучшения вашей сети

ПРИМЕЧАНИЕ. Полный код, использованный для этой оценки, можно найти по этой ссылке. Пожалуйста, поиграйте с кодом и попробуйте сами. Удачного кодирования!