Résumé du flux de base de l'apprentissage automatique avec Python

J'ai récemment étudié l'apprentissage automatique, j'ai donc résumé les étapes à suivre lors de sa mise en œuvre en Python.

Prétraitement des données

Dans l'apprentissage automatique, il est d'abord nécessaire de lire les données et de connaître le type de distribution dont elles disposent. J'écrirai sur la procédure

Lire les données

Afin de lire réellement les données, lisez le fichier csv en utilisant la méthode appelée read_csv de pandas qui a été lue précédemment.

#Charger la bibliothèque
import pandas as pd
import numpy as np

#Hoge directement en dessous.Charger csv
df = pd.read_csv("./hoge.csv") 
#Extraire seulement 5 lignes du haut
df.head() 

Confirmation des données lues

En ce qui concerne l'apprentissage automatique, il existe une image selon laquelle si vous insérez les données, cela fera quelque chose, mais en réalité, vous devez regarder de près les données. Par exemple, y a-t-il des valeurs manquantes, y a-t-il trop de variations et y a-t-il des corrélations?

Statistiques de base

En entrant le code suivant, vous pouvez voir le nombre de données, la valeur moyenne, l'écart type, la valeur minimale, la valeur maximale, etc. à la fois.

#Calcul des statistiques
df.describe() 

Vous pouvez voir les statistiques de base dans une liste comme celle-ci 基本統計量.PNG

Confirmation de distribution

Cependant, il est difficile à comprendre simplement en regardant les nombres tels que l'écart type et la valeur moyenne, il est donc plus facile pour les humains de le comprendre dans un graphique. Par conséquent, il montre la distribution.

%matplotlib inline
#Chargement d'une bibliothèque qui affiche un graphique appelé seaborn
import seaborn as sns

#Confirmation de distribution
sns.distplot(df["x1"]) #Vérifiez d'abord les données (ici, vérifiez les données de la colonne x1)

Ce sont de bonnes données car les données semblent suivre une distribution normale x6の分布.PNG

Confirmation du coefficient de corrélation

Si les données n'ont pas du tout de corrélation, il est inutile de les entraîner, alors vérifiez le coefficient de corrélation. Au fait, le coefficient de corrélation est compris entre -1 et +1 et plus il est élevé, plus il est corrélé.

#Calcul du coefficient de corrélation
df.corr()
#Vérifiez le coefficient de corrélation dans un graphique
sns.pairplot(df)

Séparation des variables d'entrée et des variables de sortie

En fait, nous allons créer quelque chose comme $ y = w0x0 + w1x1 + w2x2 + ... + $, nous devons donc diviser le contenu des données dans la variable de sortie y et la variable d'entrée x. À ce moment-là, la méthode appelée iloc des pandas est utilisée.

#df.iloc[ligne,Colonne]とすることでそのligneとColonneのデータを取り出せる
Exemple d'exemple= df.iloc[1,3]
Résultat 100
#Dernière colonne-Récupère toutes les lignes jusqu'à 1(Variable d'entrée X)
 X = df.iloc[:,:-1]
#On peut l'écrire comme ça, mais la polyvalence est faible
 X = df.iloc[:,:Numéro de la dernière colonne]

#Sortez y
 y = df.iloc[:,-1]

Apprentissage automatique à l'aide de données prétraitées

En faisant le travail ci-dessus, nous sommes prêts à effectuer un apprentissage automatique. Nous apprendrons en fait du prochain. Ici, la bibliothèque de machine learning scicit-learn est utilisée.

Diviser en données d'entraînement et données de vérification

Le but de l'apprentissage automatique était de former des données et de faire des prédictions lorsque des données inconnues étaient saisies. En d'autres termes, les données utilisées pour la formation ne sont pas utilisées. De toute évidence, si vous insérez les données utilisées pour l'apprentissage et faites une prédiction, vous obtiendrez une réponse précise parce que vous avez appris avec ces données, n'est-ce pas? Sera

Par conséquent, il est nécessaire de séparer les données d'entraînement (train) et les données de vérification (test) avant l'entraînement.

from sklearn.model_selection import train_test_split

#Séparation des données d'entraînement et des données de vérification
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.4,random_state=1)

testsize spécifie le rapport entre les données d'entraînement et les données de vérification, et ici il est défini comme apprentissage: entraînement = 6: 4. De plus, random_state est fixé pour maintenir la reproductibilité.

Construction / vérification du modèle

Avec scikit-learn, vous pouvez créer et vérifier le modèle avec juste le code suivant Le modèle utilisé pour la formation cette fois est l'analyse de régression multiple

#Importer la bibliothèque
from sklearn.linear_model import  LinearRegression

#Déclaration du modèle (la régression linéaire signifie une analyse de régression multiple)
model = LinearRegression()

#Formation du modèle (réglage des paramètres)
model.fit(X,y)

#Vérifier les paramètres
model.coef_

#Coefficient de décision(Précision de la prédiction) 0~Plus haut entre 1 est mieux
model.score(X,y)

#Calcul de la valeur prédite
x = X.iloc[0,:] #Sortez la première ligne de X
y_pred = model.predict([x])

Enregistrer / charger le modèle

Vous pouvez enregistrer le modèle avec le code suivant

#importer
from sklearn.externals import joblib

#Enregistrer le modèle (hoge.Enregistrer sous pkl
joblib.dump(model,"hoge.pkl")

Chargez le modèle avec le code suivant

#hoge.Chargement de pkl
model_new = joblib.load("hoge.pkl") 

#Afficher la valeur prévue du modèle chargé
model_new.predict([x])[0]

Ce qui précède est le flux de base de l'apprentissage automatique. Cette fois, le modèle a été réalisé par analyse de régression multiple, mais le flux de base est le même lorsque vous voulez l'exécuter avec une régression logistique ou SVM, par exemple.

Recommended Posts

Résumé du flux de base de l'apprentissage automatique avec Python
Apprentissage automatique avec Python! Préparation
Commencer avec l'apprentissage automatique Python
Prédire le sexe des utilisateurs de Twitter grâce à l'apprentissage automatique
Bilan du premier défi du machine learning avec Keras
Alignez le nombre d'échantillons entre les classes de données pour l'apprentissage automatique avec Python
Apprentissage automatique par python (1) Classification générale
Résumé de l'apprentissage automatique par les débutants de Python
Apprentissage automatique ③ Résumé de l'arbre de décision
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Etude de base d'OpenCV avec Python
Le résultat de l'apprentissage automatique des ingénieurs Java avec Python www
J'ai écrit la grammaire de base de Python dans Jupyter Lab
Un résumé de l'apprentissage automatique Python pour débutant est très concis.
Résumé de base de la manipulation de données avec Python Pandas - Première moitié: création et manipulation de données
Prédire le temps objectif d'un marathon complet avec l'apprentissage automatique-③: j'ai essayé de visualiser les données avec Python-
La première étape de l'apprentissage automatique ~ Pour ceux qui veulent essayer l'implémentation avec python ~
[Exemple d'amélioration de Python] Apprentissage de Python avec Codecademy
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
Amplifiez les images pour l'apprentissage automatique avec Python
[Apprentissage automatique] Vérifiez les performances du classificateur à l'aide de données de caractères manuscrites
Apprentissage automatique avec python (2) Analyse de régression simple
Notes d'apprentissage depuis le début de Python 1
Vérifier l'existence du fichier avec python
Note récapitulative sur la programmation d'apprentissage automatique Python (Jupyter)
Cours de base Python (à la fin de 15)
Notes d'apprentissage depuis le début de Python 2
Construction d'environnement AI / Machine Learning avec Python
Résumé de base du scraping avec des requêtes que les débutants peuvent absolument comprendre [Python]
API REST du modèle réalisé avec Python avec Watson Machine Learning (édition CP4D)
Code source pour la séparation des sources sonores (série de pratiques d'apprentissage automatique) appris avec Python
Procédure d'apprentissage automatique de base: ③ Comparez et examinez la méthode de sélection de la quantité de caractéristiques
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer jusqu'à la fin du chapitre 2
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
L'histoire de l'apprentissage profond avec TPU
Apprentissage automatique à partir de Python Personal Memorandum Part2
L'histoire selon laquelle le coût d'apprentissage de Python est faible
Préparer l'environnement d'exécution de Python3 avec Docker
Résumé des différences entre PHP et Python
Mathématiques Todai 2016 résolues avec Python
Mémo d'étude Python & Machine Learning ⑤: Classification d'Ayame
Apprentissage automatique à partir de Python Personal Memorandum Part1
Calculez le nombre total de combinaisons avec python
Mémo d'étude Python & Machine Learning ②: Introduction de la bibliothèque
Vérifiez la date du devoir de drapeau avec Python
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Ceci est le seul examen de base de Python ~ 1 ~
Ceci est le seul examen de base de Python ~ 2 ~
À propos du contenu de développement de l'apprentissage automatique (exemple)
[Python] Résumé des opérations sur les fichiers S3 avec boto3
Touchons une partie de l'apprentissage automatique avec Python
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
Ceci est le seul examen de base de Python ~ 3 ~
Convertir le code de caractère du fichier avec Python3
[Python] Déterminez le type d'iris avec SVM
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Résumé du didacticiel d'apprentissage automatique
"Orienté objet" appris avec python
Apprentissage automatique ⑤ Résumé AdaBoost