Πώς να υπολογίσετε τα διαστήματα εμπιστοσύνης για μετρήσεις απόδοσης στη Μηχανική Εκμάθηση χρησιμοποιώντας μια μέθοδο αυτόματης εκκίνησης

Κόμβος πηγής: 1178501

Πώς να υπολογίσετε τα διαστήματα εμπιστοσύνης για μετρήσεις απόδοσης στη Μηχανική Εκμάθηση χρησιμοποιώντας μια μέθοδο αυτόματης εκκίνησης

Οι μετρήσεις απόδοσης του μοντέλου σας είναι πολύ ακριβείς λόγω ενός "μεγάλου" σετ δοκιμών ή πολύ αβέβαιες λόγω ενός "μικρού" ή μη ισορροπημένου σετ δοκιμών;


By David B Rosen (PhD), Επικεφαλής Επιστήμονας Δεδομένων για Αυτοματοποιημένη Έγκριση Πιστώσεων στην IBM Global Financing



Η πορτοκαλί γραμμή δείχνει 89.7% ως το κάτω όριο του διαστήματος εμπιστοσύνης Balanced Accuracy, πράσινη για την αρχική παρατηρούμενη Ισορροπημένη Ακρίβεια=92.4% (εκτίμηση σημείου) και κόκκινο για άνω όριο 94.7%. (Αυτή και όλες οι εικόνες είναι του συγγραφέα εκτός αν αναφέρεται διαφορετικά.)

Εισαγωγή

 
 
Εάν αναφέρετε την απόδοση του ταξινομητή σας ως έχει Ακρίβεια=94.8% και F1=92.3% σε ένα δοκιμαστικό σύνολο, αυτό δεν σημαίνει πολλά χωρίς να γνωρίζετε κάτι για το μέγεθος και τη σύνθεση του συνόλου δοκιμής. Το περιθώριο σφάλματος αυτών των μετρήσεων απόδοσης θα ποικίλλει πολύ ανάλογα με το μέγεθος του συνόλου δοκιμής ή, για ένα μη ισορροπημένο σύνολο δεδομένων, κυρίως ανάλογα με το πόσες ανεξάρτητες παρουσίες του μειονότητα κλάση που περιέχει (περισσότερα αντίγραφα των ίδιων περιπτώσεων από την υπερδειγματοληψία δεν βοηθούν για αυτόν τον σκοπό).

Εάν μπορούσατε να συλλέξετε ένα άλλο, ανεξάρτητο σύνολο δοκιμών παρόμοιας προέλευσης, η ακρίβεια και η F1 του μοντέλου σας σε αυτό το σύνολο δεδομένων είναι απίθανο να είναι τα ίδια, αλλά πόσο εύλογα μπορεί να είναι διαφορετικά; Ένα ερώτημα παρόμοιο με αυτό απαντάται στα στατιστικά ως το διάστημα εμπιστοσύνης της μέτρησης.

Εάν αντλούσαμε πολλά ανεξάρτητα σύνολα δεδομένων δειγμάτων από τον υποκείμενο πληθυσμό, τότε για το 95% αυτών των συνόλων δεδομένων, η πραγματική υποκείμενη τιμή πληθυσμού της μέτρησης θα ήταν εντός του διαστήματος εμπιστοσύνης 95% που θα υπολογίζαμε για το συγκεκριμένο σύνολο δεδομένων δείγματος.

Σε αυτό το άρθρο θα σας δείξουμε πώς να υπολογίζετε τα διαστήματα εμπιστοσύνης για οποιονδήποτε αριθμό μετρήσεων απόδοσης Μηχανικής Μάθησης ταυτόχρονα, με μια μέθοδο bootstrap που αυτομάτως καθορίζει πόσα δείγματα δεδομένων εκκίνησης θα δημιουργηθούν από προεπιλογή.

Εάν θέλετε απλώς να δείτε πώς να καλέσετε αυτόν τον κωδικό για να υπολογίσετε τα διαστήματα εμπιστοσύνης, μεταβείτε στην ενότητα "Υπολογίστε τα αποτελέσματα!" κάτω από.

Η μεθοδολογία του bootstrap

 
 
Εάν ήμασταν σε θέση να αντλήσουμε πρόσθετα σύνολα δεδομένων δοκιμής από την πραγματική κατανομή που βρίσκεται κάτω από τα δεδομένα, θα μπορούσαμε να δούμε την κατανομή των μετρήσεων απόδοσης που μας ενδιαφέρουν σε αυτά τα σύνολα δεδομένων. (Κατά τη σχεδίαση αυτών των συνόλων δεδομένων δεν θα κάναμε τίποτα για να αποτρέψουμε τη σχεδίαση μιας ίδιας ή παρόμοιας παρουσίας πολλές φορές, αν και αυτό μπορεί να συμβεί μόνο σπάνια.)

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

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

Η εκατοστημόριο Η μεθοδολογία bootstrap για την εκτίμηση του διαστήματος εμπιστοσύνης είναι η εξής:

  1. Δημιουργία nboots Σύνολα δεδομένων "bootstrap δείγματος", το καθένα έχει το ίδιο μέγεθος με το αρχικό σύνολο δοκιμής. Κάθε σύνολο δεδομένων δείγματος λαμβάνεται με τυχαία σχεδίαση περιπτώσεων από το σύνολο δοκιμής με αντικατάσταση.
  2. Σε καθένα από τα δείγματα συνόλων δεδομένων, υπολογίστε τη μέτρηση και αποθηκεύστε την.
  3. Το διάστημα εμπιστοσύνης 95% δίνεται από το 2.5th στο 97.5th εκατοστημόριο μεταξύ των nboots υπολογισμένες τιμές της μέτρησης. Αν nboots=1001 και ταξινομήσατε τις τιμές σε μια σειρά/πίνακα/λίστα X μήκους 1001, το 0th εκατοστημόριο είναι X[0] και το 100th εκατοστημόριο είναι X[1000], οπότε το διάστημα εμπιστοσύνης θα δίνεται από X[25] έως X[975].

Φυσικά, μπορείτε να υπολογίσετε όσες μετρήσεις θέλετε για κάθε δείγμα δεδομένων στο βήμα 2, αλλά στο βήμα 3 θα βρείτε τα εκατοστημόρια για κάθε μέτρηση ξεχωριστά.

Παραδείγματα αποτελεσμάτων συνόλου δεδομένων και διαστήματος εμπιστοσύνης

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

Σε αυτό το άρθρο χρησιμοποιήσαμε το υψηλά-ανισορροπημένο Kaggle δύο τάξεων σύνολο δεδομένων αναγνώρισης απάτης πιστωτικών καρτών. Επιλέξαμε να χρησιμοποιήσουμε ένα όριο ταξινόμησης αρκετά διαφορετικό από το προεπιλεγμένο όριο 0.5 που είναι σιωπηρό στη χρήση της μεθόδου predict(), καθιστώντας περιττή την εξισορρόπηση των δεδομένων. Αυτή η προσέγγιση μερικές φορές ονομάζεται μετακίνηση κατωφλίου, στην οποία ο ταξινομητής μας εκχωρεί την κλάση εφαρμόζοντας το επιλεγμένο όριο στην προβλεπόμενη πιθανότητα κλάσης που παρέχεται από την πρόβλεψη_πρόβα() μέθοδος.

Θα περιορίσουμε το πεδίο αυτού του άρθρου (και του κώδικα) στη δυαδική ταξινόμηση: κλάσεις 0 και 1, με την κλάση 1 κατά σύμβαση να είναι η «θετική» κλάση και συγκεκριμένα η κατηγορία μειοψηφίας για μη ισορροπημένα δεδομένα, αν και ο κώδικας θα πρέπει να λειτουργεί για παλινδρόμηση (μονό συνεχής στόχος) επίσης.

Δημιουργία ενός δείγματος δεδομένων εκκίνησης

 
 
Παρόλο που ο κωδικός διαστήματος εμπιστοσύνης μπορεί να χειριστεί διάφορους αριθμούς ορισμάτων δεδομένων που θα μεταβιβαστούν στις συναρτήσεις μετρήσεων, θα επικεντρωθούμε σε μετρήσεις τύπου sklearn, οι οποίες δέχονται πάντα δύο ορίσματα δεδομένων, y_true και y_pred, όπου το y_pred θα είναι είτε προβλέψεις δυαδικής κλάσης (0 ή 1), ή συνεχείς προβλέψεις πιθανότητας κλάσης ή συνάρτησης απόφασης, ή ακόμα και προβλέψεις συνεχούς παλινδρόμησης εάν το y_true είναι επίσης συνεχές. Η ακόλουθη συνάρτηση δημιουργεί ένα ενιαίο δείγμα δεδομένων εκκίνησης. Αποδέχεται οποιαδήποτε data_args αλλά στην περίπτωσή μας αυτά τα ορίσματα θα είναι ytest(η πραγματική/αληθινή δοκιμή μας ορίζει τις τιμές-στόχους στο προηγούμενο άρθρο) Και hardpredtst_tuned_thresh (η προβλεπόμενη τάξη). Και τα δύο περιέχουν μηδενικά και ένα για να υποδείξουν την αληθινή ή την προβλεπόμενη κλάση για κάθε περίπτωση.

Προσαρμοσμένη μετρική specificity_score() και συναρτήσεις βοηθητικού προγράμματος

 
 
Θα ορίσουμε μια προσαρμοσμένη μετρική συνάρτηση για την Specificity, η οποία είναι απλώς ένα άλλο όνομα για την Ανάκληση του αρνητικός τάξη (τάξη 0). Επίσης μια συνάρτηση calc_metrics η οποία εφαρμόζει μια ακολουθία μετρήσεων που ενδιαφέρουν τα δεδομένα μας και μερικές συναρτήσεις χρησιμότητας για αυτήν:

Εδώ φτιάχνουμε τη λίστα με τις μετρήσεις μας και τις εφαρμόζουμε στα δεδομένα. Δεν θεωρήσαμε ότι η Ακρίβεια είναι μια σχετική μέτρηση, επειδή ένα ψευδώς αρνητικό (λανθασμένη ταξινόμηση μιας αληθινής απάτης ως νόμιμη) είναι πολύ πιο δαπανηρή για την επιχείρηση από μια ψευδή θετική (λανθασμένη ταξινόμηση ενός αληθινού νόμιμου ως απάτη), ενώ η Ακρίβεια αντιμετωπίζει και τους δύο τύπους εσφαλμένης ταξινόμησης είναι εξίσου κακές και ως εκ τούτου ευνοεί τη σωστή ταξινόμηση αυτών των οποίων η πραγματική τάξη είναι η πλειοψηφική τάξη, επειδή αυτά συμβαίνουν πολύ πιο συχνά και έτσι συμβάλλουν πολύ περισσότερο στη συνολική Ακρίβεια.

met=[ metrics.recall_score, specificity_score, metrics.balanced_accuracy_score ]
calc_metrics(met, ytest, hardpredtst_tuned_thresh)



Δημιουργία κάθε δείγματος δεδομένων εκκίνησης και υπολογισμός μετρήσεων για αυτό

 
 
Στο raw_metric_samples() θα δημιουργήσουμε στην πραγματικότητα πολλαπλά σύνολα δεδομένων δειγμάτων ένα προς ένα και θα αποθηκεύσουμε τις μετρήσεις του καθενός:

Δίνετε στο raw_metric_samples() μια λίστα με μετρήσεις (ή μόνο μία μέτρηση) που σας ενδιαφέρουν, καθώς και τα αληθινά και τα προβλεπόμενα δεδομένα κλάσης, και λαμβάνει nboots δείγματα συνόλων δεδομένων και επιστρέφει ένα πλαίσιο δεδομένων με μόνο τις τιμές των μετρήσεων που υπολογίζονται από κάθε σύνολο δεδομένων. Μέσω _boot_generator() καλεί one_boot() μία κάθε φορά σε μια έκφραση γεννήτριας αντί να αποθηκεύει όλα τα σύνολα δεδομένων ταυτόχρονα ως δυνητικά-τεράστιος λίστα.

Δείτε τις μετρήσεις σε 7 δείγματα δεδομένων εκκίνησης

 
 
Φτιάχνουμε τη λίστα με τις μετρικές μας συναρτήσεις και καλούμε τη raw_metric_samples() για να λάβουμε τα αποτελέσματα για μόλις 7 δείγματα συνόλων δεδομένων. Επικαλούμαστε τη raw_metric_samples() εδώ για κατανόηση — δεν είναι απαραίτητο για να λάβουμε διαστήματα εμπιστοσύνης χρησιμοποιώντας τη ci_auto() παρακάτω, αν και καθορίζουμε μια λίστα μετρήσεων (ή μόνο μία μέτρηση) για την ci_auto() is ΑΠΑΡΑΙΤΗΤΗ.

np.random.seed(13)
raw_metric_samples(met, ytest, hardpredtst_tuned_thresh, nboots=7).style.format('{:.2%}') #optional #style



Κάθε στήλη παραπάνω περιέχει τις μετρήσεις που υπολογίζονται από ένα σύνολο δεδομένων δείγματος εκκίνησης (με αριθμούς 0 έως 6), επομένως οι υπολογισμένες τιμές μετρήσεων ποικίλλουν λόγω της τυχαίας δειγματοληψίας.

Αριθμός συνόλων δεδομένων εκκίνησης, με υπολογισμένη προεπιλογή

 
 
Στην υλοποίησή μας, από προεπιλογή ο αριθμός των συνόλων δεδομένων εκκίνησης nboots θα υπολογιστεί αυτόματα από το επιθυμητό επίπεδο εμπιστοσύνης (π.χ. 95%) έτσι ώστε να ικανοποιηθεί η σύσταση έως North, Curtis και Sham για να έχετε έναν ελάχιστο αριθμό αποτελεσμάτων εκκίνησης σε κάθε ουρά της διανομής. (Στην πραγματικότητα αυτή η σύσταση ισχύει για p-τιμές και επομένως έλεγχος υποθέσεων περιφέρειες αποδοχής, Αλλά διαστήματα εμπιστοσύνης είναι αρκετά παρόμοια με εκείνα που το χρησιμοποιούν ως εμπειρικό κανόνα.) Αν και αυτοί οι συγγραφείς προτείνουν τουλάχιστον 10 αποτελέσματα εκκίνησης στην ουρά, Davidson & MacKinnon προτείνουμε τουλάχιστον 399 μπότες για 95% αυτοπεποίθηση, κάτι που απαιτεί 11 μπότες στην ουρά, επομένως χρησιμοποιούμε αυτήν την πιο συντηρητική σύσταση.

Καθορίζουμε το alpha που είναι 1 – επίπεδο εμπιστοσύνης. Π.χ. 95% εμπιστοσύνη γίνεται 0.95 και άλφα=0.05. Εάν καθορίσετε έναν ρητό αριθμό μπότες (ίσως μικρότερο nboots επειδή θέλετε γρηγορότερα αποτελέσματα) αλλά δεν αρκεί για το άλφα που ζητήσατε, θα επιλεγεί αυτόματα ένα υψηλότερο άλφα για να λάβετε ένα ακριβές διάστημα εμπιστοσύνης για αυτόν τον αριθμό μπότες. Θα χρησιμοποιηθούν τουλάχιστον 51 μπότες, επειδή λιγότερες μπορούν να υπολογίσουν με ακρίβεια μόνο παράξενα-μικρά επίπεδα εμπιστοσύνης (όπως 40% εμπιστοσύνη που δίνει ένα διάστημα από τα 30th εκατοστημόριο στο 70th εκατοστημόριο, το οποίο έχει 40% εντός του διαστήματος αλλά 60% εκτός αυτού) και δεν είναι ξεκάθαρο ότι η σύσταση ελάχιστων μπότες εξέταζε καν μια τέτοια περίπτωση.

Η συνάρτηση get_alpha_nboots() ορίζει τα προεπιλεγμένα nboots ή τροποποιεί τα ζητούμενα alpha και nboots ανά παραπάνω:

Ας δείξουμε τα προεπιλεγμένα nboots για διάφορες τιμές του alpha:

g = get_alpha_nboots pd.DataFrame( [ g(0.40), g(0.20, None), g(0.10), g(), g(alpha=0.02), g(alpha=0.01, nboots=None), g(0.005, nboots=None) ], columns=['alpha', 'default nboots'] ).set_index('alpha')



Δείτε τι συμβαίνει εάν ζητήσουμε ένα ρητό nboots:

req=[(0.01,3000), (0.01,401), (0.01,2)]
out=[get_alpha_nboots(*args) for args in req]
mydf = lambda x: pd.DataFrame(x, columns=['alpha', 'nboots'])
pd.concat([mydf(req),mydf(out)],axis=1, keys=('Requested','Using'))



Οι τιμές των μικρών nboots αυξήθηκαν στο άλφα σε 0.05 και 0.40 και το nboots=2 αλλάζει στο ελάχιστο 51.

Ιστόγραμμα δειγμάτων συνόλων δεδομένων εκκίνησης που δείχνει διάστημα εμπιστοσύνης μόνο για ισορροπημένη ακρίβεια

 
 
Και πάλι δεν χρειάζεται να το κάνουμε αυτό για να λάβουμε τα παρακάτω διαστήματα εμπιστοσύνης επικαλώντας ci_auto().

np.random.seed(13)
metric_boot_histogram (metrics.balanced_accuracy_score, ytest, hardpredtst_tuned_thresh)



Η πορτοκαλί γραμμή δείχνει το 89.7% ως το κάτω όριο του διαστήματος εμπιστοσύνης ισορροπημένης ακρίβειας, το πράσινο για την αρχική παρατηρούμενη Ισορροπημένη ακρίβεια=92.4% (εκτίμηση σημείου) και το κόκκινο για το άνω όριο 94.7%. (Η ίδια εικόνα εμφανίζεται στην κορυφή αυτού του άρθρου.)

Πώς να υπολογίσετε όλα τα διαστήματα εμπιστοσύνης για τη λίστα μετρήσεων

 
 
Εδώ είναι η κύρια συνάρτηση που επικαλείται τα παραπάνω και υπολογίζει τα διαστήματα εμπιστοσύνης από τα εκατοστημόρια των μετρικών αποτελεσμάτων και εισάγει τις σημειακές εκτιμήσεις ως την πρώτη στήλη του πλαισίου δεδομένων εξόδου των αποτελεσμάτων.

Υπολογίστε τα αποτελέσματα!

 
 
Αυτό είναι το μόνο που χρειαζόμασταν πραγματικά να κάνουμε: να καλέσουμε ci_auto() ως εξής με μια λίστα μετρήσεων (met που ανατέθηκαν παραπάνω) για να λάβουν τα διαστήματα εμπιστοσύνης τους. Η ποσοστιαία μορφοποίηση είναι προαιρετική:

np.random.seed(13)
ci_auto( met, ytest, hardpredtst_tuned_thresh ).style.format('{:.2%}')



Συζήτηση των διαστημάτων εμπιστοσύνης που προκύπτουν

 
 
Εδώ είναι η μήτρα σύγχυσης από το αρχικό άρθρο. Η κλάση 0 είναι τα αρνητικά (κατηγορία πλειοψηφίας) και η κατηγορία 1 είναι τα θετικά (πολύ σπάνια κατηγορία)



Το Recall (True Positive Rate) του 134/(134+14) έχει το μεγαλύτερο διάστημα εμπιστοσύνης επειδή πρόκειται για μια διωνυμική αναλογία που περιλαμβάνει μικρές μετρήσεις.

Η ειδικότητα (αληθινό αρνητικό ποσοστό) είναι 80,388/(80,388+4,907), που περιλαμβάνει πολύ μετράει μεγαλύτερο, επομένως έχει ένα εξαιρετικά στενό διάστημα εμπιστοσύνης μόλις [94.11% έως 94.40%].

Εφόσον η Ισορροπημένη Ακρίβεια υπολογίζεται απλώς ως μέσος όρος της Ανάκλησης και της Ειδικότητας, το πλάτος του διαστήματος εμπιστοσύνης της είναι ενδιάμεσο μεταξύ των δικών τους».

Ανακρίβεια μετρήσεων λόγω διακυμάνσεων στα δεδομένα δοκιμών, έναντι διακυμάνσεων στα δεδομένα αμαξοστοιχίας

 
 
Εδώ δεν έχουμε εξετάσει τη μεταβλητότητα στο μοντέλο με βάση την τυχαιότητα μας εκπαίδευση δεδομένα (αν και αυτό μπορεί επίσης να είναι ενδιαφέρον για ορισμένους σκοπούς, π.χ. εάν έχετε αυτοματοποιήσει επαναλαμβανόμενη επανεκπαίδευση και θέλετε να μάθετε πόσο μπορεί να διαφέρει η απόδοση των μελλοντικών μοντέλων), αλλά μόνο η μεταβλητότητα στη μέτρηση της απόδοσης αυτού Ειδικότερα μοντέλο (που δημιουργήθηκε από κάποια συγκεκριμένα δεδομένα εκπαίδευσης) λόγω της τυχαιότητάς μας δοκιμή δεδομένων.

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

Ανεξαρτησία μεμονωμένων περιπτώσεων

 
 
Η μέθοδος bootstrap προϋποθέτει ότι κάθε μία από τις περιπτώσεις σας (υποθέσεις, παρατηρήσεις) έχει σχεδιαστεί ανεξάρτητα από έναν υποκείμενο πληθυσμό. Εάν το δοκιμαστικό σας σύνολο έχει ομάδες σειρών που δεν είναι ανεξάρτητες μεταξύ τους, για παράδειγμα επαναλαμβανόμενες παρατηρήσεις της ίδιας οντότητας που είναι πιθανό να συσχετιστούν μεταξύ τους ή περιπτώσεις που έχουν γίνει υπερδειγματοληψία/αναπαραγωγή/δημιουργία-από άλλα στιγμιότυπα στη δοκιμή σας οριστεί, τα αποτελέσματα ενδέχεται να μην είναι έγκυρα. Ίσως χρειαστεί να χρησιμοποιήσετε ομαδοποιήθηκαν δειγματοληψία, όπου σχεδιάζετε ολόκληρες ομάδες μαζί σε τυχαίες και όχι μεμονωμένες σειρές, αποφεύγοντας ταυτόχρονα να χωρίσετε οποιαδήποτε ομάδα ή απλώς να χρησιμοποιήσετε μέρος της.

Επίσης, θέλετε να βεβαιωθείτε ότι δεν έχετε ομάδες που χωρίστηκαν στο σετ προπόνησης και δοκιμής, γιατί τότε το σετ δοκιμών δεν είναι απαραίτητα ανεξάρτητο και μπορεί να μην εντοπιστεί υπερβολική προσαρμογή. Για παράδειγμα, εάν χρησιμοποιείτε υπερδειγματοληψία, θα πρέπει γενικά να το κάνετε μόνο μετά έχει χωριστεί από το σετ δοκιμών, όχι πριν. Και κανονικά θα κάνατε υπερδειγματοληψία του σετ εκπαίδευσης αλλά όχι του σετ δοκιμών, καθώς το σύνολο δοκιμής πρέπει να παραμένει αντιπροσωπευτικό των περιπτώσεων που θα δει το μοντέλο κατά τη μελλοντική ανάπτυξη. Και για διασταυρούμενη επικύρωση θα θέλατε να χρησιμοποιήσετε scikit-learn's model_selection.GroupKFold().

Συμπέρασμα

 
 
Μπορείτε πάντα να υπολογίσετε διαστήματα εμπιστοσύνης για τη μέτρηση (τις μετρήσεις) αξιολόγησής σας, για να δείτε πόσο ακριβώς τα δεδομένα δοκιμής σας επιτρέπουν να μετρήσετε την απόδοση του μοντέλου σας. Σχεδιάζω ένα άλλο άρθρο για να επιδείξω διαστήματα εμπιστοσύνης για μετρήσεις που αξιολογούν προβλέψεις πιθανότητας (ή βαθμολογίες εμπιστοσύνης — καμία σχέση με τη στατιστική εμπιστοσύνη), π.χ. ήπια ταξινόμηση, όπως Log Loss ή ROC AUC, αντί για τις μετρήσεις που χρησιμοποιήσαμε εδώ και αξιολογούν την διακριτή επιλογή κατηγορίας από το μοντέλο (hard classification). Ο ίδιος κώδικας λειτουργεί και για τα δύο, καθώς και για την παλινδρόμηση (πρόβλεψη μιας συνεχούς μεταβλητής στόχου) — απλά πρέπει να του περάσετε ένα διαφορετικό είδος πρόβλεψης (και διαφορετικό είδος αληθινών στόχων στην περίπτωση παλινδρόμησης).

Αυτό το σημειωματάριο jupyter είναι διαθέσιμο στο github: bootConfIntAutoV1o_standalone.ipynb

Ήταν αυτό το άρθρο ενημερωτικό και/ή χρήσιμο; Δημοσιεύστε ένα σχόλιο παρακάτω εάν έχετε οποιαδήποτε σχόλια ή ερωτήσεις σχετικά με αυτό το άρθρο ή σχετικά με τα διαστήματα εμπιστοσύνης, το bootstrap, τον αριθμό των μπότων, αυτήν την υλοποίηση, το σύνολο δεδομένων, το μοντέλο, τη μετακίνηση ορίου ή τα αποτελέσματα.

Εκτός από τα προαναφερθέντα προηγούμενο άρθρο, μπορεί επίσης να σας ενδιαφέρει το δικό μου Πώς να εντοπίσετε αυτόματα τις στήλες ημερομηνίας/ώρας και να ορίσετε τον τύπο δεδομένων τους όταν διαβάζετε ένα αρχείο CSV σε Pandas, αν και δεν σχετίζεται άμεσα με το παρόν άρθρο.

Με την επιφύλαξη ορισμένων δικαιωμάτων

 
Bio: David B Rosen (PhD) είναι επικεφαλής επιστήμονας δεδομένων για την αυτοματοποιημένη έγκριση πιστώσεων στην IBM Global Financing. Βρείτε περισσότερα από τα γραπτά του David στο dabruro.medium.com.

Πρωτότυπο. Αναδημοσιεύτηκε με άδεια.

Συγγενεύων:

Πηγή: https://www.kdnuggets.com/2021/10/calculate- trust-intervals-performance-metrics-machine-learning.html

Σφραγίδα ώρας:

Περισσότερα από KDnuggets