Ich habe kürzlich maschinelles Lernen studiert und daher die Schritte zusammengefasst, die bei der Implementierung in Python zu unternehmen sind.
Beim maschinellen Lernen ist es zunächst erforderlich, Daten zu lesen und zu wissen, welche Art von Verteilung sie haben. Ich werde über das Verfahren schreiben
Um die Daten tatsächlich zu lesen, lesen Sie die CSV-Datei mit der Methode read_csv von Pandas, die zuvor gelesen wurde.
#Bibliothek laden
import pandas as pd
import numpy as np
#Hoge direkt darunter.Laden Sie csv
df = pd.read_csv("./hoge.csv")
#Extrahieren Sie nur 5 Zeilen von oben
df.head()
Wenn es um maschinelles Lernen geht, gibt es ein Bild, das, wenn Sie die Daten eingeben, etwas bewirkt, aber in Wirklichkeit müssen Sie sich die Daten genau ansehen. Fehlen beispielsweise Werte, gibt es zu viele Abweichungen und gibt es Korrelationen?
Durch Eingabe des folgenden Codes können Sie die Anzahl der Daten, den Durchschnittswert, die Standardabweichung, den Minimalwert, den Maximalwert usw. gleichzeitig anzeigen.
#Berechnung von Statistiken
df.describe()
Sie können die grundlegenden Statistiken in einer Liste wie dieser sehen
Es ist jedoch schwierig, nur anhand der Zahlen wie Standardabweichung und Durchschnittswert zu verstehen, sodass es für den Menschen einfacher ist, diese in einem Diagramm zu verstehen. Daher wird die Verteilung angezeigt.
%matplotlib inline
#Laden einer Bibliothek, in der ein Diagramm namens seaborn angezeigt wird
import seaborn as sns
#Bestätigung der Verteilung
sns.distplot(df["x1"]) #Überprüfen Sie zuerst die Daten (hier überprüfen Sie die Daten in Spalte x1)
Dies sind nette Daten, da die Daten einer Normalverteilung zu folgen scheinen
Wenn die Daten überhaupt keine Korrelation aufweisen, macht es keinen Sinn, sie zu trainieren. Überprüfen Sie daher den Korrelationskoeffizienten. Der Korrelationskoeffizient liegt übrigens zwischen -1 und +1 und je höher er ist, desto stärker korreliert er.
#Berechnung des Korrelationskoeffizienten
df.corr()
#Überprüfen Sie den Korrelationskoeffizienten in einem Diagramm
sns.pairplot(df)
Eigentlich werden wir so etwas wie $ y = w0x0 + w1x1 + w2x2 + ... + $ erstellen, also müssen wir den Inhalt der Daten in die Ausgabevariable y und die Eingabevariable x unterteilen. Zu dieser Zeit wird die Methode iloc of pandas verwendet.
#df.iloc[Linie,Säule]とすることでそのLinieとSäuleのデータを取り出せる
Beispiel Beispiel= df.iloc[1,3]
Ergebnis 100
#Letzte Spalte-Holen Sie sich alle Zeilen bis zu 1(Eingangsvariable X)
X = df.iloc[:,:-1]
#Sie können es so schreiben, aber die Vielseitigkeit ist gering
X = df.iloc[:,:Letzte Spaltennummer]
#Nehmen Sie y heraus
y = df.iloc[:,-1]
Durch die oben genannten Arbeiten sind wir bereit, tatsächlich maschinelles Lernen durchzuführen. Wir werden tatsächlich vom nächsten lernen. Hier wird die maschinelle Lernbibliothek scicit-learn verwendet.
Der Zweck des maschinellen Lernens bestand darin, Daten zu trainieren und Vorhersagen zu treffen, wenn unbekannte Daten eingegeben wurden. Mit anderen Worten, die für das Training verwendeten Daten wurden nicht verwendet. Wenn Sie die zum Lernen verwendeten Daten eingeben und eine Vorhersage treffen, erhalten Sie natürlich eine genaue Antwort, weil Sie mit diesen Daten gelernt haben, oder? Wird sein
Daher ist es notwendig, Trainingsdaten (Zug) und Verifizierungsdaten (Test) vor dem Training zu trennen.
from sklearn.model_selection import train_test_split
#Trennung von Trainingsdaten und Verifizierungsdaten
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.4,random_state=1)
Testgröße gibt das Verhältnis von Trainingsdaten und Verifizierungsdaten an und wird hier als Lernen festgelegt: Training = 6: 4. Außerdem ist random_state festgelegt, um die Reproduzierbarkeit aufrechtzuerhalten.
Mit scikit-learn können Sie das Modell mit nur dem folgenden Code erstellen und überprüfen Das diesmal für das Training verwendete Modell ist die multiple Regressionsanalyse
#Bibliothek importieren
from sklearn.linear_model import LinearRegression
#Modelldeklaration (Lineare Regression bedeutet multiple Regressionsanalyse)
model = LinearRegression()
#Modelltraining (Parameter einstellen)
model.fit(X,y)
#Überprüfen Sie die Parameter
model.coef_
#Entscheidungskoeffizient(Vorhersagegenauigkeit) 0~Höher zwischen 1 ist besser
model.score(X,y)
#Berechnung des vorhergesagten Wertes
x = X.iloc[0,:] #Nehmen Sie die erste Zeile von X heraus
y_pred = model.predict([x])
Sie können das Modell mit dem folgenden Code speichern
#importieren
from sklearn.externals import joblib
#Modell speichern (hoge.Als pkl speichern
joblib.dump(model,"hoge.pkl")
Laden Sie das Modell mit dem folgenden Code
#hoge.Laden pkl
model_new = joblib.load("hoge.pkl")
#Zeigen Sie den vorhergesagten Wert des geladenen Modells an
model_new.predict([x])[0]
Das Obige ist der grundlegende Ablauf des maschinellen Lernens. Dieses Mal wurde das Modell durch eine multiple Regressionsanalyse durchgeführt, aber der grundlegende Ablauf ist der gleiche, wenn Sie ihn beispielsweise mit logistischer Regression oder SVM ausführen möchten.
Recommended Posts