J'étudie avec ce livre Comment créer une application AI / Machine Learning / Deep Learning avec Python
Classifions les iris communs en apprentissage automatique. Pour télécharger, récupérez le fichier CSV à partir de l'URL suivante. https://github.com/pandas-dev/pandas/blob/master/pandas/tests/data/iris.csv Appuyez sur le bouton "Raw" et enregistrez en utilisant la fonction de sauvegarde de votre navigateur. Il a la structure suivante.
Colonne | Nom de colonne | Signification de la colonne | Exemple de valeur |
---|---|---|---|
1 | SepalLength | La longueur de la pièce | 5.1 |
2 | SepalWidth | Largeur de la pièce | 3.5 |
3 | PetalLength | Longueur des pétales | 1.4 |
4 | PetalWidth | Largeur des pétales | 0.2 |
5 | Name | Variétés d'Ayame | Iris-setosa |
Variétés d'Ayame |
---|
Iris-Setosa |
Iris-Versicolor |
Iris-Virginica |
Vous pouvez également le télécharger directement en Python au lieu de l'enregistrer dans votre navigateur.
import urllib.request as req
import pandas as pd
#Téléchargez le fichier
url = "https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/data/iris.csv" #Pas l'URL précédente
savefile = "iris.csv"
req.urlretrieve(url, savefile)
#Afficher le contenu du fichier téléchargé
csv = pd.read_csv(savefile, encoding="utf-8")
csv
150 lignes de données sont affichées.
L'objectif est de classer les variétés d'iris en fonction de la longueur et de la largeur des débris et des pétales. Implémentez le programme d'apprentissage automatique dans l'ordre suivant.
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
#Lecture des données d'iris
iris_data = pd.read_csv("iris.csv", encoding="utf-8")
#Séparez les données d'iris en étiquettes et en données d'entrée
y = iris_data.loc[:, "Name"]
x = iris_data.loc[:,["SepalLength", "SepalWidth", "PetalLength", "PetalWidth"]]
#Séparé pour l'apprentissage et les tests
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle = True)
#apprendre
clf = SVC()
clf.fit(x_train, y_train)
#évaluer
y_pred = clf.predict(x_test)
print("Taux de réponse correct:", accuracy_score(y_test, y_pred))
Taux de réponse correct: 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)
Je reçois un avertissement. Il y a FutureWarning qui dit que dans le futur, le gamma SVC passera de "l'auto" à "l'échelle".
clf = SVC(gamma = "scale")
Si vous écrivez, l'avertissement disparaît. plus loin,
#Séparé pour l'apprentissage et les tests
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle = True)
Mais dans le futur
[Créez des données d'entraînement et de test avec 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)
Il serait préférable de décrire l'option de stratification en référence à.
Recommended Posts