Einfache LASSO-Regressionsanalyse mit Python (keine Theorie)

Für diejenigen, die vorerst eine LASSO-Regressionsanalyse mit Python durchführen möchten. Leg dich nicht mit den Parametern an. Klicken Sie hier, um Daten zur Verwendung von https://gist.github.com/tijptjik/9408623 anzuzeigen

Importmodul für die LASSO-Regression

Importieren Sie nur Lasso aus sklearn.linear_model.

from sklearn.linear_model import Lasso

Importieren Sie ein Modul, das Daten aufteilt

Importieren Sie nur train_test_split aus sklearn.model_selection.

from sklearn.model_selection import train_test_split

Importieren Sie Module, die Matrizen verarbeiten

Importiere numpy mit dem Namen np verfügbar.

import numpy as np

Importieren Sie Module, die CSV verarbeiten

Importiere Pandas mit dem Namen pd verfügbar.

import pandas as pd

Importieren Sie ein Modul, um ein Diagramm zu zeichnen

import matplotlib.pyplot as plt

Importieren Sie das Modul, um den mittleren quadratischen Fehler zu ermitteln

from sklearn.metrics import mean_squared_error

Laden Sie csv

Laden Sie iris.csv in df (Datenrahmen).

df=pd.read_csv('wine_type.csv')
df=pd.read_csv('Desktop/Documents/wine.csv')

Und so weiter. (Linux)

Teilen Sie die Daten für Training und Test

Training: Lernen = 6: 4.

df_train, df_test = train_test_split(df, test_size=0.4)

Wenn die Daten angezeigt werden, sieht es so aus.

df_train=
     wine_type  alcohol  malic_acid   ash  alcalinity_of_ash  magnesium  total_phenols  flavanoids  nonflavanoid_phenols  proanthocyanins  color_intensity   hue  OD280/OD315_of_diluted_wines  proline
106          2    12.25        1.73  2.12               19.0         80           1.65        2.03                  0.37             1.63             3.40  1.00                          3.17      510
157          3    12.45        3.03  2.64               27.0         97           1.90        0.58                  0.63             1.14             7.50  0.67                          1.73      880
75           2    11.66        1.88  1.92               16.0         97           1.61        1.57                  0.34             1.15             3.80  1.23                          2.14      428
142          3    13.52        3.17  2.72               23.5         97           1.55        0.52                  0.50             0.55             4.35  0.89                          2.06      520
83           2    13.05        3.86  2.32               22.5         85           1.65        1.59                  0.61             1.62             4.80  0.84                          2.01      515
..         ...      ...         ...   ...                ...        ...            ...         ...                   ...              ...              ...   ...                           ...      ...
117          2    12.42        1.61  2.19               22.5        108           2.00        2.09                  0.34             1.61             2.06  1.06                          2.96      345
129          2    12.04        4.30  2.38               22.0         80           2.10        1.75                  0.42             1.35             2.60  0.79                          2.57      580
60           2    12.33        1.10  2.28               16.0        101           2.05        1.09                  0.63             0.41             3.27  1.25                          1.67      680
25           1    13.05        2.05  3.22               25.0        124           2.63        2.68                  0.47             1.92             3.58  1.13                          3.20      830
41           1    13.41        3.84  2.12               18.8         90           2.45        2.68                  0.27             1.48             4.28  0.91                          3.00     1035

[106 rows x 14 columns]

Trennen Sie die erklärende Variable und die Zielvariable

Fügen Sie die Spalte, die Sie für die Analyse verwenden möchten, in x ein. (Erklärende Variable) Fügen Sie eine Spalte mit den Analyseergebnissen in y ein. (Zielvariable) Dieses Mal sagen wir "Prolin" aus "Farbintensität" voraus.

x_train = df_train[['color_intensity']]
x_test  = df_test[['color_intensity']]

y_train = df_train['proline']
y_test  = df_test['proline']

Machen Sie ein leeres Modell

lss = Lasso()

Lerne Regression

fit (erklärende Variable, objektive Variable)

Das Trainingsergebnis wird in dem oben erstellten Modell lss gespeichert.

lss.fit(x_train, y_train)

Machen Sie eine Regression

vorhersagen (Daten für die Regressionsanalyse)

Führen Sie eine Regression mit durch und weisen Sie sie y_pred zu.

y_pred = lss.predict(x_test)

Versuchen Sie, in der Grafik anzuzeigen

Sie können ein Streudiagramm mit plt.scatter (x-Achse, y-Achse) erstellen. Zeigen Sie die richtige Antwort an. (Blauer Punkt)

plt.scatter(x_test, y_test)

Erstellen Sie ein Array in Schritten von 0,1 vom Minimalwert von x_test ["color_intensity"] bis zum Maximalwert und erstellen Sie eine Matrix. Führen Sie dann lss.predict aus, um den vorhergesagten Wert anzuzeigen. (Roter Punkt)

x_for_plot = np.arange(np.min(x_test["color_intensity"])
                      ,np.max(x_test["color_intensity"]),0.1).reshape(-1,1)
plt.scatter(x_for_plot,lss.predict(x_for_plot),color="red")

Beschriftungseinstellungen

plt.xlabel("color_intensity")
plt.ylabel("proline")

Anzeige

plt.show()

Blau ist der tatsächliche Wert und Rot ist der vorhergesagte Wert. スクリーンショット 2019-12-01 22.08.18.png

Finden Sie schließlich den mittleren quadratischen Fehler.

print(mean_squared_error(y_test,y_pred)) #90027.41397601982 Das ist lol

Ich denke, dass die Genauigkeit durch das Spielen mit den Parametern verbessert wird.

Unten finden Sie den Code zum Kopieren

from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error
df=pd.read_csv('wine.csv')
df_train, df_test = train_test_split(df, test_size=0.4)
x_train = df_train[['color_intensity']]
x_test  = df_test[['color_intensity']]

y_train = df_train['proline']
y_test  = df_test ['proline']
print(y_train)
lss = Lasso()
lss.fit(x_train, y_train)
y_pred = lss.predict(x_test)

plt.scatter(x_test, y_test)
x_for_plot = np.arange(np.min(x_test["color_intensity"]),np.max(x_test["color_intensity"]),0.1).reshape(-1,1)
plt.scatter(x_for_plot,lss.predict(x_for_plot),color="red")
plt.xlabel("color_intensity")
plt.ylabel("proline")
plt.show()

print(mean_squared_error(y_test,y_pred))

Recommended Posts

Einfache LASSO-Regressionsanalyse mit Python (keine Theorie)
[Analyse des gemeinsamen Auftretens] Einfache Analyse des gemeinsamen Auftretens mit Python! [Python]
Logistische Regressionsanalyse Selbst erstellt mit Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Datenanalyse mit Python 2
Sprachanalyse mit Python
Führen Sie eine Regressionsanalyse mit NumPy durch
Datenanalyse mit Python
Regressionsanalyse mit Python
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
[Python] Morphologische Analyse mit MeCab
Multiple Regressionsanalyse mit Keras
Emotionsanalyse von Python (word2vec)
Einfache Ordnersynchronisation mit Python
Planare Skelettanalyse mit Python
Einfache Python-Kompilierung mit NUITKA-Utilities
Einfache Regressionsanalyse mit Python
Muskel-Ruck-Analyse mit Python
[Python] LASSO-Regression mit Gleichungsbeschränkung unter Verwendung der Multiplikatormethode
[Python] Einfache Parallelverarbeitung mit Joblib
Erste einfache Regressionsanalyse in Python
Dreidimensionale Skelettstrukturanalyse mit Python
Impedanzanalyse (EIS) mit Python [impedance.py]
Text Mining mit Python ① Morphologische Analyse
Einfache Mailübertragung mit Eile Python3
Bayesianische Optimierung, die mit Python sehr einfach ist
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Einfache parallele Ausführung mit Python-Unterprozess
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
2. Multivariate Analyse in Python 6-2. Ridge-Regression / Lasso-Regression (Scikit-Learn) [Ridge-Regression vs. Lasso-Regression]
Einfache Schlüsselwortextraktion mit TermExtract für Python
Ich habe eine multiple Regressionsanalyse mit Polypoly-Regression versucht
[Python] Super einfacher Test mit Assert-Anweisung
[Python] Einfache Überprüfung des Argumenttyps mit Datenklasse
[In-Database Python Analysis Tutorial mit SQL Server 2017]
Plötzlich mit Python PyInstaller Kein Modul namens pyinstaller
Zweidimensionale Analyse des gesättigten und ungesättigten Permeationsflusses mit Python
2D FEM Stressanalyseprogramm von Python
Einfache Einführung der Spracherkennung mit Python
[Easy Python] Lesen von Excel-Dateien mit openpyxl
2. Multivariate Analyse in Python 6-1. Ridge-Regression / Lasso-Regression (Scikit-Learn) [multiple Regression vs. Ridge-Regression]
Tweet-Analyse mit Python, Mecab und CaboCha
Einfache Web-App mit Python + Flask + Heroku
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
Datenanalyse beginnend mit Python (Datenvorverarbeitung - maschinelles Lernen)
[Easy Python] Lesen von Excel-Dateien mit Pandas
Zweidimensionale instationäre Wärmeleitungsanalyse mit Python
Einfaches Web-Scraping mit Python und Ruby
Python: Vereinfachte morphologische Analyse mit regulären Ausdrücken
Lösen Sie Lake Counting (POJ NO.2386) mit Python3
[Python] Probieren Sie mit Keras-RL ganz einfach erweitertes Lernen (DQN) aus
Einfache Erstellung einer Python-Datenanalyseumgebung mit Windows 10 Pro x VS Code x Docker
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】
[Verschiedene Bildanalysen mit Plotly] Dynamische Visualisierung mit Plotly [Python, Bild]
Medizinische Bildanalyse mit Python 1 (MRT-Bild mit SimpleITK lesen)
Statische Analyse von Python-Code mit GitLab CI
Zweidimensionale geometrische nichtlineare Analyse des elastischen Skeletts mit Python