[Python] Introduction facile à l'apprentissage automatique avec python (SVM)

introduction

Quand je regarde le site d'introduction sur l'apprentissage automatique, j'ai l'impression qu'il est difficile pour les personnes sans connaissances de s'entendre avec lui car cela dit quelque chose de difficile. Eh bien, c'est certainement un thème difficile, mais ... J'aimerais écrire un article dans le but de "même si vous n'avez aucune connaissance des mathématiques ou de l'apprentissage automatique, toute personne ayant des connaissances en python peut l'implémenter". Dans cet article, je n'expliquerai pas les choses difficiles, mais je continuerai avec la position de toucher à l'apprentissage automatique pour le moment.

Personne cible

・ Comprendre python dans une certaine mesure ・ Je suis intéressé par l'apprentissage automatique, mais je ne sais rien ・ J'ai appris le plan dans une classe universitaire, mais je ne sais pas comment le mettre en œuvre.

environnement

python 3.8.5 scikit-learn 0.231

Première installation

Il semble qu'il ne puisse être installé que si la version de python est 3.8.5 ou inférieure.

pip install scikit-learn

Comme numpy est utilisé pour lire le fichier csv, veuillez l'installer si vous ne l'avez pas déjà installé.

pip install numpy

Glossaire

Qu'est-ce que scikit-learn?

scikit-learn (anciennement scikits.learn) est la bibliothèque d'apprentissage automatique open source de Python [2]. Prise en charge de Vector Machine, Random Forest, Gradient Boosting, k Neighbour Method, DBSCAN et de nombreux autres algorithmes de classification, de régression et de clustering conçus pour interagir avec NumPy et SciPy dans les bibliothèques mathématiques de Python. ing. (De wikipedia)

Oui, je ne pense pas qu'il soit logique de regarder cela, alors rappelons-nous simplement "** Bibliothèque qui prend en charge l'apprentissage automatique **" cette fois.

Qu'est-ce que SVM

La machine à vecteurs de support (SVM) est l'un des modèles de reconnaissance de formes qui utilise l'apprentissage supervisé. Applicable à la classification et à la régression. La machine à vecteurs de support est l'un des modèles d'apprentissage avec d'excellentes performances de reconnaissance parmi les méthodes actuellement connues. La raison pour laquelle la machine à vecteurs de support peut présenter d'excellentes performances de reconnaissance est qu'il existe un dispositif permettant d'obtenir des performances de discrimination élevées pour des données non formées. (De wikipedia)

En termes simples, il s'agit d'une méthode d'apprentissage automatique *** qui classe les données en dessinant une ligne ** comme indiqué dans l'image ci-dessous. Il existe différentes méthodes d'apprentissage automatique. SVM (Support Vector Machine) est l'un d'entre eux.

image.png https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Kernel_Machine.svg/2880px-Kernel_Machine.svg.png (De wikipedia)

Qu'est-ce qu'une variable objective?

C'est la cible que vous souhaitez prédire avec l'apprentissage automatique. Par exemple, lorsque vous souhaitez prédire le temps, les variables objectives sont ensoleillé, nuageux et pluvieux.

Qu'est-ce qu'une variable explicative?

Ce sont les informations nécessaires pour faire une prédiction. Par exemple, la quantité de précipitations et d'humidité requise lorsque vous souhaitez prédire la météo.

Les données

Fondamentalement, plus le nombre de données est grand, plus la précision est élevée, mais comme il s'agit d'un essai, nous préparerons une petite quantité de données. Ces données concernent la météo de cette année. Eh bien, il y a beaucoup de données météorologiques sur le site Web de l'Agence météorologique, alors jetez un œil si vous êtes intéressé. À partir de la gauche ** Température **, ** Précipitations **, ** Temps d'ensoleillement **, ** Humidité **, ** Météo (0: ensoleillé, 1: nuageux, 2: pluie) ** Représente. Dans ces données, ** température **, ** précipitations **, ** temps d'ensoleillement **, ** humidité ** sont des variables explicatives, ** temps (0: ensoleillé, 1: nuageux, 2: nuageux) Rain) ** est la variable objective.

PostScript 16/11/2020 J'ai remarqué en regardant les données, mais comme je viens de prendre les données de janvier, elles ne supportent que les données de cet hiver (rires).

data.csv


6.6,0,8.2,47,0
7.1,0,5.7,57,1
7.1,0,9.3,62,0
8.1,0,4.7,53,1
6.5,0,9.7,54,0
8,0,8.1,42,1
6.6,1.5,0.5,68,2
5.7,21.5,2.7,94,2
11.2,0,9.3,47,0
9,0,7.9,57,1
8,0,4.5,66,1
7.7,0,1.8,66,2
9.1,0,9.3,70,0
9.1,0,8.3,70,0
7.8,11.5,3.6,79,2
7.6,0,4.4,46,1
7.6,0,3.6,58,1
3.8,13.5,0,87,2
7.3,0,8,62,1
8.3,0,9.7,60,0

Code source

En modifiant la météo à votre valeur préférée, vous pouvez prédire la météo dans ces conditions. (Cependant, la précision est médiocre car le nombre de données est petit.) Même par temps, de gauche à droite ** Température **, ** Précipitations **, ** Temps d'ensoleillement **, ** Humidité ** Puisqu'ils sont alignés, essayez de saisir les conditions dans cet ordre.

weather_learn.py


import numpy as np
from sklearn import svm

#Lire le fichier csv
npArray = np.loadtxt("data.csv", delimiter = ",", dtype = "float")

#Stockage des variables explicatives
x = npArray[:, 0:4]

#Stockage de la variable objective
y = npArray[:, 4:5].ravel()

#Sélectionnez SVM comme méthode d'apprentissage
model = svm.SVC()

#Apprentissage
model.fit(x,y)

#Données d'évaluation(Entrez votre valeur préférée ici)
weather = [[9,0,7.9,6.5]] 

#Prédire la météo des données d'évaluation avec la fonction prédire
ans = model.predict(weather)

if ans == 0:
    print("Il fait beau")
if ans == 1:
    print("Le ciel est nuageux")
if ans == 2:
    print("C'est la pluie")


Résultat d'exécution

$ python3 weather_learn.py 
Il fait beau

en conclusion

Merci pour votre travail acharné cette fois également. Je suis heureux que ce que j'ai fait produise des résultats de cette manière. Lorsque je suis entré en contact avec l'apprentissage automatique pour la première fois, j'étais souvent coincé avec trop d'informations. Dans cet article, j'ai l'intention de l'écrire d'une manière facile à comprendre pour ceux qui "n'ont aucune connaissance mais veulent toucher à l'apprentissage automatique", mais si vous avez des questions ou des erreurs, veuillez commenter. À la prochaine.

Recommended Posts

[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Une introduction à Python pour l'apprentissage automatique
Introduction à l'apprentissage automatique
Une introduction à l'apprentissage automatique
Apprentissage automatique avec Python! Préparation
Commencer avec l'apprentissage automatique Python
Super introduction à l'apprentissage automatique
Introduction à la rédaction de notes d'apprentissage automatique
Apprentissage automatique par python (1) Classification générale
SVM essayant l'apprentissage automatique avec scikit-learn
Présentation de la bibliothèque d'apprentissage automatique SHOGUN
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitres 11 et 12 Introduction à Pandas Matplotlib
[Tutoriel Python] Une introduction facile à Python
Introduction à l'apprentissage automatique avec scikit-learn - De l'acquisition de données à l'optimisation des paramètres
Apprentissage automatique pour apprendre avec Nogisaka 46 et Keyakizaka 46 Partie 1 Introduction
Introduction à l'apprentissage automatique: fonctionnement du modèle
Amplifiez les images pour l'apprentissage automatique avec Python
Apprentissage automatique avec python (2) Analyse de régression simple
J'ai installé Python 3.5.1 pour étudier l'apprentissage automatique
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Une introduction à OpenCV pour l'apprentissage automatique
Introduction facile de la reconnaissance vocale avec Python
[Introduction à Python] Utilisons foreach avec Python
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
Introduction à Machine Learning-Hard Margin SVM Edition-
[Python] Essayez facilement l'apprentissage amélioré (DQN) avec Keras-RL
Construction d'environnement AI / Machine Learning avec Python
Introduction aux bases de Python de l'apprentissage automatique (apprentissage non supervisé / analyse principale)
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 10 Introduction à Cupy
Apprentissage automatique avec python sans perdre aux variables catégorielles (conversion de variable factice)
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 1
[Introduction au style GAN] Apprentissage unique de l'animation avec votre propre machine ♬
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 9 Introduction à scikit-learn
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 2
Coursera Machine Learning Challenge en Python: ex6 (Comment ajuster les paramètres SVM)
Introduction à l'intelligence artificielle avec Python 1 «Théorie des algorithmes génétiques»
[Super introduction à l'apprentissage automatique] Découvrez les didacticiels Pytorch
Une introduction à l'apprentissage automatique pour les développeurs de robots
Markov Chain Artificial Brainless avec Python + Janome (1) Introduction à Janome
Apprendre Python avec ChemTHEATER 03
Chaîne de Markov artificielle sans cervelle avec Python + Janome (2) Introduction à la chaîne de Markov
Apprentissage automatique à partir de Python Personal Memorandum Part2
"Orienté objet" appris avec python
Apprendre Python avec ChemTHEATER 05-1
Introduction à l'intelligence artificielle avec Python 2 «Pratique de l'algorithme génétique»
[Introduction à l'apprentissage automatique] Jusqu'à ce que vous exécutiez l'exemple de code avec chainer
Apprentissage automatique à partir de Python Personal Memorandum Part1
[Introduction à StyleGAN2] Apprentissage indépendant avec 10 visages d'anime ♬
Introduction à Tornado (1): Framework Web Python démarré avec Tornado
Mémo d'étude Python & Machine Learning ②: Introduction de la bibliothèque
Introduction au langage Python
Introduction à OpenCV (python) - (2)
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Apprendre Python avec ChemTHEATER 02
Introduction au vol en formation avec Tello edu (Python)
Prenons la version gratuite "Introduction à Python pour l'apprentissage automatique" en ligne jusqu'au 27/04
Apprendre Python avec ChemTHEATER 01