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.
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)
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.
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.
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.
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))
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.