Maison > Article > développement back-end > Que sont les performances du modèle Python ROC et AUC
ROC
L'analyse et l'aire sous la courbe (AUC) sont des outils largement utilisés en science des données, empruntés au traitement du signal, pour évaluer la qualité des modèles sous différents paramétrages, ou pour comparer deux ou performances. de plusieurs modèles. ROC
分析和曲线下面积 (AUC) 是数据科学中广泛使用的工具,借鉴了信号处理,用于评估不同参数化下模型的质量,或比较两个或多个模型的性能。
传统的性能指标,如准确率和召回率,在很大程度上依赖于正样本的观察。因此,ROC 和 AUC 使用真阳性率和假阳性率来评估质量,同时考虑到正面和负面观察结果。
从分解问题到使用机器学习解决问题的过程有多个步骤。它涉及数据收集、清理和特征工程、构建模型,最后是,评估模型性能。
当您评估模型的质量时,通常会使用精度和召回率等指标,也分别称为数据挖掘领域的置信度和灵敏度。
这些指标将预测值与通常来自保留集的实际观察值进行比较,使用混淆矩阵进行可视化。
让我们首先关注精度,也称为阳性预测值。使用混淆矩阵,您可以将 Precision 构建为所有真实阳性与所有预测阳性的比率。
召回率,也称为真阳性率,表示真阳性与观察到的和预测的所有阳性的比率。
使用混淆矩阵中的不同观察集来描述 Precision
和 Recall
Voyons d'abord Concentrez-vous sur la précision, également appelée valeur prédictive positive. À l’aide d’une matrice de confusion, vous pouvez construire la précision comme le rapport de tous les vrais positifs à tous les positifs prédits.
Taux de rappel, Également connu sous le nom de taux de vrais positifs, il représente le rapport entre les vrais positifs et tous les positifs observés et prédits.
Utiliser la matrice de confusion En décrivant les différents ensembles d'observations dans Precision
et Recall
, vous pouvez commencer à comprendre comment ces métriques fournissent une vue des performances du modèle.
Il convient de noter que la précision et le rappel se concentrent uniquement sur des exemples et des prédictions positifs, sans prendre en compte les exemples négatifs. De plus, ils ne comparent pas les performances du modèle au scénario médian, qui n’est qu’une estimation aléatoire.
1. Courbe ROC
ROC sert d'outil récapitulatif pour visualiser le compromis entre précision et rappel. L'analyse ROC utilise une courbe ROC pour déterminer dans quelle mesure la valeur d'un signal binaire est contaminée par le bruit, c'est-à-dire le caractère aléatoire. Il fournit un résumé de la sensibilité et de la spécificité d'un prédicteur continu sur une gamme de points de fonctionnement. La courbe ROC est obtenue en traçant le taux de faux positifs sur l’axe des x par rapport au taux de vrais positifs sur l’axe des y.
Étant donné que le taux de vrais positifs est la probabilité de détecter un signal et le taux de faux positifs est la probabilité de faux positifs, l'analyse ROC est également largement utilisée dans la recherche médicale pour déterminer les seuils qui détectent de manière fiable une maladie ou d'autres comportements. 🎜🎜🎜🎜🎜Un modèle parfait aura un taux de faux positifs et un taux de vrais positifs égal à 1, ce sera donc l'unique point de fonctionnement dans le coin supérieur gauche du tracé ROC. Et le pire modèle possible aura un seul point de fonctionnement dans le coin inférieur gauche du tracé ROC où le taux de faux positifs est égal à 1 et le taux de vrais positifs est égal à 0. 🎜🎜Le modèle de supposition aléatoire a 50 % de chances de prédire correctement le résultat, de sorte que le taux de faux positifs sera toujours égal au taux de vrais positifs. C'est pourquoi il y a une ligne diagonale dans le graphique, qui représente une probabilité de 50/50 de détecter le signal par rapport au bruit. 🎜🎜2. Aire AUC 🎜🎜Pour analyser complètement la courbe ROC et comparer les performances de votre modèle avec plusieurs autres modèles, vous devez en fait calculer l'aire sous la courbe (AUC), également connue sous le nom de statistique c dans la littérature. . L'aire sous la courbe (AUC) a une valeur comprise entre 0 et 1 car la courbe est tracée sur une grille 1x1 et parallèle à la théorie du signal, c'est une mesure de la détectabilité du signal. 🎜🎜C'est une statistique très utile car elle nous donne une idée du classement du modèle par rapport aux observations réelles et aux fausses observations. Il s'agit en fait d'une version normalisée du test de somme de rangs de Wilcoxon-Mann-Whitney, qui teste l'hypothèse nulle selon laquelle deux échantillons de mesures ordonnés sont tirés d'une seule distribution. 🎜🎜Pour tracer une courbe ROC et calculer l'aire sous la courbe (AUC), vous décidez d'utiliser la méthode RocCurveDisplay de SckitLearn et de comparer un perceptron multicouche à un modèle de forêt aléatoire pour tenter de résoudre la même tâche de classification. 🎜import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score, RocCurveDisplay def plot_roc(model, test_features, test_targets): """ Plotting the ROC curve for a given Model and the ROC curve for a Random Forests Models """ # comparing the given model with a Random Forests model random_forests_model = RandomForestClassifier(random_state=42) random_forests_model.fit(train_features, train_targets) rfc_disp = RocCurveDisplay.from_estimator(random_forests_model, test_features, test_targets) model_disp = RocCurveDisplay.from_estimator(model, test_features, test_targets, ax=rfc_disp.ax_) model_disp.figure_.suptitle("ROC curve: Multilayer Perceptron vs Random Forests") plt.show() # using perceptron model as input plot_roc(ml_percetron_model, test_features, test_targets)🎜🎜🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!