Rastgele Orman regresörü veya sınıflandırıcı seçmeli miyim?


11

Ben rastgele orman tarafından bir ikili hedef sınıf ile bir veri kümesi sığdırmak. Python'da bunu randomforestclassifier veya randomforestregressor ile yapabilirim.

Sınıflandırmayı doğrudan randomforestclassifier'dan alabilirim veya önce randomforestregressor'u çalıştırabilir ve bir dizi tahmini puan geri alabilirim (sürekli değer). Sonra tahmin sınıfları puan kümesinden türetmek için bir kesme değeri bulabilirim. Her iki yöntem de aynı hedefe ulaşabilir (yani test verileri için sınıfları tahmin edin).

Ayrıca gözlemleyebilirim ki

randomforestclassifier.predict_proba(X_test)[:,1]) 

farklı

randomforestregressor.predict(X_test)

Bu yüzden her iki yöntemin de geçerli olduğunu ve rasgele orman uygulamasında hangisinin daha iyi olduğunu onaylamak istiyorum?


1
Benim ani tepkim, sınıflandırıcıyı kullanmanız gerektiğidir, çünkü tam olarak bunun için üretilmiştir, ancak çok fazla fark yarattığından% 100 emin değilim. Regresörü kullanmak, lojistik regresyon yerine lineer regresyon kullanmak gibi bir şeydir - işe yarar, ancak birçok durumda da işe yaramaz. Doğru bir cevaba gelebilirim ama bir günlüğüne değil.
Peter Ellis

Yanıtlar:


7

Sınıflandırıcıyı kullanın. Hayır, ikisi de geçerli değil.

İlk olarak, kendinizi Regresyon ve Sınıflandırma konusunu okumanızı tavsiye ederim. Çünkü ML'yi bunun hakkında hiçbir şey bilmeden kullanmak, farkına varamayacağınız yanlış sonuçlar verecektir. Ve bu oldukça tehlikeli ... ( biraz etrafınızda hangi yönden silahınızı tutmanız gerektiğini ya da önemli olup olmadığını sormak gibi )

Sınıflandırıcı veya regresör kullanıp kullanmadığınız yalnızca çözdüğünüz sorunun türüne bağlıdır. Bir ikili sınıflandırma sorununuz var, bu yüzden sınıflandırıcıyı kullanın.

Önce randomforestregressor'u çalıştırabilir ve bir dizi tahmini olasılık geri alabilirim.

HAYIR. Regresyondan olasılık alamazsınız. Sadece verdiğiniz değerleri "tahmin etmeye" çalışır (bu durumda sadece 0 ve 1). Bu, 1'in altındaki veya 0'ın altındaki değerlerin, çıktı olarak ( sınıflandırma olarak adlandırılır !) Ancak sürekli değerler olarak beklemediği için regresyon çıkışı olarak mükemmel şekilde geçerli olduğu anlamına gelir .

Belirli bir noktanın belirli bir sınıfa ait olması için "olasılıklar" ( bunların iyi kalibre edilmiş olasılıklar olması gerekmediğini ) istiyorsanız, bir sınıflandırıcı eğitin (böylece verileri sınıflandırmayı öğrenir ) ve ardından .predict_proba (), bu da olasılığı tahmin eder.

Sadece burada bahsetmek gerekirse: .predict vs .predict_proba (bir sınıflandırıcı için!)
.Predict sadece .predict_proba çıktısını alır ve her şeyi sırasıyla belirli bir eşiğin altında (genellikle 0,5) 0 olarak değiştirir.

Açıklama: emin, dahili olarak, onlar "son katman" vb hariç aynıdır! Yine de, onları (veya çözdükleri sorunu daha iyi) tamamen farklı olarak görün!

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.