Menggabungkan model pembelajaran mesin

20

Saya agak baru dalam pendataan / pembelajaran mesin / dll. dan telah membaca tentang beberapa cara untuk menggabungkan beberapa model dan menjalankan model yang sama untuk meningkatkan prediksi.

Kesan saya dari membaca beberapa makalah (yang sering menarik dan hebat dalam teori dan huruf Yunani tetapi kekurangan kode dan contoh aktual) adalah bahwa itu seharusnya seperti ini:

Saya mengambil model ( knn,, RFdll) dan mendapatkan daftar pengklasifikasi antara 0 dan 1. Pertanyaan saya adalah bagaimana cara menggabungkan masing-masing daftar pengklasifikasi ini? Apakah saya menjalankan model yang sama pada set pelatihan saya sehingga jumlah kolom yang masuk ke model akhir sama atau ada trik lain?

Akan lebih bagus jika ada saran / contoh termasuk kode R.

CATATAN: Ini untuk kumpulan data dengan garis 100 ribu pada kelompok pelatihan dan 70 ribu pada kelompok uji dan 10 kolom.

screechOwl
sumber

Jawaban:

21

Ini sebenarnya bermuara pada salah satu teknik "3B": mengantongi, meningkatkan atau memadukan.

Dalam mengantongi, Anda melatih banyak pengklasifikasi pada subset objek yang berbeda dan menggabungkan jawaban dengan rata-rata untuk regresi dan memilih untuk klasifikasi (ada beberapa opsi lain untuk situasi yang lebih kompleks, tapi saya akan melewatkannya). Proporsi / variasi pemilihan dapat diartikan sebagai perkiraan kesalahan karena pengklasifikasi individu biasanya dianggap independen. RF sebenarnya adalah ansambel mengantongi.

Meningkatkan adalah metode keluarga yang lebih luas, namun poin utama mereka adalah bahwa Anda membangun classifier berikutnya pada residual dari yang pertama, cara ini (secara teori) secara bertahap meningkatkan akurasi dengan menyoroti interaksi yang semakin halus. Prediksi biasanya digabungkan dengan menjumlahkannya, seperti menghitung nilai fungsi dalam x dengan menjumlahkan nilai elemen seri Taylor untuk x.
Versi paling populer adalah (Stochastic) Gradient Boosting (dengan dasar matematika yang bagus) dan AdaBoost (terkenal, sebenarnya kasus spesifik GB). Dari perspektif holistik, pohon keputusan adalah pendorong pengelompokan pivot yang sepele.

Blending adalah ide pengklasifikasi bersarang, yaitu menjalankan satu pengklasifikasi pada sistem informasi yang dibuat dari prediksi pengklasifikasi lain. Karena itu, ini adalah metode yang sangat variabel dan tentu saja bukan algoritma yang ditentukan; mungkin memerlukan banyak objek (dalam kebanyakan kasus, "blender" classifier harus dilatih pada seperangkat objek yang tidak digunakan untuk membangun penggolong parsial untuk menghindari pakaian yang memalukan).
Prediksi pengklasifikasi parsial jelas dikombinasikan dengan menggabungkan mereka ke dalam sistem informasi yang diprediksi oleh blender.


sumber
7

Ungkapan "menggabungkan model" tidak jelas, tetapi dugaan saya adalah Anda bertanya tentang metode pembelajaran ensemble. Referensi terbaik untuk mempelajarinya mungkin adalah makalah Rich Caruana:

http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml04.icdm06long.pdf

Tidak ada kode aktual dalam makalah ini, tetapi algoritme ini dijelaskan dengan jelas, jadi Anda seharusnya tidak memiliki masalah mengodekannya dalam bahasa apa pun yang Anda inginkan.

pengguna765195
sumber
2

Setelah mencari-cari sedikit dengan bantuan jawaban di atas, saya menyadari apa masalah saya. Saya telah mencoba menggunakan prediksi model lain dalam model yang sama seperti yang digunakan untuk memprediksi mereka. Dengan kata lain jika saya memiliki 5 variabel ketika saya menjalankan kNNmodel, saya akan menambahkan variabel baru dengan prediksi kNNmodel dan membuat model dengan 6 variabel ketika saya menjalankan model Hutan acak. Saya menemukan bahwa alih-alih hasil dari model harus disegmentasi dan dijalankan sebagai model terpisah. Jadi saya akan membuat prediksi dari berbagai model ( knn, RF, svd, dll) kemudian menjalankan terpisah menggabungkan / blending / susun model menggunakan hanya prediksi sebagai variabel dan klasifikasi sebagai apa untuk memprediksi.

Saya pikir beberapa masalah saya adalah bahwa dalam menggabungkan prediksi dengan variabel lain, mungkin ada beberapa overfitting atau multicollinearity tetapi saya tidak yakin. Orang lain mungkin bisa menimbang lebih baik dari apa yang saya lakukan salah. Bagaimanapun terima kasih kepada semua orang atas bantuan mereka.

screechOwl
sumber