Sumber daya untuk mempelajari cara menerapkan metode ansambel

13

Saya mengerti secara teoritis (semacam) bagaimana mereka akan bekerja, tetapi saya tidak yakin bagaimana cara menggunakan metode ensemble (seperti voting, campuran tertimbang, dll.).

  • Apa sumber daya yang baik untuk menerapkan metode ensemble?
  • Apakah ada sumber daya khusus mengenai implementasi di Python?

EDIT:

Untuk menjernihkan beberapa berdasarkan diskusi pada komentar, saya tidak mencari algoritma ensemble seperti randomForest, dll. Sebaliknya, saya bertanya-tanya bagaimana Anda bisa menggabungkan klasifikasi yang berbeda dari algoritma yang berbeda.

Misalnya, seseorang menggunakan regresi logistik, SVM, dan beberapa metode lain untuk memprediksi kelas pengamatan tertentu. Apa cara terbaik untuk mendapatkan estimasi kelas terbaik berdasarkan prediksi ini?

pengguna1074057
sumber

Jawaban:

12

Tempat yang baik untuk memulai adalah mendapatkan gambaran pembelajaran ensemble. Terutama Anda ingin melihat meningkatkan dan mengantongi . Metode lain yang digunakan oleh tim "The Ensemble" di Netflix Prize, disebut "blending" atau penumpukan fitur .

Kemudian, cari saja beberapa perpustakaan yang mengimplementasikannya dan bekerja dari sana. Googling cepat muncul scikit dan oranye , yang keduanya harus mengantongi dan meningkatkan (dan mereka berdua Python).

Jika lebih dari sekadar menggunakan metode ensemble, Anda ingin mempelajari sedikit teorinya, maka saya pikir makalah ini akan menjadi titik awal yang baik (ikuti referensi untuk bagian-bagian yang Anda minati).

Bersulang.

Joe Pete yang kekar
sumber
(+1) woa, referensi bagus di sini: O!
steffen
Terima kasih. Hanya mencoba menyumbangkan sesuatu tentang salah satu dari sedikit topik yang saya ketahui.
Stumpy Joe Pete
4

'Metode Ensemble dalam Penambangan Data: Meningkatkan Akurasi Melalui Menggabungkan Prediksi', Seni dan Penatua - Referensi yang sangat baik tentang teori dan implementasi ansambel praktis, tetapi kode yang menyertainya berdasarkan R.

'Machine Learning: An Algorithmic Perspective,' S. Marsland - Teks praktis berbasis Python yang sangat baik, tetapi tidak didedikasikan untuk konsep ensemble murni sebagai referensi pertama.

menepuk
sumber
2

Tanggapan Joe Pete yang gagah itu sempurna, tetapi karena Anda menyebutkan tentang implementasi Python, saya ingin menyebutkan proyek pembuatan bir dari Universidade Federal de Pernambuco.

https://github.com/viisar/brew

from brew.base import Ensemble
from brew.base import EnsembleClassifier
from brew.combination import import Combiner

# create your Ensemble
clfs = your_list_of_classifiers # [clf1, clf2]
ens = Ensemble(classifiers = clfs)

# create your Combiner
# the rules can be 'majority_vote', 'max', 'min', 'mean' or 'median'
comb = Combiner(rule='majority_vote')

# now create your ensemble classifier
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb)
ensemble_clf.predict(X)

Pada titik ini, mereka memiliki generasi ensemble, kombinasi, pemangkasan dan seleksi dinamis.

Keterbatasan: hanya klasifikasi; tidak ada susun dalam versi publik saat ini; tidak banyak dokumentasi.

Dayvid Oliveira
sumber
0

Salford Systems memiliki paket perangkat lunak yang disebut Random Forests yang mengimplementasikannya untuk ansambel pohon klasifikasi dan regresi. Saya tidak punya paket R gratis untuk ditawarkan. Saya membayangkan mereka memiliki manual pengguna yang akan menjelaskan implementasi mereka. Dengan analogi Anda mungkin bisa mengetahui cara melakukannya untuk metode ansambel lainnya.

Michael R. Chernick
sumber
2
Ada banyak paket R yang bagus untuk ansambel pohon: misalnya randomForest (algoritma klasik), party :: cforest (hutan acak menggunakan pohon inferensi bersyarat), gbm (gradien meningkatkan pohon) untuk beberapa nama. Saya membaca OP sebagai ingin mengimplementasikan ansambel agnostik classifier / regresi. Prosedur paling sederhana tentu saja untuk prediksi rata-rata.
B_Miner
@ B_Miner Senang mengetahui bahwa ada implementasi yang tersedia di R. Mungkin seseorang bisa menjelaskan kepada saya mengapa implementasi spesifik dengan Python diinginkan (mohon maafkan ketidaktahuan saya tentang R). Saya membaca OP untuk ingin mengetahui sumber-sumber yang menggambarkan bagaimana menerapkan metode ensemble. Paket Salford adalah salah satu yang saya ketahui yang mungkin memiliki beberapa dokumentasi.
Michael R. Chernick
Sementara berdasarkan kertas Freund dan Schapire meningkatkan karya pada umumnya sejauh yang saya tahu hasil terbaik telah datang menggunakan pengklasifikasi pohon.
Michael R. Chernick
Saya pribadi mendapatkan hasil yang sangat baik dengan rata-rata probabilitas yang sederhana - tetapi domain saya lebih tertarik pada probabilitas daripada memilih label kelas.
B_Miner
@MichaelChernick Jika Anda melakukan pekerjaan prediksi yang sangat intens (seperti ... kompetisi Kaggle), Anda tidak akan memilih salah satu untuk meningkatkan atau acak hutan. Anda akan ingin menggabungkan sebanyak mungkin model yang akan membantu Anda (yang umumnya lebih dari satu). Jadi, dalam konteks itu, metode ensemble lain akan menjadi penting, bahkan jika hutan acak jauh lebih awam daripada yang lain.
Stumpy Joe Pete
0

Scikit-belajar ensembling panduan menyediakan mengantongi dan meningkatkan meta-pengklasifikasi dan regressors. Selain itu, pustaka mlxtend menyediakan implementasi stacking meta-classifiers dan regressor.

Vadim Smolyakov
sumber