“Çalışan” doğrusal veya lojistik regresyon parametrelerini hesaplamak için algoritmalar var mı?


32

Http://www.johndcook.com/standard_deviation.html adresindeki "Doğru çalışan bilgisayar varyasyonu" adlı bir makale , çalışan ortalama, varyans ve standart sapmaların nasıl hesaplandığını gösterir.

Her yeni eğitim kaydı sağlandığında doğrusal veya lojistik bir regresyon modelinin parametrelerinin benzer şekilde "dinamik olarak" güncellenebileceği algoritmalar var mı?


1
Büyük bir eğitim seti veya sürekli veri girişi akışıyla, Stochastic Gradient Descent gibi yinelemeli algoritmalar kullanabilir ve ilerlerken küçük gruplar halinde girişi yakalayabilirsiniz. İstediğin bu mu?
andreister

1
Arama RLS algoritması ve çeşitleri. en.wikipedia.org/wiki/Recursive_least_squares_filter
Memming

Yanıtlar:


20

Lineer regresyon katsayısı olan ve .y=birx+bbir=cOv(x,y)/vbirr(x)b=mebirn(y)-birmebirn(x)

Yani gerçekten ihtiyacınız olan şey yi hesaplamak için artan bir yöntemdir . Bu değer ve varyansı itibaren ve hem ortalama ve sen parametreleri hesaplayabilir ve . Aşağıda verilen sözde kodda göreceğiniz gibi, artımlı hesaplaması, hesaplı hesaplamasına çok benzer . Bu sürpriz olmamalı çünkü .cOv(x,y)xyxbirbcOv(x,y)vbirr(x)vbirr(x)=cOv(x,x)

İşte muhtemelen aradığınız sahte kod:

init(): meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0

update(x,y):
n += 1
dx = x - meanX
dy = y - meanY
varX += (((n-1)/n)*dx*dx - varX)/n
covXY += (((n-1)/n)*dx*dy - covXY)/n
meanX += dx/n
meanY += dy/n

getA(): return covXY/varX
getB(): return meanY - getA()*meanX

Aşamalı olarak bir çok değişkenli regresyon hesaplama eşdeğer algoritma ararken bu soru bulundu R,=(X'X)-1X'Y ve böylece XR,=Y+ε


4
Katkınız için teşekkürler! Doğrusal regresyonla ilgili sorunun bir kısmı aslında, cevapları çoklu doğrusal regresyon modelinin nasıl güncelleneceğini gösteren istatistik.stackexchange.com/questions/6920/… ' nin kopyasıdır . Mevcut konunun durmasına izin verilir, çünkü sorunun lojistik gerileme kısmı bağımsız olarak ilgi alanına girer. Aslında, lojistik kısmı bile istatistik.stackexchange.com/questions/59174/… adresinde kopyalandı .
whuber

1
Bu cevabın soruda verilen referans metni dikkate alınarak yararlı olacağını düşündüm. Bağlantı için teşekkürler. Ancak aradığım şey bu değil. Benim kullanım durumum açıkça belli.
59'da

3
İşe yarar kodu sunmanın faydalı olabileceğine ve benzersiz olabileceğine inanıyorum.
whuber

Dx * dy times (n-1) / n 'ye neden izin verdiğini sorabilir miyim?
FavorMylikes

P değerini hesaplamak için kodu geliştirebilir misiniz?
Nathan

12

İki özel örneğiniz için:

Doğrusal Regresyon Alexander Strehl ve Michael Littman'ın "Çevrimiçi Doğrusal Regresyon ve Model Tabanlı Güçlendirme Öğrenimine Uygulanması" adlı makalesinde , artımlı güncellemeleri kullanarak doğrusal regresyon çözümüne bir yaklaşım sağlayan "KWIK Doğrusal Regresyon" (bkz. Algoritma 1) adlı bir algoritma tanımlanmaktadır. . Bunun düzenli olmadığını unutmayın (yani, Ridge Regression değil). Strehl ve Littman'ın yönteminin bu ayara kadar erişemediğinden eminim.

Lojistik regresyon

Bu iplik konuya biraz ışık tutuyor. Alıntı yapmak:

Düzenli bir kısıtlama olmasa bile, lojistik regresyon doğrusal olmayan bir optimizasyon problemidir. Zaten bu, genellikle bir güncelleme çözümü türetmek için bir ön şart olan analitik bir çözüme sahip değildir. Düzenleme kısıtlamasıyla, kısıtlı bir optimizasyon problemi haline gelir. Bu, kısıtlanmamış sorunun halihazırda sahip olduğu sorunların üzerine tamamen yeni bir analitik olmayan komplikasyon kümesi getirmektedir.

Bununla birlikte, bakmak isteyebileceğiniz regresyon için başka çevrimiçi (veya artan) yöntemler de vardır, örneğin Yerel Ağırlıklı Projeksiyon Regresyonu (LWPR).


Lojistik regresyon hakkında, gereksiz yere karamsar olduğunuzu düşünüyorum. Lojistik regresyon, her bir Gauss sınıfında dağıtılmış, farklı araçlar ve paylaşılan bir kovaryans ile iki sınıf bir problem için arka sınıf olasılıkların hesaplanmasına eşdeğerdir. Kovaryans için MLE sadece sınıf başına kovaryansların ağırlıklı bir toplamıdır, bu nedenle yeterli istatistikler sadece sınıf başına sayım, toplam ve karelerin toplamıdır. Açıkçası, yeterli istatistikleri kullanarak kesin bir güncelleme elde etmek kolaydır.
Robert Dodier,

3
@RobertDodier Lojistik regresyon değil doğrusal ayrımcılık analizini tanımladınız. Tanıtım bölümünün son paragrafı buraya ilişkiyi açıklar.
ahfoss

@ahfoss Sınıf başına veri normalde dağıtılmasa bile, sınıf başına kovaryanslarla lojistik regresyona eşdeğer bir model inşa edilebilir.
Robert Dodier,

1
@RobertDodier Eşdeğer model nedir? Oldukça zor bir sorunun net bir çözümü olduğunu ima ediyor gibi görünüyorsunuz. Çözümünüz ya düşündüğünüzden daha mükemmel, ya da çok daha az.
ahfoss

11

Genel bir prensip olarak:

0) Yeterli istatistikleri ve güncel ML tahminlerini saklıyorsunuz

1) yeni veriler aldığınızda, yeterli istatistikleri ve tahminleri güncelleyin

2) Yeterli istatistiklere sahip olmadığınızda tüm verileri kullanmanız gerekir.

3) Tipik olarak kapalı form çözümleriniz yoktur; önceki MLE'leri başlangıç ​​noktası olarak kullanın, yeni optimum olanı bulmak için bazı uygun optimizasyon yöntemlerini kullanın. Belirli türden sorunlu durumlar için hangi yaklaşımların en iyi travmaları yaptığını bulmak için biraz deneme yapmanız gerekebilir.

Eğer sorununuz özel bir yapıya sahipse, muhtemelen onu kullanabilirsiniz.

Bazı değerleri olabilecek ya da olmayan bazı potansiyel referanslar:

McMahan, HB ve M. Streeter (2012),
Açık Sorun: Çevrimiçi Lojistik Regresyon İçin Daha İyi Sınırlar ,
JMLR: Atölye ve Konferans Bildirileri , cilt 23, 44.1–44.3

Penny, WD ve SJ Roberts (1999),
Dinamik Lojistik Regresyon ,
Bildiriler IJCNN '99


Yeterli istatistik tutma fikrine katılıyorum (eğer problem için mevcutsa), ancak yeterli istatistik bulunması diğer şeyleri gereksiz kılmıyor mu? Yeterli istatistiklere sahipseniz, güncellenmiş parametreleri aynen veri kümesini kullanıyormuşsunuz gibi hesaplayabilirsiniz. Mevcut parametreleri hesaba katmaya gerek yoktur ve optimizasyon yöntemlerini denemeye gerek yoktur.
Robert Dodier,

2
Yeterli istatistiklere sahip olmanın, denklemlere bir çözümün olduğu anlamına gelmediğini not etmek önemlidir.
Glen_b -Reinstate Monica,

8

Tdc'nin cevabına ek olarak, herhangi bir zamanda katsayıların kesin tahminlerini yineleme başına sadece sabit bir zaman ile hesaplamak için bilinen bir yöntem yoktur. Ancak, makul ve ilginç bazı alternatifler var.

İlk bakılacak model çevrimiçi öğrenme ortamıdır. Bu ortamda, dünya önce x değerini açıklar, algoritmanız y için bir değer öngörür, dünya y 'değerini belirtir ve algoritmanızın l (y, y') kaybı olur. Bu ayar için basit algoritmaların (diğerlerinin yanı sıra gradyan iniş ve üstelenmiş gradyan) alt sıralarda pişmanlık kazandığı bilinmektedir. Bu, daha fazla örnek gördüğünüzde, algoritmanızın (mümkün olan en iyi doğrusal tahminciyle karşılaştırıldığında) yaptığı fazladan hata sayısının, örnek sayısıyla birlikte artmadığı anlamına gelir. Bu bile zor ortamlarda bile işe yarıyor. Bir yoktur iyi kağıt bu pişmanlık sınırlarını kanıtlamak için bir popüler strateji açıklayan. Shai Shalev-Schwartz'ın ders notları da faydalıdır.

Algoritmanıza yalnızca ne kadar yanlış olduğunu gösteren bir sayı verilen (ve doğru cevabı gösteren işaretçi olmayan) haydut ayarı adı verilen çevrimiçi öğrenme ayarının bir uzantısı var. Etkileyici bir şekilde, çevrimiçi öğrenmeden elde edilen birçok sonuç bu ayara taşınır, ancak burada istismarın yanı sıra keşif yapmak zorunda kalır, bu da her türlü ilginç soruna yol açar.


6

Diğer cevaplar makine öğrenmesi dünyasına işaret etti ve bu kesinlikle bu sorunun ele alındığı bir yer.

Bununla birlikte, gereksinimlerinize daha uygun olabilecek başka bir yaklaşım, düşük kademeli güncellemelerle birlikte QR faktörizasyonunun kullanılmasıdır. Bunu yapma ve en küçük kareler problemini çözmek için kullanma yaklaşımları aşağıda verilmektedir:

QR faktoringini ve en küçük kareler problemini Hammerling ve Lucas tarafından güncelleme .


5

yt=βtxt+εt,βt=βt-1+ηt
βt=βt-1

yt=lOgbent(βtxt+εt),βt=βt-1+ηt

2

Bu @chmike cevabını eklemektir.

Bu yöntem, BP Welford'un standart sapma için ortalama algoritmasını da hesaplayan çevrimiçi algoritmasına benziyor. John Cook, burada iyi bir açıklama yapar . 2009 yılında Tony Finch üstel bir hareketli ortalama ve standart sapma için bir yöntem sunmaktadır:

diff := x – mean 
incr := alpha * diff 
mean := mean + incr 
variance := (1 - alpha) * (variance + diff * incr)

Önceden gönderilen cevaba bakmak ve üstel bir hareketli pencere içerecek şekilde genişlemek:

init(): 
    meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0,
    meanXY = 0, varY = 0, desiredAlpha=0.01 #additional variables for correlation

update(x,y):
    n += 1
    alpha=max(desiredAlpha,1/n) #to handle initial conditions

    dx = x - meanX
    dy = y - meanY
    dxy = (x*y) - meanXY #needed for cor

    varX += ((1-alpha)*dx*dx - varX)*alpha
    varY += ((1-alpha)*dy*dy - varY)*alpha #needed for corXY
    covXY += ((1-alpha)*dx*dy - covXY)*alpha

    #alternate method: varX = (1-alpha)*(varX+dx*dx*alpha)
    #alternate method: varY = (1-alpha)*(varY+dy*dy*alpha) #needed for corXY
    #alternate method: covXY = (1-alpha)*(covXY+dx*dy*alpha)

    meanX += dx * alpha
    meanY += dy * alpha
    meanXY += dxy  * alpha

getA(): return covXY/varX
getB(): return meanY - getA()*meanX
corXY(): return (meanXY - meanX * meanY) / ( sqrt(varX) * sqrt(varY) )

Yukarıdaki "kod" ta, arzu edilen Alfa 0 olarak ayarlanabilir ve eğer öyleyse, kod üstel ağırlıklandırma olmadan çalışır. Canlandırılmış bir pencere boyutu için Modified_moving_average tarafından önerildiği gibi istenenAlpha'yı 1 / desiredWindowSize olarak ayarlamanız önerilebilir .

Yan soru: Yukarıdaki alternatif hesaplamalardan hangisinin hassas bir açıdan daha iyi olduğu hakkında herhangi bir yorumunuz var mı?

Referanslar:

chmike (2013) https://stats.stackexchange.com/a/79845/70282

Cook, John (nd) Doğru çalışan bilgisayar varyansını hesaplamak http://www.johndcook.com/blog/standard_deviation/

Finch, Tony. (2009) Ağırlıklı ortalama ve varyansın artımlı hesaplanması. https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf

Vikipedi. (nd) Welford'un çevrimiçi algoritması https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm

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.