Bagaimana mengetahui bahwa masalah pembelajaran mesin Anda tidak ada harapan?


207

Bayangkan skenario pembelajaran mesin standar:

Anda dihadapkan dengan dataset multivariat yang besar dan Anda memiliki pemahaman yang cukup buram tentang itu. Yang perlu Anda lakukan adalah membuat prediksi tentang beberapa variabel berdasarkan apa yang Anda miliki. Seperti biasa, Anda membersihkan data, melihat statistik deskriptif, menjalankan beberapa model, memvalidasi silangnya, dll., Tetapi setelah beberapa upaya, bolak-balik dan mencoba beberapa model tampaknya tidak berhasil dan hasil Anda menyedihkan. Anda dapat menghabiskan berjam-jam, berhari-hari, atau berminggu-minggu untuk masalah seperti itu ...

Pertanyaannya adalah: kapan harus berhenti? Bagaimana Anda tahu bahwa data Anda sebenarnya tidak ada harapan dan semua model mewah tidak akan lebih baik daripada memprediksi hasil rata-rata untuk semua kasus atau solusi sepele lainnya?

Tentu saja, ini adalah masalah perkiraan, tetapi sejauh yang saya tahu, sulit untuk memperkirakan perkiraan untuk data multivarian sebelum mencoba sesuatu di dalamnya. Atau saya salah?

Penafian: pertanyaan ini terinspirasi oleh pertanyaan ini. Kapan saya harus berhenti mencari model? itu tidak menarik banyak perhatian. Akan menyenangkan untuk memiliki jawaban terperinci untuk pertanyaan seperti itu untuk referensi.


1
Masalah ini dapat dijawab dalam istilah praktis (seperti yang dilakukan @StephanKolassa) atau secara absolut (semacam teorema yang menunjukkan model yang diberikan dapat mempelajari masalah jika kondisi tertentu terpenuhi). Yang mana yang kamu mau?
Hebat

3
Ini terdengar mirip dengan klasik masalah terputus-putus dari ilmu komputer? Katakanlah Anda memiliki beberapa algoritma A kompleksitas arbitrer yang mencari data input D mencari model prediksi, dan algoritma berhenti ketika menemukan model "baik" untuk data. Tanpa menambahkan struktur signifikan pada A dan D, saya tidak melihat bagaimana Anda bisa tahu apakah A akan pernah berhenti memberi input D, bagaimana Anda bisa tahu apakah A akhirnya akan berhasil atau terus mencari selamanya?
Matthew Gunn

@ Paling baik itu bisa menjadi keduanya. Jika Anda memiliki sesuatu untuk ditambahkan, jangan ragu untuk menjawab. Saya tidak pernah mendengar teorema yang menyatakan tentang berurusan dengan data berisik multidimensi kehidupan nyata, tetapi jika Anda tahu yang berlaku, maka saya akan tertarik untuk membaca jawaban Anda.
Tim

3
Berdasarkan jawaban @ StephenKolassa, pertanyaan lain yang dapat Anda lakukan untuk pertanyaan ini adalah 'Pada titik apa saya harus membawa pekerjaan saya sejauh ini kembali ke para ahli materi pelajaran dan mendiskusikan hasil saya (atau kurangnya hasil)?'
Robert de Graaf

Jawaban:


241

Prakiraan cuaca

Anda benar bahwa ini adalah masalah perkiraan. Ada beberapa artikel tentang perkiraan di jurnal Foresight berorientasi praktisi IIF . (Pengungkapan penuh: Saya adalah Associate Editor.)

Masalahnya adalah perkiraan sudah sulit untuk dinilai dalam kasus "sederhana".

Beberapa contoh

Misalkan Anda memiliki deret waktu seperti ini tetapi tidak bisa berbahasa Jerman:

telur

Bagaimana Anda memodelkan puncak besar pada bulan April, dan bagaimana Anda akan memasukkan informasi ini dalam perkiraan apa pun?

Kecuali Anda tahu bahwa rangkaian waktu ini adalah penjualan telur dalam rantai supermarket Swiss, yang memuncak tepat sebelum kalender barat Paskah , Anda tidak akan memiliki kesempatan. Plus, dengan Paskah bergerak sekitar kalender sebanyak enam minggu, setiap ramalan yang tidak termasuk tanggal spesifik Paskah (dengan mengasumsikan, katakanlah, ini hanya puncak musiman yang akan terulang dalam minggu tertentu tahun depan) mungkin akan sangat tidak menyenangkan.

Demikian pula, anggap Anda memiliki garis biru di bawah ini dan ingin memodelkan apa pun yang terjadi pada 2010-02-28 begitu berbeda dari pola "normal" pada 2010-02-27:

permainan hoki

Sekali lagi, tanpa mengetahui apa yang terjadi ketika seluruh kota yang penuh dengan orang Kanada menonton pertandingan final hoki es Olimpiade di TV, Anda tidak memiliki kesempatan apa pun untuk memahami apa yang terjadi di sini, dan Anda tidak akan dapat memprediksi kapan hal seperti ini akan terulang kembali.

Akhirnya, lihat ini:

outlier

Ini adalah rangkaian waktu penjualan harian di toko kas dan barang bawaan . (Di sebelah kanan, Anda memiliki tabel sederhana: 282 hari memiliki nol penjualan, 42 hari melihat penjualan 1 ... dan satu hari melihat penjualan 500.) Saya tidak tahu barang apa itu.

Sampai hari ini, saya tidak tahu apa yang terjadi pada hari itu dengan penjualan 500. Perkiraan terbaik saya adalah bahwa beberapa pelanggan memesan lebih dahulu sejumlah besar produk apa pun ini dan mengumpulkannya. Sekarang, tanpa mengetahui hal ini, ramalan untuk hari tertentu ini akan jauh. Sebaliknya, anggap ini terjadi tepat sebelum Paskah, dan kami memiliki algoritme bodoh-pintar yang percaya ini bisa menjadi efek Paskah (mungkin ini telur?) Dan dengan senang hati memperkirakan 500 unit untuk Paskah berikutnya. Ya ampun, bisakah itu salah.

Ringkasan

Dalam semua kasus, kami melihat bagaimana perkiraan hanya dapat dipahami dengan baik setelah kami memiliki pemahaman yang cukup mendalam tentang faktor-faktor yang mungkin memengaruhi data kami. Masalahnya adalah bahwa kecuali kita mengetahui faktor-faktor ini, kita tidak tahu bahwa kita mungkin tidak mengetahuinya. Sesuai Donald Rumsfeld :

[T] di sini dikenal dikenal; ada hal-hal yang kita tahu kita tahu. Kita juga tahu ada yang diketahui tidak diketahui; artinya kita tahu ada beberapa hal yang tidak kita ketahui. Tapi ada juga yang tidak diketahui tidak diketahui - yang kita tidak tahu kita tidak tahu.

Jika kecenderungan Paskah atau Kanada untuk Hoki tidak diketahui oleh kita, kita terjebak - dan kita bahkan tidak memiliki jalan ke depan, karena kita tidak tahu pertanyaan apa yang perlu kita tanyakan.

Satu-satunya cara untuk menangani ini adalah untuk mengumpulkan pengetahuan domain.

Kesimpulan

Saya menarik tiga kesimpulan dari ini:

  1. Anda selalu perlu memasukkan pengetahuan domain dalam pemodelan dan prediksi Anda.
  2. Bahkan dengan pengetahuan domain, Anda tidak dijamin mendapatkan informasi yang cukup untuk perkiraan dan prediksi Anda agar dapat diterima oleh pengguna. Lihat itu di atas.
  3. Jika "hasil Anda menyedihkan", Anda mungkin berharap lebih dari yang bisa Anda raih. Jika Anda memperkirakan lemparan koin adil, maka tidak ada cara untuk mendapatkan akurasi di atas 50%. Juga jangan percaya tolok ukur akurasi perkiraan eksternal.

Garis bawah

Inilah cara saya akan merekomendasikan membangun model - dan memperhatikan kapan harus berhenti:

  1. Bicaralah dengan seseorang yang memiliki pengetahuan domain jika Anda belum memilikinya sendiri.
  2. Identifikasi pendorong utama data yang ingin Anda ramalkan, termasuk kemungkinan interaksi, berdasarkan langkah 1.
  3. Bangun model secara iteratif, termasuk driver dalam mengurangi urutan kekuatan pada langkah 2. Menilai model menggunakan validasi silang atau sampel penahan.
  4. Jika akurasi prediksi Anda tidak meningkat lebih jauh, kembali ke langkah 1 (misalnya, dengan mengidentifikasi prediksi salah yang mencolok yang tidak dapat Anda jelaskan, dan mendiskusikannya dengan pakar domain), atau menerima bahwa Anda telah mencapai akhir dari kemampuan model. Kotak-waktu analisis Anda di muka membantu.

Perhatikan bahwa saya tidak menganjurkan mencoba berbagai kelas model jika dataran model asli Anda. Biasanya, jika Anda memulai dengan model yang masuk akal, menggunakan sesuatu yang lebih canggih tidak akan menghasilkan manfaat yang kuat dan mungkin hanya "overfitting pada set tes". Saya sudah sering melihat ini, dan orang lain setuju .


10
+1 untuk jawaban luar biasa yang saya setujui sepenuhnya. Saya belum menerimanya (masih) karena masih berharap jawaban lain karena masalahnya luas.
Tim

1
Tentu. Saya juga ingin melihat sudut pandang orang lain tentang ini!
Stephan Kolassa

9
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.. Anda mengatakan semuanya di sana.
Walfrat

3
Dengan menggunakan pengetahuan domain, Anda dapat menambahkan fitur baru ke dua kasing pertama (mis., Waktu hingga Paskah dan angka menonton TV, meskipun yang terakhir perlu memperkirakan sendiri) untuk mendapatkan hasil yang lebih baik. Dalam kedua kasus ini situasinya tidak ada harapan. Bagian yang sangat menarik adalah bagaimana cara memberitahu pengetahuan domain yang hilang dari kumpulan data dari koin yang adil.
Karolis Juodelė

4
@ KarolisJuodelė: itulah poin saya. Kita bahkan tidak bisa tahu kapan situasi kita tidak ada harapan, kecuali kita berbicara dengan seorang ahli ... dan kemudian, kadang-kadang pakar itu tidak dapat membantu kita juga, dan ada "tidak diketahui yang tidak diketahui" kepada para ahli, yang mungkin orang lain mungkin tahu.
Stephan Kolassa

57

Jawaban dari Stephan Kolassa sangat bagus, tetapi saya ingin menambahkan bahwa sering juga ada kondisi berhenti ekonomi:

  1. Ketika Anda melakukan ML untuk pelanggan dan bukan untuk bersenang-senang, Anda harus melihat pada jumlah uang yang rela dihabiskan pelanggan. Jika dia membayar perusahaan Anda € 5.000 dan Anda menghabiskan satu bulan untuk menemukan model, Anda akan kehilangan uang. Kedengarannya sepele, tetapi saya telah melihat "pasti ada solusinya !!!!" - pemikiran yang menyebabkan overruns biaya besar. Jadi berhentilah ketika uang keluar dan sampaikan masalahnya kepada pelanggan Anda.
  2. Jika Anda telah melakukan beberapa pekerjaan, Anda sering memiliki perasaan apa yang mungkin terjadi dengan dataset saat ini. Cobalah untuk menerapkannya pada jumlah uang yang dapat Anda peroleh dengan model, jika jumlahnya sepele atau negatif bersih (misalnya karena waktu untuk mengumpulkan data, kembangkan solusi, dll.) Anda harus berhenti.

Sebagai contoh: kami memiliki pelanggan yang ingin memprediksi kapan mesinnya rusak, Kami menganalisis data yang ada dan menemukan kebisingan pada dasarnya. Kami menggali ke dalam proses dan menemukan bahwa data yang paling penting tidak direkam dan sangat sulit untuk dikumpulkan. Tetapi tanpa data itu, model kami sangat buruk sehingga tidak ada yang akan menggunakannya dan itu dikalengkan.

Sementara saya fokus pada ekonomi ketika bekerja pada produk komersial, aturan ini juga berlaku untuk akademisi atau untuk proyek-proyek yang menyenangkan - sementara uang kurang menjadi perhatian dalam keadaan seperti itu, waktu masih merupakan komoditas langka. E. g. dalam dunia akademis Anda harus berhenti bekerja ketika Anda tidak menghasilkan hasil yang nyata, dan Anda memiliki yang lain, proyek yang lebih menjanjikan yang dapat Anda lakukan. Tapi jangan jatuhkan proyek itu - harap juga mempublikasikan hasil nol atau "butuh lebih banyak / data lain", mereka juga penting!


1
+1 pasti poin bagus! Saya kira semua jawaban untuk pertanyaan ini mungkin tampak "jelas", tetapi saya belum melihat di mana pun semua hal "jelas" yang dikumpulkan untuk referensi.
Tim

3
Btw, aturan penghentian ini berlaku juga untuk kasus-kasus non-bisnis: misalnya, jika Anda melakukan semacam penelitian, maka hasil kami juga memiliki beberapa nilai abstrak dan melanjutkan analisis "putus asa" juga masuk akal hanya sampai nilai analisis Anda melebihi apa yang Anda bisa dilakukan sebagai gantinya. Jadi sebenarnya keputusan ini argumen teoretis dapat dibuat lebih umum.
Tim

2
Saya pikir "tidak ada yang akan menggunakan ist dan kalengan" mungkin harus diubah menjadi "tidak ada yang akan menggunakannya dan kalengan" - apakah ini maksud Anda?
Silverfish

2
Terima kasih. Saya akan mengatakan bahwa ini bukan hanya tentang waktu tetapi tentang fakta bahwa Anda dapat menginvestasikan waktu secara berbeda. Sebagai gantinya Anda dapat bekerja pada proyek penelitian tentang obat penyelamat jiwa lain yang akan Anda hemat waktu Anda, tetapi juga masyarakat akan mendapat manfaat dari hasilnya, dll.
Tim

2
@ChristianSauer Dalam pengalaman saya sebagai seorang insinyur, masalah ketidakcocokan antara sensor (cf gauges) dan tujuan yang bermanfaat kemungkinan mendahului penemuan transistor.
Robert de Graaf

9

Ada cara lain. Bertanya pada diri sendiri -

  1. Siapa atau apa yang membuat perkiraan terbaik dari variabel khusus ini? "
  2. Apakah algoritma pembelajaran mesin saya menghasilkan hasil yang lebih baik atau lebih buruk daripada perkiraan terbaik?

Jadi, misalnya, jika Anda memiliki sejumlah besar variabel yang terkait dengan tim sepak bola yang berbeda dan Anda mencoba memperkirakan siapa yang akan menang, Anda mungkin melihat peluang taruhan atau beberapa bentuk prediksi yang bersumber dari kerumunan untuk membandingkan dengan hasil pembelajaran mesin Anda. algoritma Jika Anda lebih baik Anda mungkin berada di batas, jika lebih buruk maka jelas ada ruang untuk perbaikan.

Kemampuan Anda untuk meningkatkan tergantung (luas) pada dua hal:

  1. Apakah Anda menggunakan data yang sama sebagai ahli terbaik di tugas khusus ini?
  2. Apakah Anda menggunakan data seefektif ahli terbaik dalam tugas khusus ini?

Tergantung pada apa yang saya coba lakukan, tetapi saya cenderung menggunakan jawaban atas pertanyaan-pertanyaan ini untuk mengarahkan arah yang saya masuki ketika membangun sebuah model, terutama apakah akan mencoba dan mengekstrak lebih banyak data yang dapat saya gunakan atau berkonsentrasi pada mencoba untuk memperbaiki model.

Saya setuju dengan Stephan bahwa biasanya cara terbaik untuk melakukan ini adalah dengan bertanya pada pakar domain.


1
Sebenarnya jawaban Anda bertentangan dengan jawaban @StephanKolassa di mana ia merujuk pada literatur yang menunjukkan bahwa tolok ukur ramalan agak menyesatkan.
Tim

1
@Tim: pengungkapan penuh - tautan itu menuju ke artikel tentang tolok ukur yang saya tulis sendiri. Namun demikian, saya mendukung kesimpulan saya: semua tolok ukur akurasi perkiraan permintaan yang saya lihat sangat mungkin membandingkan apel dengan jeruk. Dengan demikian saya agak skeptis tentang mencari tolok ukur eksternal. Selain itu, saya pikir jawaban ini agak menimbulkan pertanyaan. Setelah algoritme ML Anda meningkatkan "yang paling terkenal", bagaimana Anda tahu apakah Anda dapat meningkatkannya lebih lanjut, atau apakah kami telah mencapai The Plateau of Hopelessness?
Stephan Kolassa

1
Kasus penggunaan terakhir saya agak berbeda. Saya mencoba untuk memprediksi siapa yang berisiko bunuh diri dari posting mereka di internet. Ada berbagai tes psikometri yang dapat digunakan untuk mengukur tingkat keparahan depresi seperti PHQ9. Sebagai tes medis yang banyak digunakan ada banyak pekerjaan pada validitas dan reliabilitasnya seperti "The PHQ-9 Validitas ukuran keparahan depresi singkat". Saya menemukan bahwa keandalan dan langkah-langkah lain dalam makalah itu merupakan titik awal yang baik untuk hasil yang mungkin dicapai dari pembelajaran mesin.
Gavin Potter

1
Anda benar, tentu saja, tentang memperbaiki "yang paling dikenal", tidak ada cara untuk mengatakan apakah akan terus mencari model yang lebih baik. Tetapi dalam pengalaman saya, ini sangat jarang terjadi dalam situasi dunia nyata. Sebagian besar pekerjaan yang saya lakukan tampaknya tentang mencoba menerapkan penilaian ahli pada skala melalui penggunaan pembelajaran mesin tidak berusaha untuk meningkatkan ahli terbaik di bidangnya.
Gavin Potter
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.