Допустим, вы инвестор-финансист, покупающий государственные облигации банановой республики или акции компании по выращиванию и поставке бананов или даже правитель бананового рая – всегда необходимо учитывать не только финансовые, но и политические риски в развитии страны. Представим, что наша основная задача - оценить риски. Просто, цинично в стиле real politic без всякой душеспасительности.

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

Такие «черные лебеди» как кризисы конца девяностых XX и нулевых годов XXI века часть аналитиков уже научилась предсказывать, а некоторые даже зарабатывать на этом. С политическими страновыми рисками дело обстоит иначе. Устойчивость политических систем из-за идеологических предубеждений как правило существенно недооценивают или наоборот переоценивают.

Черный лебедь из-за угла всегда клюет незаметно
Черный лебедь из-за угла всегда клюет незаметно

Разумеется, существует достаточно много «теорий революции», «теорий кризисов». Однако публичная их часть является скорее конгломератами политических нарративов.

Серьезные работы как правило мало известны   широкой публике, и имена наподобие Джека Голдстоуна или Питера Турчина не несут содержательной информации для читателя в большинстве случаев. Пока, как в ситуации с Нассимом Талебом или тем же Питером Турчиным, они не окажутся в нужное время в нужном месте со сбывшимся предсказанием в нужной аудитории, дав соответствующее интервью.  Что также является скорее вероятностным событием, чем закономерным, детерминированным. Так же, как и на самом деле большинство «успехов» финансистов, политиков или артистов - реализованных «не благодаря, но вопреки». Оценка деятельности, которых искажена благодаря «эффекту выжившего» и другим когнитивным парадоксам мышления – достаточно вспомнить известную шутку про многочисленное племя обезьян за печатными машинками, одна из которых (теоретически) может напечатать «Войну и мир». 

Обезьяна с печатной машинкой
Обезьяна с печатной машинкой

С увеличением темпа социальных, политических и экономических изменений потребность обобщения принимает крайне острую форму: чтобы не только осмыслить события прошлого, но и прогнозировать будущее. Ускоренный темп жизни может привести к тому, что традиционные политологические теории, претендующие на выявление причинно-следственных связей , будут устаревать сразу после их публикации, а возможно и до.  Наступит та самая «теоретическая сингулярность», коллапс.  Но только для самих теорий.

Отчасти снять остроту данной проблемы может переход от установления жестких причинно-следственных зависимостей к вероятностным выводам. 85%-вероятность политического кризиса, революции или иной ситуации нестабильности – это такой же повод принять необходимые меры. И даже 50%, 25% вероятностный вывод – не повод расслабляться. Особенно финансистам, рассчитывающим страновые и региональные риски для капитала. Не говоря уже о специалистах сферы политического управления, да и некоторым политикам – тоже, чтобы не оказаться в ситуации «прячущегося в турбине самолета», если что-то пойдет не по сценарию и против воли режиссера.

И именно здесь как теоретическому исследователю, так и практику может помочь машинное обучение. Алгоритм или модель не дает жестко детерминированного вывода, но лишь вероятностный.

Сама политическая система может быть уподоблена масштабной модели принятия решений, со своими метриками эффективности, результативности, производительности, критериями точности принимаемых решений. И вовсе не означает, что нужны радикальные преобразования для повышения ее эффективности – достаточно провести ту самую «настройку гиперпараметров».

Для иллюстрации идеи прогнозирования политических кризисов максимально упростим задачу: мы не будем предсказывать вероятность наступления того или иного события в будущем, но попробуем определить его наступление на исторических данных (в произвольный момент времени в прошлом).

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

Источник данных и их предобработка

В нашем случае, алгоритм, обученный на 70%-тренинговой выборке, будет проверяться на 30%-тестовой (более сложны предиктивные должны будут применять механизмы кросс-валидации и ряд других методов).

 Единственный «фокус», который мы используем, - это оверсемплинг, генерацию синтетических данных для тренинговой выборки для выравнивания баланса классов. Все-таки так же революция или ее попытка – это довольно редкое событие. Впрочем, ни разу не уникальное. А потому для нас подходит метод классификации, а не выявления аномалий.

Мы будем использовать базу данных  The Cross National Time Series (CNTS), которая  содержит годовые значения около 200 переменных для более чем 200 стран, начиная с 1815 г. за исключением периодов двух мировых войн 1914–1918 и 1939–1945 гг. База структурирована по разделам и включает статистические данные по территории и населению страны, информацию по использованию технологий, экономические и электоральные данные, информацию по внутренним конфликтам, использованию энергии, промышленной статистике, по военным расходам, международной торговле, урбанизации, образованию, занятности, деятельности законодательных органов и т.п. 

Для проверки предположения используем выборку данных с 1991 по 2019 год, поскольку этот период достаточно близкий к нам для понимания, но в то же время еще не наступили события «ревущих двадцатых» XXI века, начавшиеся с пандемии COVID-19 и характеризующиеся существенным уровнем геополитического противостояния, которое предполагает искажение фактов и событий в угоду политических нарративов или наличие «множественной правды» в зависимости от политических пристрастий и интерпретаций.

В исходной базе данных под прогнозируемыми событиями  подразумевается «любое незаконное или насильственное изменение в высшей правительственной элите, любая попытка такого изменения или любое успешное или неудачное вооруженное восстание, целью которого является независимость от центрального правительства (сепаратизм)» (категория - domestic7) То есть объем понятия не совпадает с тем, что мы подразумеваем, когда говорим про слово Революция с большой буквы, будь то Октябрьская революция 1917 года или Французская буржуазная революция. В указанный объем входят так же сепаратистские выступления, в том числе и неудавшиеся. Так же «за кадром» остаётся факт внешней инициации кризисных событий. Модель с учетом действий транснациональных корпораций в «банановых республиках» или мировых гегемонов будет носить более сложный характер.

Всего на данный период времени насчитывается 588 кризисных эпизодов или 10,34% от общего количества наблюдений, сгруппированных по принципу одна страна – один год (5686 наблюдений).

Модель исследования

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

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

И данную задачу мы принципиально будем решать «в лоб» без опоры на какие-либо политические теории и предварительные выводы. Или, если использовать язык науки о данных, мы не будем использовать «предобученные модели».

Все что у нас есть – это размеченные исторические данные, свидетельствующие о том, что в определённой стране в определенный год событие было (1) или его не было (0).
Сформированный датасет из 5686 записей в 151 клонках-признаках мы трансформируем, уберем пропуски, заполнив их единым значением (9999). Пропуски в данных – это всегда плохо, они снижают итоговую точность, но в данном случаем мы вынуждены с этим смириться – в реальной жизни приходится действовать ситуации с еще большей неопределенностью.  

Далее мы разделим весь набор данных на тренинговый (70% или 3980 записей) и тестовый (30% или 1706 записей). Для выравнивания классов с помощью RandomOverSampler из раздела модуля imblearn.over_sampling мы преобразуем тренинговую выборку для выравнивания баланса классов (тестовую, естественно, мы не трогаем), увеличив ее до 7118.

Фрагмент тренингового датасета после оверсемплинга
Фрагмент тренингового датасета после оверсемплинга

Далее, чтобы сразу получить более значимый результат мы используем ансамблевые модели машинного обучения вместо базовых, таких как например «логистическая регрессия» или машина опорных векторов». Модели будет использоваться в базовой настройке для оценки их исходных метрик и скорости.  В их числе: AdaBoostClassifier, BaggingClassifier, ExtraTreesClassifier, GradientBoostingClassifier, RandomForestClassifier, StackingClassifier, VotingClassifier, HistGradientBoostingClassifier, CatBoostClassifier, lgb.LGBMClassifier, xgb.XGBClassifier.

Метрики оценки моделей - стандартные:

  • Accuracy –  доля правильных предсказаний (истинно положительных и истинно отрицательных) от общего числа предсказаний. 

  • Precision –  доля истинно положительных результатов среди всех предсказанных положительных. Показывает, насколько положительные предсказания верны.

  • Recall –  доля истинно положительных результатов среди всех реальных положительных. Показывает, насколько хорошо модель находит положительные примеры.

  • F1_score – гармоническое среднее Precision и Recall. Используется для балансировки между ними, особенно в случае несбалансированных классов. 

  • ROC_AUC –   (Площадь под ROC-кривой): мера качества модели, показывает, насколько хорошо модель различает положительный и отрицательный классы. AUC (Area Under the Curve) равен 1 для идеальной модели и 0.5 для случайного гадания.

Метрики оценки качества ансамблевых моделей машинного обучения
Метрики оценки качества ансамблевых моделей машинного обучения

Промежуточные итоги

Первый вывод, который мы получили – революции и кризисы предсказывать можно на имеющихся данных. Все модели показали ROC_AUC больше 0.5, что соответственно выше уровня «случайного гадания».  Гипотеза предсказуемости - подиверждена. Точность (accuracy) в 0.92-0.93 была бы достаточна для принятия решений, если бы мы говорили о событиях, происходящих/не происходящих с примерной одинаковой частотой. Но в случае с исходным дисбалансом классов этой метрики будет мало.

Апгрейд и тюнинг модели

Возьмем для дальнейшей работы lgb.LGBMClassifier. Он достаточно быстр для решения задачи, достаточно удобно «тюнингуется» для повышения метрик качества. Хотя, не исключено, что применение других методик может добиться более высоких результатов при правильной настройке. Но для скорости обработки данных мы выбрали один из самых быстрых методов. Для принятие политических решений, отметим, скорость – это очень важный фактор. И иногда можно пожертвовать точностью и другими характеристиками, чтобы получить максимально полезный результат за минимально необходимое время.

Оптимизировать гиперпараметры lgb.LGBMClassifier  мы будем с помощью модуля Optuna сначала в целях повышения общей точности (accuracy) и других метрик.

Тюнинг модели
# Оптимизационная функция для Optuna
def objective(trial):
    # Подбор гиперпараметров
    param = {
        'objective': 'binary',
        'metric': 'binary_logloss',
        'verbosity': -1,
        'boosting_type': trial.suggest_categorical('boosting_type', ['gbdt', 'dart', 'goss']),
        'num_leaves': trial.suggest_int('num_leaves', 20, 150),
        'max_depth': trial.suggest_int('max_depth', -1, 20),
        'learning_rate': trial.suggest_loguniform('learning_rate', 1e-4, 1),
        'n_estimators': trial.suggest_int('n_estimators', 50, 500),
        'subsample': trial.suggest_float('subsample', 0.5, 1.0),
        'colsample_bytree': trial.suggest_float('colsample_bytree', 0.5, 1.0)
    }

    # Создание и обучение модели
    model = lgb.LGBMClassifier(**param)
    model.fit(X_train, y_train)

    # Предсказания и оценка
    y_pred =  model.predict(X_test)
    y_prob =  model.predict_proba(X_test)[:, 1]  # Получаем вероятности для положительного класса

    recall = recall_score(y_test, y_pred)
    precision = precision_score(y_test, y_pred)
    accuracy = accuracy_score(y_test, y_pred)
    roc_auc = roc_auc_score(y_test, y_prob)
    f1 = f1_score(y_test, y_pred)

    return f1

# Создание исследования Optuna
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=100)

На подобранных гиперпараметрах (boosting_type='goss', colsample_bytree=0.6236844468401513, learning_rate=0.16015584113549294, max_depth=16, n_estimators=433, num_leaves=36, random_state=42,  subsample=0.84971655916001)  модели lgb.LGBMClassifier   мы получили следующие результаты:

Таблица 1. Метрики оценки LGBMClassifier после оптимизации гиперпараметров под accuracy

precision

recall

f1-score

support

0

0.945860

0.980198

0.962723

1515

1

0.779412

0.554974

0.648318

191

accuracy

 

 

 

0.932591

macro_avg

0.862636

0.767586

0.805520

1706

weighted_avg

0.927225

0.932591

0.927523

1706

Для наглядности оценим наши ошибки – см. матрицу ошибок.  Всего у нас было 1706 тестовых случаев (страны за период времени). Мы верно определили, что в 1485 случаев кризиса не будет и только в 30 ошиблись - и здесь и нашему гипотетическому правителю из «банановой республики» все же пришлось познакомиться с «турбиной самолета». Находясь в самолете или нет – тут уже как повезло.

Важен так же тот факт, что мы верно определили кризис в 106 случаев, а в 85 – «проглядели». в 1485 - сделали верный вывод об отсутствии и в 30 случаев - ошиблись, "подули на воду" Хотя для условного правителя  из банановой республики это не так важно: ради сохранения власти он так и так перестраховывается, и предпринимает необходимые меры.

Важен тот факт, что «тюнингованная модель» принятия решении дала нам прирост метрики ROC_AUC до 0.93. И если исходить из того, что политическая система – это в первую очередь модель принятия решений, то теоретически возможен ее «апгрейд» за счет подбора и настройки ее гиперпараметров. А значит появляется возможность избавиться от большинства внутренних кризисов и успешно противостоять внешним.

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

С учетом дисбаланса классов было бы правильно использовать при настройке гиперпараметров метрику f1 (среднее гармоническое между Precision и Recall). Поэтому при оптимизации модели LGBMClassifier(boosting_type='goss', colsample_bytree=0.6722209119830994,  learning_rate=0.034639181156243586, max_depth=5, n_estimators=287, num_leaves=124, random_state=42, subsample=0.967460261273091) мы получим несколько другие значения.

Таблица 1. Метрики оценки LGBMClassifier после оптимизации гиперпараметров под f1

precision

recall

f1-score

support

0

0.958388

0.957756

0.958072

1515

1

0.666667

0.670157

0.668407

191

accuracy

0.925557

0.925557

0.925557

0.925557

macro avg

0.812528

0.813956

0.813240

1706

weighted avg

0.925728

0.925557

0.925642

1706

И здесь мы видим, что несмотря набольшее количество ошибок в прогнозировании (мы проглядели 63 кризисных события) и "дули на воду" в 64 случаях, но зато точно определили истинно положительный класс (те самые наступившие кризисные события целых 128 из 191).

Еще раз отметим, что наш условный «банановый правитель» как и внешний инвестор, который бы хотел вложиться в выращивание бананов и финансист, который бы инвестировал в государственные облигации банановой республики и покупал акции совместного бананового предприятия должны руководствоваться не только фактами. Из алгоритма так же можно вытащить вероятности не наступления/наступления прогнозируемого события.

левая колонка данных - предсказание 0-события, правая колонка данных  - предсказание 1-события
левая колонка данных - предсказание 0-события, правая колонка данных - предсказание 1-события

Чем ближе показатель в левом столбце к единице – тем больше вероятность, что кризисное событие не произойдет, чем ближе к единице показатель в правом столбце – тем больше вероятность, что негативное событие произойдет.  Хотя и для «бананового диктатора» и внешнего инвестора даже значение в районе 0,5 и немного ниже в правом столбце должны бы стать поводами для беспокойства. 

Располагая всем объемом выборки можно определить вклад каждого показателя (из перечня в 151 позиции).  С тем условием, чтобы впоследствии убрать малозначимые признаки, определить механизм влияния каждого из них, искать примеры взаимной корреляции.

Приведем часть этого списка с выявленными весами признаков. Отметим, что конкретный механизм влияния каждого признака на реализацию/не реализацию события нуждается в дополнительном уточнении – и связь «чем показатель больше», тем вероятность выше – является слишком большим упрощением. Зависимость может иметь и более сложный характер. И здесь мы сталкиваемся с одной из самых важных фундаментальных проблем применения машинного обучения и глубокого обучения – не все алгоритмы и модели одинаково хорошо подаются интерпретации. Большинство сложных нейросетей представляют для исследователя «черные ящики», и не всегда можно раскрыть, что находится «под капотом» той или иной модели.

В нашем случае дело чуть проще. С помощью feature_importance мы можем получить веса модели и определить, чем она руководствовалась при принятии решения.

Веса модели (основные)

Feature

Importance

%

Расшифровка

52

energy4

353

1.84%

Потребление энергии в килограммах нефтяного эквивалента на душу населения

71

legis07

336

1.75%

Размер законодательного органа/количество мест, крупнейшая партия (Масштаб: 0,01)

18

delta15

330

1.72%

% годового прироста: количество телефонов на душу населения (масштаб: 0,01)

43

economics6

312

1.63%

Официальный/основной обменный курс, местная валюта/доллар США (Масштаб: 0,01)

8

delta01

310

1.62%

% годового прироста: население (масштаб: 0,01)

26

delta23

291

1.52%

Ежегодный прирост в %: потребление энергии в килограммах на душу населения (масштаб: 0,01)

90

phone4

283

1.48%

Телефоны, исключая сотовую связь на душу населения (масштаб: 0,00001)

110

pop2

281

1.46%

Плотность населения (Масштаб: 0,1)

33

delta33

276

1.44%

% годового прироста: валовой национальный продукт на душу населения (масштаб: 0,01)

15

delta08

274

1.43%

% годового прироста: экспорт на душу населения (масштаб: 0,01)

109

pop1

272

1.42%

Население (масштаб: 1000)

131

trade2

267

1.39%

Импорт на душу населения (Масштаб: 0,01)

54

indprod2

262

1.37%

Производство электроэнергии (кВтч) на душу населения (масштаб 0,1)

32

delta32

255

1.33%

% годового прироста: валовой внутренний продукт на душу населения (масштаб: 0,01)

14

delta07

252

1.31%

% годового прироста: импорт на душу населения (масштаб: 0,01)

5

computer4

251

1.31%

Число интернет-пользователей на душу населения: (0,000001)

119

school02

250

1.30%

Охват начальным образованием на душу населения (масштаб: 0,0001)

86

military2

250

1.30%

Расходы на национальную оборону на душу населения (масштаб: 0,01)

65

legis01

247

1.29%

Количество мест, крупнейшая партия в законодательном органе

41

economics2

246

1.28%

Валовой внутренний продукт на душу населения (факторная стоимость)

25

delta22

244

1.27%

Ежегодный прирост в %: производство энергии в килограммах на душу населения (масштаб: 0,01)

123

school06

241

1.26%

Охват начальным и средним образованием на душу населения (шкала: 0,0001)

133

trade4

236

1.23%

Экспорт на душу населения (Масштаб: 0,01)

129

school12

234

1.22%

Процент грамотных (масштаб: 0,1)

31

delta31

234

1.22%

% годового прироста: врачей на душу населения (масштаб: 0,01)

Выводы

Результат нашего поверхностного экскурса в предиктивную политическую аналитику:

  1. Мы выяснили, что революции и политические кризисы можно прогнозировать. И качество прогнозов гораздо выше пресловутых "50 на 50". Даже на базовых настройках ml-алгоритмов. На самой простой модели.

  2. Небольшое улучшение по метрикам качества дает настройка прогностической модели (настройка гиперпараметров).

  3. Можно определить также вероятность наступления (и не наступления) искомого события.

  4. Можно определить факторы, влияющие на наступление/не наступление искомого события (интерпретировать модель).

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

Более сложная прогностическая модель должна предусматривать смещение прогнозируемых событий на временной лаг по сравнению с оценкой признаков за период, учитывать влияние других политических систем, некоммерческих организаций «мягкой силы», а также транснациональных корпораций. Но подобное исследование требует несколько больших усилий и комбинации разных источников данных.

Файл ноутбука находятся в репозитории, исходные базы данных - в процитированном источнике.

Комментарии (13)


  1. ciiz
    21.10.2024 16:17

    Подскажите неумехе, я так понял доступ к самим данным в библиотеке только по подписке? Бесплатно их (данные) как то можно получить. Очень интересно.


    1. Antony_Rain Автор
      21.10.2024 16:17

      Попробуйте попросить у них старую (триальную) версию за ограниченный период - для обучения. Труд авторов датасетов нужно уважать. Они работают для истории и для будущего.


  1. novoselov
    21.10.2024 16:17

    Осталось спрогнозировать "черных лебедей" на следущие 25 лет вперед и проверить.


    1. Antony_Rain Автор
      21.10.2024 16:17

      На 25 лет - навряд ли, предлагаемый метод максимум на 3-5 лет. Но если пошаманить/скрестить ML и DL с обучением с подкреплением и все-таки сделать самообучающуюся предиктивную модель - то вполне возможно. Не "психоистория", конечно. Но к "пятой" генерации теории революций (если "четвертую" считать от Джека Голдстоуна) может привести. Надо больше факторов по демографическим процессам и социальным институтам.


      1. novoselov
        21.10.2024 16:17

        Ну так покажите результаты хотя бы на 3-5 лет :)
        А для предсказания на больший срок можно добавить падение точности в зависимости от времени


  1. CrazyElf
    21.10.2024 16:17

    • Для сложных моделей оверсемплинг по идее не нужен, он ничего им не даёт.

    • За 200 лет многие параметры должны были кардинально поменяться, тут обязательно надо изучать что это за данные, как они предобрабатывались.

    • Опять же, смешивать вместе характеристики 200 совершенно разных стран, не изучая данные, просто как "чёрный ящик" - ну, такое.

    • Кросс-валидацию типа TimeSeriesSplit хотелось бы побенчмаркать, да.

    • Странно, что важность фич такая маленькая и почти одинаковая. У меня сильное подозрение, что модель тупо переобучается. Хотя скор на отложенной выборке эту гипотезу вроде как опровергает, но у меня всё-равно сильное подозрение на переобучение и/или утечку данных при обработке фич. Я бы в качестве "sanity check" попробовал добавить фичу, заполненную рандомными данными и посмотрел на её importance. Есть такая методика. Всё, что окажется ниже этой фичи по importance - это мусор.

    • Хотелось бы видеть анализ ошибок. Где они концентрируются - на определённых годах, на определённых странах? Возможно, это дало бы какую-то информацию как можно улучшить модель.


    1. Antony_Rain Автор
      21.10.2024 16:17

      По итогам экспериментов со 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    


    1. Antony_Rain Автор
      21.10.2024 16:17

      1. С оверсэмплингом рассказал. Тюнингованная модель 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
      1. Не 200 лет. Выборка с 1991 по 2019 годы. В ней 151 признак. "Устаревшие" - исключены.

      2. Следующая модель будет с кросс-валидацией. (в другой публикации по киношкам будет три выборки - trein, test и val (на новых данных, которые машина не видела на train-test). Чуть позже и TimeSeriesSplit

      3. Важность фич перепроверим на другой модели. CatBoost или HistGradientBoosting. Возможна скорее ошибка в формуле подсчета.

      4. Следующий этап - еще немного затюним модель, еще раз перепроверим признаки. И разберем сами факты и события. Как раз и теоретически обобщим.

      5. "Черный ящик" - да, пока такая модель.

      Ответить


  1. LavaLava
    21.10.2024 16:17

    Это типа предсказания результатов шахматных партий на основе уже сыгранных?


    1. Antony_Rain Автор
      21.10.2024 16:17

      это скорее о статистически не редких событиях, когда шахматисты бьют друг друга ... игровыми досками.


  1. ioleynikov
    21.10.2024 16:17

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


    1. Antony_Rain Автор
      21.10.2024 16:17

      Есть еще и клиодинамика, и в России неплохая школа количественных исследований. И есть ряд профессиональных научных публикаций по теме прогнозирования революций и кризисов. Сделаем обзор в ближайшее время. Рекомендую.


      1. ioleynikov
        21.10.2024 16:17

        OK. Спасибо, Удачи !