[PYTHON] Lineare Regression (für Anfänger) -Code Edition-

Dieses Mal werde ich die Implementierung (Code) der linearen Regression zusammenfassen.

■ Lineares Regressionsverfahren

Wir werden mit den folgenden 6 Schritten fortfahren.

  1. Vorbereitung des Moduls
  2. Datenaufbereitung
  3. Erstellen Sie ein Modell
  4. Berechnung des vorhergesagten Wertes
  5. Restgrundstück
  6. Modellbewertung

1. Vorbereitung des Moduls

Importieren Sie zunächst die erforderlichen Module.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#Modul zum Lesen des Datensatzes
from sklearn.datasets import load_boston

#Modul, das Trainingsdaten und Testdaten trennt
from sklearn.model_selection import train_test_split

#Modul, das eine lineare Regression durchführt (Minimum-Square-Methode)
from sklearn.linear_model import LinearRegression

#Modul zur Bewertung anhand des mittleren quadratischen Fehlers (MSE)
from sklearn.metrics import mean_squared_error

#Entscheidungsfaktor (r2_Modul nach Punktzahl zu bewerten)
from sklearn.metrics import r2_score

## 2. Datenaufbereitung Teilen Sie die Daten nach dem Erfassen zur einfachen Verarbeitung auf.
#Boston-Datensatz lesen
boston = load_boston()

#Teilen Sie in objektive Variable und erklärende Variable
X, y = boston.data, boston.target

#Teilen Sie in Trainingsdaten und Testdaten
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)

## 3. Erstellen Sie ein Modell Erstellen Sie zunächst eine lineare Regressionsausführungsfunktion (Instanz) und wenden Sie sie auf die Trainingsdaten an. Dann kann jedes Gewicht der Modellformel (Rückgabeformel) durch die Minimum-Square-Methode erhalten werden.

#Erstellen Sie eine Instanz der linearen Regression
lr = LinearRegression()

#Finden Sie jedes Gewicht nach der Methode der kleinsten Quadrate
lr.fit(X_train, y_train)

#Ausgabeabschnitt
print(lr.intercept_)

#Ausgangsregressionskoeffizient (Gradient)
print(lr.coef_)


Ausgabeergebnis


lr.intercept_: 22.38235838998073

lr.coef_: [-1.30942592e-01  3.93397530e-02  3.34152241e-02  2.69312969e+00
 -1.77337676e+01  3.95093181e+00 -1.16396424e-03 -1.51204896e+00
  3.36066399e-01 -1.37052283e-02 -9.54346277e-01  8.23484120e-03
 -5.17616471e-01]

lr.intercept_: section (Gewicht $ w_0 $) lr.coef_: Regressionskoeffizient / Gradient (Gewicht $ w_1 $ ~ $ w_ {13} $)

Daher wurden die konkreten Zahlenwerte in der folgenden Modellformel (Rückgabeformel) erhalten.

$ y = w_0 + w_1x_1+w_2x_2+ \cdots + w_{12}x_{12} + w_{13}x_{13}$

4. Berechnung des vorhergesagten Wertes

Fügen Sie die Testdaten (X_test) in die zuvor erstellte Modellformel ein und erhalten Sie den vorhergesagten Wert (y_pred).


y_pred = lr.predict(X_test)
y_pred


Ausgabeergebnis


y_pred: [34.21868721 14.30330361 18.5687412  19.17046762 22.60218908 31.75197222
 13.56424899 19.9953213  36.91942317 ..... 25.08561495, 13.68910956]

## 5. Restgrundstück Bevor wir das Modell bewerten, schauen wir uns das Restdiagramm an. Rest: Differenz zwischen vorhergesagtem Wert und korrektem Antwortwert (y_pred --y_test)
#Erstellen von Zeichnungsobjekten und Nebenhandlungen
fig, ax = plt.subplots()

#Restgrundstück
ax.scatter(y_pred, y_pred - y_test, marker = 'o')

# y =Zeichnen Sie die rote Gerade von 0
ax.hlines(y = 0, xmin = -10, xmax = 50, linewidth = 2, color = 'red')
 
#Stellen Sie die Achsenbeschriftung ein
ax.set_xlabel('y_pred')
ax.set_ylabel('y_pred - y_test')

#Grafiktitel hinzugefügt
ax.set_title('Residual Plot')

plt.show()


Ausgabeergebnis
image.png Die Daten sind oberhalb und unterhalb der roten Linie gut ausbalanciert (y_pred --y_test = 0). Es kann bestätigt werden, dass die Ausgabe des vorhergesagten Werts keine große Verzerrung aufweist.

6. Modellbewertung

Bei der linearen Regression erfolgt die Bewertung anhand der folgenden beiden Indikatoren.

・ Durchschnittlicher quadratischer Fehler (MSE) ・ Entscheidungskoeffizient (r2_score)


#Mittlerer quadratischer Fehler (MSE)
print(mean_squared_error(y_test, y_pred))

#Entscheidungskoeffizient
print(r2_score(y_test, y_pred))


Ausgabeergebnis


MSE: 19.858434053618794
r2_score: 0.7579111486552739

Aus dem oben Gesagten konnten wir anhand von zwei Indikatoren bewerten.

■ Endlich

Bei der linearen Regression erstellen und bewerten wir ein Modell basierend auf den obigen Schritten 1 bis 6.

Dieses Mal habe ich für Anfänger nur die Implementierung (Code) zusammengefasst. Mit Blick auf das Timing in der Zukunft möchte ich einen Artikel über Theorie (mathematische Formel) schreiben.

Danke fürs Lesen.

Recommended Posts

Lineare Regression (für Anfänger) -Code Edition-
Ridge Return (für Anfänger) -Code Edition-
Entscheidungsbaum (für Anfänger) -Code Edition-
Support Vector Machine (für Anfänger) -Code Edition-
Anfänger des maschinellen Lernens versuchen eine lineare Regression
Lineare Regression
[Kaggle für Super-Anfänger] Titanic (Logistic Return)
Spacemacs-Einstellungen (für Anfänger)
Lineare Regression mit Statistikmodellen
Techniken zum Testen von Code?
Python Lehrbuch für Anfänger
Lineare Regression des maschinellen Lernens
Regression mit einem linearen Modell
OpenCV für Python-Anfänger
Für diejenigen, die in der Atmosphäre analysieren (lineares Regressionsmodell 1)
Maschinelles Lernen: Überwacht - Lineare Regression
[Für Anfänger] Kaggle-Übung (Merucari)
Empfohlene Linux-Distribution für Anfänger
Persönliches Python-Code-Memo
CNN (1) zur Bildklassifizierung (für Anfänger)
Python3-Umgebungskonstruktion (für Anfänger)
Übersicht über Docker (für Anfänger)
Lineare Regressionsmethode mit Numpy
Seaborn Basics für Anfänger ④ Pairplot
Grundlegende Python-Grammatik für Anfänger
Lernen mit dem Lehrer (Rückkehr) 2 Advanced Edition
100 Pandas klopfen für Python-Anfänger
[Python] Beispielcode für die Python-Grammatik
Python #Funktion 1 für Super-Anfänger
Online lineare Regression in Python
Python #Liste für Super-Anfänger
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[Für Kaggle-Anfänger] Titanic (LightGBM)
Linux Command Memorandum [für Anfänger]
Praktische Linux-Verknüpfung (für Anfänger)
Robuste lineare Regression mit Scikit-Learn
[Für Anfänger] So implementieren Sie O'reilly-Beispielcode in Google Colab