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나쁜 후속 결과는 언제나 과적합의 증거인가요?+
아닙니다. 시장 변화, 비용, 잘못된 데이터 또는 우연의 영향을 받는 짧은 구간과도 관련될 수 있습니다. 방법론과 조건을 확인해야 하며 하나의 결과 차이만으로 원인이나 과적합 확률을 결정할 수는 없습니다.