Gradient Boosting Tree: “ne kadar değişken o kadar iyi”?


11

Gönderen öğretici XGBoost, ben her ağaç büyür, tüm değişkenler bölünmüş düğümlere seçilecek taranır ve maksimum kazanç bölünmüş bir seçilecektir düşünüyorum. Benim sorum şu: Veri kümesine bazı gürültü değişkenleri eklersem, bu gürültü değişkenleri değişken seçimini etkiler mi (her ağaç büyümesi için)? Benim mantığım, bu gürültü değişkenleri maksimum kazanç bölünmesi VERMEDİĞİNDEN, asla seçilmeyecekleri için ağaç büyümesini etkilemezler.

Cevabınız evet ise, "daha fazla değişken XGBoost için daha iyi" olduğu doğru mu? Eğitim zamanını düşünmeyelim.

Ayrıca, cevap evet ise, "modelden önemli olmayan değişkenleri filtrelememiz gerekmez" doğrudur.

Teşekkür ederim!

Yanıtlar:


12

Benim mantığım, bu gürültü değişkenleri maksimum kazanç bölünmesi VERMEDİĞİNDEN, asla seçilmeyecekleri için ağaç büyümesini etkilemezler.

Bu sadece egzersiz setinizdeki örnek sayısının tüm varyasyonları iyi kapsadığı çok büyük, neredeyse sonsuz veri setleri için mükemmel bir şekilde doğrudur. Pratikte, yeterli boyutlarla çok sayıda örnekleme gürültüsü elde edersiniz, çünkü olası örneklerin kapsamı verilerinizin daha fazla boyutuna sahip olduğundan daha zayıftır.

Hedef değişkenle tesadüfen ilişkilendirilen zayıf değişkenlerdeki gürültü, algoritmaların etkinliğini sınırlayabilir ve bu, değerlendirilen verilerin zaten küçük bir alt kümeye gruplandığı karar ağacında daha derin bölünmelerde daha kolay olabilir.

Ne kadar çok değişken eklerseniz, belirli bir kombinasyon için bölünmüş seçim algoritmasına iyi görünen zayıf korelasyonlu değişkenlere sahip olmanız daha olasıdır, bu da daha sonra amaçlanan sinyal yerine bu gürültüyü öğrenen ağaçlar oluşturur ve sonuçta kötü genelleme.

Pratikte, XGBoost'u küçük ölçekte gürültüye karşı oldukça sağlam buldum. Bununla birlikte, benzer nedenlerden dolayı, bazen daha iyi korelasyonlu verilere tercih olarak, düşük kaliteli mühendislik değişkenleri seçeceğini de buldum. Dolayısıyla, "daha fazla değişken XGBoost için daha iyi" olan ve olası düşük kaliteli özellikleri önemsemeniz gereken bir algoritma değildir.


çok hoş. Teşekkürler! Sizce XGBoost'u takmadan önce özellik seçiminin deneyiminize dayanarak gerekli olduğunu düşünüyor musunuz?
WCMC

@Frank: Belki. Tüm özelliklerle eşit olarak başlayabilir ve size yardımcı olması için xgboost değişken önem raporu kullanabilirsiniz. Genel olarak, XGBoost sizi özellik seçimi ve mühendislikle ilgili olağan endişelerden tamamen kurtarmaz.
Neil Slater

Merhaba @Neil, lütfen bir şansınız olduğunda datascience.stackexchange.com/questions/17288/… adresine bakın . Teşekkür ederim.
WCMC

@Frank: Dün yaptım ve açıklığa kavuşturmak için bir soru bıraktım çünkü sayılar biraz uzakta görünüyordu.
Neil Slater

Merhaba @Neil, önceki poster sorunuza cevap vermediğinden, burada kendi projemle yeniden gönderiyorum . Ayrıca orada veri seti ve R komut dosyası sağladı, umarım başkalarının sorunu anlaması daha uygun olur. Biraz yardım etmek isteyip istemediğinizi takdir ediyorum.
WCMC
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.