[Python] Bestimmen Sie den Typ der Iris mit SVM

Versuchen wir ein Klassifizierungsproblem beim maschinellen Lernen unter Verwendung von Irisdaten, das häufig in Vorlesungen für Anfänger verwendet wird.

Zu verwendende Daten

irei Daten. (Iris bedeutet "Ayame" Blume.) Daten zu drei Irisarten, Setosa Versicolor Virginica. Insgesamt 150 Datensätze.

Datensatzinhalt

Sepal Länge: Länge des Stückes Sepal Breite: Breite des Stückes Blütenblattlänge: Blütenblattlänge Blütenblattbreite: Blütenblattbreite Name: Ayame-Sortendaten (Iris-Setosa, Iris-Vesicolor, Iris-Virginica) image.png

Modell zu übernehmen

SVM (Support Vector Machine). SVM eignet sich für das Klassifizierungsproblem des überwachten Lernens. Ein Modell, das auch Spam-Diskriminatoren erzeugen kann. Da es sich um ein überwachtes Lernen handelt, sind Merkmalsdaten und objektive Variablen erforderlich.

Gesamtdurchfluss

  1. Vorbereitung der Daten
  2. Daten visualisieren
  3. Lernen und bewerten Sie das Modell

Trainieren

1) Vorbereitung der Daten

Importieren und bestätigen Sie nach dem Importieren der erforderlichen Bibliotheken zunächst die Daten.

import numpy  as np
import pandas as pd
import seaborn as sns
sns.set_style("whitegrid")
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.model_selection import train_test_split, cross_validate

df = pd.read_csv("iris.csv")
df.head()

	SepalLength	SepalWidth	PetalLength	PetalWidth	Name
0	5.1	3.5	1.4	0.2	Iris-setosa
1	4.9	3.0	1.4	0.2	Iris-setosa
2	4.7	3.2	1.3	0.2	Iris-setosa
3	4.6	3.1	1.5	0.2	Iris-setosa
4	5.0	3.6	1.4	0.2	Iris-setosa

Teilen Sie in Trainingsdaten und Testdaten.

X = df[["SepalLength","SepalWidth","PetalLength","PetalWidth"]]
y = df["Name"]

X_train, X_test, y_train, y_test = train_test_split(X, y)
X_train.shape, X_test.shape

((112, 4), (38, 4)) #Überprüfen Sie die Anzahl der Matrizen nach der Division

Erstellen Sie einen Datenrahmen für alle Trainingsdaten und Testdaten.

data_train = pd.DataFrame(X_train)
data_train["Name"] = y_train

2) Daten visualisieren

Welche Beziehung besteht in den Verifizierungsdaten tatsächlich zwischen der Art der Iris und der Menge des erworbenen Überschusses? Zeichnen Sie und prüfen Sie, ob es für jeden Typ Unterschiede in den Funktionen gibt.

sns.pairplot(data_train, hue='Name', palette="husl")

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269450/43205a3a-1981-ad86-f9a3-d14a656ec628.png)


Sicherlich scheint es je nach Art der Iris einen deutlichen Unterschied zwischen den einzelnen Merkmalen zu geben.

3) Lernen und bewerten Sie das Modell

Lassen Sie uns die Verifizierungsdaten tatsächlich in SVM ablegen und ein Modell erstellen.

X_train = data_train[["SepalLength", "SepalWidth","PetalLength"]].values
y_train = data_train["Name"].values

from sklearn import svm,metrics

clf = svm.SVC()
clf.fit(X_train,y_train)

Geben Sie Testdaten in das erstellte Modell ein.

pre = clf.predict(X_test)

Bewerten Sie das Modell.

ac_score = metrics.accuracy_score(y_test,pre)
print("Richtige Antwortrate=", ac_score)

Richtige Antwortrate= 0.9736842105263158

Es wurde bestätigt, dass die Testdaten und die vom Modell erhaltenen Ergebnisse zu 97% konsistent waren.

Recommended Posts

[Python] Bestimmen Sie den Typ der Iris mit SVM
Beherrsche den Typ mit Python [Python 3.9 kompatibel]
Überprüfen Sie die Existenz der Datei mit Python
[Python] [Meta] Ist der Python-Typ ein Typ?
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
der Zen von Python
Überprüfen Sie das Datum der Flaggenpflicht mit Python
Konvertieren Sie den Zeichencode der Datei mit Python3
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
Lerne Nim mit Python (ab Anfang des Jahres).
Zerstören Sie den Zwischenausdruck der Sweep-Methode mit Python
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Holen Sie sich mit Python den Betriebsstatus von JR West
Auf dem Weg zum Ruhestand von Python2
Python --Überprüfen Sie den Wertetyp
Beurteilung von Primzahlen mit Python
Rufen Sie die API mit python3 auf.
Über die Funktionen von Python
Die Kraft der Pandas: Python
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Visualisieren Sie die Ergebnisse von Entscheidungsbäumen, die mit Python scikit-learn erstellt wurden
Ich habe die grundlegende Grammatik von Python in Jupyter Lab geschrieben
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
Problem WOL mit Scapy of Python3 (LAN-Steuerungstyp)
Ich habe die Strategie des Aktiensystemhandels mit Python evaluiert.
Berücksichtigung von Python-Dekoratoren des Typs, der Variablen übergibt
Berühren wir die API der Netatmo Weather Station mit Python. #Python #Netatmo
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Schreiben Sie den Datensatzadditionsknoten von SPSS Modeler mit Python neu.
Schätzen Sie die Haltung des AR-Markers mit Python + OpenCV + Drohne
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
Holen Sie sich die Quelle der Seite unbegrenzt mit Python zu laden.
Extrahieren Sie die xz-Datei mit Python
Die Geschichte von Python und die Geschichte von NaN
[Python] Der Stolperstein des Imports
Erster Python 3 ~ Der Beginn der Wiederholung ~
Existenz aus Sicht von Python
Holen Sie sich das Wetter mit Python-Anfragen 2
pyenv-change die Python-Version von virtualenv
Erste Schritte mit Python Grundlagen von Python
Finden Sie die Bearbeitungsentfernung (Levenshtein-Entfernung) mit Python
Klicken Sie mit Python auf die Etherpad-Lite-API
Installieren Sie das Python-Plug-In mit Netbeans 8.0.2
Lebensspiel mit Python! (Conways Spiel des Lebens)
[Python] Die potenzielle Feldplanung von Python Robotics verstehen
10 Funktionen von "Sprache mit Batterie" Python
Ich mochte den Tweet mit Python. ..
Implementierung der Dyxtra-Methode durch Python