Одним из основных проектов машинного обучения является обнаружение спама. Обнаружение спама реализовано в gmail, truecaller и т.д. Теперь в этом блоге мы увидим, как построить модель машинного обучения с точностью выше 95%. Я работаю с Jupyter Notebook для лучшего объяснения.

НЕОБХОДИМЫЕ БИБЛИОТЕКИ

Библиотека numpy используется для математических манипуляций. Библиотека pandas используется для манипуляций с наборами данных. Из библиотеки sklearn мы импортируем класс train_test_split, из которого мы можем легко обучать данные, тестировать данные и разделять данные. Векторизатор Tfidf используется для извлечения функций из текстового набора данных. Алгоритм пассивно-агрессивного классификатора используется для классификации почты как спама или ветчины.

ЗАГРУЗКА НАБОРА ДАННЫХ

Набор данных представляет собой файл csv. Это должно быть загружено в программу для обнаружения спама. Для загрузки набора данных мы используем команду read_csv().

df.shape используется для просмотра количества строк и столбцов в наборе данных. Используя команду df.head(), мы можем просмотреть только 5 верхних строк в наборе данных.

ЭТИКЕТКИ

Для отделения меток от набора данных мы делаем следующий код.

Теперь метки отделены от набора данных.

РАЗДЕЛЕНИЕ НАБОРА ДАННЫХ

Для разделения набора данных для обучения и тестирования используется класс train_test_split из библиотеки sklearn. Мы сохраняем 25% набора данных для тестирования, а остальные 75% — для обучения.

ВЕКТОРАЙЗЕР TFIDF

Преобразование набора необработанных документов в матрицу функций TF-IDF. TfidfVectorizer будет токенизировать документы, изучать словарный запас и обратное частотное взвешивание документов, а также позволит вам кодировать новые документы. В качестве альтернативы, если у вас уже есть изученный CountVectorizer, вы можете использовать его с TfidfTransformer, чтобы просто вычислить частоты обратного документа и начать кодирование документов.

ПАССИВНО-АГРЕССИВНЫЙ КЛАССИФИКАТОР

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

Для классификации можно использовать PassiveAggressiveClassifier с loss=’hinge (PA-I) или loss=’square_hinge’.

ПОДГОТОВКА МОДЕЛИ

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

ТОЧНОСТЬ ПРОГНОЗА

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

Отсюда можно сделать вывод, что из 100 значений 97 значений будут предсказаны правильно.

МАТРИЦА ЗАМЕДЛЕНИЙ

Мы даже можем представить это в виде матрицы, называемой матрицей путаницы, чтобы понять ее еще лучше.