[Python] Déterminez le type d'iris avec SVM

Essayons un problème de classification d'apprentissage automatique utilisant les données d'iris, qui sont souvent utilisées dans les conférences pour débutants.

Données à utiliser

données irei. (Iris signifie fleur "Ayame".) Données sur trois variétés d'iris, Setosa Versicolor Virginica. Un total de 150 ensembles de données.

Contenu de l'ensemble de données

Sepal Length: Longueur de la pièce Largeur sépale: largeur de la pièce Longueur du pétale: Longueur du pétale Largeur des pétales: Largeur des pétales Nom: Données variétales d'Ayame (Iris-Setosa, Iris-Vesicolor, Iris-Virginica) image.png

Modèle à adopter

SVM (Support Vector Machine). SVM convient au problème de classification de l'apprentissage supervisé. Un modèle qui peut également faire des discriminateurs de spam. Puisqu'il s'agit d'un apprentissage supervisé, des données de caractéristiques et des variables objectives sont nécessaires.

Flux global

  1. Préparation des données
  2. Visualisez les données
  3. Apprendre et évaluer le modèle

Entraine toi

1) Préparation des données

Tout d'abord, importez les bibliothèques nécessaires, puis importez et confirmez les données.

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

Divisez en données d'entraînement et données de test.

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)) #Vérifiez le nombre de matrices après division

Créez un Dataframe pour chacune des données d'entraînement et des données de test.

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

2) Visualisez les données

Dans les données de vérification, quelle est la relation réelle entre le type d'iris et la quantité d'excédent acquis? Tracez et voyez s'il existe des différences dans les caractéristiques pour chaque type.

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)


Certes, il semble qu'il y ait une nette différence dans chaque quantité de fonctionnalités en fonction du type d'iris.

3) Apprendre et évaluer le modèle

Mettons en fait les données de vérification dans SVM et créons un modèle.

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)

Entrez les données de test dans le modèle créé.

pre = clf.predict(X_test)

Évaluez le modèle.

ac_score = metrics.accuracy_score(y_test,pre)
print("Taux de réponse correct=", ac_score)

Taux de réponse correct= 0.9736842105263158

Il a été confirmé que les données de test et les résultats obtenus par le modèle étaient cohérents à 97%.

Recommended Posts

[Python] Déterminez le type d'iris avec SVM
Maîtriser le type avec Python [compatible Python 3.9]
Vérifier l'existence du fichier avec python
[python] [meta] Le type de python est-il un type?
Préparer l'environnement d'exécution de Python3 avec Docker
[Note] Exportez le html du site avec python.
Calculez le nombre total de combinaisons avec python
le zen de Python
Vérifiez la date du devoir de drapeau avec Python
Convertir le code de caractère du fichier avec Python3
Extraire le tableau des fichiers image avec OneDrive et Python
Apprenez Nim avec Python (dès le début de l'année).
Détruire l'expression intermédiaire de la méthode sweep avec Python
Visualisez la gamme d'insertions internes et externes avec python
Calculer le coefficient de régression d'une analyse de régression simple avec python
Résumé du flux de base de l'apprentissage automatique avec Python
Obtenez l'état de fonctionnement de JR West avec Python
Vers la retraite de Python2
Python - Vérifiez le type de valeurs
Juger les nombres premiers avec python
Appelez l'API avec python3.
À propos des fonctionnalités de Python
Le pouvoir des pandas: Python
J'ai essayé de trouver l'entropie de l'image avec python
Essayez de gratter les données COVID-19 Tokyo avec Python
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
Visualisez les résultats des arbres de décision réalisés avec Python scikit-learn
J'ai écrit la grammaire de base de Python dans Jupyter Lab
Obtenez le type MIME en Python et déterminez le format de fichier
Problème WOL avec Scapy de Python3 (type de contrôle LAN)
J'ai évalué la stratégie de négociation du système boursier avec Python.
Prise en compte des décorateurs Python du type qui passe des variables
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
[Homologie] Comptez le nombre de trous dans les données avec Python
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Réécrivez le nœud d'ajout d'enregistrement de SPSS Modeler avec Python.
Estimer la posture du marqueur AR avec Python + OpenCV + drone
Jouez avec le mécanisme de mot de passe de GitHub Webhook et Python
Récupérez la source de la page à charger indéfiniment avec python.
Extraire le fichier xz avec python
L'histoire de Python et l'histoire de NaN
[Python] La pierre d'achoppement de l'importation
First Python 3 ~ Le début de la répétition ~
Existence du point de vue de Python
Obtenez la météo avec les requêtes Python 2
pyenv-changer la version python de virtualenv
Premiers pas avec Python Bases de Python
Trouvez la distance d'édition (distance de Levenshtein) avec python
Accédez à l'API Etherpad-lite avec Python
Installer le plug-in Python avec Netbeans 8.0.2
Jeu de vie avec Python! (Le jeu de la vie de Conway)
[Python] Comprendre le potentiel_field_planning de Python Robotics
10 fonctions du "langage avec batterie" python
J'ai aimé le tweet avec python. ..
Implémentation de la méthode Dyxtra par python