Τεχνητή νοημοσύνη 101
Τι είναι το KNN (K-Nearest Neighbors);

Τι είναι το K-Nearest Neighbors (KNN);
Το K-Nearest Neighbors είναι μια τεχνική και αλγόριθμος μηχανικής μάθησης που μπορεί να χρησιμοποιηθεί και για καθήκοντα ταξινόμησης και για καθήκοντα παλινδρόμησης. K-Nearest Neighbors εξετάζει τις ετικέτες ενός επιλεγμένου αριθμού σημείων δεδομένων γύρω από ένα στόχο σημείο δεδομένων, για να κάνει μια πρόβλεψη για την τάξη στην οποία ανήκει το σημείο δεδομένων. Το K-Nearest Neighbors (KNN) είναι μια концепτουαλικά απλή αλλά πολύ ισχυρή τεχνική, και για τους λόγους αυτούς, είναι ένας από τους πιο δημοφιλείς αλγόριθμους μηχανικής μάθησης. Ας κάνουμε μια βαθιά εμβάθυνση στον αλγόριθμο KNN και να δούμε ακριβώς πώς λειτουργεί. Έχοντας μια καλή κατανόηση του πώς λειτουργεί το KNN, θα σας επιτρέψει να εκτιμήσετε τις καλύτερες και τις χειρότερες περιπτώσεις χρήσης του KNN.
Επισκόπηση του K-Nearest Neighbors (KNN)

Φωτογραφία: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
Ας οραματιστούμε ένα σύνολο δεδομένων σε ένα 2D επίπεδο. Φανταστείτε μια ποσότητα σημείων δεδομένων σε ένα γράφημα, διάσπαρτα σε μικρές ομάδες. Το KNN εξετάζει την κατανομή των σημείων δεδομένων και, ανάλογα με τα ορίσματα που δίνονται στο μοντέλο, τα χωρίζει σε ομάδες. Αυτές οι ομάδες ανατίθενται μια ετικέτα. Η κύρια υπόθεση που κάνει ένα μοντέλο KNN είναι ότι τα σημεία δεδομένων/παραδείγματα που υπάρχουν σε κοντινή απόσταση μεταξύ τους είναι πολύ παρόμοια, ενώ αν ένα σημείο δεδομένων είναι μακριά από μια άλλη ομάδα, είναι διαφορετικό από αυτά τα σημεία δεδομένων.
Ένα μοντέλο KNN υπολογίζει την ομοιότητα χρησιμοποιώντας την απόσταση μεταξύ δύο σημείων σε ένα γράφημα. Η μεγαλύτερη η απόσταση μεταξύ των σημείων, τόσο λιγότερο παρόμοια είναι. Υπάρχουν πολλές τρόποι για να υπολογιστεί η απόσταση μεταξύ των σημείων, αλλά η πιο συνηθισμένη μετρική απόστασης είναι η Ευκλείδεια απόσταση (η απόσταση μεταξύ δύο σημείων σε μια ευθεία γραμμή).
Το KNN είναι ένας αλγόριθμος επιβλεπόμενης μάθησης, που σημαίνει ότι τα παραδείγματα στο σύνολο δεδομένων πρέπει να έχουν ανατεθεί ετικέτες/ταξινόμηση. Υπάρχουν δύο άλλα σημαντικά πράγματα που πρέπει να γνωρίζετε για το KNN. Πρώτον, το KNN είναι ένας μη παραμετρικός αλγόριθμος. Αυτό σημαίνει ότι δεν existουν υποθέσεις για το σύνολο δεδομένων όταν χρησιμοποιείται το μοντέλο. Αντίθετα, το μοντέλο κατασκευάζεται εξ ολοκλήρου από τα δεδομένα που παρέχονται. Δεύτερον, δεν υπάρχει διαίρεση του συνόλου δεδομένων σε σύνολα εκπαίδευσης και δοκιμής όταν χρησιμοποιείται το KNN. Το KNN δεν κάνει γενικεύσεις μεταξύ ενός συνόλου εκπαίδευσης και δοκιμής, οπότε όλα τα δεδομένα εκπαίδευσης χρησιμοποιούνται επίσης όταν το μοντέλο ζητείται να κάνει προβλέψεις.
Πώς λειτουργεί ένας αλγόριθμος KNN
Ένας αλγόριθμος KNN περνάει από τρεις κύριες φάσεις κατά την εκτέλεσή του:
- Ρύθμιση του K στο επιλεγμένο αριθμό γειτόνων.
- Υπολογισμός της απόστασης μεταξύ ενός δεδομένου/παραδείγματος δοκιμής και των παραδειγμάτων του συνόλου δεδομένων.
- Ταξινόμηση των υπολογισμένων αποστάσεων.
- Λήψη των ετικετών των κορυφαίων K εγγραφών.
- Επιστροφή μιας πρόβλεψης για το παράδειγμα δοκιμής.
Στην πρώτη φάση, το K επιλέγεται από τον χρήστη και λέει στον αλγόριθμο πόσοι γείτονες (πόσοι περιβάλλοντες πόροι δεδομένων) πρέπει να εξεταστούν όταν κρίνεται η ομάδα στην οποία ανήκει το στόχο παράδειγμα. Στη δεύτερη φάση, σημειώστε ότι το μοντέλο ελέγχει την απόσταση μεταξύ του στόχου παραδείγματος και κάθε παραδείγματος στο σύνολο δεδομένων. Οι αποστάσεις προστίθενται στη λίστα και ταξινομούνται. Μετά, η ταξινομημένη λίστα ελέγχεται και οι ετικέτες για τα κορυφαία K στοιχεία επιστρέφονται. Με άλλα λόγια, αν το K οριστεί σε 5, το μοντέλο ελέγχει τις ετικέτες των 5 πιο κοντινών σημείων δεδομένων στο στόχο σημείο δεδομένων. Όταν κρίνεται μια πρόβλεψη για το στόχο σημείο δεδομένων, έχει σημασία αν το καθήκον είναι παλινδρόμηση ή ταξινόμηση. Για ένα καθήκον παλινδρόμησης, η μέση τιμή των κορυφαίων K ετικετών χρησιμοποιείται, ενώ η κατάσταση των κορυφαίων K ετικετών χρησιμοποιείται στην περίπτωση της ταξινόμησης.
Οι ακριβείς μαθηματικές επιχειρήσεις που χρησιμοποιούνται για την εκτέλεση του KNN διαφέρουν ανάλογα με την επιλεγμένη μετρική απόστασης. Αν θέλετε να μάθετε περισσότερα για το πώς υπολογίζονται οι μετρικές, μπορείτε να διαβάσετε για μερικές από τις πιο συνηθισμένες μετρικές απόστασης, όπως Ευκλείδεια, Manhattan και Minkowski.
Γιατί η τιμή του K έχει σημασία
Το κύριο περιορισμό όταν χρησιμοποιείτε το KNN είναι ότι μπορεί να επιλεγεί μια άλλη τιμή για το K (ο λάθος αριθμός γειτόνων που πρέπει να εξεταστούν). Αν συμβεί αυτό, οι προβλέψεις που επιστρέφονται μπορούν να είναι πολύ εκτός. Είναι πολύ σημαντικό, όταν χρησιμοποιείτε έναν αλγόριθμο KNN, να επιλεγεί η σωστή τιμή για το K. Θέλετε να επιλέξετε μια τιμή για το K που μεγιστοποιεί την ικανότητα του μοντέλου να κάνει προβλέψεις σε μη είδη δεδομένα, ενώ μειώνει τον αριθμό των σφαλμάτων που κάνει.

Φωτογραφία: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)
Οι μικρότερες τιμές του K σημαίνουν ότι οι προβλέψεις που κάνει το KNN είναι λιγότερο σταθερές και αξιόπιστες. Για να πάρουμε μια直觉 γιατί αυτό είναι έτσι, σκεφτείτε μια περίπτωση όπου έχουμε 7 γείτονες γύρω από ένα στόχο σημείο δεδομένων. Ας υποθέσουμε ότι το μοντέλο KNN λειτουργεί με μια τιμή K 2 (ζητάμε να εξετάσει τους δύο πιο κοντινούς γείτονες για να κάνει μια πρόβλεψη). Αν η πλειοψηφία των γειτόνων (πέντε από τα επτά) ανήκει στην τάξη Blue, αλλά οι δύο πιο κοντινοί γείτονες συμβαίνει να είναι Red, το μοντέλο θα προβλέψει ότι το παράδειγμα είναι Red.尽管 το μοντέλο θα προβλέψει ότι το παράδειγμα είναι Red, στην πραγματικότητα η Blue θα ήταν μια καλύτερη πρόβλεψη.
Αν αυτό είναι έτσι, γιατί δεν επιλέγουμε απλώς την υψηλότερη τιμή K που μπορούμε; Αυτό είναι γιατί να πειθούμε το μοντέλο να εξετάσει πολλούς γείτονες θα μειώσει επίσης την ακρίβεια. Όσο αυξάνεται ο radius που εξετάζει το μοντέλο KNN, θα αρχίσει να εξετάζει σημεία δεδομένων που είναι πιο κοντά σε άλλες ομάδες παρά στο στόχο σημείο δεδομένων και θα αρχίσει να συμβαίνει λανθασμένη ταξινόμηση. Για παράδειγμα, ακόμη και αν το σημείο που αρχικά επιλέχθηκε ήταν σε μια από τις κόκκινες περιοχές παραπάνω, αν το K οριστεί πολύ υψηλά, το μοντέλο θα φτάσει σε άλλες περιοχές για να εξετάσει σημεία. Όταν χρησιμοποιείτε ένα μοντέλο KNN, διαφορετικές τιμές του K δοκιμάζονται για να δείτε ποια τιμή δίνει την καλύτερη απόδοση στο μοντέλο.
Πλεονεκτήματα και μειονεκτήματα του KNN
Ας εξετάσουμε μερικά από τα πλεονεκτήματα και τα μειονεκτήματα του μοντέλου KNN.
Πλεονεκτήματα:
Το KNN μπορεί να χρησιμοποιηθεί και για καθήκοντα ταξινόμησης και για καθήκοντα παλινδρόμησης, αντίθετα με κάποιους άλλους αλγόριθμους επιβλεπόμενης μάθησης.
Το KNN είναι πολύ ακριβές και απλό στη χρήση. Είναι εύκολο να ερμηνευτεί, να κατανοηθεί και να εφαρμοστεί.
Το KNN δεν κάνει καμία υπόθεση για τα δεδομένα, που σημαίνει ότι μπορεί να χρησιμοποιηθεί για eine μεγάλη ποικιλία προβλημάτων.
Μειονεκτήματα:
Το KNN αποθηκεύει τα περισσότερα ή όλα τα δεδομένα, που σημαίνει ότι το μοντέλο απαιτεί πολλή μνήμη και είναι υπολογιστικά ακριβό. Τα μεγάλα σύνολα δεδομένων μπορούν επίσης να προκαλέσουν καθυστερήσεις στις προβλέψεις.
Το KNN αποδεικνύεται πολύ ευαίσθητο στην κλίμακα του συνόλου δεδομένων και μπορεί να επηρεαστεί εύκολα από μη σχετικές λειτουργίες σε σύγκριση με άλλα μοντέλα.
Σύνοψη του K-Nearest Neighbors (KNN)
Το K-Nearest Neighbors είναι ένας από τους πιο απλούς αλγόριθμους μηχανικής μάθησης.尽管 είναι απλό, το KNN είναι επίσης ένας ισχυρός αλγόριθμος που δίνει αρκετά υψηλή ακρίβεια σε meisten προβλήματα. Όταν χρησιμοποιείτε το KNN, βεβαιωθείτε ότι πειραματίζεστε με διάφορες τιμές του K για να βρείτε τον αριθμό που δίνει την υψηλότερη ακρίβεια.












