Минькин Федор, М05-894а
Возьмем датасет tic-tac-toe, т.е. крестики-нолики.
В качестве датасета был выбран tic-tac-toe (крестики-нолики). В датасете есть 9 фичей, на каждую клетку игрового поля.
Каждая фича принимает значения "x", "o" - крестик/нолик в поле, либо "b" - отсутствие крестика и нолика. Таргет - победили ли крестики.
В датасете 958 примеров игр: положительных - 626, отрицательных - 332.
В качестве метрик используем Accuracy, Precision, Recall и несколько других, основная - Accuracy.
Для оценки качества разбиваем датасет на 20 фолдов, учимся на всех кроме одного, на нем тестируемся. Итоговое качество метода - усреднение по 10 разбиениям.
В качестве референсных значений посмотрим на стандартные модели sklearn
Изучим, как работает Logistic Regression
-
accuracy: 0.9548026315789475
-
f1_score: 0.6978891382032744
-
precision: 0.6958333333333334
-
recall: 0.7
Теперь попробуем Catboost с категориальными фичами.
-
accuracy: 0.649671052631579
-
f1_score: 0.6054329218465744
-
precision: 0.5720416666666667
-
recall: 0.6623376623376623
Работает ужасно.
Приступим к FCA модели.
После долгих попыток перебора моделей, лучшая модель получилась такая: Для каждой тестовой записи считаем supp = |(g+ /\ g-)+|, и берем две статистики:
- min
- median
Итоговая функция принятия решений:
- min(supp) * median(supp) > 9.27e-05
Такая модель получает
-
accuracy: 0.9655
-
f1_score: 0.9756
-
precision: 0.9524
-
recall: 1.0000
Что сильно лучше бейзлайнов!