IS – in sample (оно же обучающая выборка), OOS — out of sample (оно же тестовая выборка). Ну или ближе к обычным алго – IS – там, где оптимизируешь стратегию, OOS – данные, которые стратегия ещё не видела.
Какое соотношение выборок лучше. Просто сейчас накапливаю некоторые данные (которые иным способом не получить), а любопытство оно же такое, что нельзя просто так взять и подождать 3 месяца и только тогда начать с данными работать, поэтому начал работать с данными чуть когда их было ещё совсем мало, потом продолжил когда их было просто мало, продолжил когда стало чуть побольше и т.д., сейчас уже вполне достаточно.
Из-за того, что несколько раз к данным подступался при разных объёмах этих самых данных, несколько выпятился наружу вопрос достаточности данных в целом и в частности вопрос соотношения IS/OOS в целом.
Когда данных совсем мало – без разницы как делить – не хватит ни чтобы обучить (терминология у меня ML’ная, но, по сути, без разницы, ML или классические алгоритмы) ни чтобы оценить.
Когда данных чуть побольше – хватает либо чтобы только хоть как-то обучить ИЛИ только адекватно оценить, тоже ни о чем – это обязательные 2 этапа, и выбросить ни один из них по понятным причинам нельзя.
Плавно подошли к варианту, когда данных уже достаточно, не прям столько что как выборку не поруби, всем всего хватит, но уже можно играться. Так вот, раньше в голове у меня сидело что-то типа 80/20, 70/30, 60/40. Короче, заметно, что OOS по остаточному принципу. Но это не хорошо. Если давать мало на обучение – плохо обучишься, или подгонишься под состояние. Если давать мало на OOS – нерепрезентативно оценишься или оценишься для конкретного состояния (случайно попавшего на эту выборку).
По мере накопления данных в какой-то момент объем данных для обучения стал достаточным, и для тестирования (как я подумал) стал достаточным. Данные продолжили расти, я стал увеличивать абсолютный размер IS, не меняя абсолютный размер OOS. Ну щас-то моя моделька каак обучится ещё лучше, думал я. И по мере роста объема данных эту гипотезу проверял несколько раз. И нифига, что-то менялось при оценке на OOS, но неслучайного роста качества не было. А что было когда я зафиксировал размер IS (он уже был достаточным) и стал увеличивать OOS. Всё стало выравниваться. По метрикам результаты становились все менее случайными (тут не раскрываю, опираюсь на свой набор метрик/критериев, которые использую для различения случайного/закономерного). Т.е. одна и та же модель по результатам её оценки на OOS выглядела всё лучше и лучше, всё «закономерней» и «закономерней».
Самое крутое, конечно, это что-то типа WFO – в этом случае у тебя OOS в размере всей выборки. Склеиваем маленькие OOS куски, получаем один большой – его результаты это наши целевые OOS результаты.
Какие я сделал выводы для себя:
— Сначала добираем объем обучающей выборки до некоторого достаточного размера. Как оценить достаточность – на вскидку не скажу (это как пытаться описать модель движения ног сороконожки если ты сороконожка), но опытный трейдер это видит. Ну т.е. объем выборки сначала влияет драматически, потом всё меньше и меньше и когда дельта уходит в линию можно смело «инвестировать» в OOS.
— Дальше наращиваем OOS. OOS много не бывает.
— Если не лень добавить лишние шаги, обертки и т.д., то пилим итерации и WFO, это будет ещё лучше.
— Берем весь объем данных и на нём обучаемся. И в бой. (Что? Не комфортно делать шаг с закрытыми глазами даже если точно знаешь, куда шагаешь? – Ничё не знаю, по крайней мере я делаю так).
P.S. А, да, забыл, текущую мдель обучаю на соотношении: IS/OOS 25%/75%.
Не понимаю проблемы. IS нужна для выбора модели. Есть стандартные рекомендации, типа — не менее, чем число переменных в квадрате или что-то такое. Но в условиях сильной зашумленности все это дело растет.
Я бы сказал, что IS должна быть такой, чтобы на этой IS можно было вычленить хоть что-то из шума. «Секретные метрики» вам в помощь.
OS не важен, можно хоть LOO. Но если данных достаточно, то можно всю оставшуюся часть пихать в OOS и делать кросс-валидацию (перемещать разделение на IS и OS по выборке).
В итоге все зависит от числа переменных и уровня шума. Много шумов и переменных — LOO, мало переменных и мало шума — K fold и т.д..
По-моему вы и так все это прекрасно знаете.