Ich lerne mit diesem Buch So erstellen Sie eine KI- / Maschinelles Lernen- / Deep-Learning-App mit Python
Lassen Sie uns die Iris klassifizieren, die beim maschinellen Lernen häufig vorkommt. Rufen Sie zum Herunterladen die CSV-Datei von der folgenden URL ab. https://github.com/pandas-dev/pandas/blob/master/pandas/tests/data/iris.csv Klicken Sie auf die Schaltfläche "Raw" und speichern Sie mit der Speicherfunktion Ihres Browsers. Es hat die folgende Struktur.
Säule | Spaltenname | Bedeutung der Spalte | Wertbeispiel |
---|---|---|---|
1 | SepalLength | Die Länge des Stückes | 5.1 |
2 | SepalWidth | Breite des Stückes | 3.5 |
3 | PetalLength | Blütenblattlänge | 1.4 |
4 | PetalWidth | Blütenblattbreite | 0.2 |
5 | Name | Ayame-Sorten | Iris-setosa |
Ayame-Sorten |
---|
Iris-Setosa |
Iris-Versicolor |
Iris-Virginica |
Sie können es auch direkt in Python herunterladen, anstatt es in Ihrem Browser zu speichern.
import urllib.request as req
import pandas as pd
#Laden Sie die Datei herunter
url = "https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/data/iris.csv" #Nicht die vorherige URL
savefile = "iris.csv"
req.urlretrieve(url, savefile)
#Zeigen Sie den Inhalt der heruntergeladenen Datei an
csv = pd.read_csv(savefile, encoding="utf-8")
csv
Es werden 150 Datenzeilen angezeigt.
Ziel ist es, Irisarten anhand der Länge und Breite der Trümmer und Blütenblätter zu klassifizieren. Implementieren Sie das Programm für maschinelles Lernen in der folgenden Reihenfolge.
iris.py
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
#Irisdaten lesen
iris_data = pd.read_csv("iris.csv", encoding="utf-8")
#Trennen Sie die Irisdaten in Beschriftungs- und Eingabedaten
y = iris_data.loc[:, "Name"]
x = iris_data.loc[:,["SepalLength", "SepalWidth", "PetalLength", "PetalWidth"]]
#Zum Lernen und Testen getrennt
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle = True)
#lernen
clf = SVC()
clf.fit(x_train, y_train)
#bewerten
y_pred = clf.predict(x_test)
print("Richtige Antwortrate:", accuracy_score(y_test, y_pred))
Richtige Antwortrate: 0.9333333333333333
/usr/local/lib/python3.6/dist-packages/sklearn/svm/base.py:193: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.
"avoid this warning.", FutureWarning)
Ich bekomme eine Warnung. Es gibt FutureWarning, das besagt, dass sich das SVC-Gamma in Zukunft von "auto'to'scale" ändern wird.
clf = SVC(gamma = "scale")
Wenn Sie schreiben, verschwindet die Warnung. des Weiteren,
#Zum Lernen und Testen getrennt
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle = True)
Aber in der Zukunft
[Erstellen Sie Trainings- und Testdaten mit scikit-learn](https://pythondatascience.plavox.info/scikit-learn/%E3%83%88%E3%83%AC%E3%83%BC%E3% 83% 8B% E3% 83% B3% E3% 82% B0% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 81% A8% E3% 83% 86% E3% 82% B9% E3% 83% 88% E3% 83% 87% E3% 83% BC% E3% 82% BF)
Es wäre besser, die Schichtungsoption mit Bezug auf zu beschreiben.
Recommended Posts