Классификация спама с применением методов машинного обучения. - Студенческий научный форум

XI Международная студенческая научная конференция Студенческий научный форум - 2019

Классификация спама с применением методов машинного обучения.

Шалтынова З.С. 1, Тутова Н.В. 2
1МТУСИ
2Московский Технический Университет Связи и Информатики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

В статье рассмотрена возможность применения машинного обучения при классификации спама, в рамках курсового проекта по дисциплине «Методы интеллектуального анализа данных», научный руководитель – д.ф.-м.н., профессор Воронова Л.И. [1].

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

Спам — это сообщения, массово рассылаемые людям, не дававшим согласие на их получение. Чаще всего спам встречается на электронных почтах, на сайтах, в комментариях и др.

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

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

Именно поэтому классификация спамов с использованием методов машинного обучения является актуальной.

В качестве данных для анализа используются комментарии выгруженные с видеохостингового сайта [9], в csv файл spam с исходным набором данных (спам и не спам сообщения). Файл spam представляет собой список сообщения, каждое из которых является спамом или не спамом. Содержимое файла представлено на рисунке 1.

Рис.1- Структура файла «spam»

Для отчистки, обработки и записи данных в csv формат, для удобного использования, применялась библиотека ElementTree [8].

Для чтения и обработки обработанных данных использовалась библиотека pandas [7]. Программный код использования данной библиотеки отображен на рисунке 2. Функция read_csv считать csv как data frame. С помощью функции split () разделяет слепленные классы. Функция dropna() позволяет удалять пустые записи [3].

Рис. 2- Программный код использования библиотеки pandas

В качестве инструмента машинного обучения использовалась библиотека scikit-learn [6]. Данная библиотека не позволяет обрабатывать категориальные признаки, для реализации модели необходимо перевести их в числовые признаки, программный код перевода показан на рисунке 3.

Рис. 3- Программный код перевода категориальных признаков в числовые

При анализе текстовых признаков было использованы 3 модели:

Bags of words или мешок слов — представляет собой неупорядоченный набор слов, входящих в обрабатываемый текст. Модель представляют в виде матрицы, в которой строки соответствуют отдельному тексту, а столбцы — входящие в него слова. Ячейки на пересечении являются числом вхождения данного слова в соответствующий документ.

N-grams— последовательность из n элементов. С семантической точки зрения, это может быть последовательность звуков, слогов, слов или букв. На практике чаще встречается N-грамма как ряд слов, устойчивые словосочетания называют коллокацией.,

tf-idf— статистическая мера, используемая для оценки важности слова в контексте документа, являющегося частью коллекции документов или корпуса. Вес некоторого слова пропорционален частоте употребления этого слова в документе и обратно пропорционален частоте употребления слова во всех документах коллекции. [10]

Программный код анализа текстовых признаков представлен на рисунке 4.

Рис. 4- Программный код анализа текстовых признаков

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

Рис. 5- Программный код выбора алгоритма классификации

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

ComplimentNB- метод, основанный на применении наивного байесовского классификатора, в основе которого лежит применение теоремы Байеса.

Perceptron, который имеет множество слоев: входной слой для получения данных, скрытые слои и выходной слой для вывода данных.

В данном случае для классификации спам/не спам нейронная сеть показала себя лучше, чем другие алгоритмы классификации. [4]:

F-мера случайного леса= 0.972;

F-мера тестовой выборки персептрона= 0.9861;

F-мера тестовой выборки байесовского классификатора: 0.966.

График сравнения алгоритмов классификации отображается на рисунке 6.

Рис. 6 - Сравнение алгоритмов классификации

Для выбора оптимального количества нейронов и уровней в сети – была протестирована сеть с различным количеством нейронов. Программный код тестирования показан на рисунке 7.

Рис. 7 - Код тестирования различного количества нейронов

Исходя из этого был построен график: зависимости качества классификации от количества слоев [2]. График зависимости качества классификации от количества нейронов находится на рисунке 8.

Рис. 8 - Зависимость качества классификации от количества слоев нейронов

Опираясь на график, можно сделать вывод, что для алгоритма «мешок слов» наилучшее количество слоев нейронов 12, а количество входных нейронов 8617.

Модель нейронной сети показан на рисунке 9.

Рис. 9 - Нейронная сеть для классификации спама

Для проверки работы классификатора, подадим на вход текст и классификатор выдает результат: «спам», что является таковым.

Результат работы программы предоставлен на рисунке 10.

Рис. 10 - Работа классификатора спама

Выводы

В статье проанализирована проблема классификации спама методами машинного обучения; обозначены основные понятия. Описан программный код и построены графики для выбора наилучших условий для качества классификатора спама. Спроектирована и реализована нейронная сеть, а также другие методы машинного обучения, такие как: RandomForest, байесовский классификатор спама для сравнения и сделан вывод что наилучшим методом машинного обучения является нейронная сеть, показан результат работы программы [5].

Список литературы и источников

Л.И. Воронова, В.И. Воронов. Machine Learning: Регрессионные методы интеллектуального анализа данных: учебное пособие – МТУСИ, 2017 – 81 с.

Курс машинного обучения Andrew Ng Machine Learning [Электронный ресурс]. – Режим доступа: https://www.coursera.org/learn/machinelearning (дата обращения: 01.12.2017)

Высокоуровневый язык программирования Python [Электронный ресурс]. – Режим доступа: https://www.python.org/ (дата обращения: 5.12.2018)

Открытая библиотека машинного обучения TensorFlow [Электронный ресурс]. – Режим доступа: https://www.tensorflow.org/ (дата обращения: 7.12.2017)

Открытая библиотека разработки нейронных сетей Keras [Электронный ресурс]. – Режим доступа: https://keras.io/ (дата обращения: 15.12.2018)

Открытая библиотека машинного обучения scikit-learn [Электронный ресурс]. – Режим доступа: http://scikit-learn.org/ (дата обращения: 17.12.2018)

Библиотека Анализа Данных Python. [Электронный ресурс]. – Режим доступа: https://pandas.pydata.org (дата обращения: 17.12.2018)

Python XML with ElementTree: Beginner's Guide [Электронный ресурс]. – Режим доступа: https://www.datacamp.com/community/tutorials/python-xml-elementtree (дата обращения: 17.12.2018)

YouTube [Электронный ресурс]. – Режим доступа: https://www.youtube.com(дата обращения: 7.12.2017)

Классификация текстов с помощью мешка слов. Руководство [Электронный ресурс]. – Режим доступа: http://datareview.info/article/klassifikatsiya-tekstov-s-pomoshhyu-meshka-slov-rukovodstvo/(дата обращения: 7.12.2017)

Просмотров работы: 357