Wiem, że brakuje mi czegoś w rozumieniu regresji logistycznej i naprawdę doceniłbym każdą pomoc.
O ile rozumiem, regresja logistyczna zakłada, że prawdopodobieństwo wyniku „1” przy danych wejściowych jest liniową kombinacją danych wejściowych, przechodzącą przez funkcję odwrotnej logistyki. Jest to zilustrowane w następującym kodzie R:
#create data:
x1 = rnorm(1000) # some continuous variables
x2 = rnorm(1000)
z = 1 + 2*x1 + 3*x2 # linear combination with a bias
pr = 1/(1+exp(-z)) # pass through an inv-logit function
y = pr > 0.5 # take as '1' if probability > 0.5
#now feed it to glm:
df = data.frame(y=y,x1=x1,x2=x2)
glm =glm( y~x1+x2,data=df,family="binomial")
i pojawia się następujący komunikat o błędzie:
Komunikaty ostrzegawcze: 1: glm.fit: algorytm nie jest zbieżny 2: glm.fit: dopasowane prawdopodobieństwa wystąpiły 0 lub 1
Od jakiegoś czasu pracuję z R. wystarczy wiedzieć, że prawdopodobnie to ja jestem winien ... co się tutaj dzieje?
Odpowiedzi:
źródło
Regresja logistyczna nadaje się do dopasowania, jeśli jako wartości docelowe podano prawdopodobieństwa lub proporcje, a nie tylko wyniki 0/1.
Tutaj mamy trzy potencjalne cele regresji logistycznej.
p
która jest wartością rzeczywistą / docelową / prawdopodobieństwem,pnoisy
która jest równa p przy normalnym szumie dodanym do logarytmicznej skali szans, idichot
która jest nieprzyzwoita traktowana jako parametr dwumianowego pliku PDF i na tej podstawie pobierana jest próbka. Powinieneś przetestować wszystkie 3 - zauważyłem, że niektóre implementacje LR typu open source nie pasująp
.W zależności od aplikacji możesz preferować cierpliwość.
W praktyce powinieneś również rozważyć, w jaki sposób hałas może się kształtować w docelowej aplikacji i spróbować to naśladować.
źródło