Ich möchte so viele Algorithmen, die die gleiche Aufgabe wie die logistische Regression ausführen. Das sind Algorithmen / Modelle, die eine Vorhersage für eine binäre Antwort (Y) mit einer erklärenden Variablen (X) geben können.
Ich würde mich freuen, wenn Sie nach dem Namen des Algorithmus auch zeigen würden, wie er in R implementiert wird. Hier ist ein Code, der mit anderen Modellen aktualisiert werden kann:
set.seed(55)
n <- 100
x <- c(rnorm(n), 1+rnorm(n))
y <- c(rep(0,n), rep(1,n))
r <- glm(y~x, family=binomial)
plot(y~x)
abline(lm(y~x), col='red', lty=2)
xx <- seq(min(x), max(x), length=100)
yy <- predict(r, data.frame(x=xx), type='response')
lines(xx, yy, col='blue', lwd=5, lty=2)
title(main='Logistic regression with the "glm" function')
r
regression
logistic
classification
predictive-models
Tal Galili
quelle
quelle
Antworten:
Derzeit beliebt sind randomForest und gbm (in der maschinellen Lernliteratur MART oder Gradient Boosting genannt), Teile für einfache Bäume. Beliebt ist auch bayesglm, das MAP mit Prioren für die Regularisierung verwendet.
quelle
Das hängt davon ab, was Sie erhalten möchten. Wenn Sie nur für die Vorhersagen eine logistische Regression durchführen, können Sie jede für Ihre Daten geeignete überwachte Klassifizierungsmethode verwenden. Eine andere Möglichkeit: Diskriminanzanalyse (lda () und qda () aus Paket MASS)
Wenn Sie dagegen Konfidenzintervalle für Ihre Vorhersagen oder Standardfehler in Ihren Schätzungen benötigen, helfen Ihnen die meisten Klassifizierungsalgorithmen nicht. Sie können verallgemeinerte additive (gemischte) Modelle verwenden, für die eine Reihe von Paketen verfügbar sind. Ich benutze oft das mgcv-Paket von Simon Wood. Verallgemeinerte additive Modelle bieten mehr Flexibilität als logistische Regression, da Sie Splines zur Modellierung Ihrer Prädiktoren verwenden können.
Es gibt noch viel mehr zu tun:
...
Ich würde das Buch von Simon Wood über verallgemeinerte additive Modelle empfehlen
quelle
Ich stimme Joe zu und würde hinzufügen:
Grundsätzlich kann jede Klassifizierungsmethode verwendet werden, auch wenn dies von den Daten / der Situation abhängt. Beispielsweise könnten Sie auch eine SVM verwenden, möglicherweise mit dem beliebten C-SVM-Modell. Hier ist ein Beispiel aus Kernlab mit einer radialen Kernelfunktion:
quelle
Es gibt rund 100 Klassifizierungs- und Regressionsmodelle, die über das Caret-Paket trainiert werden können . Jedes der Klassifizierungsmodelle ist eine Option für Sie (im Gegensatz zu Regressionsmodellen, die eine kontinuierliche Reaktion erfordern). Zum Beispiel um einen zufälligen Wald zu trainieren:
Eine vollständige Liste der verfügbaren Modelle finden Sie in der Caret-Modellschulungsvignette, die mit der Distribution geliefert wird. Es ist in Dual-Use- und Klassifizierungsmodelle (die Sie beide verwenden können) und Regressionsmodelle (die Sie nicht verwenden können) unterteilt. caret trainiert automatisch die Parameter für das von Ihnen gewählte Modell.
quelle
Naive Bayes ist eine gute einfache Methode zum Trainieren von Daten, um eine binäre Antwort zu finden.
quelle
Es gibt zwei Varianten der logistischen Regression, die noch nicht umrissen sind. Erstens schätzt die logistische Regression die Wahrscheinlichkeiten unter Verwendung einer logistischen Funktion, die eine kumulative logistische Verteilung ist (auch als Sigmoid bekannt). Sie können Wahrscheinlichkeiten auch mithilfe von Funktionen schätzen, die von anderen Verteilungen abgeleitet sind. Der neben der logistischen Regression gebräuchlichste Weg ist die Probit-Regression, die sich aus der Normalverteilung ableitet. Weitere Informationen zu den Unterschieden zwischen probit und logit finden Sie auf der folgenden Website.
Unterschied zwischen logit- und probit-Modellen
Die zweite Alternative weist auf eine Schwäche der von Ihnen implementierten logistischen Funktion hin. Bei kleinen Stichproben und / oder fehlenden Werten ist eine logistische Funktion nicht ratsam. Daher ist eine exakte logistische Regression ein besseres Modell. Die logarithmischen Gewinnchancen des Ergebnisses werden als lineare Kombination der Prädiktorvariablen modelliert.
Darüber hinaus sind noch andere Alternativen zu nennen:
Schlussbemerkung: Eine logistische Regression ist dasselbe wie ein kleines neuronales Netzwerk ohne versteckte Schichten und nur einen Punkt in der letzten Schicht. Daher können Sie Implementierungen von neuronalen Netzwerkpaketen wie
nnet
in R verwenden.Bearbeiten:
Einige Wochen später stellte ich fest, dass es auch den Winnow- und den Perceptron- Algorithmus gibt. Beide sind Klassifikatoren, die auch für Klassifikationen in zwei Gruppen funktionieren, aber beide sind in den letzten 15 Jahren in Ungnade gefallen.
quelle