Parte 1 di una serie sugli algoritmi introduttivi di machine learning
Se hai familiarità con l’apprendimento automatico e gli algoritmi di base che sono usato nel campo, probabilmente hai sentito parlare dell’algoritmo k-più vicino vicino, o KNN. Questo algoritmo è una delle tecniche più semplici utilizzate nell’apprendimento automatico. È un metodo preferito da molti nel settore per la sua facilità d’uso e il basso tempo di calcolo.
Che cos’è KNN? KNN è un modello che classifica i punti dati in base ai punti più simili ad esso. Utilizza i dati di test per fare una “ipotesi plausibile” su come dovrebbe essere classificato un punto non classificato.
Pro:
- Facile da usare.
- Tempo di calcolo rapido.
- Non fa supposizioni sui dati.
Contro:
- La precisione dipende dalla qualità del dati.
- Deve trovare un valore k ottimale (numero di vicini più vicini).
- Scarsa classificazione dei punti dati in un confine in cui possono essere classificati in un modo o nell’altro.
KNN è un algoritmo considerato sia non parametrico che un esempio di pigro apprendimento. Cosa significano esattamente questi due termini?
- Non parametrico significa che non fa ipotesi. Il modello è costituito interamente dai dati forniti piuttosto che presumere che la sua struttura sia normale.
- Lazy learning significa che l’algoritmo non fa ge neralizzazioni. Ciò significa che è necessaria poca formazione quando si utilizza questo metodo. Per questo motivo, tutti i dati di addestramento vengono utilizzati anche nei test quando si utilizza KNN.
Dove usare KNN
KNN è spesso usato in semplici sistemi di raccomandazione, immagine tecnologia di riconoscimento e modelli decisionali. È l’algoritmo utilizzato da società come Netflix o Amazon per consigliare diversi film da guardare o libri da acquistare. Netflix ha persino lanciato il concorso Netflix Prize, assegnando $ 1 milione al team che ha creato l’algoritmo di raccomandazione più accurato!
Potresti chiederti: “Ma come fanno queste aziende a farlo?” Bene, queste aziende applicheranno KNN su un set di dati raccolti sui film che hai guardato o sui libri che hai acquistato sul loro sito web. Queste aziende inseriranno i dati dei tuoi clienti disponibili e li confronteranno con altri clienti che hanno guardato film simili o ha acquistato libri simili. Questo punto dati verrà quindi classificato come un determinato profilo in base al loro passato utilizzando KNN. I film e i libri consigliati dipenderanno quindi da come l’algoritmo classifica quel punto dati.
L’immagine sopra mostra come funziona KNN quando si cerca di classificare un punto dati in base a un dato set di dati. Viene confrontata con i suoi punti più vicini e classificato in base a quali punti è più vicino e più simile. Qui puoi vedere che il punto Xj sarà classificato come W1 (rosso) o W3 (verde) in base alla sua distanza da ciascun gruppo di punti.
Il Ma tematiche dietro KNN
Proprio come quasi tutto il resto, KNN funziona a causa delle teorie matematiche profondamente radicate che utilizza. Quando si implementa KNN, il primo passo è trasformare i punti dati in vettori di caratteristiche o il loro valore matematico. L’algoritmo funziona quindi trovando la distanza tra i valori matematici di questi punti. Il modo più comune per trovare questa distanza è la distanza euclidea, come mostrato di seguito.
KNN esegue questa formula per calcolare la distanza tra ogni punto dati e i dati del test. Quindi trova la probabilità che questi punti siano simili ai dati del test e la classifica in base a quali punti condividono le probabilità più alte.
Per visualizzare questa formula, sarebbe simile a questa:
Conclusione
Ora conosci i fondamenti di uno degli algoritmi di machine learning più basilari .È un ottimo punto di partenza quando si impara per la prima volta a creare modelli basati su set di dati diversi. Se hai un set di dati con molti punti diversi e informazioni accurate, questo è un ottimo posto per iniziare a esplorare il machine learning con KNN.
Quando cerchi di iniziare a utilizzare questo algoritmo, tieni a mente questi tre punti:
- Per prima cosa, trova un set di dati con cui sarà facile lavorare, idealmente uno con molti punti diversi e dati etichettati.
- Secondo, cerca di capire quale lingua sarà più facile da usare per risolvere il problema. Ho molta familiarità con l’utilizzo di KNN in R, ma Python è anche un linguaggio popolare tra i professionisti dell’apprendimento automatico.
- Terzo, fai la tua ricerca. È importante apprendere le pratiche corrette per l’utilizzo di questo algoritmo in modo da trovare i risultati più accurati dal tuo set di dati.
Sono stati condotti vari studi su come migliorare questo algoritmo. Questi studi mirano a fare in modo che tu possa pesare le categorie in modo diverso per fare una classificazione più accurata. La ponderazione di queste categorie varia a seconda di come viene calcolata la distanza.
In conclusione, questo è un algoritmo di apprendimento automatico fondamentale che è affidabile per molti motivi, come la facilità d’uso e il tempo di calcolo rapido. È un buon algoritmo da utilizzare quando si inizia a esplorare il mondo del machine learning, ma ha ancora margini di miglioramento e modifica.