Me gustaría tener tantos algoritmos que realicen la misma tarea que la regresión logística. Es decir, algoritmos / modelos que pueden dar una predicción a una respuesta binaria (Y) con alguna variable explicativa (X).
Me alegraría que después de nombrar el algoritmo, si también mostrara cómo implementarlo en R. Aquí hay un código que se puede actualizar con otros modelos:
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
fuente
fuente
Respuestas:
Los populares en este momento son randomForest y gbm (llamados MART o Gradient Boosting en la literatura de aprendizaje automático), parte de árboles simples. También es popular bayesglm, que usa MAP con anteriores para la regularización.
fuente
En realidad, eso depende de lo que quieras obtener. Si realiza una regresión logística solo para las predicciones, puede usar cualquier método de clasificación supervisado adecuado para sus datos. Otra posibilidad: análisis discriminante (lda () y qda () del paquete MASS)
Por otro lado, si necesita intervalos de confianza en torno a sus predicciones o errores estándar en sus estimaciones, la mayoría de los algoritmos de clasificación no lo ayudarán. Puede usar modelos aditivos (mixtos) generalizados, para los cuales hay varios paquetes disponibles. A menudo uso el paquete mgcv de Simon Wood. Los modelos aditivos generalizados permiten más flexibilidad que la regresión logística, ya que puede usar splines para modelar sus predictores.
Hay mucho más por hacer:
...
Recomiendo el libro de Simon Wood sobre modelos aditivos generalizados
fuente
Estoy de acuerdo con Joe, y agregaría:
En principio, se podría utilizar cualquier método de clasificación, aunque dependerá de los datos / situación. Por ejemplo, también podría usar un SVM, posiblemente con el popular modelo C-SVM. Aquí hay un ejemplo de kernlab usando una función de núcleo de base radial:
fuente
Hay alrededor de 100 modelos de clasificación y regresión que se pueden entrenar a través del paquete caret . Cualquiera de los modelos de clasificación será una opción para usted (a diferencia de los modelos de regresión, que requieren una respuesta continua). Por ejemplo para entrenar un bosque aleatorio:
Consulte la viñeta de capacitación sobre modelos caret que viene con la distribución para obtener una lista completa de los modelos disponibles. Se divide en modelos de doble uso y clasificación (que puede usar) y solo de regresión (que no puede). caret entrenará automáticamente los parámetros para su modelo elegido para usted.
fuente
Naive Bayes es un buen método simple de entrenamiento de datos para encontrar una respuesta binaria.
fuente
Hay dos variaciones de la regresión logística que aún no se describen. En primer lugar, la regresión logística estima las probabilidades utilizando una función logística que es una distribución logística acumulativa (también conocida como sigmoide). También puede estimar probabilidades usando funciones derivadas de otras distribuciones. La forma más común aparte de la regresión logística es la regresión probit que se deriva de la distribución normal. Para una discusión más detallada entre las diferencias de probit y logit, visite el siguiente sitio.
Diferencia entre modelos logit y probit
La segunda alternativa señala una semana de la función logística que implementó. Si tiene un tamaño de muestra pequeño y / o valores faltantes, no se recomienda la función logística. Por lo tanto, una regresión logística exacta es un mejor modelo. Las probabilidades de registro del resultado se modelan como una combinación lineal de las variables predictoras.
Además, hay otras alternativas como las que se mencionan:
Comentario final: una regresión logística es lo mismo que una pequeña red neuronal sin capas ocultas y solo un punto en la capa final. Por lo tanto, puede usar implementaciones de paquetes de redes neuronales como
nnet
en R.Editar:
Algunas semanas después me di cuenta de que también existe el algoritmo Winnow y Perceptron . Ambos son clasificadores que funcionan también para clasificaciones en dos grupos, pero ambos han caído en desgracia en los últimos 15 años.
fuente