Quelle est la différence entre fonction_décision, fonction_prédire et fonction de prédiction pour un problème de régression logistique?

10

J'ai parcouru la documentation sklearn mais je ne suis pas en mesure de comprendre le but de ces fonctions dans le contexte de la régression logistique. Car decision_functionil dit que c'est la distance entre l'hyperplan et l'instance de test. comment cette information particulière est-elle utile? et comment cela ne se rapporte à predictet predict-probaméthodes?

Sameed
la source

Réponses:

28

Rappelons que la forme fonctionnelle de la régression logistique est

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

C'est ce qui est retourné par predict_proba.

Le terme à l'intérieur de l'exponentielle

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

est ce qui est retourné par decision_function. L '"hyperplan" mentionné dans la documentation est

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

Cette terminologie est une trace des machines à vecteurs de support, qui estiment littéralement un hyperplan de séparation. Pour la régression logistique, cet hyperplan est un peu une construction artificielle, c'est le plan de probabilité égale, où le modèle a déterminé que les deux classes cibles sont également probables.

La predictfonction renvoie une décision de classe en utilisant la règle

f(x)>0.5

Au risque du soapboxing, la predictfonction a très peu d'utilisations légitimes, et je considère son utilisation comme un signe d'erreur lors de l'examen des autres travaux. J'irais assez loin pour appeler cela une erreur de conception dans sklearn lui-même (la predict_probafonction aurait dû être appelée predict, et predictaurait dû être appelée predict_class, le cas échéant).

Matthew Drury
la source
Merci pour la réponse @Matthew, mais pouvez-vous clarifier un peu plus ce point "Pour la régression logistique, cet hyperplan est un peu une construction artificielle, c'est le plan de probabilité égale, où le modèle a déterminé que les deux classes cibles sont tout aussi probables . " ?
Sameed
Cette explication est intéressante et utile. J'aimerais que sklearn l'explique mieux. Ce que je ne comprends pas, c'est à quoi sert de connaître la valeur de x dans la fonction logistique 1 / (1 + e ^ -x)? Tout ce à quoi je peux penser est d'utiliser éventuellement une fonction sigmoïde différente comme x / (1+ | x |). Y a t-il plus? Merci!
ldmtwo
Fondamentalement, la fonction de décision aurait dû être la sigmoïde de la régression logistique. Correct?
3nomis
2
Je pense que la raison pour laquelle @Matthew est sur une boîte à savon est que l'utilisation de 0,5 comme seuil de prédiction est naïve. La première chose à faire est d'apprendre à utiliser la validation croisée, les courbes ROC et l'AUC pour choisir un seuil approprié c et à utiliser comme fonction de décision f (x)> c.
hwrd