Overfitting — це пристосування моделі або правил ухвалення рішень до особливостей доступної вибірки розроблення на шкоду здатності узагальнювати зв’язок на подальші дані. Воно стосується також процесу вибору між кандидатами; якість не можна оцінювати лише за результатом, який водночас визначив переможця.
QuantConnect описує Overfitting як надто тісне пристосування до обмеженої навчальної множини, яке вловлює її деталі та шум на шкоду результатам на нових даних. Наше розмежування: проблема полягає не в самому навчанні на історії, а в підміні переносної закономірності властивістю конкретної вибірки. У торгівлі перенавченим може бути й вручну складений набір умов, а не лише складна автоматична модель. Тому красива крива або добра оцінка на даних розроблення ще не є незалежним підтвердженням процедури. [QuantConnect — Optimization Parameters]
Документація scikit-learn показує різницю між надто простою моделлю, яка не здатна вловити зв’язок, і моделлю, чутливою до конкретних навчальних вибірок. Наш висновок: самої кількості параметрів недостатньо, щоб встановити перенавчання. Спрощення або обмеження гнучкості моделі може допомогти, але може також усунути корисний зв’язок. Рішення має спиратися на заздалегідь визначене оцінювання на належних відокремлених даних. Навіть подальший вибір найпростішого варіанта за вже переглянутим тестом не повертає цьому тесту незалежної ролі. [scikit-learn — Validation and Learning Curves]
Bailey та співавтори застерігають щодо хибних відкриттів за повторного випробування стратегій на тих самих даних. Наш методичний висновок: потрібно записувати не лише параметри переможця, а й попередніх кандидатів, зміни правил і критерій відбору. Навіть проста кінцева стратегія може бути результатом масштабного пошуку. Тиск відбору не видно з її останнього запису. Ймовірність перенавчання не можна визначити лише з кількості варіантів; вона залежить також від даних, їхніх залежностей і способу пошуку. [Bailey et al. — The Probability of Backtest Overfitting]
Приклад вкладеної валідації в scikit-learn відокремлює внутрішній вибір параметрів від зовнішнього оцінювання всієї процедури відбору. Використання тих самих результатів і для вибору, і для представлення якості призводить до надто оптимістичної оцінки. Наша вимога — описати цю межу до експерименту та включити до відбору також попередню обробку й вибір показників. Якщо за зовнішнім результатом ми далі змінюємо задум, ця інформація теж увійшла до розроблення. Вкладена структура не є дозволом повторно налаштовувати процедуру за тим самим кінцевим тестом. [scikit-learn — Nested versus Non-nested Cross-validation]
Документація scikit-learn застерігає, що звичайний поділ, який передбачає незалежні спостереження, може спотворити оцінку узагальнення для даних із часовою залежністю. Тому наша перевірка торгового тесту зберігає послідовність інформації та досліджує, чи кожне вхідне значення, використане для рішення, і кожен цільовий результат, використаний для навчання чи відбору правила, уже були доступні у відповідний момент. Наступний період не повинен обирати правило для попереднього моменту. Walk-forward Analysis допомагає описати цю послідовність, але повторні зміни його протоколу за тими самими результатами знову є розробленням, а не новим незалежним доказом. [scikit-learn — Cross-validation: Evaluating Estimator Performance]
scikit-learn вимагає навчати перетворення, наприклад нормалізацію чи відбір ознак, лише на навчальній частині й тільки після цього застосовувати їх до тесту. Наше розмежування: витік недоступної інформації та перенавчання — пов’язані, але не тотожні проблеми. Стратегія може пристосуватися до шуму навіть без доступу до майбутніх рядків; натомість витік може створити оптимістичну оцінку навіть для простої моделі. Тому ми перевіряємо не лише поділ таблиці, а всю процедуру від підготовки даних до кінцевого рішення. [scikit-learn — Common Pitfalls: Data Leakage]
Криві валідації та навчання в scikit-learn порівнюють поведінку на навчальній і валідаційній частинах за зміни налаштувань або обсягу даних. Наша межа тлумачення: гірший подальший результат сам по собі не доводить єдиної причини. На ринку можуть змінитися середовище, якість даних або витрати виконання; на короткий відрізок може вплинути випадковість. Ми досліджуємо стабільність сусідніх налаштувань і відмінності умов, але записуємо кожен новий пошук після перегляду результатів. Діагностику не видаємо за автоматичну статистичну сертифікацію. [scikit-learn — Validation and Learning Curves]
NFA застерігає, що гіпотетичні результати не є справжньою торгівлею й не повністю відображають ліквідність, Slippage або реакцію на реальну втрату. Тому наш звіт відокремлює результати розроблення від подальших результатів, наводить усі відомі спроби, витрати й обмеження даних. Можлива наступна перевірка повинна мати записані правила до початку. Нижчий ризик методичної помилки — не те саме, що доведена торгова перевага. Навіть ще не використані дані не можуть гарантувати результату в майбутніх ринкових умовах. [NFA — Use of Promotional Material Containing Hypothetical Performance Results]
Переможець відбору не обов’язково переможе в подальшому тесті
Для повної картини прочитайте також Backtesting, Walk-forward Analysis, Look-ahead Bias, Paper Trading, Trading Journal. На цю статтю також посилаються Technical analysis, Technical indicator, Moving average crossover, Relative Strength Index.
01Чи може навіть проста стратегія бути перенавченою?+
Так. Просте кінцеве правило могло бути обрано серед багатьох спроб за тими самими даними. Важливий увесь процес пошуку, а не лише кількість параметрів в оприлюдненій версії.
02Чи кожен поганий подальший результат доводить перенавчання?+
Ні. Він може бути пов’язаний також зі зміною ринку, витратами, помилковими даними або коротким випадковим відрізком. Необхідно перевірити методику й умови; одна різниця результатів не визначає причини чи ймовірності перенавчання.