Aspiring Data Science
318 subscribers
386 photos
10 videos
6 files
1.41K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
↑ Гениальная статья, каждый ML-щик должен это знать.

Я бы пункт "2.5 Do survey the literature" переделал. если, конечно, есть время, я специально ничего не читаю по данной проблеме, а пытаюсь решить, исходя из своих текущих знаний и опыта. а когда моё первое решение уже получено, читаю, что нашли до меня, и сравниваю перфу. как правило, решения получаются весьма разнородные, и я беру лучшее, или лучшие куски из каждого. ну или ансамблик пилю. Если сразу прочитаешь лучшие решения, будешь ограничен их рамками и не поймёшь полностью проблему. Но если время поджимает, конечно, надо брать известные решения. А если хочешь самое точное решение, изучение существующей литературы/решений надо отложить. Some variation of exploration-exploitation dilemma.

"4.2 Don’t do data augmentation before splitting your data", где по сути они говорят не использовать аугментацию на test сет, тоже спорный пункт. ну а почему бы не использовать, кому станет хуже, если проверим метрики не только на native test set, а и на augmented test set? Понятно, они будут зависимы, и их не надо суммировать, а лучше рассматривать по отдельности, но это же лучше, чем не оценивать совсем.

К "4.6 Don’t use accuracy with imbalanced data sets" я бы ещё добавил, смотрите на калибованность классификатора - Brier Score, Continuous Ranked Probability Score (если не используете веса классов, конечно). особенно если у вас настолько мало примеров некоторых классов, что точность/полноту едва можно посчитать и она пляшет.

К "4.7 Don’t ignore temporal dependencies in time series data" добавил бы совет посомтреть на параметр gap в TimeSeriesSplit. Он был добавлен (скорее всего) под влиянием книги DePrado с главой про embargoed TS CV.

"5.2 Do use statistical tests when comparing models" посоветовал бы дополнить или заменить статтесты на байесовский вывод (по причинам в т.ч. из "5.3 Do correct for multiple comparisons"), но сам пока ещё не взял эту тактику в работу, только мечтаю ) Более подробно тесты разобраны в книжке по ML от Peter Falach. Также добавлю, что есть направление мысли, согласно которому вообще не надо выбирать лучшую модель, а надо использовать ансамбль (но следить за некорелированностью участников ансамбля). Это нуждается в дописследовании, возможно, когда-нить такое сделаю. А, вот, покрыто в "5.5 Do consider combinations of models". И опять же, нет единого мнения, как лучше комбинировать ответы участников: blending( voting, weighting), meta-learning(stacking). С терминологией мог напутать, поправьте.

#ml #pitfalls #bestpractices