2015-06-12 20 views
13

Sınıfta bir dengesizlik problemim var ve scikit-learn (> = 0.16) ile uygulamayı kullanarak ağırlıklı bir Rasgele Ormanı denedim.scikit-learn: Rastgele orman class_weight ve sample_weight parametreleri

ben uygulama sınıfı dengesizliği çözmeye yardımcı olmak için bir ağaç yapıcı içinde class_weight parametreyi ve formda yöntemde sample_weight parametre alır fark etmiş. Son iki kiloya karar vermek için bu ikisi çarpılır gibi görünüyor.

sorun anlamakta güçlük şu: bu ağırlıklar kullanılır ne ağaç inşaat/eğitim/tahmin aşamaları ise

  • ? Ağırlıklı ağaçlar için bazı kağıtlar gördüm, ama scikit'in uyguladığıdan emin değilim.
  • Sınıf_yükü ile sample_weight arasındaki fark tam olarak nedir?

cevap

11

RandomForest'ler, çok iyi belgelenmiş olan Ağaçlar üzerine kurulmuştur. Ağaçlar örnek ağırlığını nasıl kullandıklarını kontrol edin: - Algoritma

  • Decision tree API kullanılır tam olarak ne söyler -

    • User guide on decision trees sample_weight belirledikten gibi rastgele ormanlar için, class_weight ürünüdür ağaçlar (tarafından nasıl kullanıldığını açıklar ve sample_weight). class_weight ve sample_weight arasındaki fark olarak

  • : çok kendi veri türlerini doğasıyla basit olarak tespit edilebilir. sample_weight, 1D dizi uzunluğu n_samples olup, eğitim için kullanılan her bir örneğe açık bir ağırlık atar. class_weight, her sınıfın sözlüğünü, bu sınıf için tek biçimli bir ağırlığa (ör. {1:.9, 2:.5, 3:.01}) veya bu sözlüğü otomatik olarak nasıl belirleyeceğini belirten bir dizedir.

    Yani belirli bir örneğin eğitim ağırlık bunun ürünü açıkça sample_weight adını taşıyordu (veya 1 sample_weight eğer sağlanmaz), ve class_weight (veya 1 class_weight eğer sağlanmaz) bulunuyor.

    +0

    Temel sınıflandırıcı olarak DT hakkında haklısınız. Ayrıca, bu ağırlıkların eğitim sırasında nasıl kullanıldığına (örneğin, bir karar düğümünde kirliliğe karar verme vb.) Ve öngörme sırasında da ilgileniyorum. – user36047

    +0

    "fit()" yöntemi altındaki "sample_weight" belgesine bakın: [Decision tree API] (http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn. tree.DecisionTreeClassifier) ​​ – Andreus

    +0

    Her ne kadar kristal net olmasa da, ben malzemelerin linklerini sindirdiğimde her şeyin daha net olacağını düşünüyorum :) – user36047

    İlgili konular