Puedo entrenar una regresión logística al R
usar
glm(y ~ x, family=binomial(logit)))
pero, IIUC, esto optimiza la probabilidad de registro.
¿Hay alguna forma de entrenar el modelo utilizando la función de pérdida lineal ( ) (que en este caso es la misma que la distancia de variación total )?
Es decir, dado un vector numérico y un bit (lógico) vector , Quiero construir un monotónica (de hecho, aumentar) la función tal quese minimiza
Ver también
Respuestas:
Lo que quieres hacer no existe porque es, por falta de una mejor palabra, matemáticamente defectuoso.
Pero primero, destacaré por qué creo que las premisas de su pregunta son sólidas. Luego trataré de explicar por qué creo que las conclusiones que extraes de ellos se basan en un malentendido del modelo logístico y, finalmente, sugeriré un enfoque alternativo.
Voy a denotar sus observaciones (las letras más en negrilla denotan vectores) que se encuentran en espacio tridimensional (la primera entrada de es 1) con , y np x{(xxi,yi)}ni=1 n p p<n y i ∈[0,1]xxi p<n yi∈[0,1] es una función monótona de xf(xxi)=f(xx′iββ) , digamos como lacurva logísticapara arreglar ideas. Por conveniencia, supondré que n essuficientementegrande en comparación con p .xx′iββ n p
Tiene razón en que si tiene la intención de utilizar TVD como criterio para evaluar el modelo ajustado, entonces es razonable esperar que su ajuste optimice ese mismo criterio entre todos los posibles candidatos, en sus datos. Por lo tanto
El problema es el término de error : y si aplicamos (simplemente queremos que nuestro modelo sea asintóticamente imparcial ), entonces, debe ser heteroscedastic . Esto se debe a que puede tomar dos valores, 0 y 1. Por lo tanto, dado , también solo puede tomar dos valores: cuando , que ocurre con probabilidad y cuandoE ( ϵϵi=yi−f(xx′iββ) ϵ i y i xE(ϵϵ)=0 ϵi yi ϵ i 1-f( xxxi ϵi y i = 1 f ( x1−f(xx′iββ) yi=1 - f ( xf(xx′iββ) y i = 1 1 - f ( x−f(xx′iββ) yi=1 , que ocurre con probabilidad .1−f(xx′iββ)
Estas consideraciones juntas implican que:
por lo tanto, no es constante sino que tiene forma de parábola cóncava y se maximiza cuando es tal que .xvar(ϵϵ) E ( y | xxx E(y|xx)≈.5
Esta heterocedasticidad inherente de los residuos tiene consecuencias . Implica, entre otras cosas, que al minimizar la función de pérdida , está asintóticamente parte de su muestra. Es decir, los ajustados no se ajustan a los datos en absoluto, sino solo la parte de los mismos que se agrupa alrededor de los lugares donde es tal que . A saber, estos son los puntos de datos menos informativos en su muestra : corresponden a aquellas observaciones para las cuales el componente de ruido es el más grande. Por lo tanto, su ajuste se tira hacia , por ejemplo, irrelevante.βl1 xββ∗ E ( yxx βE(yy|xx)≈.5 ββ∗=ββ:f(xx′ββ)≈.5
Una solución, como queda claro en la exposición anterior, es eliminar el requisito de imparcialidad. Una forma popular de sesgar el estimador (con alguna interpretación bayesiana adjunta) es incluir un término de contracción. Si volvemos a escalar la respuesta:
y, por conveniencia computacional, reemplace por otra función monótona - será conveniente que la secuela denote el primer componente del vector de parámetros como y los restantes ones - e incluya un término de contracción (por ejemplo, uno de la forma ), el problema de optimización resultante se convierte en:g ( xf(xx′ββ) c p - 1 γg(xx,[c,γγ])=xx′[c,γγ] c p−1 | El | γγγ ||γγ||2
Tenga en cuenta que en este nuevo problema de optimización (también convexo), la penalización para una observación clasificada correctamente es 0 y crece linealmente con para una clasificación clasificada, como en el pérdida. La solución para este segundo problema de optimización son los famosos coeficientes lineales svm (con separación perfecta). A diferencia de , tiene sentido aprender estos de los datos con una penalización de tipo TVD ('tipo' debido al término de sesgo) . En consecuencia, esta solución está ampliamente implementada. Ver por ejemplo el paquete R LiblineaR .l 1 [ c ∗ , γxx′[[c,γ] l1 β[c∗,γγ∗] [ c ∗ , γββ∗ [c∗,γγ∗]
fuente
No estoy seguro de por qué querría usar la pérdida L1 para algo limitado entre 0 y 1. Dependiendo de cuál sea su objetivo, es posible que desee considerar algo como la pérdida de bisagra, que es similar a la pérdida L1 en una dirección y plana en el otro.
En cualquier caso, el siguiente código debe hacer lo que ha pedido. Tenga en cuenta que la respuesta óptima es básicamente una función de paso.
fuente
Puede usar el paquete glmnet para instalar modelos L1, L2. No se limita a la regresión logística sino que la incluye.
Aquí está la viñeta: http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html
También hay un seminario web: https://www.youtube.com/watch?v=BU2gjoLPfDc
Liblinear es bueno, pero he encontrado que glmnet es más fácil de comenzar. Glmnet incluye una función que realiza la validación cruzada y selecciona un parámetro de regularización para usted en función de diferentes métricas, como el AUC.
Con respecto a la teoría, leería el artículo de tibshiarini sobre el lazo (regularización L1) y el capítulo sobre elementos de aprendizaje estadístico. http://statweb.stanford.edu/~tibs/lasso/lasso.pdf
Sobre la pérdida de registro, es solo para evaluar modelos. No es una función de pérdida para el ajuste del modelo.
fuente