Comments 13
Подскажите неумехе, я так понял доступ к самим данным в библиотеке только по подписке? Бесплатно их (данные) как то можно получить. Очень интересно.
Осталось спрогнозировать "черных лебедей" на следущие 25 лет вперед и проверить.
На 25 лет - навряд ли, предлагаемый метод максимум на 3-5 лет. Но если пошаманить/скрестить ML и DL с обучением с подкреплением и все-таки сделать самообучающуюся предиктивную модель - то вполне возможно. Не "психоистория", конечно. Но к "пятой" генерации теории революций (если "четвертую" считать от Джека Голдстоуна) может привести. Надо больше факторов по демографическим процессам и социальным институтам.
Для сложных моделей оверсемплинг по идее не нужен, он ничего им не даёт.
За 200 лет многие параметры должны были кардинально поменяться, тут обязательно надо изучать что это за данные, как они предобрабатывались.
Опять же, смешивать вместе характеристики 200 совершенно разных стран, не изучая данные, просто как "чёрный ящик" - ну, такое.
Кросс-валидацию типа
TimeSeriesSplit
хотелось бы побенчмаркать, да.Странно, что важность фич такая маленькая и почти одинаковая. У меня сильное подозрение, что модель тупо переобучается. Хотя скор на отложенной выборке эту гипотезу вроде как опровергает, но у меня всё-равно сильное подозрение на переобучение и/или утечку данных при обработке фич. Я бы в качестве "sanity check" попробовал добавить фичу, заполненную рандомными данными и посмотрел на её
importance
. Есть такая методика. Всё, что окажется ниже этой фичи поimportance
- это мусор.Хотелось бы видеть анализ ошибок. Где они концентрируются - на определённых годах, на определённых странах? Возможно, это дало бы какую-то информацию как можно улучшить модель.
По итогам экспериментов со SMOTE, RandomOverSampler, ADASYN установлено, что оверсемплинг улучшает recall ряда моделей. Voting, не работает без балансировки классов "в базе". Прирост есть, он небольшой и иногда за счет других метрик.
Метрики для различных моделей (в натуральную, без синтетики)
Модель Accuracy Precision Recall F1_score
AdaBoost 0.9074 0.6486 0.3770 0.4768
Bagging 0.9127 0.6944 0.3927 0.5017
ExtraTrees 0.9226 0.7658 0.4450 0.5629
GradientBoosting 0.9174 0.7273 0.4188 0.5316
RandomForest 0.9191 0.7677 0.3979 0.5241
Stacking 0.9215 0.7568 0.4398 0.5563
Voting 0.8880 0.0000 0.0000 0.0000
HistGradientBoosting 0.9244 0.7627 0.4712 0.5825
CatBoost 0.9238 0.7798 0.4450 0.5667
lightgbm 0.9261 0.7876 0.4660 0.5855
xgboost 0.9302 0.7812 0.5236 0.6270
С оверсэмплингом рассказал. Тюнингованная модель F1-score: 0.683 - с оверсэмплингом, 0.64 - без. Прирост метрик есть.
Classification Report:
precision recall f1-score support
0 0.938608 0.978878 0.958320 1515
1 0.746032 0.492147 0.593060 191
accuracy 0.924385
macro avg 0.842320 0.735512 0.775690 1706
weighted avg 0.917047 0.924385 0.917426 1706
Не 200 лет. Выборка с 1991 по 2019 годы. В ней 151 признак. "Устаревшие" - исключены.
Следующая модель будет с кросс-валидацией. (в другой публикации по киношкам будет три выборки - trein, test и val (на новых данных, которые машина не видела на train-test). Чуть позже и
TimeSeriesSplit
Важность фич перепроверим на другой модели. CatBoost или HistGradientBoosting. Возможна скорее ошибка в формуле подсчета.
Следующий этап - еще немного затюним модель, еще раз перепроверим признаки. И разберем сами факты и события. Как раз и теоретически обобщим.
5. "Черный ящик" - да, пока такая модель.
Ответить
Это типа предсказания результатов шахматных партий на основе уже сыгранных?
наука синергетика давно и успешно занимается теорией катастроф, исследованием закономерностей социальных и исторических процессов. По уму интегрировать усилия в области машинного обучения с методами самоорганизации синергетики. Это может быть очень перспективным направлением.
Есть еще и клиодинамика, и в России неплохая школа количественных исследований. И есть ряд профессиональных научных публикаций по теме прогнозирования революций и кризисов. Сделаем обзор в ближайшее время. Рекомендую.
Предиктивная аналитика политических кризисов с помощью machine learning (на исторических данных)