Цель курсовой работы — реализовать и сравнить алгоритмы машинного обучения для фильтрации спама.
Для достижения цели поставлены следующие задачи:
· Определить основные понятия машинного обучения
· Выбрать подходящие алгоритмы для решения задачи фильтрации спама
· Подобрать данные для обучения и тестирования
· Реализовать и обучить выбранные алгоритмы
· Сравнить реализованные алгоритмы
Спам — это массово рассылаемые рекламные сообщения конкретных людей или организаций для тех, кто не желает получать таковые сообщения. С появлением в современном мире сети Интернет и связанной с ней электронной почтой резко возникла потребность в фильтрации спама, потому что распространение спам-сообщений стало очень частым явлением для владельцев виртуальных ящиков. В настоящий момент эта проблема не решена до конца, потому что появляются всё новые способы организации вредоносной или просто неприятной рассылки. Современные электронные ящики снабжены своими проработанными системами фильтрации спама, которые в целом работают и отделяют ненужные для пользователя письма, но даже они иногда дают сбой, и происходит неправильная сортировка. Именно из-за этого тема фильтрации спама все еще остается актуальной.
Данная задача с самого начала решалась с помощью методов машинного обучения. По мере развития данной области начали появляться различные классификаторы, которые используются для фильтрации спама, представленного в виде текстового сообщения. Некоторые из таких классификаторов будут главными рассматриваемыми объектами данной работы.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ. 3
1 Теоретическая часть. 4
1.1 Машинное обучение. 4
1.2 Задача классификации. 5
1.3 Классификаторы для фильтрации спама. 6
1.3.1 «Наивный» байесовский алгоритм. 7
1.3.2 Метод опорных векторов. 9
1.4 Метрики для оценки алгоритмов классификации. 14
1.5 Инструментарий и технологии. 16
2 Практическая часть. 18
2.1 Работа с данными для обучения и тестирования модели. 18
2.2 Реализация работы классификаторов и оценка их работы.. 20
ЗАКЛЮЧЕНИЕ. 26
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ. 27
ПРИЛОЖЕНИЕ А Листинг программы классификации спама на основе «наивного» байесовского алгоритма. 29
ПРИЛОЖЕНИЕ Б Листинг программы классификации спама на основе метода опорных векторов. 36
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Курс Введение в машинное обучение [Электронный ресурс]. – URL: https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie (дата обращения: 01.04.2020).
2. Мюллер, Андреас, Гвидо, Сара. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными. : Пер. с англ. — СПб. : ООО «Диалектика», 2019. — 480 с.
3. Общие понятия [Электронный ресурс]. – URL: http://neerc.ifmo.ru/wiki/index.php?title=Общие_понятия (дата обращения: 10.05.2020).
4. Машинное обучение [Электронный ресурс]. – URL: http://www.machinelearning.ru/wiki/index.php?title=Машинное_обучение (дата обращения: 02.04.2020).
5. Лекция 1. Различные задачи машинного обучения [Электронный ресурс]. – URL: http://www.machinelearning.ru/wiki/images/a/a1/BayesML-2009-1.pdf (дата обращения: 02.04.2020).
6. Скляренко Н.С. Обзор алгоритмов машинного обучения, решающих задачу обнаружения спама // Новые информационные технологии в автоматизированных системах. 2017. №20. [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/obzor-algoritmov-mashinnogo-obucheniya-reshayuschih-zadachu-obnaruzheniya-spama (дата обращения: 05.04.2020).
7. Бурлаков Михаил Евгеньевич Применение в задаче классификации SMS сообщений оптимизированного наивного байесовского классификатора // Известия Самарского научного центра РАН. 2016. №4-4. [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/primenenie-v-zadache-klassifikatsii-sms-soobscheniy-optimizirovannogo-naivnogo-bayesovskogo-klassifikatora (дата обращения: 05.04.2020).
8. 6 простых шагов для освоения наивного байесовского алгоритма [Электронный ресурс]. – URL: http://datareview.info/article/6-prostyih-shagov-dlya-osvoeniya-naivnogo-bayesovskogo-algoritma-s-primerom-koda-na-python/ (дата обращения: 05.04.2020).
9. Bayesian poisoning [Электронный ресурс]. – URL: https://en.wikipedia.org/wiki/Bayesian_poisoning (дата обращения: 10.05.2020).
10. Метод опорных векторов [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/Метод_опорных_векторов (дата обращения: 05.04.2020).
11. Матрица ошибок (Confusion matrix) [Электронный ресурс]. – URL: https://learnmachinelearning.wikia.org/ru/wiki/Матрица_ошибок_(Confusion_matrix) (дата обращения: 16.05.2020).
12. Оценка классификатора (точность, полнота, F-мера) [Электронный ресурс]. – URL: http://bazhenov.me/blog/2012/07/21/classification-performance-evaluation.html (дата обращения: 16.05.2020).
13. SMS Spam Collection Data Set [Электронный ресурс]. – URL: http://archive.ics.uci.edu/ml/datasets/SMS+Spam+Collection (дата обращения: 22.05.2020).
14. sklearn.naive_bayes.MultinomialNB [Электронный ресурс]. – URL: https://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.MultinomialNB.html (дата обращения: 15.05.2020).
sklearn.svm.SVC [Электронный ресурс]. – URL: https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html (дата обращения: 15.05.2020).