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

2_6_1_01.PNG

⑴ 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.csv'

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

#Spaltenbezeichnung festlegen
df.columns = ['symboling', 'normalized-losses', 'make', 'fuel-type', 'aspiration', 'num-of-doors', 'body-style', 'drive-wheels', 'engine-location', 'wheel-base', 
              'length', 'width', 'height', 'curb-weight', 'engine-type', 'num-of-cylinders', 'engine-size', 'fuel-system', 'bore', 'stroke', 
              'compression-ratio', 'horsepower', 'peak-rpm', 'city-mpg', 'highway-mpg', 'price']
Variablennamen Freie Übersetzung Artikel (Kommentar) Datentyp
0 symboling Versicherungsrisikobewertung -3, -2, -1, 0, 1, 2, 3.(3 ist risikoreich und gefährlich,-3 ist risikoarm und sicher) int64
1 normalized-losses Normalisierungsverlust 65〜256 object
2 make Hersteller alfa-romero, audi, bmw, ..., volkswagen, volvo. object
3 fuel-type Treibstoffart diesel, gas. object
4 aspiration Einlasstyp std, turbo. object
5 num-of-doors Anzahl der Türen four, two. object
6 body-style Körperstil hardtop, wagon, sedan, hatchback, convertible. object
7 drive-wheels Antriebsräder 4wd, fwd, rwd. object
8 engine-location Motorposition front, rear. object
9 wheel-base Radstand 86.6~120.9 float64
10 length Kommandant 141.1~208.1 float64
11 width Fahrzeugbreite 60.3~72.3 float64
12 height Fahrzeughöhe 47.8~59.8 float64
13 curb-weight Unbemanntes Fahrzeuggewicht 1488~4066 int64
14 engine-type Motortyp dohc, dohcv, l, ohc, ohcf, ohcv, rotor. object
15 num-of-cylinders Anzahl der Zylinder eight, five, four, six, three, twelve, two. object
16 engine-size Motor Größe 61~326 int64
17 fuel-system Kraftstoffsystem 1bbl, 2bbl, 4bbl, idi, mfi, mpfi, spdi, spfi. object
18 bore Innendurchmesser des Motorzylinders 2.54~3.94 object
19 stroke Bewegungsumfang des Kolbens 2.07~4.17 object
20 compression-ratio Kompressionsrate 7~23 float64
21 horsepower Pferdestärken 48~288 object
22 peak-rpm Maximale Leistung 4150~6600 object
23 city-mpg Kraftstoffeffizienz in der Stadt 13-49 (Meilen pro Gallone Öl) int64
24 highway-mpg Kraftstoffeffizienz auf Autobahnen 16~54 int64
25 price Preis 5118~45400 object
#Form und Anzahl der Fehler der Ausgabedaten
print(df.shape)
print('Anzahl der Mängel:{}'.format(df.isnull().sum().sum()))

#Geben Sie die ersten 5 Datenzeilen aus
df.head()

2_6_1_02.PNG

(3) Datenvorverarbeitung

#Erstellen Sie einen DataFrame nur für die Zielspalten
auto = df[['price', 'horsepower', 'width', 'height']]

#Für jede Spalte?Überprüfen Sie die Nummer, die enthält
auto.isin(['?']).sum()

2_6_1_03.PNG

#""?Durch NAN ersetzen und die Zeile durch NAN löschen
auto = auto.replace('?', np.nan).dropna()

#Überprüfen Sie die Form der Matrix nach dem Löschen
auto.shape

2_6_1_04.PNG

#Datentypbestätigung
auto.dtypes

2_6_1_05.PNG

#Datentyp konvertieren
auto = auto.assign(price = pd.to_numeric(auto.price))
auto = auto.assign(horsepower = pd.to_numeric(auto.horsepower))

#Überprüfen Sie den konvertierten Datentyp
auto.dtypes

2_6_1_10.PNG

auto.corr()

2_6_1_06.PNG

⑷ Modellbau und Bewertung

#Überprüfen Sie die Daten
print(auto)

2_6_1_07.PNG

** Führen Sie anhand dieser Daten eine Modellschätzung für die Gratregression und die multiple Regressionsanalyse durch und vergleichen Sie die Genauigkeit beider. ** ** **

#Import für die Modellbildung der Gratregression
from sklearn.linear_model import Ridge

#Import für die Modellbildung der multiplen Regressionsanalyse
from sklearn.linear_model import LinearRegression

#Import zur Datenpartitionierung (Trainingsdaten und Testdaten)
from sklearn.model_selection import train_test_split
#Legen Sie erklärende Variablen und objektive Variablen fest
x = auto.drop('price', axis=1)
y = auto['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)

** Erstellen Sie zunächst ein Modell für die multiple Regressionsanalyse und berechnen Sie die Genauigkeitsrate der Trainingsdaten und Testdaten. ** ** **

#Initialisierung der LinearRegression-Klasse
linear = LinearRegression()

#Ausführung des Lernens
linear.fit(X_train, Y_train)

#Richtige Antwortrate der Trainingsdaten
train_score_linear = format(linear.score(X_train, Y_train))
print('Richtige Antwortrate der multiplen Regressionsanalyse(train):', 
      '{:.6f}'.format(float(train_score_linear)))

#Richtige Antwortrate der Testdaten
test_score_linear = format(linear.score(X_test, Y_test))
print('Richtige Antwortrate der multiplen Regressionsanalyse(test):', 
      '{:.6f}'.format(float(test_score_linear)))

2_6_1_08.PNG

** Erstellen Sie als Nächstes ein Modell der Gratregression und berechnen Sie die Genauigkeitsrate der Trainingsdaten und Testdaten. ** ** **

#Initialisierung der Ridge-Klasse
ridge = Ridge()

#Ausführung des Lernens
ridge.fit(X_train, Y_train)

#Richtige Antwortrate der Trainingsdaten
train_score_ridge = format(ridge.score(X_train, Y_train))
print('Ridge Regressionsgenauigkeitsrate(train):', 
      '{:.6f}'.format(float(train_score_ridge)))

#Richtige Antwortrate der Testdaten
test_score_ridge = format(ridge.score(X_test, Y_test))
print('Ridge Regressionsgenauigkeitsrate(test):', 
      '{:.6f}'.format(float(test_score_ridge)))

2_6_1_09.PNG

Multiple Regressionsanalyse(L) Ridge kehrt zurück(R) Unterschied(L-R)
Richtige Antwortrate der Trainingsdaten 0.733358 0.733355 0.000003
Richtige Antwortrate der Testdaten 0.737069 0.737768 -0.000699

Recommended Posts

2. Multivariate Analyse in Python 6-1. Ridge-Regression / Lasso-Regression (Scikit-Learn) [multiple Regression vs. Ridge-Regression]
2. Multivariate Analyse in Python 6-2. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Ridge-Regression vs. Lasso-Regression]
2. Multivariate Analyse in Python 2-1. Multiple Regressionsanalyse (Scikit-Learn)
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-3. Multiple Regressionsanalyse [COVID-19-Infektionsrate]
2. Multivariate Analyse in Python 7-3. Entscheidungsbaum [Rückgabebaum]
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 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
Mehrfacher Regressionsausdruck in Python
Einfache Regressionsanalyse mit Python
Erste einfache Regressionsanalyse in Python
Lineare Regression in Python (Statmodelle, Scikit-Learn, PyMC3)
[scikit-learn, matplotlib] Multiple Regressionsanalyse und 3D-Zeichnung
Einfache LASSO-Regressionsanalyse mit Python (keine Theorie)
Assoziationsanalyse in Python
Multiple Regressionsanalyse mit Keras
Axialsymmetrische Spannungsanalyse mit Python
[Python] Lineare Regression mit Scicit-Learn
Vermeiden Sie mehrere Schleifen in Python
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)