Topluluk yöntemlerinin nasıl uygulanacağını öğrenmek için kaynaklar


13

Teorik olarak (nasıl çalışacaklarını) anlıyorum, ama aslında bir topluluk yöntemini (oylama, ağırlıklı karışımlar, vb.) Kullanmayı nasıl yapacağımdan emin değilim.

  • Topluluk yöntemlerini uygulamak için iyi kaynaklar nelerdir?
  • Python'da uygulama ile ilgili belirli kaynaklar var mı?

DÜZENLE:

Bazı yorumlarda tartışmaya dayanarak temizlemek için, randomForest, vb gibi topluluk algoritmaları aramıyorum. Bunun yerine, farklı algoritmalardan farklı sınıflamaları nasıl birleştirebileceğinizi merak ediyorum.

Örneğin, birinin belirli bir gözlemin sınıfını tahmin etmek için lojistik regresyon, SVM ve diğer bazı yöntemleri kullandığını varsayalım. Bu tahminlere dayanarak sınıfın en iyi tahminini yakalamanın en iyi yolu nedir?

Yanıtlar:


12

Başlamak için iyi bir yer , topluluk öğrenimine genel bir bakış elde etmektir . Özellikle takviye ve torbalamaya bakmak isteyeceksiniz . Başka bir yöntem Netflix Ödülünde "Topluluk" ekibi tarafından kullanılan "karıştırma" veya özellik istifleme olarak adlandırıldı .

Sonra, bunları uygulayan ve oradan çalışan bazı kütüphaneler bulun. Hızlı bir googling , her ikisi de torbalama ve artırma (ve her ikisi de Python) olması gereken scikit ve turuncuya dönüştü .

Sadece topluluk yöntemlerini kullanmanın ötesinde , biraz teori öğrenmek istiyorsanız, o zaman bu makalenin iyi bir sıçrama noktası olacağını düşünüyorum (ilgilendiğiniz bölümlerin referanslarını izleyin).

Şerefe.


(+1) woa, burada harika referanslar: O!
steffen

Teşekkürler. Sadece hakkında bildiğim birkaç konudan biri hakkında bir şeyler katmaya çalışıyorum.
Stumpy Joe Pete

4

'Veri Madenciliğinde Topluluk Yöntemleri: Tahminleri Birleştirerek Doğruluğu Artırma', Seni ve Elder - Pratik topluluk teorisi ve uygulaması üzerinde mükemmel referans, ancak beraberindeki kod R tabanlıdır.

'Makine Öğrenimi: Algoritmik Bir Bakış', S. Marsland - Mükemmel Python tabanlı pratik metin, ancak ilk referans olarak saf topluluk kavramlarına adanmış değil.


2

Stumpy Joe Pete'nin tepkisi mükemmeldi, ancak bir Python uygulamasından bahsettiğinizden beri Universidade Federal de Pernambuco'nun demleme projesinden bahsetmek istedim .

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)

Bu noktada, topluluk oluşturma, kombinasyon, budama ve dinamik seçim var.

Sınırlamalar: sadece sınıflandırma; geçerli genel sürümde yığın yok; çok fazla belge.


0

Salford Systems, Random Forests adında bir sınıflandırma ve regresyon ağacı toplulukları için uygulayan bir yazılım paketine sahiptir. Sunacak ücretsiz R paketim yok. Uygulamalarını açıklayacak bir kullanım kılavuzuna sahip olduklarını düşünüyorum. Analoji ile muhtemelen diğer topluluk yöntemleri için nasıl yapılacağını anlayabilirsiniz.


2
Ağaç toplulukları için birçok harika R paketi vardır: örn. RandomForest (klasik algoritma), party :: cforest (koşullu çıkarım ağaçlarını kullanan rastgele orman), gbm (ağaçların gradyan güçlendirmesi). OP'yi sınıflandırıcı / regresyon agnostik topluluklarını uygulamak istediğini okudum. En basit prosedür elbette ortalama tahminlerdir.
B_Miner

@B_Miner R'de uygulamalar olduğunu bilmek güzel. Belki birisi bana Python'da belirli bir uygulamanın neden arzu edildiğini açıklayabilir (lütfen R hakkındaki cehaletimi affedin). Topluluk yöntemlerinin nasıl uygulanacağını açıklayan kaynakları bilmek için OP'yi okudum. Salford paketi, bazı belgelere sahip olabileceğinin farkında olduğum bir paketti.
Michael R. Chernick

Freund ve Schapire kağıt takviye çalışmalarına dayanırken, bildiğim kadarıyla en iyi sonuçlar ağaç sınıflandırıcılarını kullanarak geldi.
Michael R. Chernick

Şahsen olasılıkların basit ortalaması alınarak gerçekten iyi sonuçlar elde ediyorum - ancak alan adım bir sınıf etiketi seçmekten daha fazla olasılıkla ilgileniyor.
B_Miner

@MichaelChernick sen (... gibi bir Kaggle yarışma) gerçekten yoğun öngörü çalışmasını yaparken, sen seç gitmiyorsun ya artırma veya rastgele ormanlar. Size yardımcı olacak kadar çok modeli birleştirmek isteyeceksiniz (genellikle birden fazla). Dolayısıyla, bu bağlamda, rastgele ormanlar her şeyden çok daha harika olsalar bile, diğer topluluk yöntemleri önemli olacaktır.
Stumpy Joe Pete


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.