Wir, Datenwissenschaftler, zitieren am meisten – aber auch die irreführendsten.

Wir haben vor langer Zeit herausgefunden, dass Modelle für weit mehr als nur Vorhersagen entwickelt wurden. Wir erstellen Modelle, um Entscheidungen zu treffen, und das erfordert Vertrauen. Und es ist einfach nicht genug, sich auf die Genauigkeit zu verlassen.

In diesem Beitrag werden wir sehen, warum und wir werden andere Alternativen überprüfen, die fortgeschritten und auf unsere Bedürfnisse zugeschnitten sind. Wie immer werden wir dies nach einem praktischen Ansatz tun, wobei das Endziel des tiefgreifenden Eintauchens in die Bewertung über die Standardmetriken hinausgeht.

Hier ist das Inhaltsverzeichnis für die heutige Lesung:

  1. Einrichten der Modelle
  2. Klassifizierung: Über Genauigkeit hinaus
  3. Regression: Fortgeschrittene Bewertung
  4. Abschluss

Einrichten der Modelle

Genauigkeit ist eher sinnvoll für Klassifizierungsalgorithmen als für Regressionsaufgaben… daher werden nicht alle Probleme gleichermaßen gemessen.

Das ist der Grund, warum ich beschlossen habe, beide Szenarien – die Regression und die Klassifizierung – getrennt durch das Erstellen von zwei verschiedenen Modellen anzugehen.

Und sie werden sehr einfache sein, denn ihre Leistung und Anwendung ist heute nicht der Fall:

  • Einstufung: Wird im nächsten Spiel ein Stürmer erzielen?
  • Regression: Wie viele Tore erzielt ein Spieler?

Wenn Sie ein wiederkehrender Leser sind, bin ich sicher, dass die Verwendung von Fußballbeispielen keine Überraschung conflict.

Notiz: Auch wenn wir nicht die Genauigkeit für unser Regressionsproblem verwenden und dieser Beitrag mehr auf diese Metrik konzentriert, wollte ich diese Fälle nicht zurücklassen. Deshalb werden wir auch Regressionsmetriken untersuchen.

Da wir uns nicht um die Daten oder die Leistung kümmern, lassen Sie mich den gesamten Vorverarbeitungsteil überspringen und direkt zu den Modellen selbst gehen:

# Classification mannequin
mannequin = LogisticRegression()
mannequin.match(X_train_scaled, y_train)

# Gradient boosting regressor
mannequin = GradientBoostingRegressor()
mannequin.match(X_train_scaled, y_train)

Wie Sie sehen können, halten wir uns an einfache Modelle: Logistische Regression für die Binärklassifizierung und die Gradientenverstärkung für die Regression.

Lassen Sie uns die Metriken überprüfen, die wir normalerweise überprüfen:

# Classification
y_pred = mannequin.predict(X_test_scaled)
accuracy = accuracy_score(y_test, y_pred)

print(f"Take a look at accuracy: {accuracy:.2%}")

Die gedruckte Genauigkeit beträgt 92,43%, was ehrlich gesagt viel höher ist als das, was ich erwartet hätte. Ist das Modell wirklich so intestine?

# Regression
y_pred = mannequin.predict(X_test_scaled)

rmse = np.sqrt(mean_squared_error(y_test, y_pred))

print(f"Take a look at RMSE: {rmse:.4f}")

Ich habe eine RMSE von 0,3059. Nicht so intestine. Aber reicht es aus, unser Regressionsmodell zu verwerfen?

Wir müssen es besser machen.

Klassifizierung: Über Genauigkeit hinaus

Zu viele Datenwissenschaftsprojekte stoppen bei Genauigkeit, was häufig irreführend ist, insbesondere bei unausgewogenen Zielen (z. B. ist es selten, ein Ziel zu erzielen).

Um zu bewerten, ob unser Modell Wirklich Prognostiziert „Wird dieser Spieler auftreten?“, Hier sind andere Metriken, die wir in Betracht ziehen sollten:

  • Roc-auc: Misst die Fähigkeit, Optimistic über den Negativen zu rangieren. Unempfindlich gegenüber Schwellenwert, aber es ist sich nicht um die Kalibrierung.
  • Pr-auc: Die Präzisionsrecall-Kurve ist für seltene Ereignisse von wesentlicher Bedeutung (z. B. der Bewertungswahrscheinlichkeit). Es konzentriert sich auf die optimistic Klasse, die wichtig ist, wenn Optimistic knapp sind.
  • Protokollverlust: Bestraft zu übermütige falsche Vorhersagen. Perfect zum Vergleich kalibrierter probabilistischer Ausgänge.
  • Brier Rating: Messungen bedeuten quadratischer Fehler zwischen vorhergesagten Wahrscheinlichkeiten und tatsächlichen Ergebnissen. Niedriger ist besser und es ist interpretierbar als Wahrscheinlichkeitskalibrierung.
  • Kalibrierungskurven: Visuelle Diagnose, um festzustellen, ob vorhergesagte Wahrscheinlichkeiten beobachtete Frequenzen übereinstimmen.

Wir werden sie jetzt nicht alle testen, aber lassen Sie uns kurz auf Roc-Auc und Log-Verlust berühren, wahrscheinlich am meisten nach Genauigkeit.

Roc-auc

Roc-auc, oder Empfängerbetriebsmerkmal – Bereich unter der Kurveist eine beliebte Metrik, die darin besteht, den Bereich unter der ROC -Kurve zu messen, eine Kurve, die die wahre optimistic Fee (TPR) gegen die falsch optimistic Fee (FPR) darstellt.

Einfach ausgedrückt, fasst der ROC-AuC-Rating (von 0 bis 1) zusammen, wie intestine ein Modell relative Bewertungen erzeugen kann, um zwischen positiven oder negativen Instanzen über alle Klassifizierungsschwellen hinweg zu unterscheiden.

Eine Punktzahl von 0,5 zeigt eine zufällige Vermutung an und eine 1 ist eine perfekte Leistung.

Das Berechnen in Python ist einfach:

from sklearn.metrics import roc_auc_score

roc_auc = roc_auc_score(y_test, y_proba)

Hier enthält Y_TRUE die realen Labels und Y_Proba enthält die vorhergesagten Prorbabilitäten unseres Modells. In meinem Fall beträgt die Punktzahl 0,7585, was im Vergleich zur Genauigkeit relativ niedrig ist. Aber wie kann das möglich sein, wenn wir eine Genauigkeit über 90percenthaben?

Kontext: Wir versuchen vorherzusagen, ob ein Spieler in einem Spiel punkten oder nicht. Das „Drawback“ ist, dass dies sehr unausgeglichene Daten sind: Die meisten Spieler werden in einem Match nicht punkten, daher erfährt unser Modell, dass die Vorhersage einer 0 am wahrscheinlichsten ist, ohne wirklich etwas über die Daten selbst zu lernen.

Es kann die Minderheitenklasse nicht richtig erfassen und die Genauigkeit zeigt uns das einfach nicht.

Protokollverlust

Der logarithmische Verlust, der Kreuzentropie oder einfach nur der Protokollverlust wird verwendet, um die Leistung mit Wahrscheinlichkeitsausgängen zu bewerten. Es misst die Differenz zwischen den vorhergesagten Wahrscheinlichkeiten und den tatsächlichen (wahren) Werten logarithmisch.

Auch hier können wir dies mit einem Einzeiler in Python tun:

from sklearn.metrics import log_loss

logloss = log_loss(y_test, y_proba)

Wie Sie wahrscheinlich vermutet haben, desto besser ist der Wert, je niedriger der Wert ist. A 0 wäre das perfekte Modell. In meinem Fall bekam ich eine 0,2345.

Dieser ist auch von Klassenstörungen betroffen: Log -Verlust bestraft selbstbewusste falsche Vorhersagen sehr hart und da unser Modell die meiste Zeit eine 0 vorhersagt, wirken sich die Fälle, in denen tatsächlich ein Tor erzielt wurde, das Endergebnis auf.

Regression: Fortgeschrittene Bewertung

Genauigkeit macht bei der Regression keinen Sinn, aber wir haben eine Handvoll interessanter Metriken, um das Drawback zu bewerten, wie viele Tore ein Spieler in einem bestimmten Spiel erzielt werden.

Bei Vorhersage kontinuierliche Ergebnisse (z. B. erwartete Minuten, Matchbewertungen, Fantasy -Punkte), einfacher RMSE/MAE ist ein Anfang – aber wir können viel weiter gehen.

Andere Metriken und Überprüfungen:

  • : Repräsentiert den Anteil der Varianz in der vom Modell erläuterten Zielvariablen.
  • RMSLE: Bestraft Unterschätze mehr und ist nützlich, wenn die Werte exponentiell variieren (z. B. Fantasy -Punkte).
  • Mape / smape: Prozentuale Fehler, aber hüten Sie es zu tun, um durch-Null-Probleme zu achten.
  • Quantilverlust: Zugmodelle zur Vorhersage von Intervallen (z. B. 10., 50., 90. Perzentilergebnisse).
  • Relaxation gegenüber vorhergesagt (Handlung): Überprüfen Sie die Heteroskedastizität.

Konzentrieren wir uns erneut auf eine Untergruppe von ihnen.

R² Punktzahl

Auch als Bestimmungskoeffizient bezeichnet, vergleicht er den Fehler eines Modells mit dem Basisfehler. Eine Punktzahl von 1 passt perfekt an, A 0 bedeutet, dass er nur den Mittelwert vorhersagt, und ein Wert unter 0 bedeutet, dass er schlechter ist als die mittlere Vorhersage.

from sklearn.metrics import r2_score

r2 = r2_score(y_test, y_pred)

Ich habe einen Wert von 0,0557, was ziemlich nahe an 0 liegt… nicht intestine.

RMSLE

Der Root Imply quadratischer logarithmischer Fehler, oder rmsle misst die quadratische Wurzel des durchschnittlichen quadratischen Unterschieds zwischen dem lOG-transformierte vorhergesagte und tatsächliche Werte. Diese Metrik ist nützlich, wenn:

  • Wir wollen die Unterschätzung sanfter bestrafen.
  • Unsere Zielvariablen sind verzerrt (es verringert die Auswirkungen großer Ausreißer).
from sklearn.metrics import mean_squared_log_error

rmsle = np.sqrt(mean_squared_log_error(y_test, y_pred))

Ich habe einen 0,19684, was bedeutet, dass mein durchschnittlicher Vorhersagefehler etwa 0,2 Ziele beträgt. Es ist nicht so groß, aber angesichts der Tatsache, dass unsere Zielvariable ein Wert zwischen 0 und 4 ist und in hohem Maße auf 0 verzerrt ist…

Quantilverlust

Auch als Flipper -Verlust bezeichnet, kann es für quantile Regressionsmodelle verwendet werden, um zu bewerten, wie intestine unsere vorhergesagten Quantile funktionieren. Wenn wir ein Quantilmodell (GradientboostingRegressor mit Quantilverlust) erstellen, können wir es wie folgt testen:

from sklearn.metrics import mean_pinball_loss

alpha = 0.9
q_loss = mean_pinball_loss(y_test, y_pred_quantile, alpha=alpha)

Hier, mit Alpha 0,9, versuchen wir, das 90. Perzentil vorherzusagen. Mein Quantilverlust beträgt 0,0644, was relativ sehr gering ist (~ 1,6% meines Zielvariablenbereichs).

Verteilungsangelegenheiten jedoch: die meisten unserer y_test Die Werte sind 0, und wir müssen es als “interpretieren“Im Durchschnitt ist der Fehler unseres Modells bei der Erfassung des oberen Schwanzes sehr niedrig“.

Angesichts des 0-haarigen Ziels ist es besonders beeindruckend.

Da die meisten Ergebnisse 0 sind, sollten andere Metriken wie die oben genannten und erwähnten Metriken verwendet werden, um zu beurteilen, ob unser Modell tatsächlich intestine funktioniert oder nicht.

Abschluss

Das Aufbau von Vorhersagemodellen geht weit über das einfache Erreichen der „guten Genauigkeit“ hinaus.

Für Einstufung Aufgaben, Sie müssen über unausgewogene Daten, Wahrscheinlichkeitskalibrierung und Anwendungsfälle in der realen Welt wie Preisgestaltung oder Risikomanagement nachdenken.

Für RegressionDas Ziel ist es nicht nur, Fehler zu minimieren, sondern auch die Unsicherheit zu verstehen – important, wenn Ihre Vorhersagen Strategie oder Handelsentscheidungen beeinflussen.

Letztendlich liegt der wahre Wert in:

  • Sorgfältig kuratierte, zeitlich gültige Funktionen.
  • Erweiterte Bewertungsmetriken, die auf das Drawback zugeschnitten sind.
  • Transparente, intestine visuelle Vergleiche.

Wenn Sie diese richtig verstehen, bauen Sie nicht mehr „nur ein anderes Modell“ auf. Sie liefern robuste, entscheidungsbereite Instruments. Und die Metriken, die wir hier untersucht haben, sind nur der Einstiegspunkt.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert