« Apprentissage machine réelle » notes d'étude: K- le plus proche voisin l'entrée et le combat (dix mille mots l'article)

Auteur: Cui Jiahua

Université du Nord-Est | Reconnaissance et systèmes intelligents d'études supérieures

Qubit éditeur autorisé publié

Dans le domaine de la reconnaissance des formes, K plus proches voisins (KNN algorithme) est une méthode statistique non paramétrique pour la classification et de régression.

Dans cet article, les auteurs présentent les bases du K- voisin le plus proche en détail et montre ensuite le combat correspondant du site de rencontres et sklearn reconnaissance numérique en Python 3. Vif, concis et facile à comprendre.

Avant le début officiel de l'article, vous devrez peut-être cette information -

Code Github obtient:

https://github.com/Jack-Cherish/Machine-Learning/

Python version: Python3.x

Exécutez la plate-forme: Windows

IDE: Sublime text3

Venez et vous ne voulez pas commencer dans le train.

plus proche voisin de Un simple

Cet article de la pensée K- algorithmes adjacents commencent par l'utilisation de code écrit dans une étape par étape python3 formation de combat. Et, j'ai également fourni l'ensemble de données correspondant, les notes détaillées de code. En outre, la méthode proposée par algorithme près également de réaliser sklearn ont été expliqués.

Exemples pratiques: la classification des films, des sites de rencontres appariement détermination de l'effet, la reconnaissance de l'écriture manuscrite numérique.

Tous les codes et les ensembles de données figurant dans ce document, sont disponibles sur mon github téléchargement, bienvenue à suivre, Star--

Télécharger:

https://github.com/Jack-Cherish/Machine-Learning/tree/master/kNN

1.k- profil voisin le plus proche

k-plus proche voisin procédé (k-plus proche voisin, k-NN) est un procédé essentiel pour la classification et de régression en 1967 par couverture T et P. Hart

Son principe de fonctionnement est le suivant: Il y a un ensemble de données d'échantillon, également connu sous le nom de l'échantillon de formation ensemble, et chaque ensemble d'échantillons de données sont des étiquettes existent, que nous connaissons chaque correspondance ensemble d'échantillons entre les données et la catégorie.

Après avoir entré les nouvelles données sans étiquette, les données de caractéristiques correspondant aux caractéristiques de chaque nouvel échantillon de données et la comparaison de la concentration, l'algorithme d'extraction de l'échantillon et les données les plus similaires (voisin le plus proche) d'étiquettes de classe. En général, nous sélectionnons les k données les plus semblables avant l'ensemble de données d'échantillon, ce qui est le plus proche voisin K- à l'origine de k, k est généralement pas un plus grand nombre entier de 20.

Enfin, sélectionnez le plus grand nombre de données classifiées k plus semblable en apparence, comme la classification des nouvelles données.

A titre d'exemple simple, nous pouvons utiliser K- le plus proche film algorithme de classification voisin est un des films d'amour ou d'action.

 Tableau 1.1 Nombre de coups par des combats de film, embrassant la lentille et Genre

Le tableau 1.1 est notre ensemble de données existantes, ce qui est l'ensemble de la formation. Cet ensemble de données a deux caractéristiques, à savoir, le nombre de combats et l'embrasser de lentilles que l'objectif. De plus, nous savons que votre type de chaque film, et l'étiquette de classification. Observé visuellement avec un rugueux, plus lentille baiser est la romance. scène plus se battre, film d'action.

Avec nos nombreuses années d'expérience en regardant des films, cette classification est raisonnable. Si vous me donnez maintenant un film, vous me dites ce nombre et le nombre de scène de baiser scène de combat de film.

Dites-moi ce n'est pas le genre de film que je puisse en juger sur la base des informations que vous me donniez, ce film fait partie des films d'amour ou d'action. Le voisin le plus proche K- peut faire la même chose que nous cette différence est que, dans notre expérience plus « régresse », alors que l'algorithme K- près reposent sur des données existantes.

Par exemple, vous me dites ce numéro de scène de combat de film est 2, le nombre d'embrasser la lentille 102, mon expérience vous dira ceci est une histoire d'amour, K- voisin le plus proche vous dira ceci est une histoire d'amour.

Vous me aussi dit un autre numéro de scène de combat de film 49, le nombre d'embrasser la lentille 51, mon expérience de « mal » peut vous dire, cela peut être un « films d'action d'amour », l'image est si belle, je ne peux pas imaginer. (Si vous ne savez pas ce que « les films d'action d'amour » Oui? Commentaires Veuillez me contacter, je veux que tu me veux un ami si pur.)

Mais K- voisin le plus proche ne vous dira pas cela, parce que dans ses yeux, le seul type de films romantiques et les films d'action, il se concentrera sur l'extraction de la plupart des données d'échantillons de fonction similaire (le plus proche) étiquette de classification, le résultat pourrait être l'amour pièce, il pourrait être un film d'action, mais il ne sera jamais les « films d'action d'amour. » Cela dépend de la taille de l'ensemble des données et les critères les plus proches voisins comme facteurs.

2. La mesure de distance

Nous savons déjà K- algorithme du plus proche voisin basé sur des comparaisons de fonction, puis extraire les caractéristiques des échantillons concentrés les données les plus similaires (le plus proche) étiquette de classification. Alors, comment faut-il comparer? Par exemple, nous étions encore Tableau 1.1, par exemple, la façon de déterminer la catégorie des marques de point rouge du film qui lui appartient? Figure 1.1.

 Figure 1.1 Classification du film

On peut déduire de la parcelle à peu près la dispersion, ce marques de point rouge, le film peut appartenir à un film d'action, parce que la distance est connu que deux films d'action plus points. K- algorithme du plus proche voisin pour déterminer quelles méthodes?

Oui, c'est une mesure de la distance. Le film a deux exemples de classification des caractéristiques, à savoir les deux dimensions espace vectoriel réel, nous pouvons utiliser la formule de la distance de deux points à la distance calculate au lycée, illustré à la figure 1.2.

Par calcul, on obtient les résultats suivants:

(101, 20) - > De la pièce d'actionnement (108,5) est d'environ 16,55

(101, 20) - > De la pièce d'actionnement (115,8) est d'environ 18,44

(101, 20) - > Romance de (5,89) à environ 118,22

(101, 20) - > romance Distance (1,101) est d'environ 128,69

Par calcul montre que le point rouge film d'action marquée à une feuille (108,5) est le plus proche, 16,55. Si l'algorithme directement basé sur les résultats pour déterminer les points rouges marquent le film comme un film d'action, c'est l'algorithme du plus proche voisin, plutôt que K- voisin le plus proche. Alors qu'est-ce K- près de l'algorithme est-il? K- étapes les plus proches de l'algorithme voisin sont les suivantes:

Distance entre le point et l'ensemble de données de classe calcul du point courant connu;

Tri par ordre croissant en fonction de la distance;

les points K choisis distance minimale entre le point courant;

La détermination de la fréquence d'occurrence du premier point k classes est situé;

Retour aux points précédents k plus fréquents classement de la catégorie comme un facteur prédictif du point courant.

Par exemple, je prends maintenant la valeur k 3, l'exemple de film, trois points sont triés par distance est une pièce fonctionnant de façon successive (108,5), l'action (115,8), la romance (5,89). Dans ces trois points, la fréquence d'apparition des deux tiers de la pièce de fonctionnement, la fréquence d'occurrence d'un tiers de la romance, de sorte que le point rouge est marqué film de film d'action.

Le processus d'identification est le plus proche voisin K-.

3.Python3 mise en uvre du code

Nous savons déjà le plus proche voisin du principe, l'étape suivante consiste à utiliser la mise en uvre python3 de l'algorithme, toujours avec l'exemple de classification des films.

(1) la préparation d'un ensemble de données

Pour les données dans le tableau 1.1, nous pouvons utiliser numpy créé directement, comme suit:

Les résultats d'exploitation, illustré à la Figure 1.3:

 Figure 1.3 Résultats d'exploitation

(2) K- voisin le plus proche

La distance entre deux points formule pour calculer la distance, la distance minimale sélectionnée premier k points, et le retour au résultat de la classification.

Les résultats d'exploitation, illustré à la Figure 1.4:

 Figure 1.4 résultats d'exploitation

Vous pouvez voir, les résultats de la classification de notre « expérience » est correcte, bien que cette classification est de temps avec un temps de 1.4s.

Ici, peut-être quelqu'un a déjà trouvé que le film est un exemple de caractéristiques en deux dimensions, telles que la distance métrique peut être calculée avec une formule à distance de deux points, mais si elle est des dimensions plus élevées?

Oui, à droite. Nous pouvons utiliser la distance euclidienne (également appelée métrique euclidienne), illustré à la figure 1.5. Deux formule haute distance de l'école, nous avons appris que la formule de distance euclidienne dans l'espace à deux dimensions, qui est, n valeur de distance euclidienne du scénario 2.

 formule de distance euclidienne figure 1.5

Voir ici, on peut se demander: ou réponse est non, la classification et ne sera pas à cent pour cent des résultats corrects, on peut « Dans quelles circonstances l'erreur de classification? » « La réponse est toujours raison? » diverses méthodes de précision classificateur de détection. En outre la performance du classificateur sera affectée par de nombreux facteurs, tels que l'ensemble des données de classification est fourni et similaires.

Les performances des différents algorithmes sur différents ensembles de données peut être complètement différent. Afin de tester l'effet de classificateur, nous pouvons utiliser les données connues réponse, bien sûr, la réponse ne peut pas dire le classificateur, les résultats des tests de classificateur donnés en conformité avec les résultats escomptés.

Grâce à un grand nombre de données de test, nous pouvons obtenir le classificateur de taux d'erreur - classificateur étant donné le nombre d'erreurs divisé par le nombre total des résultats des tests effectués.

taux d'erreur méthode d'évaluation est couramment utilisé, notamment pour réaliser les résultats de l'évaluation sur le classement d'un ensemble de données. taux d'erreur de classificateur est parfait 0, le pire taux d'erreur de classification est de 1,0.

En même temps, on trouve aussi, K- voisin le plus proche ne pratique pas les données directement à l'aide des données inconnues sont comparées aux données connues, obtenir des résultats. Par conséquent, on peut dire K- près de l'algorithme ne dispose pas d'un processus d'apprentissage explicite.

Deux .k- algorithme de correspondance de site de rencontre l'effet réel des voisins de jugement

Résumé de l'étude sur un simple voisin le plus proche de la mise en uvre, mais ce n'est pas un processus complet le plus proche voisin K-, K- voisin le plus proche est le processus général:

  • Collecte de données: Vous pouvez utiliser crawlers pour recueillir des données, les données gratuites et tarifés fournis par des tiers peuvent également être utilisés. En règle générale, les données de documents txt, stockés selon un certain format pour l'analyse et le traitement.

  • Préparation des données: L'utilisation de l'analyse syntaxique Python, les données pré-traitement.

  • Données analytiques: De nombreuses méthodes peuvent être utilisées pour analyser les données, par exemple, la visualisation des données Matplotlib.

  • algorithme de test: taux d'erreur de calcul.

  • L'utilisation d'algorithmes: le taux d'erreur est dans une plage acceptable, vous pouvez exécuter K- le plus proche voisin de la classification.

Nous savons déjà le flux général de K- le plus proche voisin algorithme, nous allons commencer dans le contenu réel.

1. L'arrière-plan réel

Helen a utilisé des sites de rencontres en ligne pour trouver leur propre rencontre. Bien que les sites de rencontres recommandera une autre option, mais elle ne ressemblait pas tout le monde. Après un résumé, elle se trouvait dans une relation avec les personnes qui peuvent être classés comme suit:

  • Je ne aime pas

  • Le charme de la personne moyenne

  • personne charismatique

données Helen Collect a été datant pendant un certain temps, elle a mis ces données sont stockées dans un fichier texte datingTestSet.txt, chaque donnée échantillon sur sa propre ligne, un total de 1000 lignes.

données datingTestSet.txt téléchargement:

https://github.com/Jack-Cherish/Machine-Learning/blob/master/kNN/2.%E6%B5%B7%E4%BC%A6%E7%BA%A6%E4%BC%9A/datingTestSet txt

données Helen échantillon recueilli comprend principalement les trois caractéristiques suivantes:

miles de fidélité chaque année disponible

Jouer à des jeux vidéo pourcentage de temps consommé

La consommation hebdomadaire de crème glacée plusieurs litres

Ici ont Tucao une, Helen est une marchandise collation ah, tous les kilogrammes de crème glacée affectent leurs critères de choix de partenaire. Txt ouvrir le fichier texte, le format de données illustré à la figure 2.1.

 Figure 2.1 Format datingTestSet.txt

2. Préparer les données: analyse des données

Avant l'entrée de données de caractéristiques décrites ci-dessus au classificateur, le format des données doivent être traitées pour modifier le format d'un classificateur qui peut être reçu. La classification des données reçues est quel format?

Déjà connu du résumé, les données doivent être classées en deux parties, à savoir, l'étiquette de classification de fonction matrice et vecteur correspondant. Créer une fonction nommée file2matrix dans le fichier kNN_test02.py afin de traiter les problèmes de format d'entrée. Le datingTestSet.txt placé dans le même répertoire kNN_test02.py, le code d'écriture comme suit:

Exécutez le code, le résultat de l'analyse des données obtenues est représentée sur la figure 2.2.

 2.2 résultat de l'analyse des données de la figure.

Vous pouvez le voir, nous avons des données importées avec succès, et les données sont analysées, formatées comme classificateur nécessaire format de données. Ensuite, nous devons comprendre le sens réel des données. Les données peuvent être observée à travers manière graphique conviviale et intuitive.

3. Analyse des données: Visualisation de données

Showdatas préparés kNN_test02.py fonction nommée fichier pour la visualisation des données. Ecrire du code comme suit:

Exécutez le code, le résultat de l'analyse des données obtenues est représentée sur la figure 2.2.

 2.2 résultat de l'analyse des données de la figure.

Vous pouvez le voir, nous avons des données importées avec succès, et les données sont analysées, formatées comme classificateur nécessaire format de données. Ensuite, nous devons comprendre le sens réel des données. Les données peuvent être observée à travers manière graphique conviviale et intuitive.

3. Analyse des données: Visualisation de données

Showdatas préparés kNN_test02.py fonction nommée fichier pour la visualisation des données. Ecrire du code comme suit:

Exécutez le code, vous pouvez voir les résultats visuels présentés à la figure 2.3.

 2.3 Résultats figure. Visualisation des données

Selon la loi peut être très intuitive des données de découverte de données, telles que le temps et la comptabilité des miles de grands voyageurs chaque année pour obtenir le vol pour jouer le jeu consommé, juste considérer cela comme une information de caractéristique à deux dimensions, me donner le sentiment que Helen comme d'avoir la qualité de vie des hommes .

Pourquoi dites-vous? Fréquents miles de vol par an obtenus montrent que, comme Helen peut profiter programme de fidélisation des hommes, mais pas toujours voler, de retour en difficulté et en arrière, volant au-dessus du monde.

En même temps, cet homme veulent jouer à des jeux vidéo, et compte pour une certaine échelle de temps. Peut voler partout, mais les hommes jouent souvent le jeu est ce genre d'homme? De toute évidence, il y a la qualité de vie, et une vie de personnes de loisirs. Mon analyse, seules les opinions personnelles des données par le biais d'un résumé visuel. Je pense que tout le monde devrait connaître est pas la même chose.

4. Préparer les données: la normalisation des données

Le tableau 2.1 montre les quatre groupes d'échantillons, si vous voulez calculer la distance entre l'échantillon 4 et l'échantillon peut être calculée en utilisant la formule d'Euler.

 Tableau 2.1 Exemples de données des sites de rencontres

Le calcul de procédé représenté sur la figure 2.4.

 formule la figure 2.4

Il est facile de trouver, le plus grand impact sur les plus grandes propriétés de l'équation ci-dessus la différence numérique aux résultats, qui est, le nombre de miles de fidélisation acquis chaque année les résultats de l'impact sera beaucoup plus grande que la 2.1 dans les deux autres tables de fonction - Lecture incidence de la comptabilisation du nombre de la consommation hebdomadaire de crème glacée et des jeux vidéo kilogrammes de temps écoulé.

La seule raison de ce phénomène, tout simplement à cause des miles de grands voyageurs est beaucoup plus grande que les autres valeurs propres. Mais Helen pense que ces trois caractéristiques sont tout aussi importants, si lourd que l'une des trois caractéristiques équipondérés miles de grands voyageurs et ne devrait pas être si sévèrement affecté les résultats.

Dans le traitement de ces plages de valeur caractéristique du procédé que nous avons généralement employé est la valeur normalisée, comme cela sera traité dans la plage comprise entre 0 et 1, -1 et 1. La formule suivante peut être une valeur caractéristique en une valeur dans l'intervalle de 0 à 1 dans l'intervalle:

Où min et max sont les ensembles de données minimales et des valeurs propres de la valeur propre maximale. Tout en changeant les valeurs de la plage augmente la complexité du classificateur, mais afin d'obtenir des résultats précis, nous devons le faire. Écrivez une fonction appelée autoNorm dans le fichier kNN_test02.py, utilisez cette fonction normalise automatiquement les données. Code est la suivante:

Exécutez le code, pour donner les résultats présentés à la figure 2.4.

 Figure 2.4 fonction des résultats d'opération normalisées

Peut être vu de la figure 2.4 résultats d'exploitation, nous avons normalisé avec succès les données et trouver la valeur minimale dans la plage de données et les données de ces deux valeurs est requis au moment de la classification utilisée directement la résolution premier est sorti, il peut être considéré comme un pré-traitement des données.

5. Méthode d'essai: vérification classificateur

algorithme d'apprentissage de la machine est un travail très important est d'évaluer la précision de l'algorithme, nous fournissons habituellement seulement 90% sous forme d'échantillons de formation pour former les classificateur données existantes et utiliser les 10% restants des données pour tester le classificateur, classificateur correctement taux.

Il convient de noter que devrait être choisi au hasard 10% des données de test, car les données ne sont pas fournis Helen triée par un but spécifique, donc je peux choisir ce que vous 10% des données sans affecter son caractère aléatoire.

Pour tester l'effet de classificateur, créez un datingClassTest de fonction dans le fichier kNN_test02.py, le code d'écriture comme suit:

Exécutez le code, pour donner les résultats présentés à la figure 2.5.

 2.5 Résultats La figure classificateur vérifier

Comme on peut le voir à partir des résultats de la figure classificateur vérification 2,5, le taux d'erreur de 3%, ce qui est un bon résultat voulu. Nous pouvons changer les valeurs des variables Horatio et classificateur k en fonction datingClassTest, pour détecter si le taux d'erreur avec les changements de la valeur des augmentations variables. Cela dépend des algorithmes de classification, ensembles de données et les paramètres du programme, la sortie du classificateur peut être très différent.

6. Utilisez l'algorithme: pour construire un système complet disponible

Nous pouvons donner un programme Helen alinéa, par le biais du programme, Helen trouvera quelqu'un sur un site de rencontres et entrer ses informations. Le programme donnera la valeur prédite de l'homme qu'elle aime degré.

Créer une classifyPerson fonction dans le fichier kNN_test02.py, le code est le suivant:

Dans cmd, exécutez le programme et entrez les données (12,44000,0.5), a prédit le résultat est « certains d'entre vous comme cet homme, » qui est le charme des gens en général. Il y a trois qualités: la haine, certains comme, très bien, ce qui correspond à pas comme les gens, le charme de la personne moyenne, personne très charismatique. Les résultats sont présentés à la figure 2.6.

 prédicteurs figure 2.6

Trois, K- plus proche voisin la reconnaissance manuscrite numérique réelle de sklearn

1. L'arrière-plan réel

La nécessité d'une identification d'un logiciel de traitement d'image numérique a été utilisé, le processus d'avoir la même couleur et la taille: la largeur et la hauteur est de 32 pixels x32 pixels. Bien que le format de stockage d'image employé ici une utilisation inefficace de l'espace mémoire, mais pour faciliter la compréhension, nous convertir l'image en format texte, texte numérique illustré à la figure 3.1.

 format de texte numérique figure 3.1

En même temps, le format de stockage numérique du texte est également très caractéristique format de nom: _ valeur numérique du nombre numérique échantillon est illustré à la figure 3.2.

 3.2 texte format de stockage numérique de la figure.

Pour un tel texte a été tondu, nous pouvons utiliser Python directement traité prédire numériquement. Ensemble de données dans la formation et des jeux de tests, la méthode de synthèse de l'utilisation, la conception de leur propre K- le plus proche classificateur voisin, la classification peut être atteint. définir et atteindre des données

Télécharger le code:

https://github.com/Jack-Cherish/Machine-Learning/tree/master/kNN/3.%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB

Il n'y a plus d'expliquer propre classificateur de voisinage de la méthode écrite en Python, parce que ce n'est pas l'objet du présent article. Ensuite, nous allons utiliser un puissant tiers Python bibliothèque de calcul scientifique pour construire l'écriture manuscrite des systèmes numériques Sklearn.

Profil 2.sklearn

  • Scikit apprendre sklearn aussi appelé, qui est l'un des module python d'apprentissage de la machine la plus connue. sklearn contient de nombreuses façons d'apprentissage de la machine:

  • classification

  • La régression de régression

  • Clustering Classification non dirigée

  • la réduction de dimensionnalité de réduction de dimensionnalité des données

  • Sélection du modèle Sélection du modèle

  • traitement de données Prétraitement

Utilisez sklearn peut facilement nous permettre d'atteindre un algorithme d'apprentissage automatique. Mettre en uvre un algorithme complexe en utilisant sklearn vous ne devrez peut-être appeler l'API à quelques lignes. Ainsi, l'apprentissage sklearn, peut réduire efficacement le temps de cycle pour atteindre nos tâches spécifiques.

installation 3.sklearn

Avant d'installer sklearn, besoin d'installer deux bibliothèques, à savoir numpy + MKL et scipy. Ne pas utiliser directement PIP3 installé car PIP3 installation silencieuse est numpy, plutôt que numpy + MKL.

Télécharger bibliothèques tierces:

L'utilisation de ce site, je vous ai parlé dans l'article précédent:

Trouvé numpy + MKL scipy et la version correspondante du téléchargement de python l'installation, comme le montre la figure 3.3 et la figure 3.4.

 3.3 numpy + MKL figure.

 Figure 3.4 scipy

Après avoir utilisé deux fichiers installés PIP3 WHL, utilisez la commande suivante pour installer sklearn.

4.sklearn atteindre K- algorithme du plus proche voisin Présentation

Le site officiel de la documentation en anglais:

sklearn.neighbors module implémente un K- plus proches voisins algorithme, le contenu affiché à la figure 3.5.

 Figure 3.5 sklearn.neighbors

Nous utilisons sklearn.neighbors.KNeighborsClassifier peut être réalisé sur un résumé, K- voisin le plus proche que nous obtenons. KNeighborsClassifier fonction d'un total de huit paramètres représentée sur la figure 3.6.

 Figure 3.6 KNeighborsClassifier

paramètres KNneighborsClassifier:

n_neighbors: par défaut à 5, k est la valeur k-NN, sélectionner le plus de points de k dernières.

poids: La valeur par défaut est uniforme, les paramètres peuvent être uniformes, la distance, peuvent également être une fonction définie par l'utilisateur. poids uniformes sont égaux, disent tous les bons points de proximité de poids sont égaux. la distance est poids inégaux du point proche est supérieure à la distance du point d'impact. fonctions définies par l'utilisateur, et reçoit à partir du réseau, retour de la même dimension d'un ensemble de poids lourds.

algorithme: k rapide le plus proche algorithme de recherche voisin, les paramètres par défaut pour l'auto, peut être comprise comme son propre algorithme pour déterminer l'algorithme de recherche approprié. De plus, les utilisateurs peuvent également spécifier leur propre algorithme de recherche ball_tree, kd_tree, méthodes de brutes de recherche, brute est une recherche de force brute est balayage linéaire, lorsque l'ensemble de la formation est importante, le calcul est beaucoup de temps.

kd_tree, kd stocker des données de structure arborescente pour sa structure de données d'arbre récupération rapide, arbre kd est une structure de données d'arbre binaire. Dans la structure de l'arbre de coupe médiane, chaque noeud est un rectangle super, la dimension 20 est inférieure à la vitesse de vieillissement.

arbre à billes kd-arbre est de remédier à la défaillance de la latitude et de la présente invention, qui est configuré pour traiter le centroïde C et le rayon r de la division de l'espace d'échantillon, chaque noeud est une hypersphère.

leaf_size: valeur par défaut est 30, qui est construit arbre kd et la taille de la bille de l'arbre. Les réglages affectent la vitesse et la vitesse de la construction de l'arbre de recherche, et affecte également la taille de la mémoire nécessaire pour stocker l'arbre. Nous devons choisir la taille optimale en fonction de la nature du problème.

métrique: une mesure de la distance, la valeur par défaut est la métrique de Minkowski, à savoir p = 2 est la distance euclidienne (métrique euclidienne).

p: formule de distance métrique. En résumé, nous utilisons la distance euclidienne formule métrique à distance. En outre, il existe d'autres mesures, comme la distance de Manhattan. Ce paramètre par défaut à 2, qui est, en utilisant la valeur par défaut de la distance de formule de distance euclidienne métrique. Il peut être mis à 1, l'utilisation de la formule de la distance Manhattan métrique de distance.

metric_params: d'autres paramètres clés de la formule, cela peut être tout, vous pouvez utiliser le Aucun par défaut.

n_jobs: traitement parallèle est prévue. La valeur par défaut est 1, le nombre de travaux parallèles près du point de recherche. Si -1, tous les CPU cores sont utilisés en parallèle.

KNeighborsClassifier fournit des méthodes pour nous d'utiliser, comme le montre la figure 3.7.

 3,5 KNeighborsClassifier le procédé de la Fig.

Pour des raisons d'espace, comment utiliser chaque fonction, ne sont pas spécifiquement expliqué. Manuel officiel a été expliqué en détail, vous pouvez consulter le manuel pour apprendre, nous parlons directement au système de reconnaissance de l'écriture manuscrite numérique.

hachoir 5.sklearn à petite échelle

Nous savons que les images numériques sont l'image binaire 32x32, afin de faciliter le calcul, nous pouvons convertir une image binaire de vecteur est un 32x321x1024.

Pour KNeighborsClassifier entrée sklearn peut être matrice, pas nécessairement converti en un vecteur, mais pour écrire leur propre avec la correspondance la plus proche du classificateur voisin K-, ici aussi de quantifier le processus. classificateur KNN a ensuite été construit en utilisant les classificateurs de faire des prédictions. Création du fichier kNN_test04.py, écrire le code suivant:

Exécutez le code, les résultats présentés dans la figure 3.8.

 Figure 3.8 sklearn résultats d'exploitation

Le code ci-dessus utilise les paramètres de l'algorithme sont auto, changer les paramètres de l'algorithme de brute, recherche violente, vous constaterez que le temps courir plus, devenir 10s +. N_neighbors changer les paramètres, vous trouverez des valeurs différentes, la précision de détection est différent. Vous pouvez essayer de modifier ces paramètres sont définis pour approfondir la compréhension de sa fonction.

IV Résumé

Les avantages et les inconvénients 1.kNN algorithme

  • avantage

Facile à utiliser, facile à comprendre, de haute précision, la maturité théorie, les deux peuvent être utilisés pour la classification peut également être utilisé pour le retour;

Et les données numériques peuvent être utilisées pour des transactions distinctes;

la complexité du temps de formation est en O (n), en supposant l'absence de données d'entrée;

Pas sensible aux valeurs aberrantes

  • défaut

Haute complexité de calcul, une grande complexité spatiale;

déséquilibre échantillon (nombre élevé d'échantillons certaines catégories, tandis que le nombre d'autres échantillons rarement);

En général, beaucoup de valeur quand pas, trop de calculs. Mais un seul échantillon et non trop peu, ou sujettes à une classification erronée.

Le plus grand inconvénient est la signification intérieure des données ne peut être donnée.

2. Autres

A propos kd_tree principe de paramètres de l'algorithme, vous pouvez voir les « méthodes statistiques Li Hang, » explique le livre;

À propos des méthodes de mesure de distance, ainsi que la distance Chebyshev, la distance Mahalanobis, la distance Bhattacharyya;

Article suivant explique l'arbre de décision, vous êtes invités à y participer!

Si vous avez des questions, s'il vous plaît laisser un message. Si elle est mauvaise, mais regardez aussi me corriger, je vous remercie!

V. Référence Description

Film classement mentionné dans cet article, les sites de rencontre appariement détermination de l'effet, des exemples de reconnaissance de l'écriture et des ensembles de données numériques sont de la « véritable apprentissage de la machine, » le plus proche voisin du deuxième chapitre.

Le chapitre de partie près de la théorie de l'algorithme de cet article, la référence de « méthodes d'apprentissage statistique Li Accrocher », le troisième chapitre k-voisin le plus proche et « combat l'apprentissage de la machine, » les.

Cliquez sur le coin inférieur gauche " Lire l'original « Département, peut entrer dans le savoir presque chroniqueur, vous pouvez voir la version complète haute définition du code

Vous pouvez déverrouiller plus d'articles de qualité ~

- FIN -

recrutement sincère

Qubits recrutent éditeur / journaliste, basé à Zhongguancun de Beijing. Nous attendons de talent, des étudiants enthousiastes de nous rejoindre! Détails, s'il vous plaît interface de dialogue qubit numéro public (QbitAI), réponse mot "recrutement".

qubit QbitAI

' « suivre les nouvelles technologies AI dynamiques et de produits

MG « champion » à double aide le taux de croissance des passagers SAIC de la première ascension des prix des voitures grand public
Précédent
Spurs nouvelle prend forme, DP a été trouvé « PIB », G il y a deux, une sélection positive d'une alternative!
Prochain
Cavani a rejoint Hengda? courtier européen ne comprenait pas bien la commande Football Association! Guangdong médias: Hengda considèrent le désarmement
Les conducteurs âgés développent: pour enseigner le réseau de neurones tourné « Mario Kart » maître | Paper code +
NetEase combien l'ambition? En fait, la plupart des bovins 2 paragraphe trois jeux au monde, déplacé le téléphone!
Tour inventaire ronde super géant, quatre actifs gens plus de cinq fois, neuf fois par personne aller-retour, Bi Maidi misérable!
Patrimoine Soccer City! 5 Little Swan nom du pays choisi, partie U23 a perdu le match, gagner l'avenir!
Je pense que la plus belle vue de la nuit de Chongqing était assis à regarder deux rivières Geely Dorsett GL Péninsule
CJ2018: Netease 400 millions de personnes sont mortes de cette bêta fermée du jeu, les joueurs abusent des émotions hors de contrôle!
Dans le premier tour des ennemis peuvent se cacher, retraite et éviter de toucher les Warriors avant, garder 3 ou roquettes meilleur choix!
Orangistes à jouer le petit est devenu une habitude? Romains Lippi, Coupe d'âge asiatique char capable d'ouvrir loin?
Hinton Légende: tomber quand le menuisier, la démission de l'anti-militaire, et a fini par devenir une génération AI parrain
De qualité aux sentiments de la voiture toute la classe B est un drapeau rouge H5
Un peu moins de 5! Paul Chong Histoire 9 compte à rebours, les cadeaux de roi prochaine guerre? Seulement 14 saisons ah