Άσκηση 1

Δημιουργήστε μια συνάρτηση nnk που να γενικεύει την nnk1 για πρόβλεψη συνεχούς εξαρτημένης μεταβλητής με περισσότερες από μια ανεξάρτητες μεταβλητές. Η συνάρτηση θα είναι της μορφής nnk(X,y,k,x0), όπου \(X\) ένας πίνακας \(N\times m\) με \(N\) παρατηρήσεις και \(m\) ανεξάρτητες μεταβλητές, \(y\) ένα διάνυσμα διάστασης \(N\) με τις τιμές της εξαρτημένης μεταβλητής, \(k\) η τάξη του αλγόριθμου nearest neighbor (αριθμός πλησιέστερων γειτόνων) και \(x_0\) ένα διάνυσμα διάστασης \(m\) για το οποίο πρέπει να γίνει η πρόβλεψη. Η συνάρτηση επιστρέφει την πρόβλεψη \(\hat{y}_0 = f(x_0)\).

Υποθέστε ότι όλες οι ανεξάρτητες μεταβλητές είναι συνεχείς. Για τον υπολογισμό της απόστασης χρησιμοποιήστε την Ευκλείδεια απόσταση. Ένα πρόβλημα στην πολυδιάστατη περίπτωση είναι ότι ο υπολογισμός της απόστασης δύο σημείων στο χώρο των \(X\) δεν είναι ανεξάρτητος από τις μονάδες μέτρησης, με αποτέλεσμα οι μεταβλητές που έχουν γενικά μεγάλες τιμές να συνεισφέρουν πολύ περισσότερο στον υπολογισμό της απόστασης από μεταβλητές που έχουν γενικά μικρές τιμές, και επομένως η εύρεση των πλησιέστερων γειτόνων να εξαρτάται επίσης από τις μονάδες μέτρησης, που δεν είναι σωστό. Ένας απλός τρόπος να αποφευχθεί αυτό το πρόβλημα είναι να γίνει κανονικοποίηση των ανεξάρτητων μεταβλητών πριν την εφαρμογή της μεθόδου. Αν έχουμε ένα διάνυσμα δεδομένων \(x\), μια απλή κανονικοποίηση είναι η \((x0-\min(x))/(\max(x)-\min(x))\). Επίσης μπορείν να γίνει η κλασική από τη στατιστικη τυποποίηση, όπου το τυποποιημένο διάνυσμα είναι \(\tilde{x} =(x-m)/s\) όπου \(m\) ο δειγματικός μέσος και \(s\) η δειγματική τυπική απόκλιση του \(x\).

Άσκηση 2

Στην άσκηση αυτή καλείστε να εκτιμήσετε το μέσο σφάλμα πρόβλεψης του αλγορίθμου NN ως συνάρτηση της παραμέτρου \(k\). Αυτό θα γίνει στο dataset ozone αλλά τώρα χρησιμοποιώντας όλες τις ανεξάρτητες μεταβλητές (wind, radiation, temperature). Για να γίνει αυτό:

  1. Χωρίστε το dataset των 111 παρατηρήσεων σε δύο υποσύνολα: ένα training set μεγέθους \(N_1=80\) και ένα test set μεγέθους \(N_2=31\), κάνοντας τη διαμέριση με τυχαίο τρόπο. Ένας εύκολος τρόπος να γίνει αυτό είναι με την εντολή sample του R.

  2. Θεωρήστε τιμές του \(k=1,2,5,10, 15, 20, 30, 40\). Για κάθε τιμή εφαρμόστε τον αλγόριθμο NN(k) σε όλες τις παρατηρήσεις του test set, χρησιμοποιώντας ως δεδομένα τις \(N_1\) παρατηρήσεις του training set. Έστω \(\hat{y}_1, \ldots, \hat{y}_{N_2}\) οι προβλέψεις για τα σημεία \(x_1, \ldots, x_{N_2}\) του test set. Τότε το μέσο τετραγωνικό σφάλμα πρόβλεψης για τη συγκεκριμένη τιμή του \(k\) εκτιμάται ως εξής: \[ EPE(k) = \frac{1}{N_2} \sum_{i=1}^{N_2} (\hat{y}_i-y_i)^2 \]

  3. Δημιουργήστε ένα γράφημα του μέσου σφάλματος πρόβλεψης ως συνάρτησης του \(k\) και εξηγήστε τι παρατηρείτε σχετικά με το bias-variance tradeoff.

Άσκηση 3

Βρείτε (μπορείτε και μέσω αναζήτησης στο διαδίκτυο) μια ήδη υπάρχουσα συνάρτηση για τη μέθοδο nearest neighbor και επαναλάβετε την Άσκηση 2 χρησιμοποιώντας την υπάρχουσα συνάρτηση αντί της nnk από την Άσκηση 1.

Άσκηση 4

Λύστε τις ασκήσεις 2.1 και 2.2 από το βιβλίο Friedman et al. (2009).