[PYTHON] Ich habe versucht, die beim maschinellen Lernen verwendeten Bewertungsindizes zu organisieren (Regressionsmodell).

Einführung

Dieses Mal habe ich versucht, den Bewertungsindex (Regressionsmodell) des maschinellen Lernens zu organisieren. Wir haben auch die Punkte bei Verwendung jedes Bewertungsindex zusammengefasst.

1. Entscheidungskoeffizient

Der Entscheidungsfaktor $ R ^ 2 $ bewertet die Anpassung des geschätzten Regressionsmodells. Die Formel lautet wie folgt.

\begin{eqnarray}
R^2 = 1 - \sum \frac{(y_i - \hat{y_i})^2}{(y_i - \bar{y})^2}
\end{eqnarray}

$ y_i $: Messwert der $ i $ -ten Stichprobe $ \ hat {y_i} $: Voraussichtlicher Wert der $ i $ -ten Stichprobe $ \ bar {y} $: Durchschnitt der gemessenen Werte

Artikel Überblick
Evaluationskriterien ・ Je näher es an 1 liegt, desto besser ist der Wert
Interpretation ・ Bewerten Sie die Anpassungsgüte des Regressionsmodells
Charakteristisch ・ Mit zunehmender Anzahl erklärender Variablen nähert sie sich 1.
・ Nichtlineares Modell kann nicht bewertet werden

Der Python-Code ist unten.

#Bibliothek zur Punkteberechnung
from sklearn.metrics import r2_score

#true ist der wahre Wert (Messwert), pred ist der vorhergesagte Wert
true = [1.0, 1.5, 2.0, 1.2, 1.8]
pred = [0.8, 1.5, 1.8, 1.3, 2.0]

#Berechnen Sie den Wert des Entscheidungskoeffizienten R2
r2_score(true, pred)
  1. MAE MAE (Mean Absolute Error) bewertet die Größe des Fehlers des vorhergesagten Werts. Die Formel lautet wie folgt.
\begin{eqnarray}
MAE = \frac{1}{N} \sum|y_i - \hat{y_i}|
\end{eqnarray}

$ y_i $: Messwert der $ i $ -ten Stichprobe $ \ hat {y_i} $: Voraussichtlicher Wert der $ i $ -ten Stichprobe $ N $: Anzahl der Proben

Artikel Überblick
Evaluationskriterien ・ Je näher an 0, desto besser der Wert
Interpretation ・ Die Größe der durchschnittlichen Abweichung (Fehler) zwischen dem vorhergesagten Wert und dem gemessenen Wert
Charakteristisch ・ Wir messen Fällen, die weitgehend unvorhersehbar sind, keine große Bedeutung bei.
・ Wenn ein gutes Modell basierend auf MAE ausgewählt wird, steigt der maximale Fehler tendenziell an.

Der Python-Code ist unten.

#Bibliothek zur Punkteberechnung
from sklearn.metrics import mean_absolute_error

#true ist der wahre Wert (Messwert), pred ist der vorhergesagte Wert
true = [1.0, 1.5, 2.0, 1.2, 1.8]
pred = [0.8, 1.5, 1.8, 1.3, 2.0]

#Berechnen Sie den Wert von MAE
mean_absolute_error(true, pred)
  1. MSE In MSE (Mean Squared Error) werden große Fehler hervorgehoben und bewertet. Die Formel lautet wie folgt.
\begin{eqnarray}
MSE = \frac{1}{N} \sum(y_i - \hat{y_i})^2
\end{eqnarray}

$ y_i $: Messwert der $ i $ -ten Stichprobe $ \ hat {y_i} $: Voraussichtlicher Wert der $ i $ -ten Stichprobe $ N $: Anzahl der Proben

Artikel Überblick
Evaluationskriterien ・ Je näher an 0, desto besser der Wert
Interpretation ・予測値と実測値のズレの大きさとInterpretationできる
・ Ähnlich wie MAE, jedoch anders als der tatsächliche durchschnittliche Fehler wie MAE
Charakteristisch ・ Der Schwerpunkt liegt auf Fällen, die weitgehend unvorhersehbar sind
・ MSE steigt tendenziell erheblich an, wenn die Prognose weitgehend verfehlt wird.

Der Python-Code ist unten.

#Bibliothek zur Punkteberechnung
from sklearn.metrics import mean_squared_error

#true ist der wahre Wert (Messwert), pred ist der vorhergesagte Wert
true = [1.0, 1.5, 2.0, 1.2, 1.8]
pred = [0.8, 1.5, 1.8, 1.3, 2.0]

#Berechnen Sie den Wert von MSE
mean_squared_error(true, pred)
  1. RMSE In RMSE (Root Mean Squared Error) werden große Fehler hervorgehoben und ausgewertet. Die Formel lautet wie folgt.
\begin{eqnarray}
RMSE = \sqrt{\frac{1}{N} \sum(y_i - \hat{y_i})^2}
\end{eqnarray}

$ y_i $: Messwert der $ i $ -ten Stichprobe $ \ hat {y_i} $: Voraussichtlicher Wert der $ i $ -ten Stichprobe $ N $: Anzahl der Proben

Artikel Überblick
Evaluationskriterien ・ Je näher an 0, desto besser der Wert
Interpretation ・予測値と実測値のズレの大きさとInterpretationできる
・ Ähnlich wie MAE, jedoch anders als der tatsächliche durchschnittliche Fehler wie MAE
Charakteristisch ・ Der Schwerpunkt liegt auf Fällen, die weitgehend unvorhersehbar sind
・ Wenn die Prognose weitgehend verfehlt wird, steigt der RMSE tendenziell erheblich an.

Der Python-Code ist unten.

#Bibliothek zur Punkteberechnung
import numpy as np
from sklearn.metrics import mean_squared_error

#true ist der wahre Wert (Messwert), pred ist der vorhergesagte Wert
true = [1.0, 1.5, 2.0, 1.2, 1.8]
pred = [0.8, 1.5, 1.8, 1.3, 2.0]

#Berechnen Sie den RMSE-Wert
np.sqrt(mean_squared_error(true, pred))
  1. MAPE MAPE (Mean Absolute Percentage Error) wertet die Größe des Vorhersagefehlers pro Größe des gemessenen Werts aus. Die Formel lautet wie folgt.
\begin{eqnarray}
MAPE = \frac{1}{N} \sum|\frac{y_i - \hat{y_i}}{y_i}|
\end{eqnarray}

$ y_i $: Messwert der $ i $ -ten Stichprobe $ \ hat {y_i} $: Voraussichtlicher Wert der $ i $ -ten Stichprobe $ N $: Anzahl der Proben

Artikel Überblick
Evaluationskriterien ・ Je näher an 0, desto besser der Wert
Interpretation ・ Verhältnis der durchschnittlichen Abweichung (Fehler) des vorhergesagten Werts zur Größe des Messwerts
Charakteristisch ・ Der Schwerpunkt liegt auf der Größe des Verhältnisses von Vorhersagefehler zu gemessenem Wert.
・ Kann nicht verwendet werden, wenn der gemessene Wert 0 ist

Der Python-Code ist unten.

#Bibliothek zur Punkteberechnung
import numpy as np

#true ist der wahre Wert (Messwert), pred ist der vorhergesagte Wert
true = np.array([1.0, 1.5, 2.0, 1.2, 1.8])
pred = np.array([0.8, 1.5, 1.8, 1.3, 2.0])

#Berechnen Sie den Wert von MAPE
np.mean(np.abs((true - pred) / true)) * 100
  1. SMAPE SMAPE (Symmetric Mean Absolute Percentage Error) bewertet die Größe des Vorhersagefehlers pro gemessenem Wert. Die Formel lautet wie folgt.
\begin{eqnarray}
SMAPE = \frac{100}{N} \sum|\frac{2(y_i - \hat{y_i})}{(|y_i|+|\hat{y_i}|)}|
\end{eqnarray}

$ y_i $: Messwert der $ i $ -ten Stichprobe $ \ hat {y_i} $: Voraussichtlicher Wert der $ i $ -ten Stichprobe $ N $: Anzahl der Proben

Artikel Überblick
Evaluationskriterien ・ Je näher an 0, desto besser der Wert
Interpretation ・ Verhältnis der durchschnittlichen Abweichung (Fehler) des vorhergesagten Werts zur Größe des Messwerts
Charakteristisch ・ Der Schwerpunkt liegt auf der Größe des Verhältnisses von Vorhersagefehler zu gemessenem Wert.
・ Im Gegensatz zu MAPE kann es auch dann verwendet werden, wenn der gemessene Wert 0 ist.

Der Python-Code ist unten.

#Bibliothek zur Punkteberechnung
import numpy as np

#true ist der wahre Wert (Messwert), pred ist der vorhergesagte Wert
true = np.array([1.0, 1.5, 2.0, 1.2, 1.8])
pred = np.array([0.8, 1.5, 1.8, 1.3, 2.0])

#Berechnen Sie den SMAPE-Wert
100/len(true) * np.sum(2 * np.abs(pred - true) / (np.abs(pred) + np.abs(true)))

Zusammenfassung des Skripts

Organisieren Sie das Skript bisher.

#Bibliothek zur Punkteberechnung
import numpy as np
import pandas as pd
from sklearn.metrics import r2_score
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error

def calculate_scores(true, pred):
    """Berechnen Sie alle Metriken

    Parameters
    ----------
    true : np.array
Gemessener Wert
    pred : np.array
Voraussichtlicher Wert

    Returns
    -------
    scores : pd.DataFrame
Ergebnisse der Zusammenfassung jedes Bewertungsindex
    """
    scores = pd.DataFrame({'R2': r2_score(true, pred),
                          'MAE': mean_absolute_error(true, pred),
                          'MSE': mean_squared_error(true, pred),
                          'RMSE': np.sqrt(mean_squared_error(true, pred)),
                          'MAPE': mape(true, pred),
                          'SMAPE': smape(true, pred)},
                          index = ['scores'])
    return scores

def mape(true, pred):  
    """MAPE berechnen

    Parameters
    ----------
    true : np.array
Gemessener Wert
    pred : np.array
Voraussichtlicher Wert

    Returns
    -------
    np.array :Berechnungsergebnis von mape
    """
    return np.mean(np.abs((true - pred) / true)) * 100

#SMAPE-Berechnung
def smape(true, pred):
    """SMAPE berechnen

    Parameters
    ----------
    true : np.array
Gemessener Wert
    pred : np.array
Voraussichtlicher Wert

    Returns
    -------
    np.array :Berechnung von Smape
    """
    return 100/len(true) * np.sum(2 * np.abs(pred - true) / (np.abs(pred) + np.abs(true)))

def main():
    true = np.array([1.0, 1.5, 2.0, 1.2, 1.8])
    pred = np.array([0.8, 1.5, 1.8, 1.3, 2.0])

    scores = calculate_scores(true, pred)

    print(scores)

if __name__ == "__main__":
    main()
R2 MAE MSE RMSE MAPE SMAPE
scores 0.808824 0.14 0.026 0.161245 9.888889 10.254971

schließlich

Vielen Dank für das Lesen bis zum Ende. Wenn Sie eine Korrekturanfrage haben, würden wir uns freuen, wenn Sie uns kontaktieren könnten.

Recommended Posts

Ich habe versucht, die beim maschinellen Lernen verwendeten Bewertungsindizes zu organisieren (Regressionsmodell).
Ich habe versucht, das Modell mit der Low-Code-Bibliothek für maschinelles Lernen "PyCaret" zu visualisieren.
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich habe versucht, die Veränderung der Schneemenge für 2 Jahre durch maschinelles Lernen vorherzusagen
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
Ich habe versucht, den in Pandas häufig verwendeten Code zusammenzufassen
Ich habe versucht, die im Geschäftsleben häufig verwendeten Befehle zusammenzufassen
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Ich habe versucht, die Vorhersage-API des maschinellen Lernmodells von WordPress aus aufzurufen
Ich habe versucht, Gitarrenakkorde in Echtzeit mithilfe von maschinellem Lernen zu klassifizieren
(Maschinelles Lernen) Ich habe versucht, die Bayes'sche lineare Regression bei der Implementierung sorgfältig zu verstehen
Ich habe das VGG16-Modell mit Keras implementiert und versucht, CIFAR10 zu identifizieren
Ich habe versucht, das RWA-Modell (Recurrent Weighted Average) in Keras zu trainieren
Ich habe versucht, TOPIC MODEL in Python zu implementieren
Zusammenfassung der beim maschinellen Lernen verwendeten Bewertungsfunktionen
(Maschinelles Lernen) Ich habe versucht, den EM-Algorithmus in der gemischten Gaußschen Verteilung sorgfältig mit der Implementierung zu verstehen.
Ich habe versucht, die Lernfunktion im neuronalen Netzwerk sorgfältig zu verstehen, ohne die Bibliothek für maschinelles Lernen zu verwenden (zweite Hälfte).
Ich habe versucht, das Vorhandensein oder Nichtvorhandensein von Schnee durch maschinelles Lernen vorherzusagen.
Ich habe versucht, verschiedene Methoden für maschinelles Lernen (Vorhersagemodell) mithilfe von Scicit-Learn zu implementieren
Ich habe versucht, das Bild zu verarbeiten und zu transformieren und die Daten für maschinelles Lernen zu erweitern
Ich habe versucht, maschinelles Lernen (Objekterkennung) mit TouchDesigner zu verschieben
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Versuchen Sie, das Modell des maschinellen Lernens in das Python-Paket aufzunehmen
Ich habe versucht, SVM zu organisieren.
Ich habe "Lobe" ausprobiert, mit dem das von Microsoft veröffentlichte Modell des maschinellen Lernens problemlos trainiert werden kann.
Wird in EDA für maschinelles Lernen verwendet
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
Ich habe versucht, durch maschinelles Lernen Sätze in den XX-Stil umzuwandeln
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
[TF] Ich habe versucht, das Lernergebnis mit Tensorboard zu visualisieren
Ich habe versucht, in einem tief erlernten Sprachmodell zu schreiben
Ich habe versucht, die Genauigkeit von Modellen für maschinelles Lernen mit Kaggle als Thema zu vergleichen.
Passende App Ich habe versucht, Statistiken über starke Leute zu erstellen und ein Modell für maschinelles Lernen zu erstellen
[Deep Learning von Grund auf neu] Ich habe versucht, die Gradientenbestätigung auf leicht verständliche Weise zu erklären.
Ich habe versucht, die Yin- und Yang-Klassifikation hololiver Mitglieder durch maschinelles Lernen zu überprüfen
Ich habe versucht, es sorgfältig zu verstehen, während ich den Algorithmus Adaboost beim maschinellen Lernen implementiert habe (+ ich habe mein Verständnis der Array-Berechnung vertieft)
Ich habe maschinelles Lernen mit liblinear versucht
Klassifikation und Regression beim maschinellen Lernen
Ich habe versucht, mich über MCMC zu organisieren.
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
Ich habe versucht, das Bild mit OpenCV im "Skizzenstil" zu verarbeiten
Ich habe versucht, die Befehle zusammenzufassen, die Anfängeringenieure heute verwenden
Ich habe versucht, das Bild mit OpenCV im "Bleistift-Zeichenstil" zu verarbeiten
Ich habe versucht, die häufig verwendete Implementierungsmethode von pytest-mock zusammenzufassen
Management von Modellen für maschinelles Lernen, um Streitigkeiten mit der Unternehmensseite zu vermeiden
[Maschinelles Lernen] Ich habe versucht, so etwas wie Bilder weiterzugeben
Menschen merken sich gelerntes Wissen im Gehirn, wie man gelerntes Wissen im maschinellen Lernen auswendig lernt
Ich habe versucht, Othello AI mit Tensorflow zu machen, ohne die Theorie des maschinellen Lernens zu verstehen ~ Einführung ~
Ich habe versucht, das überwachte Lernen des maschinellen Lernens auch für Serveringenieure auf leicht verständliche Weise zu verstehen 1
[Qiita API] [Statistik • Maschinelles Lernen] Ich habe versucht, die bisher veröffentlichten Artikel zusammenzufassen und zu analysieren.
Ich habe versucht, das überwachte Lernen des maschinellen Lernens auch für Serveringenieure auf leicht verständliche Weise zu verstehen 2
Ich habe versucht, Othello AI mit Tensorflow zu erstellen, ohne die Theorie des maschinellen Lernens zu verstehen ~ Implementierung ~
Ich habe versucht, PLSA in Python zu implementieren
<Subjekt> Maschinelles Lernen Kapitel 3: Logistisches Regressionsmodell
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, die Methoden zusammenzufassen, die häufig bei der grundlegenden Algo-Implementierung in Quantx Factory verwendet werden