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
Importieren Sie nur Lasso aus sklearn.linear_model.
from sklearn.linear_model import Lasso
Importieren Sie nur train_test_split aus sklearn.model_selection.
from sklearn.model_selection import train_test_split
Importiere numpy mit dem Namen np verfügbar.
import numpy as np
Importiere Pandas mit dem Namen pd verfügbar.
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error
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)
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]
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']
lss = Lasso()
Das Trainingsergebnis wird in dem oben erstellten Modell lss gespeichert.
lss.fit(x_train, y_train)
Führen Sie eine Regression mit durch und weisen Sie sie y_pred zu.
y_pred = lss.predict(x_test)
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.
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.
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