Saya memiliki masalah data besar dengan dataset besar (misalnya 50 juta baris dan 200 kolom). Dataset terdiri dari sekitar 100 kolom numerik dan 100 kolom kategorikal dan kolom respons yang mewakili masalah kelas biner. Kardinalitas masing-masing kolom kategorikal kurang dari 50.
Saya ingin tahu apriori apakah saya harus menggunakan metode pembelajaran yang mendalam atau metode berbasis pohon (misalnya meningkatkan gradien, adaboost, atau hutan acak). Apakah ada beberapa analisis data eksplorasi atau beberapa teknik lain yang dapat membantu saya memutuskan satu metode daripada yang lain?
Jawaban:
Mengapa membatasi diri Anda pada dua pendekatan itu? Karena mereka keren? Saya akan selalu memulai dengan classifier linear sederhana \ regressor. Jadi dalam hal ini Linear SVM atau Regresi Logistik, lebih disukai dengan implementasi algoritma yang dapat mengambil keuntungan dari sparsity karena ukuran data. Butuh waktu lama untuk menjalankan algoritma DL pada dataset itu, dan saya biasanya hanya akan mencoba belajar mendalam tentang masalah spesialis di mana ada beberapa struktur hirarkis dalam data, seperti gambar atau teks. Dibutuhkan banyak hal untuk masalah pembelajaran yang lebih sederhana, dan membutuhkan banyak waktu dan keahlian untuk belajar dan juga algoritma DL sangat lambat untuk dilatih. Selain itu, hanya karena Anda memiliki 50 juta baris, tidak berarti Anda harus menggunakan seluruh dataset untuk mendapatkan hasil yang baik. Tergantung pada data, Anda mungkin mendapatkan hasil yang baik dengan sampel beberapa ratus baris atau beberapa juta. Saya akan mulai dengan sederhana, dengan sampel kecil dan classifier linier, dan menjadi lebih rumit dari sana jika hasilnya tidak memuaskan. Setidaknya dengan begitu Anda akan mendapatkan garis dasar. Kami sering menemukan model linier sederhana untuk melakukan model yang lebih canggih di sebagian besar tugas, jadi Anda ingin selalu memulai dari sana.
sumber
Selain jawaban lain (dan ada beberapa tautan bagus di komentar) itu tergantung pada apa masalahnya atau jenis pertanyaan apa yang ingin Anda jawab. Karena saya hanya dapat menyarankan berdasarkan pengalaman saya sendiri, maka dalam kasus tugas klasifikasi, metode yang mungkin dapat sangat terbatas berdasarkan keseimbangan kelas dalam dataset.
Begitu Anda mencapai ketidakseimbangan kelas yang lebih besar dari sekitar 1:10, maka sebagian besar metode klasifikasi berhenti bekerja. Anda akan dibiarkan dengan metode berdasarkan hutan acak dan mungkin jaring saraf (belum mencoba). Saya bekerja dengan keseimbangan kelas dalam kisaran 1: 500 hingga 1: 1000 dan telah menemukan bahwa tidak ada down atau upsampling yang berfungsi. Untungnya dataset saya "hanya" pengamatan 6mln oleh 200 variabel dan saya bisa menjalankan pohon yang ditingkatkan pada seluruh set dalam waktu yang wajar.
Jadi untuk langsung menjawab pertanyaan Anda:
Anda harus datang dengan banyak pertanyaan yang ingin Anda jawab dan dalam hal klasifikasi kemudian periksa saldo kelas dari variabel target.
Anda harus memeriksa distribusi (bukan dalam arti matematis) dari nilai yang hilang di semua data Anda dan mendokumentasikan apa yang Anda temukan. Beberapa metode ML baik-baik saja dengan nilai-nilai yang hilang sementara yang lain tidak dan Anda perlu melihat ke dalam imputasi data (yang memiliki seperangkat aturan, pedoman, dan masalah).
sumber
Dari sudut pandang saya, untuk 5 juta contoh Anda membutuhkan banyak pohon untuk mendapatkan batasan generalisasi yang baik (model yang baik dalam istilah awam). Jika ini bukan masalah maka lakukanlah, bahkan jawaban pastinya bergantung pada sifat masalah Anda. GBT adalah metode yang baik terutama jika Anda memiliki jenis fitur campuran seperti kategoris, numerik dan semacamnya. Selain itu, dibandingkan dengan Neural Networks memiliki jumlah hyperparameter yang lebih rendah untuk disetel. Oleh karena itu, lebih cepat untuk memiliki model pengaturan terbaik. Satu hal lagi adalah alternatif pelatihan paralel. Anda dapat melatih banyak pohon sekaligus dengan CPU yang bagus. Jika Anda tidak puas dengan hasilnya, gunakan Neural Nets karena itu berarti model Anda harus lebih luas dan harus mempelajari informasi pesanan lebih tinggi melalui data Anda. Itu adalah karena NN dibandingkan dengan algoritma pembelajaran lainnya.
sumber
Sejalan dengan apa yang telah dikatakan @Simon:
Untuk masalah Anda, tradeoff upaya vs manfaat tampaknya tidak mendukung pembelajaran mendalam. DL akan menjadi berlebihan
sumber
Ketika Anda memiliki kumpulan data yang begitu besar, Anda dapat bermain dengan salah satu teknik pemodelan statistik dan pembelajaran mesin dan itu sangat dianjurkan. Seperti yang lain telah menyarankan saya juga akan merekomendasikan untuk mengambil beberapa juta sampel acak dari data dan bermain dengannya. Karena ini adalah masalah klasifikasi saya akan mengikuti teknik klasifikasi sederhana terlebih dahulu dan kemudian melanjutkan dengan yang lebih kompleks nanti. Regresi logistik bagus untuk memulai.
Saya ingin menambahkan bahwa model generatif juga harus dicoba. Klasifikasi Naif Bayes adalah salah satu pengklasifikasi probabilistik yang paling sederhana dan mengungguli banyak metode kompleks seperti mesin vektor dukungan pada banyak tugas. Anda dapat melihat ini pelaksanaan sederhana NB dan ini link untuk perbandingan NB untuk regresi logistik.
Seseorang dapat membangun classifier Naif bayes (NB) sebagai model dasar dan kemudian pergi untuk teknik pembelajaran mesin seperti Support Vector Machines (SVM) atau multilayer perceptrons (MLP). Sebuah trade off di sini adalah bahwa NB secara komputasi lebih murah daripada MLP sehingga diinginkan kinerja yang lebih baik dari MLP.
Datang ke pertanyaan Anda: Pembelajaran mendalam dan peningkatan pohon gradien adalah teknik yang sangat kuat yang dapat memodelkan segala jenis hubungan dalam data. Tetapi bagaimana jika dalam kasus Anda regresi logistik sederhana atau NB memberikan akurasi yang diinginkan. Jadi selalu lebih baik untuk mencoba teknik-teknik sederhana terlebih dahulu dan memiliki kinerja dasar. Maka seseorang dapat pergi untuk model yang kompleks dan membandingkannya dengan baseline.
sumber