2. Multivariate Analyse in Python 6-2. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Ridge-Regression vs. Lasso-Regression]

2_6_2_01.PNG

** Hier möchte ich drei multiple Regressionsmodelle vergleichen, einschließlich der Lasso-Regression. ** ** **

⑴ Bibliothek importieren

#Datenverarbeitungs- / Berechnungs- / Analysebibliothek
import numpy as np
import pandas as pd

#Grafikzeichnungsbibliothek
import matplotlib.pyplot as plt
%matplotlib inline

#Bibliothek für maschinelles Lernen
import sklearn

⑵ Datenerfassung und Lesen

#Daten bekommen
url = 'https://raw.githubusercontent.com/yumi-ito/datasets/master/datasets_auto_4variables_pre-processed.csv'

#Lesen Sie die erfassten Daten als DataFrame-Objekt
df = pd.read_csv(url, header=None)

#Spaltenbezeichnung festlegen
df.columns = ['width', 'height', 'horsepower', 'price']

print(df)

2_6_2_02.PNG

#Bestätigung der Datenform
print('Datenform:', df.shape)

#Bestätigung fehlender Werte
print('Anzahl fehlender Werte:{}\n'.format(df.isnull().sum().sum()))

#Datentypbestätigung
print(df.dtypes)

2_6_2_03.PNG

(3) Aufteilung der Trainingsdaten und Testdaten

#Import für Modellbau
from sklearn.linear_model import Ridge, Lasso, LinearRegression

#Import für Datenaufteilung
from sklearn.model_selection import train_test_split
#Legen Sie erklärende Variablen und objektive Variablen fest
x = df.drop('price', axis=1)
y = df['price']

#Unterteilt in Trainingsdaten und Testdaten
X_train, X_test, Y_train, Y_test = train_test_split(x, y, test_size=0.5, random_state=0)

⑷ Modellgenerierung und -bewertung

#Initialisieren Sie jede Klasse und speichern Sie sie in Modellen mit Variablen vom Typ dict
models = {
    'linear': LinearRegression(),
    'ridge': Ridge(random_state=0),
    'lasso': Lasso(random_state=0)}

#Initialisieren Sie die Variable vom Typ dict, in der die richtige Antwortrate gespeichert ist
scores = {}

#Generieren Sie jedes Modell nacheinander, berechnen und speichern Sie die richtige Antwortrate
for model_name, model in models.items():
    #Modellgenerierung
    model.fit(X_train, Y_train)
    #Richtige Antwortrate der Trainingsdaten
    scores[(model_name, 'train')] = model.score(X_train, Y_train)
    #Richtige Antwortrate der Testdaten
    scores[(model_name, 'test')] = model.score(X_test, Y_test)

#Konvertieren Sie den Diktattyp in eine eindimensionale Pandas-Liste
print(pd.Series(scores))

2_6_2_04.PNG

Multiple Regression Ridge kehrt zurück Lasso kehrt zurück
Richtige Antwortrate der Trainingsdaten 0.733358 0.733355 0.733358
Richtige Antwortrate der Testdaten 0.737069 0.737768 0.737084

** Also möchte ich die Regularisierungsparameter ändern und vergleichen. ** ** **

Regularisierungsparameter

2_6_2_05.PNG

#Parametereinstellungen
alpha = 10.0

#Initialisieren Sie jede Klasse und speichern Sie sie in Modellen
models = {
    'ridge': Ridge(alpha=alpha, random_state=0),
    'lasso': Lasso(alpha=alpha, random_state=0)}

#Initialisieren Sie die Variable vom Typ dict, in der die richtige Antwortrate gespeichert ist
scores = {}

#Führen Sie jedes Modell nacheinander aus und speichern Sie die richtige Antwortrate
for model_name, model in models.items():
    model.fit(X_train, Y_train)
    scores[(model_name, 'train')] = model.score(X_train, Y_train)
    scores[(model_name, 'test')] = model.score(X_test, Y_test)

print(pd.Series(scores))

2_6_2_06.PNG

λ Ridge(train) Ridge(test) Lasso(train) Lasso(test)
1 0.733355 0.737768 0.733358 0.737084
10 0.733100 0.743506 0.733357 0.737372
100 0.721015 0.771022 0.733289 0.740192
200 0.705228 0.778607 0.733083 0.743195
400 0.680726 0.779004 0.732259 0.748795
500 0.671349 0.777338 0.731640 0.751391
1000 0.640017 0.767504 0.726479 0.762336

Recommended Posts

2. Multivariate Analyse in Python 6-2. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Ridge-Regression vs. Lasso-Regression]
2. Multivariate Analyse in Python 6-1. Ridge-Regression / Lasso-Regression (Scikit-Learn) [multiple Regression vs. Ridge-Regression]
2. Multivariate Analyse in Python 6-3. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Funktionsweise der Regularisierung]
2. Multivariate Analyse in Python 1-1. Einfache Regressionsanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 2-1. Multiple Regressionsanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 7-1. Entscheidungsbaum (Scikit-Learn)
2. Multivariate Analyse in Python 1-2. Einfache Regressionsanalyse (Algorithmus)
2. Multivariate Analyse in Python 3-1. Hauptkomponentenanalyse (Scikit-Learn)
2. Multivariate Analyse in Python 8-1. K Nachbarschaftsmethode (Scikit-Learn)
2. Multivariate Analyse in Python 5-3. Logistische Regressionsanalyse (Statistikmodelle)
2. Multivariate Analyse in Python 2-3. Multiple Regressionsanalyse [COVID-19-Infektionsrate]
2. Multivariate Analyse in Python 8-2. K Nachbarschaftsmethode [Gewichtungsmethode] [Rückgabemodell]
2. Multivariate Analyse in Python 3-2. Hauptkomponentenanalyse (Algorithmus)
2. Multivariate Analyse in Python 8-3. K Nachbarschaftsmethode [Schnittstellenüberprüfung]
2. Multivariate Analyse in Python 7-2. Entscheidungsbaum [Unterschied in den Teilungskriterien]
Regressionsanalyse mit Python
Einfache Regressionsanalyse mit Python
Erste einfache Regressionsanalyse in Python
Lineare Regression in Python (Statmodelle, Scikit-Learn, PyMC3)
Einfache LASSO-Regressionsanalyse mit Python (keine Theorie)
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Assoziationsanalyse in Python
Mehrfacher Regressionsausdruck in Python
Axialsymmetrische Spannungsanalyse mit Python
[Python] Lineare Regression mit Scicit-Learn
Online lineare Regression in Python
[Python] PCA-Scratch im Beispiel "Einführung in die multivariate Analysemethode"
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (2)
[Statistischer Test 2. Klasse / quasi 1. Klasse] Regressives Analysetraining mit Python (1)
Gehirnwellenanalyse mit Python: Python MNE-Tutorial
Scikit-learn kann nicht in Python installiert werden
Führen Sie das Python-Unittest-Modul in vs2017 aus
Planare Skelettanalyse in Python (2) Hotfix
Einfache Implementierung einer Regressionsanalyse mit Keras
Logistische Regressionsanalyse Selbst erstellt mit Python