Knn in sklearn

Knn in sklearn

“L'algoritmo KNN è presupposto che i nuovi dati e i dati esistenti sono comparabili. Fa uso delle metriche dei vicini più vicini per questo. Questo articolo discuterà dell'algoritmo KNN e dell'implementazione di Sklearn."

Cos'è KNN?

Questo algoritmo utilizza dati etichettati perché è un modello di apprendimento automatico supervisionato. La posizione del numero "k" più vicino al nuovo punto dati del nuovo punto di vicinato determina come l'algoritmo KNN lo classifica. La distanza euclidea è usata per raggiungere questo obiettivo. La formula per la distanza euclidea tra due punti (a, b) e (x, y) è √ (a-x)2 + (di)2.

Dove viene usato knn?

KNN può essere usato per affrontare una varietà di problemi. Ad esempio, nella classificazione, un nuovo punto può essere classificato semplicemente guardando la classe dei suoi vicini più vicini. I documenti più comparabili a un determinato documento sono disponibili utilizzando KNN per verificare il plagio, scoprire specchi, ecc. KNN può essere utilizzato nei sistemi di raccomandazione per identificare i prodotti che sono più simili a un prodotto che un utente non ha valutato e quindi determinare se l'utente lo piacerà o meno. Esistono numerose altre applicazioni, tra cui metodi di clustering, in cui è possibile applicarli.

Pro e contro di KNN?

Professionisti

    • Un semplice algoritmo che impiega solo la funzione di distanza e il valore di K (il numero dispari) (euclide, come menzionato oggi).
    • È un approccio efficace per piccoli set di dati.
    • Utilizzare "apprendimento pigro."Questo lo rende più veloce delle macchine vettoriali di supporto (SVM) e della regressione lineare perché il set di dati di addestramento viene mantenuto e utilizzato quando si effettuano previsioni.

Contro

    • L'elaborazione di set di dati di grandi dimensioni richiede più tempo.
    • Le richieste per il ridimensionamento delle funzionalità e il fallimento porterà a proiezioni imprecise.
    • I dati rumorosi possono causare il sopravvento sui dati.

Implementazione di KNN in Sklearn

Importazione dei metodi e delle classi richiesti

da Sklearn.INSEMBLE Import RandomForestClassifier
da Sklearn.set di dati Importa make_classification
da Sklearn.I vicini importano Kneighborsclassifier


Creazione del set di dati

X, y = make_classification (n_samples = 500, n_features = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
print ("Funzionalità sono")
Stampa (x)
print ("etichette sono")
stampa (y)


Produzione

Le caratteristiche sono

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]])


Le etichette sono

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, 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, 1, 1, 1, 1, 1])


Creare il modello e fare previsioni

Model = KneighborsClassifier (N_NEIGHBORS = 5)
modello.Fit (x, y)
Stampa (modello.prevedere ([0 0.5, 0.3, 0.2, 0.1]]))
Stampa (modello.predict_proba ([[0 0.5, 0.3, 0.2, 0.1]]))


Produzione

[0]
[[0.8 0.2]]

Conclusione

Abbiamo discusso dell'algoritmo KNN, che è un algoritmo di apprendimento automatico supervisionato. Abbiamo visto dove potrebbe essere utile o potrebbe fallire. Più tardi, abbiamo anche discusso della sua implementazione in Sklearn Python.