«Une hypothèse est faite par l'algorithme KNN que les nouvelles données et les données existantes sont comparables. Il utilise des mesures de voisins les plus proches pour cela. Cet article discutera de l'algorithme KNN et de la mise en œuvre de Sklearn."
Qu'est-ce que KNN?
Cet algorithme utilise des données étiquetées car il s'agit d'un modèle d'apprentissage automatique supervisé. L'emplacement du nombre de voisins «K» le plus proche du nouveau point de données détermine comment l'algorithme KNN les classe. La distance euclidienne est utilisée pour y parvenir. La formule pour la distance euclidienne entre deux points (a, b) et (x, y) est √ (a-x)2 + (par)2.
Où est utilisé?
KNN peut être utilisé pour résoudre une variété de problèmes. Par exemple, en classification, un nouveau point peut être classé simplement en regardant la classe de ses voisins les plus proches. Les documents les plus comparables à un document donné peuvent être trouvés en utilisant KNN pour vérifier le plagiat, les miroirs de découvertes, etc. KNN peut être utilisé dans les systèmes de recommandation pour identifier les produits qui ressemblent le plus à un produit qu'un utilisateur n'a pas évalué, puis déterminer si l'utilisateur en profitera ou non. Il existe de nombreuses autres applications, y compris des méthodes de clustering, où vous pouvez les appliquer.
Pour les avantages et les inconvénients de KNN?
Avantages
Les inconvénients
Implémentation de KNN dans Sklearn
Importation des méthodes et classes requises
de Sklearn.Ensemble Import RandomForestClassifier
de Sklearn.Les ensembles de données importent make_classification
de Sklearn.Les voisins importent KneighborsClassifier
Création de l'ensemble de données
X, y = make_classification (n_sample = 500, n_features = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
Imprimer («Les fonctionnalités sont»)
Imprimer (x)
imprimer («les étiquettes sont»)
imprimer (y)
Sortir
Les fonctionnalités sont
Array ([[0.44229321, 0.08089276, 0.54077359, -1.81807763],
[ 1.34699113, 1.48361993, -0.04932407, 0.2390336],
[-0.54639809, -1.1629494, -1.00033035, 1.67398571],
… ,
[0.8903941, 1.08980087, -1.53292105, -1.71197016],
[0.73135482, 1.25041511, 0.04613506, -0.95837448],
[0.26852399, 1.70213738, -0.08081161, -0.70385904]])
Les étiquettes sont
Array ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
Créer le modèle et faire des prédictions
modèle = KneighborsClassifier (n_neighbors = 5)
modèle.ajustement (x, y)
imprimer (modèle.prédire ([[0.5, 0.3, 0.2, 0.1]]))
imprimer (modèle.Predict_proba ([[0.5, 0.3, 0.2, 0.1]]))
Sortir
[0]
[0.8 0.2]]
Conclusion
Nous avons discuté de l'algorithme KNN, qui est un algorithme d'apprentissage automatique supervisé. Nous avons vu où cela pourrait être utile ou peut échouer. Plus tard, nous avons également discuté de sa mise en œuvre dans Sklearn Python.