Skip to content

MatushkinVD/email-spam-classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

email-spam-classification

Классификация спама в электронной почте с использованием одиночных моделей и ансамблей

Описание репозитория

В данном репозитории рассматривается задача бинарной классификации - распознавание спама в электронной почте по статистике слов, входящих в текст письма. Задача представлена по ссылке. Все данные представлены в таблице "emails.csv", архивированная в файле "emails.zip". Производится первичное преобразование данных и проверка на мультиколлинеарность признаков. Реализуются обучения единичных моделей по бинарной классификации и ансамблей из модуля scikit-learn, а также ансамблей деревьев решений из модуля CatBoost с различными методами построения деревьев, а также другими гиперпараметрами. По различным метрикам для классификации определяется лучшая модель и с помощью построения ROC и PR кривых, а также кроссвалидации методом Монте-Карло оценивается качество обучения лучшей модели. Все построенные метрики всех обученных моделей, а также параметры лучшей модели сохранены в папках "results" и "best_model_params" соответственно.

Содержание таблицы данных

В таблице 3002 столбца. В первом столбце указано имя отправителя. Чтобы защитить конфиденциальность, вместо имён получателей указаны номера. В последнем столбце указаны метки для прогнозирования: 1 - спам, 0 - не спам. Остальные 3000 столбцов содержат 3000 наиболее часто встречающихся слов во всех электронных письмах после исключения неалфавитных символов/слов. В каждой строке указано количество вхождений каждого слова (столбца) в этом электронном письме (строке). Таким образом, информация обо всех 5172 электронных письмах хранится в компактном датафрейме, а не в отдельных текстовых файлах.

Описание файлов репозитория

  • Папка "best_model_params" - папка с параметрами лучшей модели в форматах "cbm" и "json".
    • Файл "best_model.cbm" - параметры лучшей модели в формате "cbm" (CatBoost binary format).
    • Файл "best_model.json" - параметры лучшей модели в формате "json".
  • Папка "results" - папка с таблицами результатов обучения моделей и ансамблей, метрики LogLoss, Precision, Recall, Specificity, NPV, F1-score, P4-score.
    • Файл "all_results.csv" - результаты обучения всех моделей.
    • Файл "results_CB_ensembles.csv" - результаты обучения ансамблей из CatBoost.
    • Файл "results_ensembles.csv" - результаты обучения ансамблей из scikit-learn.
    • Файл "results_models.csv" - результаты обучения одиночных моделей из scikit-learn.
  • Файл "README.md" - текущий файл.
  • Файл "emails.zip" - архив с таблицей анализируемых данных с признаками и таргетом.
  • Файл "main.ipynb" - jupyter-файл с анализом данных и обучением моделей и ансамблей.

Результаты

В приведённых ниже таблицах представлены основные результаты лучших одиночных моделей (из scikit-learn), ансамблей моделей (из scikit-learn) и CatBoost-ансамблей по 3-м метрикам: LogLoss, F1-score и P4-score.

Имя модели Вид модели LogLoss
"MLPClassifier_t_lbfgs" Одиночная модель 1.427816
"HistGradientBoostingClassifier_11_0" Ансамбль из sk-learn 1.532291
"CB_Logloss_Newton_Balanced_CrossEntr_Plain_MVS_5_LG_L2_lft" CatBoost-ансамбль 1.288517
Имя модели Вид модели F1-score
"MLPClassifier_t_lbfgs" Одиночная модель 0.934609
"HistGradientBoostingClassifier_11_0" Ансамбль из sk-learn 0.931464
"CB_Logloss_Newton_Balanced_CrossEntr_Plain_MVS_5_LG_L2_lft" CatBoost-ансамбль 0.942989
Имя модели Вид модели P4-score
"MLPClassifier_t_lbfgs" Одиночная модель 0.952739
"HistGradientBoostingClassifier_11_0" Ансамбль из sk-learn 0.949952
"CB_Logloss_Newton_Balanced_CrossEntr_Plain_MVS_5_LG_L2_lft" CatBoost-ансамбль 0.958225

About

Классификация спама в электронной почте с использованием одиночных моделей и ансамблей

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors