Gradyan Arttırma ile Sınıflandırma: [0,1]


18

Soru

Gradient Boosting ile ikili sınıflandırma yaparken tahminin aralığında nasıl tutulduğunu anlamak için uğraşıyorum .[0,1]

İkili bir sınıflandırma problemi üzerinde çalıştığımızı varsayalım ve objektif fonksiyonumuz günlük kaybı, , burada içindeki hedef değişken ve mevcut modelimizdir.y { 0 , 1 } Hyilog(Hm(xi))+(1yi)log(1Hm(xi))y{0,1}H

Bir sonraki zayıf öğrenen yeni modelimiz , de tutması gereken mekanizma nedir? Ya da, belki daha alakalı bir soru, böyle bir mekanizma var mı?H i = H i - 1 + h i H i[ 0 , 1 ]hiHi=Hi1+hiHi[0,1]


Ne yaptığım hakkında daha fazla bilgi

Regresyon ağaçlarını kullanarak gradyan artırmayı uygulamaya çalışıyorum. Bundan kaçınmak için yaptığım şey , sıfırın üstüne bir çarpan ile çarpılmasıdır. Biri ve ben bu aralığı kaybı işlevini en aza indiren seçin . c [ 0 , c maks ] H + c maks h chic[0,cmax]H+cmaxhc

Bu aşağıdaki sorunu getiriyor: Bazı mermilerden sonra, mükemmel bir şekilde sınıflandırılmış bir noktaya sahibim ve sınıflandırıcıyı degrade yönünde itmek için mevcut en iyi bölünme, bu noktayı bir üste itmek istiyor, ki bu gerçekleşmediğinden emin olmak istiyorum ayar . Böylece sonraki tüm yineleme aynı bölmeyi ve aynı seçecektir .c = 0c=0c=0

Ortak düzenlileştirme uygulamalarını denedim

  • ile çarpılarak öğrenme oranının düşürülmesi . Bu sadece sorunu geciktirir.μ = 0.01cμ=0.01
  • Özellik alanını alt örnekleme, ancak bazı noktaların sınıflandırılması çok kolay, "Bu olumlu mu?" ve hemen hemen her "iyi bölünme" bu davranışı gösterir.

Bu bir parametre sorunu olmadığını düşünüyorum ve bunu düzeltmek için daha sağlam bir yol olmalı. Uygulamamın bozulduğu olasılığını atmıyorum, ancak bu sorunu aşan bir şey bulamadım.

Lojistik kayıp bağlamında manipüle ettiğimiz şey bir olasılık olmalı, peki bundan nasıl kaçınırız?


Sezgim, inşa ettiğimiz modeli, , ile sınırlı olacak şekilde sigmoid bir fonksiyona koymak olacak ve sanırım bu işe yarayacaktı, ama başka çözümler olup olmadığını bilmek istiyorum. Gradyan yükseltme sınıflandırma görevlerinde başarılı bir şekilde kullanıldığından, "doğru" (yani gerekçelendirme ile) bir çözüm mevcut olmalıdır.[ 0 , 1 ]H[0,1]


çok yönlü olmasını isteyebilirsiniz , çünkü diğer uzmanlarınızla birlikte davranır. ln ( H )Hln(H)
Alex

Yanıtlar:


23

Bunu doğrusal modeller ve bunların GLM'lere (genelleştirilmiş doğrusal modeller) genişletilmesi ile benzer şekilde düşünmeyi seviyorum.

Doğrusal bir modelde, yanıtımızı tahmin etmek için doğrusal bir işleve uyarız

y^=β0+β1x1+βnxn

Diğer durumlara genelleştirmek için, modelin doğrusal kısmını yanıt ölçeğine dönüştüren bir bağlantı işlevi sunuyoruz (teknik olarak bu ters bir bağlantıdır, ancak bence bu şekilde düşünmek daha kolay, doğrusal öngörücüyü dönüştürmek yanıtı doğrusal bir yordayıcıya dönüştürmektense).

Örneğin, lojistik model sigmoid (veya logit) işlevini kullanır

y^=11+exp((β0+β1x1+βnxn))

ve poisson regresyonu üstel bir fonksiyon kullanır

y^=exp(β0+β1x1+βnxn)

Gradyan artırmalı bir benzetme oluşturmak için, bu modellerin doğrusal kısmını güçlendirilmiş ağaçların toplamı ile değiştiriyoruz. Böylece, örneğin, gauss davası (doğrusal regresyona benzer) iyi bilinir hale gelir

y^=ihi

burada zayıf öğreniciler . Binom vakası lojistik regresyona benzer (cevabınızda belirttiğiniz gibi)hi

y^=11+exp(ihi)

ve poisson artışı poisson regresyonuna benzer

y^=exp(ihi)

Soru, bağlantı fonksiyonu söz konusu olduğunda bu güçlendirilmiş modellere nasıl uyuyor? Bağlantının kimlik işlevi olduğu gauss davası için, zayıf öğrenenlerin mevcut çalışma modelinin kalıntılarına uydurma sıkça duyulan mantra çalışır, ancak bu daha karmaşık modeller için genelleştirilmez. İşin püf noktası, minimize edilmekte olan kayıp fonksiyonunu modelin doğrusal kısmının (yani GLM formülasyonunun kısmı) bir fonksiyonu olarak .iβixi

Örneğin, binom kaybı genellikle

iyilog(pi)+(1yi)log(1pi)

Burada, kayıp bir fonksiyonu olan aynı yanıt olarak ölçek ve ilgili tahmin değerleri doğrusal tahmin bir doğrusal olmayan dönüşümüdür . Bunun yerine, bunu bir fonksiyonu olarak tekrar ifade edebiliriz (bu durumda günlük oranları olarak da bilinir)pipiLiLi

iyiLilog(1+exp(Li))

Daha sonra göre bunun gradyanını alabilir ve bu miktarı doğrudan en aza indirmek için artırabiliriz.L

Sadece en sonunda, kullanıcı için tahminler üretmek istediğimizde, tahminleri cevapla aynı ölçekte koymak için bağlantı işlevini zayıf öğrenicilerin son sırasına uygularız. Modeli takarken, tüm zaman boyunca dahili olarak doğrusal ölçekte çalışıyoruz.


2
"Modelin doğrusal kısmının bir fonksiyonu olarak en aza indirilen kayıp fonksiyonunu yaz" ile anlaşın. Ama günlük olasılıkları türetmeden anlamak için basit bir yol olduğunu düşünüyorum: modelin doğrusal kısmı için, yani , kayıp fonksiyonunu ve yalancı artık sadece kayıp wrt türevini yapmaktır . r(,)i(yilog11+er+(1yi)log(111+er))r
user2830451

@ matthew-drury Lütfen aynı algoritmanın çalışmak için genişletildiği aynı algoritmanın K sınıfı çok terimli bölümüne biraz ışık ekleyebilir misiniz?
MixCoded

6

Bazı araştırmalardan sonra, sezgilerimin ve Alex R. yorumunun doğru olduğu anlaşılıyor .

tahminleri olan sürekli bir model oluşturmak için , modelini bir lojistik fonksiyona (Wikipedia) koyabilir , öyle ki için Gradyan artırıcı adımlar daha sonra göre türevi alır ve lojistik fonksiyonu maliyet fonksiyonunun bir parçasıymış gibi modelini günceller ve çalışır.[0,1]HHRH

11+eH[0,1]
H

Bu yazıda ileri sürülmüştür Katkı lojistik regresyon: artırmanın bir istatistik görünümünü inşa etmek Friedman, HASTIE ve Tibshirani tarafından, LogitBoost (Wikipedia) , bir uyarlamasını AdaBoost (Wikipedia) Lojistik kaybı için.

Çok temel bir ifadeyle, bir sigmoid ilavesiyle doğrusal regresyondan lojistik regresyona geçmek mümkün ise, regresyon arttırmayı sınıflandırma arttırmaya dönüştürmek için de çalışır.

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.