1
votes

Précision_score et Precision_score peuvent-ils être égaux?

J'essaye de construire un modèle de régression logistique en python 3 en utilisant la bibliothèque sklearn.

Tenons-nous en aux versions courtes ci-dessous pour l'avenir,

dv - variable dépendante

idv - variable indépendante

J'ai maintenant idv1, idv2, idv3, idv4, idv5, idv6, idv7, idv8 et idv9.

Parmi lesquelles idv6 à idv9 sont des variables catégorielles (idv6 et idv7 ont 3 catégories..où comme idv8 et idv9 sont des variables booléennes..oui ou aucun type de variables [0 ou 1])

Et dv est à nouveau une variable booléenne (type de variable oui ou non).

Maintenant, j'ai créé un mannequin pour tous les idv6 à idv9 pour les données finales du modèle ... c'est-à-dire idv6_c1, idv6_c2, idv_c3 et suivi similaire pour le reste .. comme idv8_c1, idv8_c2 pour idv8 et idv9.

Maintenant, après avoir ajusté le modèle et trouvé les métriques des valeurs prédites ...

J'obtiens, disons, precision_score de 76.7415479670124% et precision_score de 76.7415479670124%

J'ai calculé à l'aide des bibliothèques sklearn.metrics.accuracy_score et sklearn.metrics.precision_score .

Je me demande ... est-ce correct ou est-ce que je manque quelque chose ... ??

Est-ce que cela peut arriver ?? ... l'exactitude et la précision doivent être égales à presque 13 décimales ??? .... Je suis sûr ... je fais quelque chose de mal ... quelqu'un peut-il m'aider? / p>


0 commentaires

3 Réponses :


2
votes

Précision = Vrai Positif / (Vrai Positif + Faux Positif)

Précision = (Vrai Positif + Vrai Négatif) / (Vrai Positif + Faux Positif + Vrai Négatif + Faux Négatif)

Par conséquent, s'il n'y a pas de prédictions négatives, ces deux valeurs seront égales.


0 commentaires

0
votes

La précision est définie comme la fraction des résultats récupérés qui sont pertinents, donnée par: (tp / tp + fp), tandis que la précision est le rapport entre les prédictions correctes et le nombre total d'échantillons d'entrée.

Bien que moins probable, mais il peut arriver que la précision soit égale à l'exactitude, lorsque le nombre de vrais négatifs et de faux négatifs est égal à zéro. Autrement dit, votre système ne classe aucun échantillon comme négatif.

Votre problème pourrait cependant être lié à la micro-moyenne comme mentionné ici .


0 commentaires

0
votes

Voici un lien pour résoudre le même résultat de score et des principes plus détaillés.

Il vous suffit de changer les paramètres de scikit-learn.

average = macro ou average = weighted

Les codes et le résultat sont copiés à partir du lien ci-dessus. ( https://simonhessner.de/why-are-precision-recall-and-f1-score-equal-when-using-micro-averaging-in-a-multi-class-problem/ a>)

Références: https: //scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_score.html

    Precision (micro): 0.444444
    Recall (micro): 0.444444
    F1 score (micro): 0.444444

    Precision (macro): 0.366667
    Recall (macro): 0.361111
    F1 score (macro): 0.355556

    Precision (weighted): 0.433333
    Recall (weighted): 0.444444
    F1 score (weighted): 0.429630

obtiendra ce résultat:

XXX


0 commentaires