DedSec Project

Βασικές αρχές μηχανικής μάθησης — DedSec Project

Μηχανική μάθηση — έντιμη αξιολόγηση και αποφυγή διαρροής δεδομένων Πρόβλημα και μέτρο σύγκρισης Ένας δυαδικός ταξινομητής προβλέπει συμβάντα από παρατηρήσεις με χρονική σήμανση. Χώρισε τα…

Μηχανική μάθηση — έντιμη αξιολόγηση και αποφυγή διαρροής δεδομένων

Πρόβλημα και μέτρο σύγκρισης

Ένας δυαδικός ταξινομητής προβλέπει συμβάντα από παρατηρήσεις με χρονική σήμανση. Χώρισε τα δεδομένα με χρονική σειρά ώστε καμία εγγραφή εκπαίδευσης να μην προέρχεται από το μέλλον των εγγραφών ελέγχου. Υπολόγισε στατιστικά προεπεξεργασίας, όπως ο μέσος όρος για κανονικοποίηση, αποκλειστικά από τα δεδομένα εκπαίδευσης. Αν υπολογιστούν από όλες τις εγγραφές, ο αλγόριθμος αποκτά πληροφορίες από το σύνολο ελέγχου. Σύγκρινε κάθε μοντέλο με μία απλή σταθερή πρόβλεψη και μέτρησε ανάκληση της θετικής κατηγορίας, όχι μόνο συνολική ακρίβεια.

Εκτελέσιμο πείραμα χωρίς βιβλιοθήκη ML

Αποθήκευσε ως ml_lab.py και εκτέλεσε python3 ml_lab.py. Δεν απαιτείται πλαίσιο μηχανικής μάθησης ή εξωτερικό σύνολο δεδομένων. Ο κώδικας υπολογίζει τα στοιχεία του πίνακα σύγχυσης και συγκρίνει σωστή με λανθασμένη προεπεξεργασία.

def metrics(actual, predicted):
    tp = sum(a == 1 and p == 1 for a,p in zip(actual,predicted))
    fn = sum(a == 1 and p == 0 for a,p in zip(actual,predicted))
    tn = sum(a == 0 and p == 0 for a,p in zip(actual,predicted))
    fp = sum(a == 0 and p == 1 for a,p in zip(actual,predicted))
    return tp,fn,tn,fp

train = [(1,1,0),(2,2,0),(3,3,0),(4,4,1)]
test = [(5,100,0),(6,101,1),(7,99,1)]
assert train[-1][0] < test[0][0]
baseline = [0] * len(test)
tp,fn,tn,fp = metrics([r[2] for r in test], baseline)
assert (tp,fn,tn,fp) == (0,2,1,0)
assert (tp+tn) / len(test) == 1/3
mean_train = sum(r[1] for r in train) / len(train)
mean_all = sum(r[1] for r in train+test) / len(train+test)
assert mean_train == 2.5 and mean_all > 30
print("PASS: temporal split, class recall, leakage")

Ερμηνεία

Το απλό μοντέλο προβλέπει πάντα αρνητική κατηγορία. Από τις τρεις δοκιμές βρίσκει σωστά μόνο μία και χάνει και τα δύο θετικά περιστατικά, άρα η ανάκλησή του για τη θετική κατηγορία είναι μηδέν. Ο μέσος όρος μόνο της εκπαίδευσης είναι 2.5, αλλά τα πολύ μεγαλύτερα μελλοντικά δεδομένα τον αλλάζουν δραστικά όταν συμπεριληφθούν λανθασμένα. Ένα μοντέλο που προετοιμάστηκε με αυτά τα στοιχεία έχει ήδη δει μέρος του συνόλου ελέγχου. Η συνολική ακρίβεια δεν αποκαλύπτει πάντα τις αστοχίες στη σπάνια κατηγορία.

Στοχευμένες ασκήσεις

  1. Ανακάτεψε τις εγγραφές πριν τον διαχωρισμό και βρες αν μεταφέρονται μελλοντικές παρατηρήσεις στην εκπαίδευση.
  2. Γράψε τους τύπους ακρίβειας θετικών, ανάκλησης και ειδικότητας. Όρισε τι συμβαίνει όταν ο παρονομαστής είναι μηδέν.
  3. Σύγκρινε πρόβλεψη πάντα θετική με πρόβλεψη πάντα αρνητική. Ποια λάθη αυξάνονται και πώς θα καθόριζες το κόστος τους;
  4. Αν υπάρχουν πολλές μετρήσεις του ίδιου ατόμου ή μηχανήματος, χώρισέ τες ανά ομάδα ώστε να μη διαρρέει ταυτότητα ανάμεσα στα σύνολα.

Παραδοτέα: PASS, πίνακας σύγχυσης, οι δύο μέσοι όροι και εξήγηση για τη διαρροή. Τα τεχνητά δεδομένα δεν αποτελούν αξιολόγηση πραγματικού μοντέλου.