Saya tidak bisa berbicara untuk seluruh industri, tentu saja, tetapi saya bekerja di industri dan telah bersaing di Kaggle sehingga saya akan berbagi POV saya.
Pertama, Anda benar untuk mencurigai bahwa Kaggle tidak sama persis dengan apa yang dilakukan orang di industri. Ini adalah permainan, dan tunduk pada permainan, dengan banyak batasan gila. Misalnya, dalam kompetisi Santander yang sedang berjalan :
- Nama-nama fitur secara hash dibuat untuk menyembunyikan artinya
- Set "pelatihan" secara artifisial terbatas untuk memiliki lebih sedikit baris daripada kolom secara khusus sehingga pemilihan fitur, ketahanan, dan teknik regularisasi akan sangat diperlukan untuk kesuksesan.
- Perangkat yang disebut "tes" memiliki distribusi yang sangat berbeda dari perangkat pelatihan dan keduanya jelas bukan sampel acak dari populasi yang sama.
Jika seseorang memberi saya set data seperti ini di tempat kerja, saya akan segera menawarkan untuk bekerja dengan mereka di fitur engineering sehingga kami bisa mendapatkan fitur yang lebih berguna. Saya akan menyarankan kita menggunakan pengetahuan domain untuk memutuskan kemungkinan istilah interaksi, ambang batas, strategi pengkodean variabel kategorikal, dll. Mendekati masalah dengan cara itu jelas akan lebih produktif daripada mencoba mengekstrak makna dari file knalpot yang dihasilkan oleh insinyur basis data tanpa pelatihan dalam ML.
Lebih jauh, jika Anda belajar, katakanlah, bahwa kolom numerik tertentu sama sekali bukan numerik, melainkan kode ZIP, Anda dapat pergi dan mendapatkan data dari sumber data pihak ketiga seperti Sensus AS untuk menambah data Anda. Atau jika Anda memiliki kencan, mungkin Anda akan menyertakan harga penutupan S&P 500 untuk hari itu. Strategi augmentasi eksternal semacam itu membutuhkan pengetahuan terperinci dari kumpulan data spesifik dan pengetahuan domain yang signifikan tetapi biasanya memiliki hasil yang jauh lebih besar daripada peningkatan algoritmik murni.
Jadi, perbedaan besar pertama antara industri dan Kaggle adalah bahwa dalam industri, fitur (dalam arti data input) dapat dinegosiasikan.
Perbedaan kelas kedua adalah kinerja. Seringkali, model akan digunakan untuk produksi dalam salah satu dari dua cara: 1) prediksi model akan dihitung sebelumnya untuk setiap baris dalam tabel database yang sangat besar, atau 2) aplikasi atau situs web akan mengirimkan model tersebut satu baris data tunggal dan perlu prediksi dikembalikan secara real-time. Kedua kasus penggunaan membutuhkan kinerja yang baik. Untuk alasan ini, Anda tidak sering melihat model yang lambat untuk memprediksi atau menggunakan sejumlah besar memori seperti K-Nearest-Neighbors atau Extra Random Forests. Regresi logistik atau jaringan saraf, sebaliknya, dapat mencetak batch rekaman dengan beberapa perkalian matriks, dan perkalian matriks dapat sangat dioptimalkan dengan perpustakaan yang tepat.Walaupun saya bisa mendapatkan AUC +0.001 jika saya menggunakan model non-parametrik lainnya, saya tidak akan melakukannya karena prediksi throughput dan latensi akan turun terlalu banyak.
Ada dimensi keandalan untuk ini juga - menumpuk empat perpustakaan pihak ke-3 yang berbeda, katakanlah LightGBM , xgboost , catboost , dan Tensorflow (pada GPU , tentu saja) mungkin memberi Anda pengurangan 0,01 pada MSE yang memenangkan kompetisi Kaggle, tetapi empat pustaka berbeda untuk diinstal, digunakan, dan didebug jika ada yang salah. Sangat bagus jika Anda bisa mengerjakan semua hal di laptop Anda, tetapi menjalankannya di dalam wadah Docker yang berjalan di AWS adalah cerita yang sama sekali berbeda. Sebagian besar perusahaan tidak ingin memimpin tim devops kecil hanya untuk menangani masalah penyebaran semacam ini.
Yang mengatakan, menumpuk itu sendiri tidak selalu merupakan masalah besar. Faktanya, menumpuk beberapa model berbeda yang semuanya berkinerja sama dengan baik tetapi memiliki batas keputusan yang sangat berbeda adalah cara yang bagus untuk mendapatkan benjolan kecil di AUC dan benjolan besar dalam ketahanan. Hanya saja, jangan membuang begitu banyak kitchen sink ke dalam ansambel heterogen Anda sehingga Anda mulai memiliki masalah penyebaran.