
回測算的是過去,不是直接證明未來
牌路回測,就是把一套判斷方式放回過去的紀錄,看它當時猜中了幾次、結果如何。但如果先翻過答案,才挑出一套看起來最準的規則,再用同一份紀錄證明它有效,就很容易高估表現。
比較有用的問題是:這套規則定好之後,遇到還沒看過的紀錄,表現是否一樣?下面用100次假設紀錄,說明『過去很準』和『能預測之後』差在哪裡。
假設80次挑規則,20次留作檢查
假設有100次按時間排列的完整紀錄,前80次用來比較並固定一套規則,後20次事先保留。若前80次命中60次,比例是75%;後20次命中9次,比例45%。此例只是說明兩批結果可以不同,不是實測數據。
如果看到後20次不理想便調整規則,再回報它在同20次表現改善,這20次已經參與選規則,不能繼續稱為未見測試資料。保留資料的重點是沒有被用來調整,不是把檔名改成『測試』。

避免把答案放進預測
每一筆預測只能使用當時已出現的資訊。若回測時參考了該局結果、後續牌路、稍後修正的紀錄,或先看答案再選時間窗口,就會發生資料洩漏。
這和考試前先看過答案很像:分數漂亮,不代表遇到新題目也能答對。scikit-learn的驗證文件也提醒,學規則和評分使用同一批資料,容易高估表現;反覆看測試結果再改規則,也會失去原本的測試意義。
時間、牌靴與規則版本要保留
歷史序列應保留時間順序。若目的是估計之後的表現,用未來資料輔助選規則,再測較早資料,回答的就不是同一問題。同牌靴或同一局的重複紀錄,也不能分到兩邊卻當成完全獨立的資料。
報告應交代資料期間、桌台與版本、排除項目、命中定義、比較過多少套規則,以及哪些資料從未用來調整。只公布最高一套的命中率,會隱藏篩選過程。
樣本外表現仍有不確定與成本
一次樣本外結果不是保證。樣本少、模型條件不同、規則改版或資料缺漏,都可能影響推論;應同時報告總次數與不確定範圍,而不是只報『驗證成功』。
若聲稱收益,還需計算各次投入、淨派彩、佣金、特殊結算、上限與取消局。命中率、淨收益、未來可重複性,是三個分開查核的問題。沒有這些條件,先把報告讀成歷史描述。
資料參考:scikit-learn官方文件:交叉驗證。
