La dernière fois, dans Histoire de l'analyse des données chronologiques des stocks, j'ai parlé un peu de l'apprentissage automatique dans la seconde moitié. Aujourd'hui, nous aborderons la bibliothèque d'apprentissage automatique scikit-learn.
En parlant de scikit-learn, j'ai mentionné Simple clustering example et Support vector machine. items / 33231bf23d40d1c1f344), Résoudre les problèmes de clustering, Calculer TF-IDF ), Visualisation du modèle de régression, Clustering by DBSCAN Cependant, je vais réorganiser les fonctions de la bibliothèque.
L'apprentissage automatique a l'image de tirer pleinement parti des mathématiques difficiles, mais si vous utilisez une bibliothèque très complète, vous pouvez l'utiliser sans implémenter la méthode d'apprentissage automatique elle-même. Bien sûr, il est nécessaire de comprendre le contenu de la méthode, mais comme il existe une bibliothèque appelée scikit-learn dont on peut dire qu'elle est de facto, je pense qu'il vaut mieux commencer par l'utiliser.
J'ai écrit cette histoire dans précédent, mais le plus grand mérite d'utiliser Python est lié au calcul scientifique et à l'analyse de données telles que les statistiques et l'apprentissage automatique. La bibliothèque est extrêmement riche. Il existe de très bonnes bibliothèques appelées NumPy et SciPy pour les calculs numériques en général, pandas pour la gestion des trames de données et matplotlib pour la visualisation. Essayer de faire la même chose dans une autre langue (comme Ruby ou Scala) peut être une tâche intimidante ou presque impossible, donc ce n'est probablement pas une option. Il existe un autre langage pour les statistiques, R, mais je pense que Python est plus complet en tant que langage car c'est aussi un langage général, et R se caractérise par avoir plus d'actifs existants. ..
Commençons par organiser la procédure.
La procédure de base est comme ci-dessus.
La meilleure chose que vous puissiez faire avec scikit-learn est de regarder la feuille de triche.
L'original est dans la famille principale.
Choosing the right estimator http://scikit-learn.org/stable/tutorial/machine_learning_map/
C'est utile car vous pouvez passer à l'explication de chaque méthode à partir d'ici.
Voici un résumé de ce que vous pouvez faire.
Suivons les fonctionnalités une par une.
Il a des performances de généralisation élevées et peut gérer diverses données car il peut sélectionner des fonctions du noyau.
Il bénéficie d'une grande précision malgré sa simplicité.
Il a les caractéristiques qu'il n'est pas nécessaire de considérer le surapprentissage et il est facile d'effectuer des calculs parallèles.
C'est une régression linéaire normale.
Construisez un modèle avec peu de variables, mais supposez que certaines variables ne sont pas utilisées.
Elle n'est pas facilement affectée par la colinéarité multiple et a une capacité de sélection de variable plus faible que la régression Lasso.
SVR
Vous pouvez capturer la non-linéarité dans le noyau.
Il s'agit d'une méthode de clustering typique dans laquelle le nombre de clusters est spécifié à l'avance comme k. C'est simple et rapide.
Vous pouvez trouver la probabilité d'appartenir au cluster. Supposons une distribution normale.
Une méthode robuste et non paramétrique qui utilise l'estimation de la densité du noyau. La largeur du noyau (rayon h) que vous définissez détermine automatiquement le nombre de clusters. Le coût a tendance à être élevé car le point central est calculé en considérant un cercle de rayon h en utilisant le principe de la méthode de descente la plus raide pour tous les points d'entrée.
Cette méthode est également appliquée à des situations telles que la segmentation d'image et le lissage d'image de préservation des bords.
L'analyse de cluster Meanshift avec une largeur de noyau infinie h peut également être interprétée comme la méthode de calcul de la moyenne k.
Il a l'avantage d'être rapide à manipuler des matrices clairsemées. Supposons une distribution normale.
Seules des matrices non négatives peuvent être utilisées, mais il peut être plus facile d'extraire des entités.
Vous pouvez également utiliser la discrimination linéaire (LDA) et le Deep Learning.
La bibliothèque dont dépend scikit-learn. Cela dépend non seulement de scikit-learn mais aussi de BLAS et LAPACK pour divers logiciels de calcul numérique tels que SciPy et des programmes dans d'autres langues comme C et Fortran. Principalement fourni sous forme de package dans la distribution GNU / Linux. Puisqu'il peut être utilisé à partir de divers langages et qu'il a une longue histoire, il s'agit d'un standard de facto pour effectuer des opérations algébriques linéaires sur un ordinateur.
LAPACK est spécifiquement pour les équations linéaires simultanées, la méthode des moindres carrés, le problème des valeurs propres, le problème des valeurs singulières, la décomposition matricielle (LU), la décomposition choleskey, la décomposition QR, la décomposition de valeurs singulières, la décomposition de Schur, la décomposition de Schur généralisée et le nombre de conditions. Il fournit des routines d'estimation, des calculs de matrice inverse et divers sous-programmes.
Il existe différentes implémentations de BLAS, mais les plus typiques sont les suivantes.
Si vous ne vous souciez pas tellement de la vitesse, je pense que vous utiliserez probablement OpenBLAS pour le moment.
Une méthode appelée validation croisée ou recherche de grille est une méthode pour exécuter efficacement de bons paramètres. Nous les utiliserons pleinement pour répéter l'apprentissage et l'évaluation du modèle, mais nous y reviendrons plus tard.
Cette fois, nous avons résumé les méthodes d'apprentissage automatique typiques du point de vue des méthodes implémentées dans la bibliothèque d'apprentissage automatique scikit-learn. scikit-learn est une bibliothèque très riche et de haute qualité, donc je pense que vous pouvez la comprendre en maintenant ici.
Recommended Posts