[PYTHON] [Apprentissage automatique] Analyse de régression à l'aide de scicit learn

Bonjour. Il s'agit de Hayashi @ Ienter.

La dernière fois, dans Blog, j'ai parlé de l'analyse de régression de l'approche mathématique.

Récemment, Python est de plus en plus utilisé dans les domaines de l'analyse statistique et de l'apprentissage automatique. Python dispose d'une puissante bibliothèque d'opérations mathématiques et de visualisation de données. Je pense que c'est l'une des raisons.

Cette fois, je présenterai une bibliothèque python appelée "scikit-learn" qui est souvent utilisée dans l'apprentissage automatique. Une bibliothèque très puissante. En fait, effectuons une analyse de régression des exemples de données du blog précédent dans la bibliothèque.

■ Configuration de l'environnement

Installez le package Python "Anaconda". Il s'agit d'un package qui vous permet d'installer Python lui-même et des bibliothèques souvent utilisées en science et technologie, en mathématiques et en analyse de données en même temps. Des packages Windows / MacOS / Linux sont disponibles. J'installe cette fois la version 3.5 de Python.

スクリーンショット 2016-08-01 12.39.43.jpg

■ Démarrage / préparation de l'édition de Jupyter Notebook

Lorsque vous installez Anaconda, il existe également une bibliothèque appelée «Jupyter Notebook» Il sera installé. Cette fois, nous utiliserons ce cadre pour continuer.

À propos, "Jupyter Notebook" est un framework qui étend "IPython" qui peut exécuter python de manière interactive dans un environnement de ligne de commande vers un environnement de navigateur.

Pour le moment, créez un répertoire de travail "jupyter_work" et lancez "Jupyter Notebook" à partir de là.

$ mkdir jupyter_work
$ cd jupyter_work
$ jupyter notebook

Le navigateur démarre et vous verrez un écran comme celui ci-dessous.

スクリーンショット 2016-08-01 13.12.04.png


Pour créer un nouveau bloc-notes, sélectionnez l'élément "Python [Root]" dans la zone de liste déroulante "Nouveau" sur le côté gauche de l'écran. スクリーンショット 2016-08-01 13.08.58.png

Ensuite, l'écran de saisie interactif suivant s'affiche. Vous êtes maintenant prêt à coder. スクリーンショット 2016-08-01 13.15.26.png


■ Fonctionnement de base de Jupyter Notebook

Dans le champ de saisie "In []:", entrez le code python. Bien sûr, vous pouvez saisir plusieurs lignes avec la touche retour. スクリーンショット 2016-08-01 13.29.35.png

Pour exécuter le code d'entrée, cliquez sur "![Capture d'écran 2016-08-01 13.35.34.png](https://qiita-image-store.s3.amazonaws.com/0/134453/3f3fb05b-7f55-aa8a" dans la barre d'outils. Vous pouvez le faire en appuyant sur le bouton -3a12-25c3158f37e4.png) ou en maintenant la touche Maj enfoncée et en appuyant sur la touche Retour. スクリーンショット 2016-08-01 13.37.43.png


■ Essayez l'analyse de régression

Commençons par effectuer une analyse de régression en utilisant les données simples du blog précédent. Les données étaient les suivantes. xy012345.png Le résultat de la droite de régression était l'équation suivante. resolved_func.png Cette fois, nous vérifierons également les résultats d'analyse ci-dessus avec scicit-learn.


Tout d'abord, importez les bibliothèques requises. Capture d'écran 2016-08-01 15.25.40.png

numpy est une bibliothèque de calculs numériques. matplotlib est une bibliothèque pour dessiner des graphiques. pyplot fournit une interface procédurale à la bibliothèque orientée objet de matplotlib. pandas est une bibliothèque qui prend en charge l'analyse de données telles que le calcul de table, et cette fois, nous utiliserons un tableau à deux dimensions (fonction comme un tableau Excel) appelé DataFrame. De plus, sklearn est une bibliothèque d'apprentissage automatique qui utilise la fonction d'un modèle de régression linéaire appelé linear_model. La dernière ligne "% matplotlib inline" est une commande pour dessiner un graphique dans le navigateur.


Préparez les données X et Y précédentes en tant que données au format DataFrame. En termes statistiques, X est la variable explicative et Y est la variable objective. スクリーンショット 2016-08-01 16.02.10.png


Ensuite, créez une instance du modèle de régression linéaire et exécutez le processus d'apprentissage avec la fonction fit. スクリーンショット 2016-08-01 16.06.15.png


En outre, préparez les données de la source de prédiction (px). px est un tableau dans lequel la valeur minimale (0) et la valeur maximale (5) des données X sont divisées par incréments de 0,01. スクリーンショット 2016-08-01 16.27.03.png

Cependant, cette fois, px à passer à la fonction prédictive (prédire) de linear_model doit passer le tableau bidimensionnel suivant en raison des spécifications de la fonction.

[[0.00],[0.01],[0.02],[0.03].....]

Ici, [:, np.newaxis] est utilisé pour convertir un tableau à une dimension en un tableau à deux dimensions.


Remplacez les données de la source de prédiction px dans la fonction de prédiction (prédire) et stockez le résultat de la prédiction dans py. Tracez ces données sur un graphique. Avec plt.scatter (), tracez X et Y des données d'origine avec des points rouges, et dessinez le résultat prédit par plt.plot () avec des lignes droites bleues de px et py. スクリーンショット 2016-08-01 16.40.53.png


Assurez-vous que la pente a de cette ligne droite tracée et la section b de l'axe Y sont les valeurs attendues de 1,4 et 2,0, respectivement. Ces valeurs sont stockées dans model.coef_ et model.intercept_. スクリーンショット 2016-08-01 16.47.53.png

Vous pouvez confirmer que la valeur attendue est sortie.


■ Effectuer une analyse de régression avec des exemples de données de scicit learn

Des exemples de données pour l'apprentissage automatique sont également disponibles dans scikit learn. L'un des échantillons est celui des données sur les prix des maisons de Boston. Les données originales semblent faire référence au site ici. Voici le code qui est inclus dans les données et est une analyse de régression de la corrélation entre le nombre de pièces de la maison achetée et le prix de la maison.

Naturellement, nous pouvons voir que le prix de l'immobilier a tendance à augmenter à mesure que le nombre de chambres augmente.

スクリーンショット 2016-08-01 18.30.03.png スクリーンショット 2016-08-01 18.30.28.png


C'est tout pour cette histoire!

Recommended Posts

[Apprentissage automatique] Analyse de régression à l'aide de scicit learn
Algorithme d'apprentissage automatique (analyse de régression multiple)
Algorithme d'apprentissage automatique (analyse de régression unique)
Apprentissage automatique avec python (2) Analyse de régression simple
Prévision du cours des actions à l'aide de l'apprentissage automatique (édition de retour)
Régression logistique d'apprentissage automatique
Régression linéaire d'apprentissage automatique
Apprenez en quelque sorte le machine learning
Machine Learning: Supervision - Régression linéaire
Python Scikit-learn Analyse de régression linéaire Analyse de régression simple non linéaire Apprentissage automatique
Comprendre l'apprentissage automatique ~ régression de crête ~.
Modèle d'empilage d'apprentissage automatique (retour)
Algorithme d'apprentissage automatique (régression logistique)
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 7 Analyse de régression
Les débutants en apprentissage automatique essaient la régression linéaire
Classification et régression dans l'apprentissage automatique
Apprentissage automatique: analyse discriminante linéaire supervisée
Développement d'applications à l'aide d'Azure Machine Learning
Apprentissage automatique
Algorithme d'apprentissage automatique (généralisation de la régression linéaire)
Prévision du cours des actions à l'aide de l'apprentissage automatique (scikit-learn)
[Apprentissage automatique] Classification des sujets LDA à l'aide de scikit-learn
[Apprentissage automatique] Prédiction FX à l'aide de l'arbre de décision
[Apprentissage automatique] Apprentissage supervisé utilisant l'estimation de la densité du noyau
<Cours> Machine learning Chapitre 1: Modèle de régression linéaire
[Python] Première analyse de données / apprentissage automatique (Kaggle)
<Cours> Machine learning Chapitre 4: Analyse des principaux composants
Algorithme d'apprentissage automatique (résumé de régression linéaire et régularisation)
Prétraitement dans l'apprentissage automatique 1 Processus d'analyse des données
[Super introduction à l'apprentissage automatique] Découvrez les didacticiels Pytorch
Une histoire sur l'apprentissage automatique simple avec TensorFlow
Astuces de fourniture de données utilisant deque dans l'apprentissage automatique
[Apprentissage automatique] Apprentissage supervisé utilisant l'estimation de la densité du noyau Partie 2
EV3 x Python Machine Learning Partie 2 Régression linéaire
[Python] Analyse de données, pratique du machine learning (Kaggle) -Prétraitement des données-
Analyse de régression de Poisson
[Apprentissage automatique] Apprentissage supervisé utilisant l'estimation de la densité du noyau Partie 3
[Super introduction à l'apprentissage automatique] Découvrez les didacticiels Pytorch
Analyse de l'utilisation de l'espace partagé par l'apprentissage automatique
Méthode d'analyse de régression
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Histoire de l'analyse de données par apprentissage automatique
Exemple d'apprentissage automatique
[Apprentissage automatique] Extraire des mots similaires mécaniquement en utilisant WordNet
Raisonnement causal utilisant l'apprentissage automatique (organisation des méthodes de raisonnement causal)
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (1)
Explication du concept d'analyse de régression à l'aide de python Partie 2
Apprenez le filtrage collaboratif avec les supports Coursera Machine Learning
Défis d'apprentissage automatique de Coursera en Python: ex2 (retour logistique)
Créez des projets d'apprentissage automatique à une vitesse explosive à l'aide de modèles
Explication du concept d'analyse de régression à l'aide de Python Partie 1
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (3)
Apprentissage automatique avec des images de catégorie Caffe -1 à l'aide du modèle de référence
Coursera Machine Learning Challenge en Python: ex1 (régression linéaire)
Résumé du site pour apprendre l'apprentissage automatique avec une vidéo en anglais
Tech-Circle Commençons le développement d'applications à l'aide de l'apprentissage automatique (auto-apprentissage)
Explication du concept d'analyse de régression à l'aide de Python Extra 1
[Apprentissage automatique] Classification de texte à l'aide du modèle Transformer (classificateur basé sur l'attention)
Mémo de construction d'environnement d'apprentissage automatique par Python