Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind ROC und AUC der Python-Modellleistung?

Was sind ROC und AUC der Python-Modellleistung?

WBOY
WBOYnach vorne
2023-05-13 14:31:131478Durchsuche

Text

ROC-Analyse und Fläche unter der Kurve (AUC) sind weit verbreitete Werkzeuge in der Datenwissenschaft, die der Signalverarbeitung entlehnt sind, um die Qualität verschiedener Parametrisierungen zu bewerten eines Modells oder Vergleich der Leistung von zwei oder mehr Modellen. ROC 分析和曲线下面积 (AUC) 是数据科学中广泛使用的工具,借鉴了信号处理,用于评估不同参数化下模型的质量,或比较两个或多个模型的性能。

传统的性能指标,如准确率和召回率,在很大程度上依赖于正样本的观察。因此,ROC 和 AUC 使用真阳性率和假阳性率来评估质量,同时考虑到正面和负面观察结果。

从分解问题到使用机器学习解决问题的过程有多个步骤。它涉及数据收集、清理和特征工程、构建模型,最后是,评估模型性能。

当您评估模型的质量时,通常会使用精度和召回率等指标,也分别称为数据挖掘领域的置信度和灵敏度。

这些指标将预测值与通常来自保留集的实际观察值进行比较,使用混淆矩阵进行可视化。

Was sind ROC und AUC der Python-Modellleistung?

让我们首先关注精度,也称为阳性预测值。使用混淆矩阵,您可以将 Precision 构建为所有真实阳性与所有预测阳性的比率。

Was sind ROC und AUC der Python-Modellleistung?

召回率,也称为真阳性率,表示真阳性与观察到的和预测的所有阳性的比率。

Was sind ROC und AUC der Python-Modellleistung?

使用混淆矩阵中的不同观察集来描述 PrecisionRecall

Traditionelle Leistungsmetriken wie Präzision und Rückruf hängen stark von der Beobachtung positiver Proben ab. Daher bewerten ROC und AUC die Qualität anhand der Richtig-Positiv- und Falsch-Positiv-Raten und berücksichtigen dabei sowohl positive als auch negative Beobachtungen.

Der Prozess umfasst mehrere Schritte, von der Zerlegung eines Problems bis hin zum Einsatz von maschinellem Lernen zu seiner Lösung. Es umfasst die Datenerfassung, Bereinigung und Feature-Entwicklung, den Aufbau des Modells und schließlich die Bewertung der Modellleistung.

Wenn Sie die Qualität eines Modells bewerten, verwenden Sie normalerweise Metriken wie Präzision und Rückruf, im Bereich Data Mining auch als Konfidenz bzw. Sensitivität bezeichnet.

Diese Metriken vergleichen vorhergesagte Werte mit tatsächlichen Beobachtungen, normalerweise aus einem Holdout-Satz, visualisiert mithilfe einer Verwirrungsmatrix.

Was sind ROC und AUC der Python-Modellleistung?

Was sind ROC und AUC der Python-Modellleistung? Konzentrieren wir uns zunächst auf die Genauigkeit, auch bekannt als positiver Vorhersagewert. Mithilfe einer Verwirrungsmatrix können Sie die Präzision als das Verhältnis aller echten positiven Ergebnisse zu allen vorhergesagten positiven Ergebnissen konstruieren.

Was sind ROC und AUC der Python-Modellleistung?

Die Rückrufrate, auch True-Positive-Rate genannt, stellt das Verhältnis von True-Positives zu allen beobachteten und vorhergesagten Positiven dar.

Was sind ROC und AUC der Python-Modellleistung?

Durch die Verwendung verschiedener Beobachtungssätze in einer Verwirrungsmatrix zur Beschreibung von Präzision und Erinnerung können Sie beginnen zu verstehen, wie diese Metriken einen Überblick über geben die Leistung Ihres Modells.

Es ist erwähnenswert, dass sich Precision und Recall nur auf positive Beispiele und Vorhersagen konzentrieren, ohne negative Beispiele zu berücksichtigen. Darüber hinaus vergleichen sie die Leistung des Modells nicht mit dem Median-Szenario, bei dem es sich lediglich um eine zufällige Schätzung handelt.

1. ROC-Kurve

ROC ist ein zusammenfassendes Tool zur Visualisierung des Kompromisses zwischen Präzision und Rückruf. Die ROC-Analyse verwendet eine ROC-Kurve, um zu bestimmen, wie viel vom Wert eines Binärsignals durch Rauschen, d. h. Zufälligkeit, verunreinigt ist. Es bietet eine Zusammenfassung der Sensitivität und Spezifität für einen kontinuierlichen Prädiktor über einen Bereich von Betriebspunkten. Die ROC-Kurve wird durch Auftragen der Falsch-Positiv-Rate auf der X-Achse gegen die Echt-Positiv-Rate auf der Y-Achse erhalten. Was sind ROC und AUC der Python-Modellleistung?

Da die Richtig-Positiv-Rate die Wahrscheinlichkeit der Erkennung eines Signals und die Falsch-Positiv-Rate die Wahrscheinlichkeit falsch-positiver Ergebnisse ist, wird die ROC-Analyse auch in der medizinischen Forschung häufig verwendet, um die Schwellenwerte zu bestimmen, die eine Krankheit oder Krankheit zuverlässig erkennen andere Verhaltensweisen. #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Ein perfektes Modell hat eine Falsch-Positiv-Rate und eine Echt-Positiv-Rate gleich 1, sodass es sich um den einzigen Betriebspunkt oben links handelt Ecke des ROC-Grundstücks. Und das schlechtestmögliche Modell wird einen einzigen Betriebspunkt in der unteren linken Ecke des ROC-Diagramms haben, bei dem die Falsch-Positiv-Rate gleich 1 und die Richtig-Positiv-Rate gleich 0 ist. #🎜🎜##🎜🎜#Das Zufallsschätzungsmodell hat eine 50-prozentige Chance, das Ergebnis richtig vorherzusagen, sodass die Falsch-Positiv-Rate immer der Richtig-Positiv-Rate entspricht. Aus diesem Grund gibt es in der Grafik eine diagonale Linie, die eine 50/50-Wahrscheinlichkeit für die Signalerkennung gegenüber Rauschen darstellt. #🎜🎜##🎜🎜#2. AUC-Fläche#🎜🎜##🎜🎜#Um die ROC-Kurve vollständig zu analysieren und die Leistung des Modells mit mehreren anderen Modellen zu vergleichen, müssen Sie tatsächlich die Fläche unter der Kurve (AUC) berechnen ), In der Literatur auch C-Statistik genannt. Die Fläche unter der Kurve (AUC) hat einen Wert zwischen 0 und 1, da die Kurve auf einem 1x1-Raster dargestellt wird und parallel zur Signaltheorie ein Maß für die Signalerkennbarkeit ist. #🎜🎜##🎜🎜# Dies ist eine sehr nützliche Statistik, da sie uns eine Vorstellung davon gibt, wie gut das Modell im Vergleich zu wahren und falschen Beobachtungen abschneidet. Dabei handelt es sich eigentlich um eine normalisierte Version des Wilcoxon-Mann-Whitney-Rangsummentests, der die Nullhypothese testet, bei der zwei geordnete Messstichproben aus einer einzelnen Verteilung gezogen werden. #🎜🎜##🎜🎜#Um eine ROC-Kurve zu zeichnen und die Fläche unter der Kurve (AUC) zu berechnen, entscheiden Sie sich für die RocCurveDisplay-Methode von SckitLearn und vergleichen ein mehrschichtiges Perzeptron mit einem Zufallswaldmodell, um die gleiche Klassifizierungsaufgabe zu lösen . #🎜🎜#
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)
#🎜🎜##🎜🎜##🎜🎜#

Das obige ist der detaillierte Inhalt vonWas sind ROC und AUC der Python-Modellleistung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen