Unit 6 / 11

Pembinaan Model: Definisi Masalah, Pemilihan Algoritma dan Pemisahan Latihan/Ujian

Keuntungan:

  • Keupayaan untuk menentukan jenis masalah (pengkelasan, regresi, pengelompokan) dan kriteria kejayaan mengikut kos sebenar pekerjaan
  • Keupayaan untuk membahagikan data secara jujur (tanpa menyentuh set ujian; secara kronologi dalam siri masa) dan mewujudkan asas penilaian bebas kebocoran
  • Keupayaan untuk memilih model yang boleh ditafsirkan dengan bermula dengan garis dasar yang mudah dan menambah kerumitan hanya apabila ia layak.

Setakat ini kami telah mengumpul data, membersihkannya, meneroka dan menghasilkan ciri. Sekarang kita sampai kepada kerja sebenar, membina model. Model ialah struktur matematik yang mempelajari corak daripada data dan menghasilkan ramalan untuk situasi baharu. Tetapi bahagian yang paling kritikal dalam membina model bukanlah kod itu sendiri, tetapi dua keputusan yang mendahuluinya: menentukan masalah yang betul dan membahagikan data dengan betul. AI ialah penasihat yang berkuasa dalam pemilihan algoritma, penulisan kod dan penalaan parameter; tetapi terpulang kepada seseorang untuk menentukan apa yang hendak diramalkan dan apa makna kejayaan. Masalah yang tidak jelas tidak akan berfungsi walaupun dengan model yang ditulis dengan sempurna.

Definisi masalah dahulu: apa yang kita ramalkan

Setiap kerja pemodelan bermula dengan soalan, dan soalan ini menentukan jenis model. Klasifikasi — output ialah kategori: "Adakah pelanggan ini akan pergi atau kekal?", "Adakah transaksi ini palsu?". Regresi (dalam regresi bahasa Inggeris - output ialah nombor): "Berapa harga rumah ini?", "Berapa banyak pesanan akan datang bulan depan?". Pengelompokan (membahagikan data tidak berlabel kepada kumpulan semula jadi): "Berapa banyak segmen semula jadi pelanggan saya dibahagikan?".

Bahagian kedua penyataan masalah ialah kriteria kejayaan: apakah maksud model ini "baik"? Dalam model penipuan, kehilangan penipu adalah lebih mahal daripada menyekat pelanggan yang jujur ​​secara tidak sengaja; Oleh itu, bukan "ketepatan am" tetapi "kadar penangkapan penipu" diutamakan. Jika anda tidak mentakrifkan kriteria ini dari awal, bersama-sama dengan pemilik perniagaan, anda akan mendapat model "sangat tepat" yang tidak berfungsi (kita akan mendalami metrik dalam Unit 7).

Awas: "Ketepatan" boleh mengelirukan. Jika 10 daripada 1000 transaksi adalah penipuan, model bodoh yang mengatakan "tiada penipuan" akan memberikan ketepatan 99% tetapi tidak akan menangkap seorang penipu. Pilih kriteria kejayaan berdasarkan kos sebenar masalah.

Pemisahan latihan/ujian: pemeriksaan jujur model

Menguji model dengan data yang telah dipelajari adalah seperti bertanya kepada pelajar soalan yang sama yang dia pelajari semasa peperiksaan; Dia mendapat markah tinggi tetapi tidak menunjukkan apa yang dia tahu sebenarnya. Jadi kami membahagikan data kepada dua (selalunya tiga):

  • Set latihan (set latihan dalam bahasa Inggeris, biasanya 70-80%): Model belajar mengenai perkara ini.
  • Set ujian (set ujian, biasanya 20-30%): Model tidak melihat ini sama sekali; prestasi sebenar diukur di sini.
  • Set pengesahan: Set perantaraan yang digunakan untuk tetapan model (parameter yang lebih baik); untuk memastikan set ujian "bersih".

Peraturan paling asas: set ujian tidak pernah disentuh semasa latihan. Penskalaan, pengekodan, pemilihan ciri — semuanya hanya dipelajari daripada set latihan, kemudian digunakan untuk ujian (prinsip kebocoran daripada Unit 5). Set ujian adalah kali pertama model melihat dunia sebenar; Jika anda menghidupkannya terlalu awal, anda tidak akan tahu prestasi sebenar.

Pengecualian siri masa: Jika data anda bergantung pada masa (jualan, pasaran saham, permintaan), pemisahan rawak tidak dilakukan. Kerana pemisahan rawak menyebabkan model melihat masa depan dan meramalkan masa lalu — ini adalah kebocoran. Sebaliknya, bahagikan mengikut kronologi: berlatih dengan tempoh lama, uji dengan tempoh baharu.

Pemilihan algoritma: daripada mudah kepada kompleks

Kesilapan yang paling biasa bagi pemula adalah bermula dengan model yang paling kompleks. Pendekatan yang betul adalah sebaliknya: mula-mula wujudkan garis dasar yang mudah. "sentiasa meneka kelas majoriti" dalam klasifikasi; "sentiasa menganggarkan min" dalam regresi. Model bodoh ini memberikan garis dasar; Jika model sebenar anda tidak dapat melepasi ini, terdapat masalah. Kemudian beralih kepada model yang mudah dan boleh ditafsir.

model

Jenis masalah

titik kuat

kelemahan

Garis asas (majoriti/purata)

kedua-duanya

Memberi tanda aras

tidak belajar

Regresi logistik

Pengelasan

Mudah, boleh ditafsir

Hubungan linear sahaja

Regresi linear

regresi

Mudah, cepat

andaian linear

pokok keputusan

kedua-duanya

boleh ditafsir

Hafazan yang mudah

hutan rawak

kedua-duanya

Kuat, tahan lama

Kurang boleh ditafsir

Peningkatan kecerunan (XGBoost dll.)

kedua-duanya

sangat kuat

Sukar untuk menyesuaikan diri, risiko hafalan

Peraturan: pilih model "cukup baik" yang paling mudah. Kebolehtafsiran adalah lebih berharga daripada kuasa dalam kebanyakan konteks perniagaan; Adalah lebih baik untuk menjelaskan penolakan pinjaman "kerana nisbah hutang kepada pendapatan anda tinggi" daripada "kerana kotak hitam berkata demikian."

tiga kes mini

Kes 1 — Takrifan masalah yang salah. Pasukan membina model klasifikasi berdasarkan "adakah pelanggan berpuas hati" tetapi memilih "ketepatan" sebagai kriteria kejayaan. Dalam data, 88% pelanggan berpuas hati; Model itu mendapat ketepatan 88% dengan memanggil semua orang "berpuas hati" dan tidak pernah menangkap orang yang tidak berpuas hati — walaupun matlamat sebenar adalah untuk mencari mereka. Pengajaran: pilih kriteria kejayaan berdasarkan tujuan sebenar.

Kes 2 — Masa bocor dalam petak. Dalam projek ramalan permintaan, data dibahagikan secara rawak. Model itu memberikan ketepatan 93% tetapi ranap dalam pengeluaran kerana dalam latihan ia telah meramalkan Januari, kemudian November, dengan data Disember — ia telah melihat masa depan. Apabila kami beralih kepada bahagian kronologi, prestasi sebenar meningkat kepada 74%. Pengajaran: pembahagian kronologi dalam siri masa.

Kes 3 — Kerumitan yang tidak perlu. Seorang penganalisis bermula secara langsung dengan rangkaian saraf yang mendalam, menalanya selama berminggu-minggu, dan mendapat ketepatan 81%. Kemudian seorang rakan sekerja mendapat 80% dengan 20 baris regresi logistik — lebih pantas, boleh ditafsir dan lebih mudah diselenggara. Pengajaran: mulakan dengan garis dasar dan model mudah, tambahkan kerumitan apabila ia patut.

Empat templat yang boleh disalin

1) Menjelaskan definisi masalah:

Peranan anda: perunding model. Bantu saya mentakrifkan kerja ini: "Saya mahu mengurangkan pergolakan pelanggan." Tanya saya dan jelaskan: (1) adakah ini klasifikasi atau regresi, (2) apakah sebenarnya pembolehubah sasaran dan bagaimana ia harus ditakrifkan, (3) apakah kriteria kejayaan yang sepatutnya dan mengapa. Keputusan adalah milik saya; anda mengemukakan soalan dan pilihan.

2) Petak latihan/ujian yang selamat:

Pisahkan df saya ke dalam latihan/ujian 80%/20%. Mengekalkan pengagihan kelas (stratify).random_state=42. Ini BUKAN SIRI MASA (pemerhatian bebas). Cetak nisbah kelas setiap set selepas pembahagian. Hanya berikan kod pemisahan kepada set ujian tanpa menggunakan sebarang transformasi.

3) Pembahagian kronologi siri masa:

Data bergantung pada masa (lajur tarikh: tarikh_pesanan). BUKAN rawak, bahagikan mengikut kronologi: latihan 80% tertua, ujian 20% terbaru. Cetak julat tarikh latihan dan ujian supaya saya boleh mengesahkan masa depan tidak bocor.

4) Menetapkan garis dasar:

Saya mempunyai masalah klasifikasi (sasaran: churn 0/1). Mula-mula wujudkan garis dasar: ukur ketepatan latihan/ujian dengan DummyClassifier, yang sentiasa meramalkan kelas majoriti. Kemudian latih regresi logistik yang mudah dan bandingkan sama ada ia mengatasi garis dasar. Tunjukkan metrik kedua-dua sebelah menyebelah.

Gesaan lemah / Gesaan kuat

Gesaan yang lemah:

Bina model terbaik dengan data ini.

"Terbaik" tidak ditentukan; Tiada jenis masalah, tiada matlamat, tiada kriteria kejayaan dan tiada strategi pembahagian. AI menghasilkan corak rawak, mungkin bocor.

Gesaan kuat:

Peranan anda: pembantu model. Masalah: klasifikasi, sasaran "churn" (0/1), terdapat ketidakseimbangan kelas (~12% churn). Kriteria kejayaan: Mengimbas kembali mereka yang bergolak adalah keutamaan. Pemerhatian bebas data (bukan siri masa). Tugasan: (1) 80/20% perpecahan berstrata, (2) Garis dasar DummyClassifier, (3) regresi logistik, semua transformasi dalam saluran paip dan dipelajari hanya daripada latihan. Jangan sentuh set ujian sebelum membelah.

Di sini jenis masalah, ketidakseimbangan, kriteria dan ukuran kebocoran adalah jelas.

Kesilapan biasa

  • Tidak memilih kriteria kejayaan mengikut tujuan sebenar. "Ketepatan" dalam data tidak seimbang adalah mengelirukan; Jika anda ingin menawan kelas minoriti, ingat kembali diutamakan.
  • Menyentuh set ujian semasa latihan. Melakukan penskalaan/pengekodan sebelum pemisahan adalah bocor dan menyembunyikan prestasi sebenar.
  • Pemisahan rawak dalam siri masa. Model melihat masa depan, runtuh dalam pengeluaran; Pembahagian kronologi adalah penting.
  • Melompat ke model yang kompleks tanpa mewujudkan garis dasar. Tanpa penanda aras anda tidak boleh tahu sama ada model itu benar-benar bagus atau tidak.
  • Mengabaikan kebolehtafsiran. Dalam keputusan perniagaan, model mudah yang boleh dijelaskan selalunya lebih berharga daripada kotak hitam.
Petua: Sebelum anda mula membina model, tulis satu ayat: "Model ini akan meramalkan _____, kejayaannya akan diukur dengan metrik _____, kerana kos sebenar kerja ialah _____." Jika anda tidak dapat mengisi ayat ini, anda belum bersedia untuk menulis kod lagi.

Secara ringkasnya

Bahagian yang paling kritikal dalam membina model bukanlah kod, tetapi keputusan yang mendahuluinya: mentakrifkan masalah yang betul (klasifikasi atau regresi, apakah matlamat, apakah kriteria kejayaan) dan membahagikan data secara adil (tanpa menyentuh set ujian; kronologi dalam siri masa). Sentiasa mulakan dengan garis dasar yang mudah dan tambahkan kerumitan hanya apabila ia layak; kebolehtafsiran dinilai daripada kuasa dalam kebanyakan konteks perniagaan. AI ialah penasihat yang berkuasa dalam pemilihan dan kod algoritma, tetapi manusia menentukan perkara yang anda ramalkan dan sebabnya.

Tugasan permohonan

Tentukan masalah ramalan dan lengkapkan ayat berikut secara bertulis: "Model ini akan meramalkan ___ (pengkelasan/regresi), sasaran ialah ___, kriteria kejayaan ialah ___ kerana ___." Kemudian bahagikan data dengan strategi yang betul (kronologi jika ia adalah siri masa), wujudkan garis dasar dan ukur sama ada corak mudah memecahkan garis dasar tersebut.

senarai semak

  • [ ] Adakah saya telah menentukan dengan jelas jenis masalah (klasifikasi/regresi) dan sasaran?
  • [ ] Adakah saya telah memilih kriteria kejayaan berdasarkan kos kerja sebenar?
  • [ ] Adakah saya membiarkan set ujian tanpa disentuh semasa latihan?
  • [ ] Jika ia adalah siri masa, adakah saya membahagikannya mengikut kronologi?
  • [ ] Adakah saya telah menetapkan garis dasar sebelum beralih kepada model kompleks?