¿Cuál es la diferencia entre decision_function, predict_proba y predict function para el problema de regresión logística?

10

He estado revisando la documentación de sklearn pero no puedo entender el propósito de estas funciones en el contexto de la regresión logística. Porque decision_functiondice que es la distancia entre el hiperplano y la instancia de prueba. ¿Cómo es útil esta información en particular? y cómo se relaciona esto con predicty predict-probamétodos?

Sameed
fuente

Respuestas:

26

Recordemos que la forma funcional de regresión logística es

f(x)=11+e(β0+β1x1++βkxk)

Esto es lo que devuelve predict_proba.

El término dentro del exponencial

d(x)=β0+β1x1++βkxk

es lo que devuelve decision_function. El "hiperplano" al que se hace referencia en la documentación es

β0+β1x1++βkxk=0

Esta terminología es un remanente de máquinas de vectores de soporte, que literalmente estiman un hiperplano de separación. Para la regresión logística, este hiperplano es una especie de construcción artificial, es el plano de igual probabilidad, donde el modelo ha determinado que ambas clases objetivo son igualmente probables.

La predictfunción devuelve una decisión de clase usando la regla

f(x)>0.5

A riesgo de ponerle jabón, la predictfunción tiene muy pocos usos legítimos, y veo su uso como un signo de error al revisar el trabajo de otros. Me iría lo suficientemente lejos como para llamarlo un error de diseño en sklearn (la predict_probafunción debería haberse llamado predict, y predictdebería haberse llamado predict_class, si acaso).

Matthew Drury
fuente
Gracias por la respuesta @Matthew, pero ¿puedes aclarar este punto un poco más? "Para la regresión logística, este hiperplano es un poco artificial, es el plano de igual probabilidad, donde el modelo ha determinado que ambas clases objetivo son igualmente probables ". ?
Sameed
Esta explicación es interesante y útil. Deseo que Sklearn lo explique mejor. Lo que no entiendo es ¿de qué sirve saber el valor de x en la función logística 1 / (1 + e ^ -x)? Todo lo que puedo pensar es posiblemente en usar una función sigmoidea diferente como x / (1+ | x |). ¿Hay más? ¡Gracias!
ldmtwo
Básicamente, la función de decisión debería haber sido el sigmoide en la regresión logística. ¿Correcto?
3nomis
2
Creo que la razón por la que @Matthew está en una caja de jabón es que usar 0.5 como umbral para la predicción es ingenuo. Lo primero que se debe hacer es aprender a usar validación cruzada, curvas ROC y AUC para elegir un umbral apropiado c, y usar como la función de decisión f (x)> c.
hwrd