Quelle est la différence entre predict_proba et decision_function dans scikit-learn?
J'étudie un scikit-learn exemple (Classificateur de comparaison) et a obtenu les confondre avec predict_proba
et decision_function
.
Ils tracent les résultats de la classification par dessiner les contours à l'aide soit Z = clf.decision_function()
, ou Z = clf.predict_proba()
.
Quelle est la différences entre ces deux? Est-ce donc que chaque méthode de classification a l'un des deux comme score?
Lequel est le plus approprié pour interpréter la classification et de quelle manière dois-je choisir les deux?
Vous devez vous connecter pour publier un commentaire.
Ce dernier,
predict_proba
est une méthode d'un (soft) classificateur de la sortie de la probabilité de l'instance en cours dans chacune des classes.L'ancien,
decision_function
, trouve la distance le séparant hyperplane. Par exemple, un(e) SVM trouve hyperplans séparant l'espace dans les domaines liés à la classification des résultats. Cette fonction, étant donné un point, trouve la distance pour les séparateurs.Je suppose que
predict_prob
est plus utile dans votre cas, en général, l'autre méthode est plus spécifique à l'algorithme.Votre exemple est
de sorte que le code utilise
decision_function
si elle existe. Sur les SVM cas,predict_proba
est calculé (dans le cas binaire)qui est à la fois "cher" et "enjeux théoriques". C'est pourquoi
decision_function
est utilisé ici. (comme @Ami dit, c'est le marge -la distance à la hyperplane, qui est accessible sans beaucoup plus de calcul). Dans le SVM cas, il est conseillé de
Il y a d'autres
decision_function
s:SGDClassifier'
s. Ici,predict_proba
dépend de la perte de la fonction, etdecision_function
est universellement disponible.