Doğrusal temel öğrenen, güçlendirmede nasıl çalışır? Ve xgboost kütüphanesinde nasıl çalışır?


9

XGBoost'ta doğrusal objektif fonksiyonun ve doğrusal takviyelerin nasıl uygulanacağını biliyorum. Benim somut sorum şudur: algoritma artık (veya negatif eğime) uyduğunda, her adımda bir özellik (yani tek değişkenli model) veya tüm özellikler (çok değişkenli model) kullanıyor mu?

XGBoost'taki doğrusal artışlarla ilgili belgelere yapılan herhangi bir referans takdir edilecektir.

DÜZENLEME: XGBoost'ta 'güçlendirici' parametresi 'gblinear' olarak ayarlanarak doğrusal yükseltmeler uygulanabilir. Doğrusal takviye hakkında faydalı bilgiler için bkz. Http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/ . Ben objektif fonksiyon hakkında (ki aynı zamanda lineer olabilir) değil, onlar canlandırıcı artırmak hakkında konuşuyorum unutmayın.

Teşekkürler!


1
Nasıl uygulandığını bilmiyorum ama bir seferde sadece bir özelliği dikkate alması için hiçbir neden göremiyorum
Alexey Grigorev

@AlexeyGrigorev büyük olasılıkla bir seferde birçok özellik gerektirir, ancak daha sonra bu özellikler nasıl seçilir? Doğrusal takviye için belirli bir süreçle ilgili herhangi bir belge çok açıklayıcı olacaktır.
Escachator

Yanıtlar:


17

Sorunuza kısa cevap:

algoritma artık (veya negatif eğime) uyduğunda her adımda bir özellik (yani tek değişkenli model) veya tüm özellikler (çok değişkenli model) kullanıyor mu?

Algoritma bir özellik kullanıyor veya tüm özellikler kurulumunuza bağlıdır. Aşağıda listelenen uzun cevabımda, hem karar kütüğü hem de doğrusal öğrenen örneklerinde, tüm özellikleri kullanıyorlar, ancak isterseniz bir özellik alt kümesine de sığabilirsiniz. Örnekleme sütunları (özellikler), özellikle çok sayıda özelliğiniz varsa, modelin varyansını azaltmak veya modelin "sağlamlığını" artırmak olarak görülmektedir.

İçinde xgboost, ağaç tabanı öğrenicisi için, colsample_bytreeher yinelemeye uyacak şekilde örnek özellikleri ayarlayabilirsiniz . Doğrusal temel öğrenen için böyle seçenekler yoktur, bu nedenle tüm özelliklere uymalıdır. Buna ek olarak, çok fazla insan xgboost'ta doğrusal öğrenen veya genel olarak gradyan artırıcı kullanmaz.


Güçlendirme için zayıf öğrenci olarak doğrusal için uzun cevap:

Çoğu durumda, doğrusal öğrenenleri temel öğrenen olarak kullanmayabiliriz. Nedeni basit: Birden fazla doğrusal modelin birlikte eklenmesi yine de doğrusal bir model olacaktır.

Modelimizi güçlendirirken temel öğrencilerin bir toplamıdır:

f(x)=m=1Mbm(x)

burada , yineleme sayısıdır, yinelemenin modelidir .Mbmmth

Örneğin, temel öğrenci doğrusalsa, sadece yineleme çalıştırdığımızı ve ve ,2b1=β0+β1xb2=θ0+θ1x

f(x)=m=12bm(x)=β0+β1x+θ0+θ1x=(β0+θ0)+(β1+θ1)x

ki bu basit bir doğrusal model! Başka bir deyişle, topluluk modeli temel öğrenen ile "aynı güce" sahiptir!

Daha da önemlisi, eğer temel modeli temel öğrenci olarak kullanırsak, desteklemede çoklu yinelemeler yerine gitmek yerine doğrusal sistemi çözerek bir adım yapabiliriz .XTXβ=XTy


Bu nedenle, insanlar temel öğrenci olarak doğrusal modelden başka modeller kullanmak isterler. İki ağaç eklemek bir ağaca eşit olmadığından ağaç iyi bir seçenektir. Basit bir vaka ile göstereceğim: karar kütüğü, sadece 1 bölünmüş bir ağaç.

Verileri basit ikinci dereceden bir işlev, tarafından oluşturulan bir işlev uydurma yapıyorum . Doldurulmuş kontur zemin gerçeği (sol) ve son karar güdük artırma (sağ).f(x,y)=x2+y2

resim açıklamasını buraya girin

Şimdi, ilk dört yinelemeyi kontrol edin.

resim açıklamasını buraya girin

Not, doğrusal öğreniciden farklı olarak, 4. yinelemedeki modele, diğer parametrelerle bir yineleme (bir tek karar kütüğü) ile ulaşılamaz.


Şimdiye kadar, insanların neden doğrusal öğrenenleri temel öğrenen olarak kullanmadığını açıkladım. Ancak, hiçbir şey insanların bunu yapmasını engellemez. Temel öğrenci olarak doğrusal modeli kullanırsak ve yineleme sayısını kısıtlarsak, doğrusal bir sistemi çözmeye eşittir, ancak çözme işlemi sırasında yineleme sayısını sınırlandırırız.

Aynı örnek, ancak 3B çizimde, kırmızı eğri verilerdir ve yeşil düzlem son uyumdur. Kolayca görebilirsiniz, son model doğrusal bir modeldir ve z=mean(data$label)x, y düzlemine paraleldir. (Bunun nedenini düşünebilirsiniz? Bunun nedeni, verilerimizin "simetrik" olmasıdır, bu nedenle uçağın eğilmesi kaybı artıracaktır). Şimdi, ilk 4 iterasyonda neler olduğuna bakın: Takılan model yavaşça optimal değere (ortalama) yükseliyor.

resim açıklamasını buraya girin


Sonuç olarak, doğrusal öğrenen yaygın olarak kullanılmamaktadır, ancak hiçbir şey insanların onu kullanmasını veya bir R kütüphanesinde uygulamasını engellemez. Buna ek olarak, modeli normalleştirmek için kullanabilir ve yineleme sayısını sınırlayabilirsiniz.

İlgili yazı:

Doğrusal Regresyon için Gradyan Arttırma - neden çalışmıyor?

Karar kütüğü doğrusal bir model midir?


1
N ağaç kombinasyonunun bir ağaç olduğunu söyleyebilirim, n büyüklüğünün önemi yok!
Metariat

@Metariat NO !, kombinasyon ağaçları bir ağaç DEĞİLDİR !. ağaç için bölünmüş bir "T" şekli göreceksiniz. Ama güçlendirilmiş güdük "#" şekli göreceksiniz. yani, bölünme diğer bölünmeleri geçecek!
Haitao Du

N ağaçtan bir örnek verebilir misiniz? Sana eşdeğer bir ağaç vereceğim!
Metariat

@Metariat üzgünüm şimdilik vaktim yok. Ama eminim karar kütüğünü artırmak bir karar ağacı tarafından kolayca oluşturulamaz. Zamanım olduğunda bu soruya geri döneceğim.
Haitao Du

1
N ağaç kombinasyonunun hala bir ağaç olduğunu kabul ediyorum, ancak bu ağaç önemli ölçüde daha büyük olacak. En kötü durumda yaprak sayısı, tüm girdi ağaçlarındaki yaprak sayısının çarpımına eşittir, bu nedenle bu ağacın karmaşıklığı pratik değildir. Öte yandan, doğrusal fonksiyonlarda karmaşıklık tamamen aynıdır.
Tomek Tarczynski
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.