Skip to content
Semua panduan opsyen
Pengesahan model daganganBacaan 10 minit

Purged cross-validation dan embargo: mencegah kebocoran label dalam model dagangan

Fahami cara mengesahkan siri masa kewangan apabila sela label hadapan bertindih, serta perbezaan purging dan embargo daripada walk-forward, TimeSeriesSplit dan CPCV.

Dalam panduan iniMengapa pembahagian rawak boleh mengelirukan?

Ringkasan ringkas

Apabila sela hasil label hadapan bertindih, pemisahan rawak boleh membocorkan maklumat antara data latihan dengan ujian. Purging membuang sampel latihan yang sela hasilnya bertindih dengan sampel ujian. Embargo ialah tempoh penampan berasingan selepas blok ujian dalam sesetengah pembahagian. Kedua-duanya tidak secara automatik menjadikan susunan itu kronologi atau membetulkan ciri yang dibina dengan cara salah.

Mengapa pembahagian rawak boleh mengelirukan?

Random K-fold mengagihkan baris secara rawak kepada fold latihan dan ujian. Hal ini boleh mengelirukan dalam siri masa kewangan apabila pemerhatian saling bergantung atau sela hasil hadapannya bertindih. Label sampel latihan mungkin mengandungi pulangan daripada tarikh yang turut terdapat dalam label sampel ujian. Maka, pengesahan menjadi lebih mudah daripada meramal tempoh akan datang yang belum diperhatikan.

Namun, bukan semua penggunaan K-fold sentiasa salah. Kesesuaiannya bergantung pada soalan penilaian, cara sampel dibina, kebergantungan masanya dan takrif label. Mengacak baris pulangan harian sahaja tidak memeriksa tempoh yang diwakili oleh baris tersebut.

Takrifkan masa keputusan, ciri dan sela label

Bagi setiap sampel, catat masa keputusan t, maklumat yang benar-benar tersedia pada ketika itu, tetingkap ciri, sela sasaran/label dan titik akhir label diselesaikan t1. Label pulangan hadapan lima sesi meliputi (t,t+5]: bermula selepas masa keputusan dan tamat pada penutupan sesi kelima.

Setiap ciri mesti menggunakan data yang tersedia ketika ramalan dibuat pada t. Sejarah masa lampau yang sama muncul dalam dua tetingkap ciri tidak dengan sendirinya menjadi kebocoran; model boleh menggunakan semula sejarah pasaran yang sudah diketahui. Namun, nilai masa hadapan atau semakan data yang hanya tersedia selepas keputusan ialah kebocoran. Simpan cap masa mula dan akhir sebenar setiap peristiwa, khususnya apabila label peristiwa mempunyai tempoh yang berlainan.

Singkirkan sampel latihan yang hasilnya bertindih dengan ujian

Purging menyingkirkan sampel latihan jika sela hasil/label sebenarnya bertindih dengan sela hasil sampel ujian. Bandingkan sela masa itu secara langsung; jangan sekadar menggugurkan bilangan baris tetap di kiri dan kanan sempadan fold. Bagi label peristiwa dengan tempoh berubah-ubah, gunakan cap masa mula dan akhir sebenar peristiwa dan bukannya bilangan baris tetap yang mudah tetapi tidak sepadan.

Bab 7 Advances in Financial Machine Learning oleh Francisco López de Prado membincangkan cross-validation dan purging untuk mengurus pertindihan maklumat. Membuang label bertindih tidak secara automatik menjadikan pembahagian kronologi: data latihan mungkin masih merangkumi pemerhatian selepas blok ujian. Nyatakan soalan yang dijawab oleh pembahagian itu dan jangan anggap setiap fold sebagai simulasi penggunaan masa hadapan.

Contoh mengikut sesi untuk memeriksa pertindihan

Andaikan keputusan dibuat setiap hari dan sela hasil hadapan ialah lima sesi, iaitu (t,t+5]. Tarikh keputusan ujian ialah 11–15, maka label ujian berlanjutan hingga hari ke-20. Untuk contoh ini, nombor hari ialah sesi dagangan berturutan dan hujung kanan sela termasuk dalam kiraan, seperti ditunjukkan oleh kurungan.

Label latihan (7,12] bertindih dengan hasil ujian, termasuk label yang bermula pada hari ke-11, maka sampel itu dipurge. Sela latihan (16,21] turut bertindih dengan label ujian yang bermula pada hari ke-15 dan tamat pada hari ke-20; sampel itu juga dipurge. Keputusan ini menggunakan pertindihan sela sebenar, bukan jarak tetap dalam bilangan baris.

Label sampel yang lebih lewat mungkin tidak bertindih dengan hasil ujian tetapi masih dikecualikan oleh embargo berasingan yang dipilih selepas blok ujian. Ini contoh berdasarkan andaian yang dinyatakan, bukannya cadangan tempoh jurang universal untuk semua data atau strategi.

Gunakan embargo sebagai penampan berasingan dengan alasan

Embargo ialah tempoh penampan yang ditetapkan selepas blok ujian, sebelum pemerhatian yang lebih lewat boleh memasuki latihan dalam pembahagian yang menggunakan data sebelum dan selepas ujian. Ia mungkin mengurangkan kebergantungan baki daripada pembinaan peristiwa atau ciri walaupun label pemerhatian kemudian tidak bertindih secara langsung dengan label ujian.

Tiada peratusan atau tempoh yang sesuai untuk semua keadaan, dan embargo tidak menggantikan pemeriksaan sela label sebenar. Pilih tempoh berdasarkan kekerapan pensampelan, ufuk label, pembinaan ciri dan kebergantungan yang mahu dikurangkan; dokumentasikan sebabnya. Embargo terlalu panjang boleh membuang data latihan yang berguna, manakala penampan terlalu singkat mungkin meninggalkan kebergantungan yang penting.

Garis masa abstrak menunjukkan blok ujian, sampel latihan yang disingkirkan kerana label bertindih, dan sela berasingan selepas ujian.
Sampel latihan dengan label yang bertindih dengan ujian dibuang; embargo ditunjukkan sebagai sela berasingan selepas blok ujian.

Bandingkan kaedah pengesahan mengikut soalannya

Random K-fold membahagikan pemerhatian secara rawak; apabila pemerhatian bergantung atau label bertindih, kaedah itu mungkin tidak menyerupai ramalan bagi tempoh akan datang. Walk-forward atau rolling-origin melatih model menggunakan masa lampau dan menguji blok masa berikutnya, kemudian mengalihkan sempadan ke hadapan. Kaedah ini lebih hampir dengan simulasi penggunaan sejarah, tetapi tidak dengan sendirinya menghalang kebocoran ciri atau pemilihan model menggunakan data ujian.

TimeSeriesSplit scikit-learn menghasilkan pembahagian kronologi berturutan dan pilihan gap menggugurkan bilangan baris tertentu antara latihan dengan ujian. Dokumentasi rasmi menyatakan perbandingan tempoh ujian mengandaikan pemerhatian dijarakkan secara sama; gap mengira baris dan bukan enjin untuk memeriksa masa peristiwa yang berubah-ubah. Purged K-fold membuang pertindihan label sebenar tetapi boleh melatih menggunakan baris selepas blok ujian. Combinatorial purged CV (CPCV) menggabungkan kumpulan ujian untuk membentuk berbilang laluan ujian, tetapi tidak secara automatik menjadi simulasi sejarah kronologi atau menghapuskan kebocoran lain.

Bab 12 Advances in Financial Machine Learning membincangkan kaedah walk-forward dan CPCV serta konteks penggunaannya.

Cari kebocoran di luar sela label juga

Keputusan masih boleh tercemar jika cap masa ciri salah atau ciri menggunakan maklumat masa hadapan, jika pangkalan data semasa mengandungi semakan kemudian atau sekuriti yang masih bertahan sahaja. Kebocoran juga berlaku jika prapemprosesan atau pemilihan ciri dilakukan menggunakan seluruh data sebelum pembahagian fold.

Mencuba banyak variasi model atau strategi lalu melaporkan hasil terbaik menambah bias pemilihan walaupun label tidak bertindih. Backtest yang mengabaikan kos dagangan atau mengandaikan semua pesanan terisi pada harga tidak realistik boleh melebihkan prestasi. Bailey dan rakan-rakan membincangkan risiko memilih hasil terbaik daripada banyak percubaan dalam The Probability of Backtest Overfitting. Reka bentuk pembahagian sahaja tidak menyelesaikan semua isu ini.

Fit prapemprosesan dan pemilihan dalam fold latihan sahaja

Dalam setiap fold, fit transformasi, pemilihan ciri dan pemilihan parameter menggunakan data latihan sahaja. Gunakan pengesahan time-aware bertingkat (nested) untuk menilai calon supaya fold ujian luar tidak digunakan serentak untuk memilih model dan menganggarkan prestasinya.

Selepas kaedah ditetapkan, simpan tempoh kronologi terakhir yang tidak disentuh sebagai holdout akhir. Jangan ubah model berulang kali berdasarkan hasil holdout lalu menganggapnya ujian bebas. Cross-validation mengukur prestasi di bawah pembahagian dan data tertentu; ia tidak menjamin prestasi masa hadapan.

Dokumentasikan proses pengesahan supaya boleh diulang

Catat unit sampel, masa keputusan, sumber ciri dan masa ciri tersedia, setiap tetingkap ciri serta sela label sebenar (t,t1]. Dokumentasikan kaedah pembahagian, fold, peraturan sela purging, tempoh dan rasional embargo, serta bilangan baris gap jika menggunakan TimeSeriesSplit.

Nyatakan sama ada latihan merangkumi pemerhatian selepas blok ujian, cara kos dan pelaksanaan dikendalikan, serta fold yang digunakan untuk pemilihan parameter. Bacaan berkaitan: pertukaran bias-varians dan terlebih suai model kewangan, ujian berbilang dan kadar penemuan palsu dalam kewangan, serta penganualan Sharpe dengan korelasi bersiri.

Soalan lazim

Q1Adakah random K-fold sentiasa salah untuk data kewangan?

Tidak. Ia mungkin sesuai jika sepadan dengan soalan penilaian dan struktur sampel. Namun, kebergantungan masa atau sela hasil bertindih boleh mengelirukan; periksa unit sampel dan label sebelum memilih kaedah.

Q2Adakah embargo menggantikan purging?

Tidak. Purging membuang sampel latihan yang sela hasilnya bertindih dengan ujian. Dalam sesetengah pembahagian, embargo menggugurkan penampan berasingan selepas blok ujian. Fungsinya berbeza, dan kedua-duanya tidak membenarkan penggunaan ciri yang belum tersedia ketika ramalan.

Q3Adakah CPCV menjamin prestasi masa hadapan?

Tidak. CPCV membentuk berbilang laluan ujian di bawah pelan pembahagian tertentu. Ia tidak menghapuskan kebocoran data, percubaan berulang atau ketidakpastian pasaran dan pelaksanaan masa hadapan.

Sumber dan bacaan lanjut

Laporkan masalah

Kami akan menyediakan e-mel dengan pautan artikel ini. Mark menerima laporan hanya selepas anda menghantarnya

Semakan pantas

Sudah membaca panduan? Uji diri dengan 3 soalan

Soalan 1 / 3

Soalan 01

Bilakah sampel latihan patut dibuang melalui purging?

Pilih jawapan untuk melihat penjelasan

Glosari opsyen