[PYTHON] Apprentissage automatique: k-voisins les plus proches

Cible

Comprenez l'algorithme k-voisinage et essayez-le avec scicit-learn.

théorie

La méthode k-voisinage est un algorithme de classification supervisé qui n'acquiert pas de modèle discriminant et peut également être utilisé comme une régression supervisée ou une classification non supervisée.

algorithme de méthode k-near

L'algorithme de la méthode k-voisinage est le suivant.

  1. Sélectionnez la valeur de k et l'indice de distance.
  2. Calculez l'indice de distance entre les nouvelles données d'entrée et les données d'entraînement.
  3. Obtenez k données d'entraînement et les catégories correspondantes dans l'ordre croissant de l'indice de distance.
  4. Prédire les nouvelles catégories de données d'entrée par la méthode de la majorité.

La distance de Minkovsky est utilisée comme indice de distance. Ici, si les nouvelles données d'entrée sont $ x '$, les données d'entraînement sont $ x $, et le nombre d'entités est $ m $,

d(x', x) = \sqrt[p]{\sum^m_{j=1} |x'_j - x_j|^p }

C'est synonyme de distance de Manhattan quand $ p = 1 $ et de distance euclidienne quand $ p = 2 $.

Inconvénients de la méthode k-voisinage

Si l'augmentation de la valeur de k peut réduire les effets du bruit, il peut être difficile de déterminer la valeur de k car les limites des catégories peuvent ne pas être claires.

Dans le cas présenté ci-dessous, lors de la classification de nouveaux points de données noirs, lorsque $ k = 3 $, il est classé comme un cercle orange, mais lorsque $ k = 5 $, il est classé comme un carré bleu et $ k. Quand = 8 $, il est à nouveau classé comme un cercle orange.

104_nearest_neighbor.png

En outre, s'il est mis en œuvre selon l'algorithme, il est nécessaire de calculer l'indice de distance pour toutes les données conservées lors de la prédiction de nouvelles données, de sorte que la quantité de calcul augmentera proportionnellement au nombre de données. Il y a des inconvénients.

Ensemble de données de problème de classification

En tant que sujet de la méthode k-voisinage, nous utiliserons le jeu de données iris, qui est un jeu de données de problèmes de classification scikit-learn.

Le nombre de données Nombre de fonctionnalités Nombre de catégories
150 4 3

la mise en oeuvre

Environnement d'exécution

Matériel

・ Processeur Intel (R) Core (TM) i7-6700K 4,00 GHz

Logiciel

・ Windows 10 Professionnel 1909 ・ Python 3.6.6 ・ Matplotlib 3.1.1 ・ Numpy 1.19.2 ・ Scikit-learn 0.23.0

Programme à exécuter

Le programme implémenté est publié sur GitHub.

nearest_neighbor.py


résultat

Classé avec professeur

Le résultat de l'exécution lorsque $ k = 15 $ est le suivant.

104_nearest_neighbor_classification.png

La zone bleue est classée comme setosa, la zone verte comme versicolor et la zone orange comme virginica.

Retour avec professeur

Les données du problème de régression ont été exécutées en ajoutant un nombre aléatoire à la sinusoïde et en définissant $ k = 5 $.

104_nearest_neighbor_regression.png

Classification non supervisée

Dans un problème de classification, j'ai effectué une classification non supervisée avec $ k = 15 $ sans donner d'étiquette de catégorie.

104_nearest_neighbor_unsupervised.png

référence

1.6. Nearest Neighbors

Recommended Posts

Apprentissage automatique: k-voisins les plus proches
Apprentissage automatique
Apprentissage automatique ④ Résumé du K-plus proche voisin
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Exemple d'apprentissage automatique
Résumé du didacticiel d'apprentissage automatique
Apprentissage automatique sur le surapprentissage
Apprentissage automatique ⑤ Résumé 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
Défi de lapin d'apprentissage automatique
Introduction à l'apprentissage automatique
Qu'est-ce que l'apprentissage automatique?
Méthode de voisinage #k d'apprentissage automatique et sa mise en œuvre et divers
Modèle d'apprentissage automatique prenant en compte la maintenabilité
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
Bases de l'apprentissage automatique (mémoire)
Un débutant en apprentissage automatique a essayé la RBM
Apprentissage automatique avec Python! Préparation
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)
À propos de la matrice mixte d'apprentissage automatique
Apprentissage automatique: forêt supervisée - aléatoire
Mémo pratique du système d'apprentissage automatique
Démineur d'apprentissage automatique avec PyTorch
Créer un environnement d'apprentissage automatique
Programmation Python Machine Learning> Mots-clés
Algorithme d'apprentissage automatique (perceptron simple)
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
Pokemon Machine Learning Nth décoction
Essayez le machine learning à la légère avec Kaggle
Modèle d'empilage d'apprentissage automatique (retour)
Machine Learning: Supervisé - Arbre de décision
Algorithme d'apprentissage automatique (régression logistique)
<Course> Machine learning Chapitre 6: Algorithme 2 (k-means)
Introduction à la rédaction de notes d'apprentissage automatique
Importance de l'apprentissage automatique et de l'apprentissage par mini-lots
[Apprentissage automatique] Étudions l'arbre de décision