[PYTHON] Bewertungsmethode des Regressionsproblems des maschinellen Lernens (mittlerer quadratischer Fehler und Entscheidungskoeffizient)

○ Die Hauptpunkte dieses Artikels Beachten Sie, dass ich gelernt habe, das Regressionsproblem zu bewerten.

○ Quellcode (Python): Für lineares Regressionsmodell

Lernen und Bewerten von Regressionsproblemen


from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
from sklearn.svm import SVR
%matplotlib inline

#Datenaufbereitung. Boston Immobilienpreise
data = load_boston()
X = data.data[:, [5,]] #Extrahieren Sie nur die Anzahl der Räume als erklärende Variablen
y = data.target

#Lernen mit einem einfachen Regressionsmodell
model_l = LinearRegression()
model_l.fit(X, y)
#Wiederholungsgerade y=ax +Neigung von b und Abschnittswert
print(model_l.coef_) #a: Neigung
print(model_l.intercept_) #b: Abschnitt

#Prognose
l_pred = model_l.predict(X)

#Grafikanzeige
fig, ax = plt.subplots()
ax.scatter(X, y, color='red', marker='s', label='data')
ax.plot(X, l_pred, color='blue', label='regression curve')
ax.legend()
plt.show()

Ergebnis [9.10210898] -34.67062077643857 ダウンロード.png

Ist es so

Durchschnittlicher quadratischer Fehler

Berechnete den quadratischen Fehler zwischen dem vorhergesagten Wert und dem tatsächlichen Wert und nahm den Durchschnitt. Je kleiner der Wert ist, desto korrekter ist der vorhergesagte Wert.

Durchschnittlicher quadratischer Fehler


mean_squared_error(y, l_pred)
43.60055177116956

Entscheidungskoeffizient

Eine Zahl, die die Genauigkeit der Vorhersage unter Verwendung des mittleren quadratischen Fehlers angibt. Es wird ein Wert von 0 bis 1 sein. Selbst beim Vergleich verschiedener Werte sind die Werte relativ vergleichbar.

Entscheidungskoeffizient


r2_score(y, l_pred)
0.48352545599133423

Ist das Ergebnis des linearen Regressionsmodells ein gutes Ergebnis? Versuchen Sie als nächstes andere Algorithmen.

○ Quellcode (Python): Für SVR-Modell

Lernen und Bewerten von SVR


# SVR(Support Vector Machine (Kernel-Methode))Lernen in
model_s = SVR(C=0.01, kernel='linear') #Der Regularisierungsparameter ist 0.Verwenden Sie einen linearen Kernel mit 01
model_s.fit(X, y)

#Wiederholungsgerade y=ax +Neigung von b und Abschnittswert
print(model_s.coef_) #a: Neigung
print(model_s.intercept_) #b: Abschnitt

#Prognose
s_pred = model_s.predict(X)

#Grafikanzeige
fig, ax = plt.subplots()
ax.scatter(X, y, color='red', marker='s', label='data')
ax.plot(X, l_pred, color='blue', label='regression curve')
ax.plot(X, s_pred, color='black', label='svr curve')
ax.legend()
plt.show()

Ergebnis [[1.64398]] [11.13520958] ダウンロード (1).png

Ist SVR subtiler? ??

Mittlerer quadratischer Fehler und Bestimmungskoeffizient


mean_squared_error(y, s_pred)
72.14197118147209
r2_score(y, s_pred)
0.14543531775956597

Lineare Regression ist besser. Jedoch! !! Ich weiß nicht, ob ich die Hyperparameter (Regularisierungsparameter und Kernel-Methode) von SVR ändere.

○ Quellcode (Python): Für SVR-Modell

SVR-Lernen und -Bewertung (Ändern von Hyperparametern)


model_s2 = SVR(C=1.0, kernel='rbf') #Verwenden Sie den rbf-Kernel mit dem Regularisierungsparameter 1
model_s2.fit(X, y)

#Prognose
s_pred2 = model_s2.predict(X)

#Grafikanzeige
fig, ax = plt.subplots()
ax.scatter(X, y, color='red', marker='s', label='data')
ax.plot(X, l_pred, color='blue', label='regression curve')
ax.plot(X, s_pred, color='black', label='svr curve')
ax.plot(X, s_pred2, color='orange', label='svr_rbf curve')
ax.legend()
plt.show()

Ergebnis ダウンロード (2).png

Ist es glatt und schön? ??

Mittlerer quadratischer Fehler und Bestimmungskoeffizient


mean_squared_error(y, s_pred2)
37.40032481992347
r2_score(y, s_pred2)
0.5569708427424378

Besser als lineare Regression. Es hängt von den Hyperparametern ab.

■ Eindruck ・ Studieren Sie, wie Regressionsprobleme bewertet werden. Sowohl der durchschnittliche quadratische Fehler als auch der Bestimmungskoeffizient werden basierend auf der "Differenz zwischen dem vorhergesagten Wert und den tatsächlichen Daten" bestimmt. Das Programm vergleicht die "Liste der richtigen Antwortdaten" und die "Liste der vorhergesagten Daten", macht einen Unterschied in den einzelnen Daten, quadriert sie und mittelt sie. Leicht sinnlich zu verstehen.

Recommended Posts

Bewertungsmethode des Regressionsproblems des maschinellen Lernens (mittlerer quadratischer Fehler und Entscheidungskoeffizient)
Die Fallstricke von RMSE (mittlerer quadratischer Fehler), einem Bewertungsindex für die Regression!
Bedeutung des maschinellen Lernens und des Mini-Batch-Lernens
Klassifikation und Regression beim maschinellen Lernen
[Maschinelles Lernen] Zusammenfassung und Ausführung der Modellbewertung / Indikatoren (mit Titanic-Datensatz)
Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)
Grundlegendes maschinelles Lernverfahren: ③ Vergleichen und untersuchen Sie die Auswahlmethode für die Merkmalsmenge
Vorhersage kurzlebiger Arbeiten von Weekly Shonen Jump durch maschinelles Lernen (Teil 2: Lernen und Bewertung)
Numerai Turnier-Fusion von traditionellen Quants und maschinellem Lernen-
Zusammenfassung der beim maschinellen Lernen verwendeten Bewertungsfunktionen
Einführung in das maschinelle Lernen ~ Zeigen wir die Tabelle der K-Methode für den nächsten Nachbarn ~ (+ Fehlerbehandlung)
[Lineare Regression] Über die Anzahl der erklärenden Variablen und den (angepassten Freiheitsgrad) Bestimmungskoeffizienten
Maschinelles Lernen #k Nachbarschaftsmethode und deren Implementierung und verschiedene
Eine konkrete Methode zur Vorhersage von Pferderennen und zur Simulation der Wiederherstellungsrate durch maschinelles Lernen
Ich habe die Methode des maschinellen Lernens und ihre Implementierungssprache anhand der Tag-Informationen von Qiita betrachtet
Logistische Regression beim maschinellen Lernen
Lineare Regression des maschinellen Lernens
[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
Musik und maschinelles Lernen Vorverarbeitung MFCC ~ Mel Frequenz Kepstram Koeffizient
Untersuchung der Austauschprognosemethode mit Deep Learning und Wavelet-Konvertierung - Teil 2-
[Maschinelles Lernen] Verständnis der logistischen Regression sowohl durch Scikit-Lernen als auch durch Mathematik