[PYTHON] Défi de lapin d'apprentissage automatique

Apprentissage automatique

On dit qu'un programme informatique mesure la tâche T (ce que l'application veut faire) avec l'indice de performance P, et si ses performances sont améliorées par l'expérience E (données), il apprend de l'expérience E concernant la tâche T et l'indice de performance P. Est

Exemple) Dans le cas du cours de l'action Tâche T → Prédire le prochain cours de l'action en entrant les données d'entrée passées sur le cours Indice de performance P → Différence entre le cours de l'action prévu et le cours réel de l'action Expérience E → Données de cours des actions passées

Problème de retour

Le problème de la prédiction de l'entrée d'une valeur discrète ou continue à la sortie d'une valeur continue

Données traitées dans les problèmes de régression

--Entrée (appelée variable explicative ou quantité caractéristique de chaque élément)

Variables explicatives: $ x $ = ($ x_1 $, $ x_2 $, $ \ dots $, $ x_m $) $ ^ T $ $ \ in $ $ \ mathbb {R} ^ m $ Variable objective: $ y $ = $ \ in $ $ \ mathbb {R} ^ m $.

Exemple) Prévision du prix du logement Variables explicatives: nombre de pièces, superficie du site et âge Variable objective: prix

Régression linéaire

Connexion linéaire (produit interne de l'entrée et du paramètre)

Paramètres: $ w $ = ($ w_1 $, $ w_2 $, ..., $ w_m $) $ ^ T $ $ \ subset $ $ \ mathbb {R} ^ m $ Variables explicatives: $ x $ = ($ x_1 $, $ x_2 $, ..., $ x_m $) $ ^ T $ $ \ subset $ $ \ mathbb {R} ^ m $ Valeur prédite: $ \ hat {y} $ Connexion linéaire:

\hat{y} = w^Tx + w_0= \sum_{j=1}^{m} w_jx_j + w_0 

Répartition des données

Divisez les données en données d'entraînement et données de validation pour mesurer les performances de généralisation du modèle Bonne adéquation aux données pour mesurer la généralisation du modèle Dans quelle mesure vous pouvez prédire des données inconnues qui n'ont pas beaucoup de sens

Apprentissage (méthode du carré minimum)

Erreur quadratique moyenne

Erreur quadratique entre les données et la sortie du modèle

MSE_{train} = \frac{1}{n_{train}}\sum_{i=1}^{n_{train}}(\hat{y}_i^{(train)}-y_i^{(train)})^2

Méthode du carré minimum

Le $ \ hat {W} $ (coefficient de retour) qui différencie le MSE et le résout pour qu'il devienne 0 est obtenu.

\hat{W} = (X^{(train)T}X^{(train)})^{-1}X^{(train)T}y^{(train)}

Par conséquent, la valeur prédite $ \ hat {y} $ est

\hat{y}=X\hat{W} = X(X^{(train)T}X^{(train)})^{-1}X^{(train)T}y^{(train)}

Devient

Exercice de régression linéaire

https://github.com/Tomo-Horiuchi/rabbit/blob/master/Part1/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92/01_%E7%B7%9A%E5%9E%8B%E5%9B%9E%E5%B8%B0%E3%83%A2%E3%83%87%E3%83%AB/skl_regression.ipynb Référence de la méthode d'évaluation du modèle https://funatsu-lab.github.io/open-course-ware/basic-theory/accuracy-index/#r2

Résultats de l'exercice

Les données ont été divisées en 7 à 3 et analysées respectivement pour obtenir le coefficient de décision et l'erreur quadratique moyenne.

--Analyse de régression simple linéaire

Variable explicative: nombre de chambres Variable objective: prix

MSE Train : 44.983, Test : 40.412 R^2 Train : 0.500, Test : 0.434

--Analyse de régression multiple (2 variables)

Variables explicatives: nombre de chambres, taux de criminalité Variable objective: prix MSE Train : 40.586, Test : 34.377 R^2 Train : 0.549, Test : 0.518

Considération

Puisque MSE est plus proche de 0 et que la valeur de $ R ^ 2 $ est plus proche de 1, on peut voir que l'analyse de régression multiple est plus précise.

Régression non linéaire

Il est nécessaire d'effectuer une modélisation de régression non linéaire pour les phénomènes qui ont plusieurs structures non linéaires.

Méthode d'expansion de base

En cas de non-linéarité, la modélisation est effectuée à l'aide d'une méthode appelée méthode d'expansion de base.

y_i=f(x_i)+\epsilon_i\qquad y_i=\omega_0+\sum_{i=1}^m\omega_j\phi_j(x_i)+\epsilon_i

Non-linéariser $ x $ avec $ \ phi $ dans un mapping linéaire puis regarder le couplage linéaire Ici $ \ phi $ est la fonction de base

Fonction de base de polygone

\phi_j=x^j

Fonction de base gaussienne

\phi_j(x)=\exp\Biggl(\frac{(x-\mu_j)^2}{2h_j} \Biggr)

Formule modèle

La méthode d'expansion de base peut être estimée dans le même cadre que la régression linéaire

Variable explicative:

x_i=(x_{i1},x_{i2},\dots,x_{im})\in \mathbb{R}_m

Vecteur de fonction non linéaire:

\phi(xi)=(\phi_1(x_i),\phi_2(x_i),\dots,\phi_k(x_i))^T∈\mathbb{R}^k

Matrice de conception pour les fonctions non linéaires:

\Phi_(train)=(\Phi(x_1),\Phi(x_2),\dots,\Phi(x_n))^T\in \mathbb{R}^{n×k}

Valeur prédite par la méthode la plus probable:

\hat{y}=\Phi(\Phi_(train)^T\Phi_(train))^{-1}\Phi_(train)^Ty_(train)

Non appris et surappris

Sous-ajustement

Un modèle qui ne fournit pas une erreur suffisamment petite pour les données d'apprentissage

Contre-mesures

Surapprentissage

Un modèle avec une petite erreur mais une grande différence par rapport à l'erreur du jeu de test Une petite erreur a été obtenue pour les données d'entraînement, mais l'erreur est devenue importante pour les données de vérification.

Contre-mesures

Méthode de régularisation

Minimiser les fonctions qui imposent un terme de régularisation (terme de pénalité) dont la valeur augmente avec la complexité du modèle

S_γ=(y−\Phi w)^T(y−\Phi w)+γR(w)
Terme de régularisation: $ γR (w) $ Il existe plusieurs types en fonction de la forme, et chacun a des propriétés différentes du montant estimé.

$ γ $: paramètre de régularisation Ajuster la douceur de la courbe du modèle

Ridge Estimation de la crête utilisant la norme L2 pour le terme de régularisation Estimer le paramètre plus proche de 0 Appelé estimation réduite

Régression au lasso

Estimations au lasso en utilisant la norme L1 pour le terme de régularisation Estimer certains paramètres à exactement 0 Estimation clairsemée appelée

Méthode Holdout et méthode de validation croisée (validation croisée)

Méthode Holdout

Divisez les données en deux parties, une pour la formation et une pour les tests, et utilisez-les pour estimer la précision des prévisions et le taux d'erreur. Si vous ne disposez pas d'une grande quantité de données, il y a un inconvénient: cela ne donne pas une bonne évaluation des performances Dans un modèle de régression non linéaire basé sur la méthode d'expansion de base, le nombre, la position et le réglage des fonctions de base sont déterminés. Déterminé par le modèle qui réduit la valeur de retenue

Méthode de validation croisée (validation croisée)

Les données sont divisées en formation et vérification, les données de vérification sont évaluées et la précision moyenne est appelée valeur CV. Le résultat de l'évaluation est plus fiable que la méthode d'exclusion.

Exercice de régression non linéaire

La vraie fonction est $ y = 1-48x + 218x ^ 2-315x ^ 3 + 145x ^ 4 $

Générez des données en ajoutant du bruit à une fonction réelle Prédire les fonctions vraies à partir de données par régression linéaire et non linéaire, respectivement

Résultats de l'exercice

https://github.com/Tomo-Horiuchi/rabbit/blob/master/Part1/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92/02_%E9%9D%9E%E7%B7%9A%E5%BD%A2%E5%9B%9E%E5%B8%B0%E3%83%A2%E3%83%87%E3%83%AB/skl_nonlinear%20regression.ipynb Précision de la régression linéaire: 0,3901811689763751 Précision de la régression non linéaire: 0.8824933990551088 (La fonction de base est RBF et la force de normalisation est de 0,0002)

Considération

La régression linéaire ne représente pas une vraie fonction La régression non linéaire peut représenter à peu près une fonction vraie Il s'avère que la régression non linéaire est plus précise De plus, si la normalisation n'est pas effectuée, la précision sera de 9,9999, mais elle sera surapprise de la figure et loin de la vraie fonction.

La régression Lasso définit le paramètre sur clairsemé, donc quand je le vérifie, tous sont 0.

Retour logistique

Le modèle de régression logistique est une classification Qu'est-ce qu'un problème de classification? Un problème de classification des classes à partir d'une certaine entrée Données traitées par classification Entrée: $ x = (x_1, x2_2, \ dots, x_m) ^ T \ in \ mathbb {R} ^ m $ (vecteur à m dimensions) Sortie: $ y \ in \ Bigl \ {0,1 \ Bigr \} $ (valeur de 0 ou 1) Exemple) Données Titanic, données IRIS Si ces données sont appliquées telles quelles dans le modèle de régression, la valeur n'aura aucun sens en tant que probabilité. Ainsi, le modèle de régression logistique prend la connexion linéaire de l'entrée et du paramètre m-dimensionnel comme entrée de la fonction sigmoïde.

Fonction Sigmaid

Une fonction d'augmentation monotone qui produit toujours 0 à 1 lorsque l'entrée est un nombre réel

Fonction sigmoïde $ \ sigma (x) $

\sigma(x)=\frac{1}{1+\exp{(-ax)}}

Fonctionnalité

-Augmenter $ a $ augmente la pente de la courbe près de $ x = 0 $ -Extrêmement grand $ a $ s'approche de la fonction d'étape unitaire

Propriétés de la fonction sigmoïde

Différenciation de la fonction sigmoïde

\frac{\vartheta\sigma(x)}{\vartheta x} = a\sigma(x)(1-\sigma(x))

Parce qu'il devient, il peut être exprimé par sa propre fonction

Formulation

Valeur que vous voulez trouver (probabilité de Y $ = 1 $)

P(Y=1|x)=\sigma(\omega_0+\omega_1 x_1 + \dots + \omega_m x_m)

Peut être écrit comme Les données $ Y $ sont classées comme 1 si la probabilité est de 0,50 ou plus et 0 si la probabilité est inférieure à 0,50. Utilisez la méthode d'estimation la plus probable pour décider comment penser cette formule

Estimation la plus probable

Le modèle de régression logistique utilise la distribution de Bernoulli Lorsqu'on considère une certaine distribution, les données générées par ce paramètre changent. La méthode d'estimation la plus probable consiste à estimer la distribution plausible qui aurait généré les données à partir de ces données. La méthode de sélection des paramètres qui maximisent la fonction de vraisemblance est appelée estimation du maximum de vraisemblance.

Fonction responsabilité

Corriger les données et modifier les paramètres Probabilité de $ y = y_1 $ dans un essai

P(y)=p^y(1-p)^{1-y}

Probabilité que $ y_1 à y_n $ se produisent en même temps dans n essais (fixée à p)

P(y_1,y_2,\dots,y_n;p)= \prod_{i=1}^np^{y_i}(1-p)^{1-y_i}

Les données y données ici sont fixes et p est estimé comme une variable. Très probablement lorsque p est maximal Il vous suffit donc de résoudre le problème d'optimisation pour p

Estimation la plus probable du modèle de régression logistique

P(Y=y_n|x_n)=p^{y_n}(1-p_n)^{1-y_n} = \sigma(w^Tx_n)^{y_n}(1-\sigma(w^Tx_n))^{1-y_n}=L(w_n)

$ W $ est inconnu

―― Puisqu'il existe de nombreuses multiplications, il est plus facile de calculer le différentiel si vous prenez la logarithmique.

Par conséquent, prenez le logarithme $ L (w) $ ci-dessus et multipliez-le par moins, et résolvez-le avec le problème de minimisation.

E(w_0,w_1.w_2,\dots,w_n)=-logL(w_0,w_1,w_2.\dots,w_n)

Méthode de descente de gradient

Dans le cas de la régression logistique, il n'est pas possible de trouver le paramètre qui minimise la fonction de vraisemblance. Par conséquent, les paramètres sont mis à jour séquentiellement par la méthode de descente de gradient. Cependant, si cette méthode de descente de gradient est utilisée telle quelle, il y a un inconvénient à ce que toutes les données d'entrée soient requises pour une mise à jour de paramètre. Lorsque les données d'entrée deviennent énormes, des problèmes tels que le temps de calcul et une mémoire insuffisante deviennent des problèmes. Pour résoudre ce point, il existe une méthode de descente de gradient probabiliste. Mettre à jour les paramètres de manière séquentielle par apprentissage itératif L'une des approches. Ajustez la facilité de convergence des paramètres avec le taux d'apprentissage. Retour logistique Au lieu de cela, il est nécessaire de différencier la fonction de vraisemblance logarithmique avec un paramètre pour obtenir une valeur qui devient 0, mais comme il est difficile de l'obtenir analytiquement, la méthode de descente de gradient est utilisée. Paramètres Quand n'est pas mis à jour, cela signifie que le gradient devient 0, et la solution optimale se trouve dans la plage d'apprentissage itératif.

Méthode du gradient probabiliste

Une valeur initiale est donnée au paramètre, le paramètre est progressivement mis à jour, et lorsqu'il converge, le paramètre à ce moment-là est adopté comme valeur optimale. Le taux d'apprentissage η représente la «longueur de pas» de mise à jour des paramètres. S'il est petit, il faut du temps pour converger. S'il est trop grand, un événement se produira dans lequel la valeur optimale est "sautée" (il devient difficile de trouver le point que vous voulez vraiment trouver le plus).

Évaluation du modèle

[Matrice confuse]

Données de validation positives Données de vérification négatives
Résultat attendu positif Vrai positif Faux positif
Résultat attendu négatif Faux positif (faux négatif) Vrai négatif

[Taux de conformité et taux de rappel, valeur F]

Taux de réponse correct

\frac{TP+TN}{TP+TN+FP+FN)}

Rappel

\frac{TP}{TP+FN}

Précision $ \frac{TP}{TP+FP} $ Valeur F (moyenne harmonique de rappel et de précision) $ 2 x précision x précision de rappel + rappel $ le rappel est une relation de compromis de précision

Mains sur [Résultats de la pratique] https://github.com/Tomo-Horiuchi/rabbit/blob/master/Part1/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92/04_%E3%83%AD%E3%82%B8%E3%82%B9%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E5%9B%9E%E5%B8%B0%E3%83%A2%E3%83%87%E3%83%AB/skl_logistic_regression.ipynb

[Discussion] Plus le tarif est élevé, plus les chances de survie sont élevées. Il montre que plus le rang est élevé, plus la probabilité de survie est élevée. La plupart des femmes de haut rang survivent

Analyse des composants principaux

Formule requise

Données d'entraînement

x_i = (x_ {i1}, x_ {i2}, \ dots, x_ {im}) \ in \ mathbb {R} ^ m (vecteur à m dimensions)

Vecteur moyen $ \bar{x}= \frac{1}{n}\sum_{i=1}^{n}x_i $ Matrice de données $ \bar{X}= (x_1-\bar{x},x_2-\bar{x},\dots,x_n-\bar{x})^T $ Distribué co-distribué $ \sum=Var(\bar{X})=\frac{1}{n}\bar{X}^T\bar{X} $ Vecteur après retour linéaire $ s_j=(s_{1j},\dots,s_{nj})^T=\bar{X}a_j $

Façon de penser

Pensez à la quantité d'informations comme à la taille de la distribution Recherchez l'axe de projection qui modifie le vecteur de coefficient et maximise la dispersion

La variance après retour linéaire est $ Var(s_j)=\frac{1}{n}s_j^Ts_j=\frac{1}{n}(\bar{X}a_j)^T(\bar{X}a_j)=\frac{1}{n}a_j^T\bar{X}^T\bar{X}a_j=a_j^TVar(\bar{X})a_j $

Et contraintes $ a_j^Ta_j=1 $

Par conséquent, la fonction objectif $ a_j^TVar(\bar{X})a_j $ Résolvez le problème d'optimisation comme

Ici, la fonction de Lagrange suivante est utilisée pour résoudre le problème contraint. $ E(a_j)=a_j^TVar(\bar{X})a_j-\lambda(a_j^Ta_j-1) $ Lorsque la fonction de Lagrange est différenciée pour trouver la solution optimale $ Var(\bar{X})a_j=\lambda a_j $ On peut voir que les valeurs propres et les vecteurs propres de la matrice de covariance des données originales doivent être obtenus.

Taux de cotisation

Combien d'informations peuvent être conservées à la suite de la compression

Taux de cotisation $ \ frac {Dispersion du k-ème composant principal} {Dispersion totale du composant principal} $ Taux de cotisation cumulé $ \ frac {Dispersion des premières à k composantes principales} {Dispersion totale des principales composantes} $

Mains sur

[Résultats de la pratique] https://github.com/Tomo-Horiuchi/rabbit/blob/master/Part1/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92/03_%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90/skl_pca.ipynb

[Discussion] On peut voir que le taux de contribution est d'environ 60% lorsqu'il est comprimé en 2 dimensions et d'environ 70% lorsqu'il est compressé en 3 dimensions. Il s'est avéré que même s'il est compressé en deux dimensions, il peut être classé dans une certaine mesure. Avant compression, elle était classée à 97%, mais on constate que la précision diminue lorsqu'elle est compressée à 2 dimensions. Les données sont devenues plus faciles à comprendre en supprimant des dimensions

méthode de voisinage k (KNN)

Techniques d'apprentissage automatique pour les problèmes de classification Obtenez K éléments de données dans le voisinage le plus proche et identifiez-vous à la classe à laquelle appartient le plus Plus k est grand, plus l'association décisionnelle est fluide

Mains sur

[Résultats de la pratique] https://github.com/Tomo-Horiuchi/rabbit/blob/master/Part1/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92/05_knn/np_knn.ipynb

[Discussion] Il a été lu que plus k est grand, plus la frontière de décision est lisse.

méthode de la moyenne k

--Apprendre sans professeur

algorithme

―― 1. Définissez la valeur centrale de chaque classe ―― 2. Pour chaque point de données, calculez la distance du centre du cluster à écrire et attribuez le cluster le plus proche. ―― 3. Calculez le vecteur moyen du cluster à écrire ―― 4. Répétez quelques processus jusqu'à la convergence

Mains sur

[Résultats de la pratique] https://github.com/Tomo-Horiuchi/rabbit/blob/master/Part1/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92/06_k-%E5%B9%B3%E5%9D%87%E6%B3%95/np_kmeans.ipynb

[Discussion] J'ai pu classer les données données en trois classes Il a été confirmé que le résultat du regroupement change lorsque la valeur de k est modifiée.

Recommended Posts

Défi de lapin d'apprentissage automatique
Apprentissage automatique
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Exemple d'apprentissage automatique
[Rabbit Challenge (E qualification)] Apprentissage en profondeur (jour2)
[Rabbit Challenge (E qualification)] Apprentissage en profondeur (jour3)
[Rabbit Challenge (E qualification)] Deep learning (day4)
Résumé du didacticiel d'apprentissage automatique
Apprentissage automatique sur le surapprentissage
Apprentissage automatique ⑤ Résumé AdaBoost
Apprentissage automatique: supervisé - AdaBoost
Régression logistique d'apprentissage automatique
Machine de vecteur de support d'apprentissage automatique
Étudier l'apprentissage automatique ~ matplotlib ~
Régression linéaire d'apprentissage automatique
Mémo du cours d'apprentissage automatique
Bibliothèque d'apprentissage automatique dlib
Apprentissage automatique (TensorFlow) + Lotto 6
Apprenez en quelque sorte le machine learning
Bibliothèque d'apprentissage automatique Shogun
Introduction à l'apprentissage automatique
Apprentissage automatique: k-voisins les plus proches
Qu'est-ce que l'apprentissage automatique?
Un spécialiste du marketing amateur en apprentissage automatique a contesté les prix des maisons de Kaggle (partie 1)
Bilan du premier défi du machine learning avec Keras
L'apprentissage automatique appris avec Pokemon
Ensemble de données pour l'apprentissage automatique
Prétraitement japonais pour l'apprentissage automatique
Apprentissage automatique dans Delemas (s'entraîner)
Une introduction à l'apprentissage automatique
Techniques liées à l'apprentissage automatique / à la classification
Machine Learning: Supervision - Régression linéaire
Un débutant en apprentissage automatique a essayé la RBM
[Apprentissage automatique] Comprendre la forêt aléatoire
Bloc-notes de ressources d'étude d'apprentissage automatique
Apprentissage automatique ② Résumé Naive Bayes
Comprendre l'apprentissage automatique ~ régression de crête ~.
Résumé de l'article sur l'apprentissage automatique (auto-écrit)
Apprentissage automatique: forêt supervisée - aléatoire
Démineur d'apprentissage automatique avec PyTorch
Créer un environnement d'apprentissage automatique
Programmation Python Machine Learning> Mots-clés
Utilisé en EDA pour l'apprentissage automatique
Importance des ensembles de données d'apprentissage automatique
Apprentissage automatique et optimisation mathématique
Machine Learning: Supervisé - Support Vector Machine
Machine learning supervisé (classification / régression)
J'ai essayé d'implémenter Extreme Learning Machine
Commencer avec l'apprentissage automatique Python
Algorithme d'apprentissage automatique (machine vectorielle de support)
Super introduction à l'apprentissage automatique
4 [/] Quatre arithmétiques par apprentissage automatique
Apprentissage automatique ④ Résumé du K-plus proche voisin
Pokemon Machine Learning Nth décoction
Essayez le machine learning à la légère avec Kaggle
Modèle d'empilage d'apprentissage automatique (retour)