Knn à Sklearn

Knn à Sklearn

«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

    • Un algorithme simple qui utilise simplement la fonction de distance et la valeur de K (l'Indeger Odd) (Euclidien, comme mentionné aujourd'hui).
    • C'est une approche qui est efficace pour les petits ensembles de données.
    • Utilisez «l'apprentissage paresseux."Cela le rend plus rapide que les machines vectorielles de support (SVM) et la régression linéaire car l'ensemble de données de formation est conservé et utilisé lors de la prédiction.

Les inconvénients

    • Le traitement de grands ensembles de données prend plus de temps.
    • Les appels à la mise à l'échelle des fonctionnalités et à ne pas le faire conduiront à des projections inexactes.
    • Les données bruyantes peuvent entraîner des données sur ou sous-ajustées.

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.