В данном репозитории рассматривается задача бинарной классификации - распознавание спама в электронной почте по статистике слов, входящих в текст письма. Задача представлена по ссылке. Все данные представлены в таблице "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 |