𝐔𝐧𝐝𝐞𝐫𝐬𝐭𝐚𝐧𝐝𝐢𝐧𝐠 𝐀𝐔𝐂-𝐑𝐎𝐂 𝐂𝐮𝐫𝐯𝐞 | von Anshu Kumar | Juni 2023

0
126


Im Bereich des maschinellen Lernens ist es von entscheidender Bedeutung, die Leistung und Genauigkeit von Vorhersagemodellen zu bewerten. Eine beliebte Bewertungsmetrik für diesen Zweck ist die AUC-ROC-Kurve. Es liefert wertvolle Erkenntnisse darüber, wie intestine ein Modell zwischen verschiedenen Klassen oder Kategorien unterscheiden kann. In diesem Weblog untersuchen wir die AUC-ROC-Kurve und wie sie zur Bewertung der Leistung von Modellen für maschinelles Lernen verwendet werden kann.

Was ist die AUC-ROC-Kurve?

AUC steht für Fläche unter der Kurve und ROC steht für Betriebseigenschaften des Empfängers. Die ROC-Kurve ist eine grafische Darstellung, die uns durch die Darstellung der Leistung eines Klassifizierungsmodells Auskunft gibt echte optimistic Price gegen das Falsch-Positiv-Price bei verschiedenen Schwellenwerteinstellungen. Die AUC-ROC-Kurve fasst die Gesamtleistung des Modells über alle möglichen Klassifizierungsschwellenwerte hinweg zusammen.

Schauen wir uns nun einige Begriffe an, die uns helfen, ROC und AUC besser zu verstehen. Schauen wir uns dazu an, wie eine Verwirrungsmatrix aussieht:

𝚃𝚛𝚞𝚎 𝙿𝚘𝚜𝚒𝚝𝚒𝚟𝚎 𝚁𝚊𝚝𝚎

Der echte optimistic Priceauch bekannt als Empfindlichkeit oder abrufen ist eine Leistungsmetrik, die bei binären Klassifizierungsaufgaben verwendet wird, beispielsweise in der medizinischen Diagnostik oder Qualitätskontrolle. Es misst den Anteil tatsächlich positiver Fälle, die von einem Klassifikator oder Modell korrekt identifiziert werden.

Mit anderen Worten: TPR zeigt, wie intestine ein Modell zwischen positiven Fällen unter allen echten positiven Beispielen im Datensatz unterscheiden kann. Eine höhere True-Positiv-Price weist auf eine bessere Leistung des Modells bei der korrekten Identifizierung positiver Fälle hin.

𝙵𝚊𝚕𝚜𝚎 𝙿𝚘𝚜𝚒𝚝𝚒𝚟𝚎 𝚁𝚊𝚝𝚎

Der Falsch-Positiv-Price ist eine Leistungsmetrik, die bei binären Klassifizierungsaufgaben verwendet wird. Es misst den Anteil negativer Instanzen, die von einem Klassifikator oder Modell fälschlicherweise als positiv klassifiziert werden.

Einfacher ausgedrückt zeigt die Falsch-Positiv-Price, wie oft das Modell etwas falsch macht, indem es sagt, dass etwas positiv ist, obwohl es tatsächlich negativ ist. Eine niedrigere Falsch-Positiv-Price weist auf eine bessere Leistung des Modells bei der Vermeidung von Fehlalarmen oder Fehlalarmen hin.

𝚃𝚑𝚛𝚎𝚜𝚑𝚘𝚕𝚍 𝚂𝚎𝚕𝚎𝚌𝚝𝚒𝚘𝚗

Wir wissen, dass die Vorhersage von Klassenbezeichnungen eines Modells für maschinelles Lernen auf der vom Modell erzeugten Wahrscheinlichkeitsbewertung basiert. Allerdings muss hierfür ein Schwellenwert definiert werden, um diese Wahrscheinlichkeiten in genaue Klassenvorhersagen umzuwandeln. Die Entscheidung basiert auf dem Vergleich der vorhergesagten Wahrscheinlichkeit mit einem vordefinierten Schwellenwert. Wenn die vorhergesagte Wahrscheinlichkeit den Schwellenwert überschreitet, wird die Instanz als optimistic Klasse klassifiziert; andernfalls wird es als unfavourable Klasse klassifiziert.

Der Betriebseigenschaften des Empfängers (ROC)-Kurve ist eine grafische Darstellung, die die Leistung eines binären Klassifizierungsmodells veranschaulicht. Es liefert wertvolle Erkenntnisse darüber, wie intestine das Modell zwischen verschiedenen Klassen oder Kategorien unterscheiden kann.

Bildnachweis: easyai.tech

Die ROC-Kurve wird durch Auftragen von T erstelltrue Constructive Price (TPR) gegen die Fauch optimistic Price (FPR) bei verschiedenen Schwellenwerteinstellungen.

Ein höherer FPR auf einer ROC-Kurve bedeutet einen größeren Anteil von Fehlalarm im Vergleich zu Wahre Detrimental. Während ein höherer TPR einen größeren Anteil an bedeutet Wirklich positiv als Falsche Detrimental. Um den Graphen auszugleichen, müssen wir ihn ausbalancieren Schwelle. Je näher die Kurve an einem rechten Winkel liegt, desto genauer ist das Modell.

Bildnachweis: iguazio

Um es besser zu verstehen, graben wir tiefer. Nehmen wir additionally zwei Fälle:

𝓒𝓪𝓼𝓮 1: Wenn der Schwellenwert zu klein ist.

An dieser Stelle, Wirklich positiv steigt aber Falsch negativ Verringerungen führen zu einer Erhöhung von Echt-Positiv-Price wohingegen Falsch positiv erhöht und Echt negativ Verringerungen führen zu einer Erhöhung von Falsch-Positiv-Price. Lassen Sie uns nun dieses Diagramm zeichnen.

Hier können wir deutlich erkennen, dass unser Punkt zu weit vom rechten Winkel entfernt ist.

𝓒𝓪𝓼𝓮 2: Wenn der Schwellenwert zu groß ist

An dieser Stelle, Wirklich positiv nimmt aber ab Falsch negativ Erhöhungen führen zu einer Verringerung Echt-Positiv-Price wohingegen Falsch positiv nimmt ab und Echt negativ Erhöhungen führen zu einer Verringerung Falsch-Positiv-Price. Lassen Sie uns nun dieses Diagramm zeichnen.

In diesem Fall können wir deutlich erkennen, dass unser Punkt zu weit vom rechten Winkel entfernt ist.

Aus beiden oben genannten Fällen können wir schließen, dass wir unseren Schwellenwert anpassen müssen, um ein genaueres Modell zu erhalten.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

# Fashions for scikit-learn
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier

# Mannequin Analysis
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_curve, roc_auc_score

df = pd.read_csv("pima_indians_diabetes.csv", names=  ["Pregnancies","Glucose","BloodPressure","Skinthickness","Insulin","BMI","DiabetesPedigreeFunction","age","Outcome"])

# Splitting dataset into coaching and testing information
X = df.drop(["Outcome","Insulin"],axis=1)
y=df[['Outcome']]
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.20)

rfc = RandomForestClassifier()
rfc.match(X_train, y_train)
lr = LogisticRegression()
lr.match(X_train, y_train)
# prediction chances
pred_proba1 = lr.predict_proba(X_test)
pred_proba2 = rfc.predict_proba(X_test)

# roc curve for fashions
fpr1, tpr1, threshold1 = roc_curve(y_test, pred_proba1[:,1])
fpr2, tpr2, threshold2 = roc_curve(y_test, pred_proba2[:,1])

# roc curve when FPR = TPR
random_probab = [0 for i in range(len(y_test))]
random_fpr, random_tpr, _ = roc_curve(y_test, random_probab, pos_label=1)

# auc scores
auc_score1 = roc_auc_score(y_test, pred_proba1[:,1])
auc_score2 = roc_auc_score(y_test, pred_proba2[:,1])

# plot roc curves
plt.plot(fpr1, tpr1, linestyle='--',shade='orange', label='Logistic Regression')
plt.plot(fpr2, tpr2, linestyle='--',shade='inexperienced', label='Random Forest Classifier')
plt.plot(random_fpr, random_tpr, linestyle='--', shade='blue')
plt.title('ROC curve')
plt.xlabel('False Constructive Price')
plt.ylabel('True Constructive Price')
plt.legend()
plt.present();

Hier dreht sich alles um die AUC-ROC-Kurve. Ich hoffe, Sie fanden diesen Weblog sowohl interessant als auch verständlich. Danke schön.



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here