Bonjour à tous. Je suis maintenant [Machine learning commençant par Python](https://www.amazon.co.jp/Python%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3 % 82% 8B% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% 92-% E2% 80% 95scikit-learn% E3% 81% A7% E5% AD% A6% E3% 81% B6% E7% 89% B9% E5% BE% B4% E9% 87% 8F% E3% 82% A8% E3% 83% B3% E3% 82% B8% E3% 83% 8B% E3% 82% A2% E3% 83% AA% E3% 83% B3% E3% 82% B0% E3% 81% A8% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% J'étudie à 92% E3% 81% AE% E5% 9F% BA% E7% A4% 8E-Andreas-C-Muller / dp / 4873117984).
Un concept intéressant appelé régression linéaire est apparu, je pense donc que je devrais le résumer un peu.
La régression (Kaiki, anglais: régression) consiste à appliquer le modèle Y = f (X) aux données lorsque Y est une valeur continue en statistique. En d'autres termes, ajustez le modèle entre la variable dépendante (variable objective) Y et la variable indépendante (variable explicative) X de l'échelle continue. Si X est unidimensionnel, on parle de régression simple, et si X est bidimensionnel ou plus, on parle de régression multiple. Wikipédia
En d'autres termes, le but de la régression est d'atterrir sur la ** prédiction de valeur continue **. Par exemple ... Prédire le revenu annuel ** d'une personne (variable objective) ** à partir de la formation universitaire, de l'âge et de l'adresse (variable explicative). Prédire le ** rendement (variable objective) ** d'un producteur de maïs à partir du rendement de l'année précédente, des conditions météorologiques et du nombre d'employés (variable explicative).
La régression avec un modèle linéaire utilise littéralement une fonction linéaire pour prédire la variable objective.
La formule générale de prédiction par le modèle linéaire dans le problème de régression est
y = w[0] \times x[0] + w[1] \times x[1] + \dots + w[p] \times x[p] + b
Peut être exprimé comme.
Ici, x [0] ... x [p] indique la ** quantité de caractéristiques ** d'un point de données, w et b sont les ** paramètres ** du modèle entraîné, et y est * du modèle. * Prévoir **.
En d'autres termes, lorsque les w et b optimisés sont obtenus (appris) à partir des données d'apprentissage et qu'un nouveau x [0] ... x [p] est entré, Cela revient à produire ** y ** aussi précis que possible.
Ici, il existe différents algorithmes de régression utilisant un modèle linéaire. La différence entre ces modèles réside dans la méthode de recherche (apprentissage) ** w, b ** et la méthode de vivre la complexité du modèle.
Aujourd'hui, je voudrais aborder la méthode de régression linéaire la plus simple et la plus classique ** généralement la méthode des moindres carrés (OLS) **.
Considérons une variable explicative pour la simplicité. En d'autres termes, la formule est
y = wx + b
Dans cette régression linéaire, w et b sont calculés de sorte que l'erreur quadratique moyenne entre y et la valeur prédite soit minimisée dans les données d'apprentissage. C'est difficile à comprendre à partir du texte, donc si vous y réfléchissez avec une image, c'est comme suit.
En d'autres termes, trouvez ** w ** et ** b ** de sorte que la somme des carrés de la longueur de la ligne bleue (erreur) soit aussi petite que possible, et le résultat est une ligne droite rouge.
Si vous écrivez dans une formule mathématique
Erreur quadratique moyenne=\frac{1}{n}\sum_{i=1}^{n} (y_i - y'_i)^2, (y_i:Valeur dans les données d'entraînement i-ème, y'_i:i-ème valeur prédite)
Sélectionnez w et b pour que cette erreur quadratique moyenne devienne petite. C'est OLS. C'est facile et beau.
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import mglearn
X, y =mglearn.datasets.make_wave(n_samples=60)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
lr = LinearRegression().fit(X_train, y_train)
print("lr.coef_(Inclinaison OU poids) : {}".format(lr.coef_))
print("lr.intercept_(Section) : {}".format(lr.intercept_))
print("Training set score: {:.2f}".format(lr.score(X_train, y_train)))
print("test set score: {:.2f}".format(lr.score(X_test, y_test)))
Cliquez ici pour les résultats
lr.coef_(Inclinaison OU poids) : [0.39390555]
lr.intercept_(Section) : -0.031804343026759746
Training set score: 0.67
test set score: 0.66
Tracons cette ligne droite.
Cependant, la prédiction n'est pas si bonne à 66%. C'est peut-être sous-adapté.
La prochaine fois, nous parlerons de différents modèles de régression, Ridge et Lasso. Passez une bonne nuit à tous. bonne nuit.
Recommended Posts