Python: apprentissage supervisé (retour)

Qu'est-ce que l'apprentissage supervisé?

Types d'apprentissage automatique

L'apprentissage automatique est divisé en trois domaines principaux.

1, apprentissage supervisé La machine prédit les nouvelles données et les données futures en fonction des données accumulées Ou cela signifie classer. Cela s'applique aux prévisions de cours des actions et à l'identification des images.

2, apprentissage non supervisé Cela signifie que la machine trouve la structure et la relation des données accumulées. Il est utilisé dans les tendances des clients des magasins de détail et dans la reconnaissance d'images Google.

3, renforcer l'apprentissage La forme d'apprentissage est similaire à l'apprentissage non supervisé, mais au moment de l'apprentissage en fixant des récompenses et des objectifs C'est une méthode d'apprentissage pour maximiser les profits. Il est souvent utilisé comme une IA compétitive telle que Go.

Parmi ceux-ci, l'apprentissage supervisé peut être largement divisé en deux méthodes: la régression et la classification.

Apprentissage automatique avec scikit-learn

Utilisez scicit-learn, un module d'apprentissage automatique.


#Importez les modules requis.
import request
from sklearn.linear_model import LinearRegression

#Ensuite, chargez les données que vous souhaitez entraîner. Consultez le code de ce numéro pour le code détaillé.
#Entraînez-vous comme suit_X, test_X, train_y, test_Les données sont chargées dans quatre fichiers appelés y.
train_X, test_X, train_y, test_y = (Informations de données)

#Construisez un apprenant.
#Un apprenant est un modèle d'apprentissage(Méthode d'apprentissage)Un objet conçu pour s'entraîner avec.
# scikit-La régression linéaire de Learn apprend et renvoie des données prédictives.
#Les détails de cette régression linéaire seront traités dans les sessions suivantes et suivantes.
model = LinearRegression()

#Données des enseignants(Données existantes pour l'apprentissage)Laissez l'apprenant apprendre à utiliser.
model.fit(train_X, train_y)

#Laissez l'apprenant faire des prédictions en utilisant des données de test préparées séparément des données de l'enseignant.
pred_y = model.predict(test_X)

#Une valeur d'évaluation appelée coefficient de décision est calculée pour confirmer la performance de l'apprenant.
score = model.score(test_X, test_y)

Régression linéaire

Qu'est-ce que la régression linéaire?

L'analyse régressive est basée sur la relation entre les données que vous souhaitez prédire et les données que vous connaissez déjà. C'est une approche d'estimation. En fin de compte, nous l'appelons «retour» lors de la prédiction de valeurs numériques.

Il est facile de comprendre combien de kilomètres vous avez parcourus à 100 km / h en une heure après votre retour (prédiction). Parmi eux, 100 est le coefficient des données.

En régression linéaire, pour les données que vous souhaitez prédire en regardant les coefficients des données utilisées pour la prédiction Vous pouvez voir l'ampleur de la contribution de ces données.

En regardant l'ampleur de la contribution des données En créant une formule qui maximise les bénéfices des achats et des achats La création d'une formule de calcul est essentielle pour que vous puissiez comprendre les mesures à prendre.

Coefficient de décision

Le coefficient de décision est constitué des données prédites par régression linéaire et des données réelles. C'est un index qui montre à quel point ils correspondent. Il montre également à quel point vous pouvez faire confiance au coefficient (ampleur de la contribution) de chaque donnée.

Si le score prévu est de 70 En fait, s'il est de 20 points, le coefficient de décision sera proche de 0. En fait, lorsque le score est de 71, il sera aussi proche que possible de 1.

Le coefficient de décision prend un nombre de 0 à 1, et plus la valeur est élevée, meilleure est la précision de la fonction. Si la valeur est d'environ 0,8 ou plus, la précision de la fonction peut être considérée comme bonne. Cependant, même si la valeur est de 0,8 ou moins, la fonction n'est pas inutile.

Si le facteur de décision est d'une certaine taille (la norme varie en fonction de la personne, mais d'environ 0,4 ou plus), on peut se fier dans une certaine mesure à l'ampleur de la contribution des données.

Régression linéaire simple

La régression linéaire simple est une analyse de régression qui obtient une donnée (ex. Quantité d'eau) à prédire à partir d'une donnée (ex. Temps). Il est souvent utilisé lors de l'analyse des relations de données et rarement lors de la réalisation de prédictions.

Ici, les données que vous souhaitez prédire sont yy et les données utilisées pour la prédiction sont xx.

y=ax+by=ax+b Estimez aa et bb, en supposant qu'il existe une relation.

Il existe différentes méthodes pour estimer aa et bb, mais cette fois nous utiliserons une méthode appelée méthode des moindres carrés. Assurez-vous que la somme des carrés de la différence entre la valeur yy réelle et la valeur y (= ax + b) y (= ax + b) estimée est minimisée. Comment déterminer aa et bb.

Dans la figure ci-dessous, déterminez a et b afin que la somme des distances des points de données orange soit minimisée. De cette façon, tracez la ligne droite la plus proche des données existantes et inférez les données futures à partir de cette ligne droite.

image.png

Le carré de l'erreur ici est d'empêcher l'erreur d'être compensée par la différence entre le positif et le négatif. Par exemple, si vous ajoutez simplement ceux avec une erreur de +2 et -2, la valeur sera 0 et l'erreur sera compensée.

Désormais, pour effectuer une analyse de régression, il est pratique d'utiliser un modèle appelé LinearRegression dans le module linear_model de scicit-learn.

from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

#Ici, nous allons générer des données récursives.
X, y = make_regression(n_samples=100, n_features=1, n_targets=1, noise=5.0, random_state=42)

train_X, test_X, train_y, test_y = train_test_split(X, y, random_state=42)

model = LinearRegression()

model.fit(train_X, train_y)

#C'est la sortie du coefficient de détermination
print(model.score(test_X, test_y))

Régression multiple linéaire

La régression linéaire multiple concerne une donnée que vous souhaitez prédire (ex2. Score d'évaluation global du restaurant) Il s'agit d'une analyse de régression dans laquelle les données utilisées pour la prédiction sont multiples (ex2. Le score de plats délicieux et le score de bon service client). Une précision de prédiction élevée peut être obtenue lorsque les relations entre les données utilisées pour la prédiction sont faibles.

Encore une fois, nous utilisons la méthode des moindres carrés pour estimer la relation entre les données prédites et les données utilisées pour la prédiction. Dans le cas de la régression multiple, les données utilisées pour la prédiction sont x0x0, x1x1, x2x2 ...

y=β0x0+β1x1+β2x2+⋯+ϵy=β0x0+β1x1+β2x2+⋯+ϵ

Nous allons estimer β0, β1, β2 ..., ϵ β0, β1, β2 ..., ϵ.

Vous pouvez voir que nous avons plus de x qu'une simple régression.

La régression multiple linéaire utilise également un modèle appelé LinearRegression dans le module linear_model de scikit-learn. Il est possible d'effectuer une analyse de régression. S'adapte au mieux aux données existantes β0, β1, β2 ..., ϵ β0, β1, β2 ..., ϵ sont déterminés et prédits.

from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

#Ici n_features=Générer x en définissant 10
#Le nombre de x réellement utilisé est n_informative=Spécifiez comme 3
X, y = make_regression(n_samples=100, n_features=10, n_informative=3, n_targets=1, noise=5.0, random_state=42)
train_X, test_X, train_y, test_y = train_test_split(X, y, random_state=42)

model = LinearRegression()
model.fit(train_X, train_y)
model.score(test_X, test_y)
#Aussi, modèle.predict(test_X)En écrivant un test_Vous pouvez faire des prédictions pour X.

Recommended Posts

Python: apprentissage supervisé (retour)
Python: Application de l'apprentissage supervisé (retour)
Apprendre avec un enseignant (retour) 1 Bases
Python: apprentissage supervisé (classification)
Python: Apprentissage supervisé: Hyper Paramètres Partie 1
apprentissage de python
Python: apprentissage supervisé: Hyper Paramètre partie 2
Apprendre avec l'enseignant (retour) 2 édition avancée
Machine learning supervisé (classification / régression)
[Python] Note d'apprentissage 1
Notes d'apprentissage Python
sortie d'apprentissage python
Site d'apprentissage Python
Apprentissage Python jour 4
Apprentissage en profondeur Python
Apprentissage supervisé (classification)
Apprentissage profond × Python
notes d'apprentissage python
Classe Python (mémo d'apprentissage Python ⑦)
Apprendre Python avec ChemTHEATER 03
"Orienté objet" appris avec python
Module Python (mémo d'apprentissage Python ④)
Apprentissage amélioré 1 installation de Python
Apprendre Python avec ChemTHEATER 05-1
Python: pratique du Deep Learning
Python ~ Apprentissage rapide de la grammaire ~
Python: apprentissage non supervisé: principes de base
Bases de l'apprentissage avec un enseignant Partie 1-Régression simple- (Remarque)
Régression logistique d'apprentissage automatique
EV3 x Python Machine Learning Partie 2 Régression linéaire
Procédure d'apprentissage privée Python
Apprendre Python avec ChemTHEATER 02
Régression linéaire d'apprentissage automatique
Apprendre Python avec ChemTHEATER 01
Python: réglage du Deep Learning
Apprentissage amélioré Python + Unity (apprentissage)
Bases de l'apprentissage avec un enseignant Partie 3-Régression multiple (mise en œuvre) - (Notes) -
Analyse de régression avec Python
Python Scikit-learn Analyse de régression linéaire Analyse de régression simple non linéaire Apprentissage automatique
Coursera Machine Learning Challenge en Python: ex1 (régression linéaire)
Expression de régression multiple en Python
Gestion des exceptions Python (mémo d'apprentissage Python ⑥)
Mémo d'apprentissage O'Reilly python3 Primer
Flux d'apprentissage pour les débutants en Python
Plan d'apprentissage Python pour l'apprentissage de l'IA
Apprentissage amélioré à partir de Python
Apprentissage automatique avec Python! Préparation
Apprentissage supervisé 3 hyper paramètres et réglage (2)
Comprendre l'apprentissage automatique ~ régression de crête ~.
Apprentissage automatique: forêt supervisée - aléatoire
Apprendre avec l'enseignant 1 Principes de base de l'apprentissage avec l'enseignant (classification)
Programmation Python Machine Learning> Mots-clés
Machine Learning: Supervisé - Support Vector Machine
Analyse de régression simple avec Python