Lojistik regresyon: gerçek pozitifleri en üst düzeye çıkarmak - yanlış pozitifler


9

Bir lojistik regresyon modelim var (elastik net regülasyonlu R'de glmnet ile uyumlu) ve gerçek pozitifler ve yanlış pozitifler arasındaki farkı en üst düzeye çıkarmak istiyorum. Bunu yapmak için aşağıdaki prosedür akla geldi:

  1. Standart lojistik regresyon modeline uygun
  2. Tahmin eşiğini 0,5 olarak kullanarak, tüm pozitif tahminleri belirleyin
  3. Olumlu tahmin edilen gözlemler için ağırlık 1, diğerleri için 0 atayın
  4. Ağırlıklı lojistik regresyon modeline uygun

Bu yaklaşımdaki kusurlar ne olurdu? Bu soruna devam etmenin doğru yolu ne olabilir?

Gerçek pozitiflerin sayısı ile yanlış negatifler arasındaki farkı en üst düzeye çıkarmak istememin nedeni başvurumun tasarımından kaynaklanıyor. Bir sınıf projesinin bir parçası olarak, bir çevrimiçi pazarda özerk bir katılımcı inşa ediyorum - eğer modelim bir şey satın alabileceğini ve daha sonra daha yüksek bir fiyata satabileceğini tahmin ederse, bir teklif verir. Sabit maliyetlere ve birim fiyat artışlarına bağlı olarak lojistik regresyon ve çıktı ikili sonuçlarına (kazan, kaybet) bağlı kalmak istiyorum (her işlemde aynı tutarı kazanıyorum ya da kaybediyorum). Yanlış bir pozitif beni incitir, çünkü bir şey satın aldığım ve daha yüksek bir fiyata satamayacağım anlamına gelir. Ancak, yanlış bir negatif bana zarar vermez (sadece fırsat maliyeti açısından), çünkü sadece satın almazsam, ama olsaydım para kazanırdım. Benzer şekilde,

0.5 kesintisinin tamamen keyfi olduğunu kabul ediyorum ve doğru / yanlış pozitifler arasında en yüksek farkı veren tahmin eşiği üzerindeki 1. adımdaki modeli optimize ettiğimde 0.4'e daha yakın olduğu ortaya çıkıyor. Bunun verilerimin çarpık doğasından kaynaklandığını düşünüyorum - negatifler ve pozitifler arasındaki oran yaklaşık 1: 3.

Şu anda aşağıdaki adımları izliyorum:

  1. Verileri antrenmana / teste böl
  2. Antrenmana uygun model, test setinde tahminler yapma ve gerçek / yanlış pozitifler arasındaki farkı hesaplama
  3. Modeli tam olarak sığdırın, test setinde tahminler yapın ve gerçek / yanlış pozitifler arasındaki farkı hesaplayın

Gerçek / yanlış pozitifler arasındaki fark, eğitim setinin tam setin bir altkümesi olmasına rağmen, 3. adımda 2. adımdan daha küçüktür. # 3'teki modelin daha gerçek negatiflere ve daha az yanlış negatiflere sahip olup olmadığı umurumda olmadığından, olasılık işlevini değiştirmeden yapabileceğim bir şey var mı?


Bu yaklaşımla kusurların ne olacağını sormadan önce, belki de bu yaklaşımın neden çalışması gerektiğini yazmalısınız. Neden 2-4. Adımların sonucu iyileştirdiğini düşünüyorsunuz?
user31264

Ayrıca, sonunda modeli 1. adımdan düşürüp 4. adımdan yalnızca modeli kullandığınız konusunda haklı mıyım?
user31264

Evet, tüm veri setiyle donatılmış modeli kullanmayı planlıyordum, ancak bunu yapmak mantıklı değil çünkü eğitim seti ile donatılmış modeli yetersiz performans gösteriyor.
tmakino

2
Şu anda bu konuda bir kaynağım yok ... ancak (Alıcı Çalışma Karakteristiği) Eğrisi (veya AUC) altındaki alanı en üst düzeye çıkarmak için bir lojistik regresyon modelini optimize edebileceğinizin farkında mısınız? Tekerleği yeniden icat etmeye gerek yok.
AdamO

2
Burada tam olarak anlamadığım şey, modelinize gelecekteki tahmini fiyat hakkında hiçbir şey eklemediğiniz veya optimizasyona kar / zarar büyüklüğünü dahil etmediniz. Her ikisi de yanlış pozitif olmasına rağmen,% 99'luk bir zarara yol açan "satın alma" kararı,% 1'lik bir zarara yol açan "satın alma" kararından çok daha kötüdür.
olasılık

Yanıtlar:


24

Hiç lojistik regresyon istemiyor gibisiniz. Söylediğiniz şey "Gerçek pozitifler ve yanlış pozitifler arasındaki farkı en üst düzeye çıkarmak istiyorum." Bu iyi bir nesnel işlevdir, ancak lojistik regresyon değildir. Ne olduğunu görelim.

İlk olarak, bazı gösterimler. Bağımlı değişkenYben:

Yben={1Satın alma ben kârlıydı0Satın alma ben kârsızdı

Bağımsız değişkenler (satın almanız gerekip gerekmediğini tahmin etmek için kullandığınız şeyler) Xben(bir vektör). Tahmin etmeye çalıştığınız parametreβ(bir vektör). Ne zaman satın alacağınızı tahmin edeceksinizXbenβ>0. Gözlem içinben, ne zaman satın alacağınızı tahmin edersiniz Xbenβ>0 veya gösterge fonksiyonu 1Xbenβ>0=1.

Gözlem üzerinde gerçek bir pozitif olay olur ben her ikisi de Yben=1 ve 1Xbenβ>0=1. Gözlemde yanlış pozitifben ne zaman olur Yben=0 ve 1Xbenβ>0=1. Bulmak istiyorsunβ gerçek pozitifleri eksi yanlış pozitifleri en üst düzeye çıkarır veya:

mbirxβΣben=1N-Yben1Xbenβ>0-Σben=1N-(1-Yben)1Xbenβ>0

Bu, ayrı bir yanıt modelini tahmin etmek için özellikle tanıdık bir objektif işlev değildir, ancak objektif işlev üzerinde küçük bir cebir yaparken benimle birlikte taşıyın:

Σben=1N-Yben1Xbenβ>0-Σben=1N-(1-Yben)1Xbenβ>0=Σben=1N-Yben1Xbenβ>0-Σben=1N-1Xbenβ>0+Σben=1N-Yben1Xbenβ>0=Σben=1N-Yben1Xbenβ>0-Σben=1N-1Xbenβ>0+Σben=1N-Yben1Xbenβ>0+Σben=1N-1-Σben=1N-1+Σben=1N-Yben-Σben=1N-Yben=Σben=1N-Yben1Xbenβ>0+Σben=1N-(1-Yben)(1-1Xbenβ>0)-Σben=1N-1+Σben=1N-Yben

Tamam, şimdi bu toplamdaki son iki terimin, β, böylece maksimizasyonda onları görmezden gelebiliriz. Son olarak, çözmek istediğiniz sorunun "gerçek pozitifler ve yanlış pozitifler arasındaki farkı en üst düzeye çıkar" ın bu sorunla aynı olduğunu gösterdik:

mbirxβΣben=1N-Yben1Xbenβ>0+Σben=1N-(1-Yben)(1-1Xbenβ>0)

Şimdi, bu tahmincinin bir adı var! Maksimum puan tahmincisi olarak adlandırılır. Ayrık bir yanıt modelinin parametresini tahmin etmenin çok sezgisel bir yoludur. Parametre, doğru tahmin sayısını en üst düzeye çıkaracak şekilde seçilir. İlk terim gerçek pozitiflerin sayısı ve ikinci terim gerçek negatiflerin sayısıdır.

Bu (ikili) ayrık yanıt modelini tahmin etmenin oldukça iyi bir yoludur. Örneğin tahminci tutarlıdır. (Manski, 1985, Ekonometri J) Bu tahmin edicinin bazı tuhaflıkları var. Birincisi, küçük örneklerde benzersiz değildir. Birini bulduktan sonraβ bu da maksimizasyonu, sonra diğer β veri kümenizdeki tam olarak aynı tahminleri yapar maksimizasyonu çözer --- yani, sonsuz sayıda βBulduğunuza yakın. Ayrıca, tahminci asimptotik olarak normal değildir ve tipik maksimum olabilirlik tahmincilerinden daha yavaş yakınsar - küp köküN- kök yerine N-yakınsama. (Kim ve Pollard, 1990, Stat of Ann) Sonunda, önyükleme yapmak için önyükleme kullanamazsınız. (Abrevaya ve Huang, 2005, Econometrica) Bu tahmin ediciyi kullanan bazı makaleler olsa da --- Uluslararası Tahminler Dergisi Caudill'in NCAA basketbol turnuvasında sonuçları tahmin etmede eğlenceli bir tane var, Nisan 2003, s. 19, iss. 2, sayfa 313-17.

Bu sorunların çoğunun üstesinden gelen bir tahminci Horowitz'in düzeltilmiş maksimum puan tahmincisidir (Horowitz, 1992, Econometrica ve Horowitz, 2002, Ekonometri J). Kök verir.N-önyükleme için uygun tutarlı, asimptotik olarak normal, benzersiz tahmin edici. Horowitz, tahmincisini web sayfasında uygulamak için örnek kod sağlar .


Maliyet fonksiyonumu maksimum puan tahmincisi ile eşitlemek için cebiri dahil ettiğiniz için teşekkür ederiz. İçin verilen gösterge fonksiyonu ileβTx>0, bu her zaman sınıflandıracağım anlamına mı geliyor? p>0.5 olumlu olarak ve p<=0.5negatif olarak? Ayrıca, p (model çıkışı) girişli lojistik fonksiyon kullanılarak hesaplanırβTx? Şu an kullandığım yaklaşım AUC maliyet fonksiyonudur, daha sonra gerçek pozitifler ve yanlış pozitifler arasında en yüksek fark olan değeri bulmak için tahmin eşiğini optimize eder. Cevabınızın açıkça maksimum farkı bulduğunu anlıyorum
tmakino

(devam) maliyet fonksiyonunda tanımlayarak (ve tahmin eşiğini 0,5'e sabitleyerek), böylece attığım ara adımı atlayarak. Ancak, AUC zaten kullandığım regresyon paketinde (glmnet) bulunurken, maksimum skor esimatoru yok. Hedefim göz önüne alındığında yaklaşımımın makul olduğunu düşünüyor musunuz?
tmakino

1
Ne yazık ki, AUC yöntemine çok aşina değilim, bu yüzden burada ne kadar uygun olduğunu söyleyemem. Maksimum puan tahmincisinde, gerçekten birpçünkü lojistik bir model almıyorsunuz. Sadece 1'i tahmin etmeye karar veriyorsunuz.Xbenβ>0 ve sonra en iyisini bulmak β.
Bill

15

Bu yaklaşımla ilgili yanlış olan birkaç şey vardır:

  • Sürekli bir olasılık için bir kesim arayışı
  • 0,5 isteğe bağlı bir kesme kullanma
  • "Yanlış pozitif" ve "yanlış negatif" maliyetinin tüm denekler için aynı olduğunu varsayarsak
  • Kesirli olmayan ağırlıklar kullanma
  • Tahmini ağırlıkları kullanma
  • Maksimum olabilirlik tahminini geçersiz kılma
  • Optimum Bayes karar teorisini kullanmamak, optimum kararların tam bilgiye (bir şeyin başka bir şeyi geçip geçmediğine değil) ve fayda / kayıp / maliyet fonksiyonlarına dayandığını belirtir.

1
Teşekkürler, lojistik regresyona bağlı kalmanın bir yolu var mı (yani olasılık fonksiyonuna dokunmadan)?
tmakino

"Bu" nun ne olduğuna bağlı. Nihai hedef nedir ve model nasıl kullanılacak?
Frank Harrell

Sorularımı, elde etmeye çalıştığım şeyler hakkında ayrıntılı bilgi vermek için düzenledim.
tmakino

1
Bir şeyi kaçırmadıkça, eklediğiniz hiçbir şey bir kesme noktasının kullanılmasını ima etmez. Öngörülen bir olasılıkın kendi hata oranını sağladığını unutmayın.
Frank Harrell

8

Açıklamaya çalıştığınız şeye ulaşmak için en iyi yaklaşım muhtemelen lojistik regresyon parametrelerini bir AUC kaybı fonksiyonu ile doğrudan optimize etmektir. Zhou'nun "Tanı Tıbbında İstatistiksel Yöntemler" ders kitabı bu yöntemi anlatmaktadır.

AUC (alıcının çalışma karakteristik eğrisinin altındaki alan- veya ROC), kabaca rastgele örneklenmiş bir "kasa" nın "kontrol" den daha yüksek bir işaretleyici değerine sahip olma olasılığı olarak yorumlanır. Bu, model ayrımcılığının veya sonucu doğru bir şekilde sınıflandırma yeteneğinin bir ölçüsüdür. ROC, birim düzlemde, bir regresyon modelinde olası tüm işaretleyici değerleri (uygun sonuçlar) için 1 - özgüllüğü duyarlılığı gösteren bir eğridir.

Lojistik regresyon modelinin geleneksel formülasyonunu kullanarak,

logit Pr(Y=1|X)=α+βX

model parametreleri için log olasılık oranları ile, optimum parametreleri elde etmek için kabaca AUC tabanlı bir kayıp fonksiyonu tanımlayabilirsiniz. Olasılık temelli lojistik regresyondan farklı olarak, AUC regresyonu düzenli değildir ve parametre uzayında lokal maksimaya yaklaşabilir.


1
AUC'nin burada en iyi olmadığını düşünürdüm çünkü yanlış negatif için küçük bir kayıp var, ancak yanlış pozitif için büyük kayıp var.
olasılık

Asıl sorun OP'nin sürekli bir sonuca (ROI) sahip olması ve bunu bir kayıp / kazanç olarak ikiye ayırmasıdır. Ancak saçları bir kenara ayırmak, genel olarak "aptal" marker kesim bölgelerinde ROC regresyonu ile gerçekten de AUC'ye sayılır. Aptal işaretleyici değerlerine karşı neyin anlamlı olduğunu önceden belirtirseniz, kısmi AUC'yi kullanabilirsiniz ve kısmi AUC regresyonu aynı performans özelliklerine (ve sorunlarına) sahiptir.
AdamO
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.