Rastgele bir ormandaki en uygun ağaç sayısı, öngörücü sayısına bağlı mıdır?


46

Birisi yordayıcıların sayısı büyük olduğunda neden rastgele ormandaki çok sayıda ağaca ihtiyacımız olduğunu açıklayabilir mi? Optimum ağaç sayısını nasıl belirleyebiliriz?

Yanıtlar:


70

Rastgele orman, bir ağaç yetiştirmek için torbalama (hepsinden ziyade bir gözlem örneği seçerek) ve rasgele alt alan yöntemi (hepsinden ziyade bir özellik örneği seçerek), başka bir deyişle - torbalama özelliğini kullanır ). Gözlem sayısı büyükse, ancak ağaç sayısı çok küçükse, bazı gözlemler yalnızca bir kez veya hiç tahmin edilmeyecektir. Prediktör sayısı büyük ancak ağaç sayısı çok küçükse, kullanılan tüm alt alanlarda bazı özellikler (teorik olarak) gözden kaçırılabilir. Her iki durumda da rastgele orman tahmin gücünün düşmesine neden olur. Ancak sonuncusu oldukça uç bir durumdur, çünkü her bir düğümde alt alan seçimi yapılır.

Sınıflandırma sırasında alt uzay boyutluluğu varsayılan olarak (oldukça küçük, , toplam tahmin sayısıdır), ancak bir ağaç birçok düğüm içerir. Regresyon sırasında , bir ağaç daha az düğüm içerdiği halde , alt uzay boyutluluğu varsayılan olarak (yeterince büyük). Bu nedenle, rastgele bir ormandaki en uygun ağaç sayısı, yalnızca aşırı durumlarda öngörücü sayısına bağlıdır.ppp/3

Algoritma resmi sayfası devletler rastgele orman overfit değil yaptığı ve istediğiniz kadar çok ağaçlar gibi kullanabilirsiniz. Fakat Mark R. Segal (14 Nisan 2004. "Makine Öğrenme Kriterleri ve Rastgele Orman Regresyonu." Biyoinformatik ve Moleküler Biyoistatistik Merkezi) bazı gürültülü veri kümeleri için uygun olduğunu buldu. Böylece optimal sayıyı elde etmek için rastgele ormanı bir ntreeparametre ızgarasında (basit fakat daha fazla CPU tüketen) eğitmeyi deneyebilir veya birçok ağaçlı rastgele bir orman inşa edebilirsiniz keep.inbag, ilk ağaçlar için çanta dışı (OOB) hata oranlarını hesaplayabilirsiniz ( 'nin den değiştiği yer ) ve ağaç sayısına karşılık OOB hata oranını gösterir (daha karmaşık ancak daha az CPU tüketen).nn1ntree


-2

Bu maddeye göre

Rastgele bir ormanın 64 - 128 ağaç arasında çok sayıda ağaç olması gerektiğini öne sürüyorlar . Bununla, ROC AUC ile işlem süresi arasında iyi bir denge kurmanız gerekir.


10
Elde ettikleri sonuçların veri setindeki özelliklerin sayısına bağımlı olmaması çok garip görünüyor ...
naught101

-5

1000'den fazla özelliğe ve 1000 sıraya sahipseniz sadece sıra ağaç sayısını alamıyorsanız bazı şeyleri eklemek istiyorum.

önerim, aralarında ağaç sayısının oranını bulmak için çapraz onaylama işlemine başlamadan önce cpu ve ram sayısını tespit etmeniz gerektiğidir.

Eğer sikit kullanıyorsanız python ile öğrenirseniz, n_jobs=-1tüm işlemleri kullanma seçeneğiniz vardır , ancak her çekirdeğin maliyetini gerekli kılarsanız bu formülü kullanabilirsiniz.

ntree = sqrt (satır sayısı * sütun sayısı) / numberofcpu


6
Bence ifadelerinize kanıt ve gerekçe sunmak için bunu düzenlemelisiniz.
mdewey
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.