portaldacalheta.pt
  • Κύριος
  • Κατανεμημένες Ομάδες
  • Τροποσ Ζωησ
  • Αλλα
  • Κερδοφορία & Αποδοτικότητα
Επιστήμη Δεδομένων Και Βάσεις Δεδομένων

Μέθοδοι συνόλου: Κομψές τεχνικές για την παραγωγή βελτιωμένων αποτελεσμάτων μηχανικής εκμάθησης



Οι μέθοδοι συνόλων είναι τεχνικές που δημιουργούν πολλαπλά μοντέλα και στη συνέχεια συνδυάζονται για να παράγουν βελτιωμένα αποτελέσματα. Οι μέθοδοι συνόλων παράγουν συνήθως πιο ακριβείς λύσεις από ό, τι ένα μόνο μοντέλο. Αυτό συνέβη σε πολλούς διαγωνισμούς μηχανικής μάθησης, όπου οι νικηφόρες λύσεις χρησιμοποίησαν μεθόδους συνόλων. Στον δημοφιλή Διαγωνισμό Netflix, ο νικητής χρησιμοποίησε μια μέθοδο συνόλου για την εφαρμογή ενός ισχυρού συνεργατικού αλγορίθμου φιλτραρίσματος. Ένα άλλο παράδειγμα είναι το KDD 2009 όπου και ο νικητής χρησιμοποιούνται μέθοδοι συνόλου . Μπορείτε επίσης να βρείτε νικητές που χρησιμοποίησαν αυτές τις μεθόδους στους διαγωνισμούς Kaggle, για παράδειγμα εδώ είναι η συνέντευξη με τον νικητή του Διαγωνισμός CrowdFlower .

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



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



Μέθοδοι συνόλου με βάση την ψηφοφορία και τον μέσο όρο

Η ψηφοφορία και ο μέσος όρος είναι δύο από τις ευκολότερες μεθόδους συνόλου. Και οι δύο είναι εύκολο να κατανοηθούν και να εφαρμοστούν. Η ψηφοφορία χρησιμοποιείται για ταξινόμηση και ο μέσος όρος χρησιμοποιείται για παλινδρόμηση.



Μέθοδοι συνόλου με βάση την ψηφοφορία και τον μέσο όρο

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



ποιο από τα παρακάτω σημαίνει τη σχέση των αντικειμένων μεταξύ τους σε ένα σχέδιο;
train = load_csv('train.csv') target = train['target'] train = train.drop('target') test = load_csv('test.csv') algorithms = [logistic_regression, decision_tree_classification, ...] #for classification algorithms = [linear_regression, decision_tree_regressor, ...] #for regression predictions = matrix(row_length=len(target), column_length=len(algorithms)) for i,algorithm in enumerate(algorithms): predictions[,i] = algorithm.fit(train, target).predict(test)

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

Πλειοψηφία

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



ποιος πληρώνει περισσότερα uber ή lyft το 2016

Σταθμισμένη ψηφοφορία

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

Απλός μέσος όρος

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



final_predictions = [] for row_number in len(predictions): final_predictions.append( mean(prediction[row_number, ]) )

Σταθμισμένος μέσος όρος

Ο σταθμισμένος μέσος όρος είναι μια ελαφρώς τροποποιημένη έκδοση του απλού μέσου όρου, όπου η πρόβλεψη κάθε μοντέλου πολλαπλασιάζεται με το βάρος και στη συνέχεια υπολογίζεται ο μέσος όρος τους. Ο ακόλουθος ψευδοκώδικας δείχνει τον σταθμισμένο μέσο όρο:

weights = [..., ..., ...] #length is equal to len(algorithms) final_predictions = [] for row_number in len(predictions): final_predictions.append( mean(prediction[row_number, ]*weights) )

Στοίβαγμα πολλαπλών μοντέλων μηχανικής εκμάθησης

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



Ο ψευδοκώδικας μιας διαδικασίας στοίβαξης συνοψίζεται ως εξής:

base_algorithms = [logistic_regression, decision_tree_classification, ...] #for classification stacking_train_dataset = matrix(row_length=len(target), column_length=len(algorithms)) stacking_test_dataset = matrix(row_length=len(test), column_length=len(algorithms)) for i,base_algorithm in enumerate(base_algorithms): stacking_train_dataset[,i] = base_algorithm.fit(train, target).predict(train) stacking_test_dataset[,i] = base_algorithm.predict(test) final_predictions = combiner_algorithm.fit(stacking_train_dataset, target).predict(stacking_test_dataset)

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



base_algorithms = [logistic_regression, decision_tree_classification, ...] #for classification stacking_train_dataset = matrix(row_length=len(target), column_length=len(algorithms)) stacking_test_dataset = matrix(row_length=len(test), column_length=len(algorithms)) for i,base_algorithm in enumerate(base_algorithms): for trainix, testix in split(train, k=10): #you may use sklearn.cross_validation.KFold of sklearn library stacking_train_dataset[testcv,i] = base_algorithm.fit(train[trainix], target[trainix]).predict(train[testix]) stacking_test_dataset[,i] = base_algorithm.fit(train).predict(test) final_predictions = combiner_algorithm.fit(stacking_train_dataset, target).predict(stacking_test_dataset)

Συγκέντρωση Bootstrap

Το όνομα Bootstrap Aggregating, επίσης γνωστό ως 'Bagging', συνοψίζει τα βασικά στοιχεία αυτής της στρατηγικής. Στον αλγόριθμο συσκευασίας, το πρώτο βήμα περιλαμβάνει τη δημιουργία πολλαπλών μοντέλων. Αυτά τα μοντέλα δημιουργούνται χρησιμοποιώντας τον ίδιο αλγόριθμο με τυχαία υπο-δείγματα του συνόλου δεδομένων που αντλούνται από το αρχικό σύνολο δεδομένων τυχαία με τη μέθοδο δειγματοληψίας εκκίνησης. Στη δειγματοληψία bootstrap, ορισμένα πρωτότυπα παραδείγματα εμφανίζονται περισσότερες από μία φορές και ορισμένα πρωτότυπα παραδείγματα δεν υπάρχουν στο δείγμα. Εάν θέλετε να δημιουργήσετε ένα υποσύνολο με στοιχεία m, θα πρέπει να επιλέξετε ένα τυχαίο στοιχείο από το αρχικό σύνολο δεδομένων m φορές. Και αν ο στόχος είναι η δημιουργία n συνόλου δεδομένων, ακολουθείτε αυτό το βήμα n φορές.

Συγκέντρωση Bootstrap

Στο τέλος, έχουμε n σύνολα δεδομένων όπου ο αριθμός των στοιχείων σε κάθε σύνολο δεδομένων είναι m. Το ακόλουθο Python-esque pseudocode δείχνει δειγματοληψία bootstrap:

εργαλεία γραμμής εντολών για windows
def bootstrap_sample(original_dataset, m): sub_dataset = [] for i in range(m): sub_dataset.append( random_one_element(original_dataset) ) return sub_dataset

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

Ο συνολικός ψευδοκώδικας μοιάζει με αυτό:

def bagging(n, m, base_algorithm, train_dataset, target, test_dataset): predictions = matrix(row_length=len(target), column_length=n) for i in range(n): sub_dataset = bootstrap_sample(train_dataset, m) predictions[,i] = base_algorithm.fit(original_dataset, target).predict(test_dataset) final_predictions = voting(predictions) # for classification final_predictions = averaging(predictions) # for regression return final_predictions

Κατά τη συσκευασία, κάθε υπο-δείγμα μπορεί να δημιουργηθεί ανεξάρτητα το ένα από το άλλο. Έτσι η παραγωγή και η εκπαίδευση μπορούν να γίνουν παράλληλα.

μια εισαγωγή στη μηχανική μάθηση

Μπορείτε επίσης να βρείτε την εφαρμογή της στρατηγικής τοποθέτησης σε ορισμένους αλγόριθμους. Για παράδειγμα, Τυχαίο δάσος Ο αλγόριθμος χρησιμοποιεί την τεχνική του bagging με κάποιες διαφορές. Το Random Forest χρησιμοποιεί τυχαία επιλογή χαρακτηριστικών και ο βασικός αλγόριθμος είναι ένας αλγόριθμος δέντρων αποφάσεων.

Σχετίζεται με: Ένα μάθημα βαθιάς μάθησης: Από Perceptrons σε Deep Networks

Ενίσχυση: Μετατροπή ασθενών μοντέλων σε δυνατούς

Ο όρος 'boosting' χρησιμοποιείται για να περιγράψει μια οικογένεια αλγορίθμων που μπορούν να μετατρέψουν αδύναμα μοντέλα σε ισχυρά μοντέλα. Το μοντέλο είναι αδύναμο εάν έχει σημαντικό ποσοστό σφάλματος, αλλά η απόδοση δεν είναι τυχαία (με αποτέλεσμα ένα ποσοστό σφάλματος 0,5 για δυαδική ταξινόμηση). Η ενίσχυση αυξάνει σταδιακά ένα σύνολο εκπαιδεύοντας κάθε μοντέλο με το ίδιο σύνολο δεδομένων, αλλά όπου τα βάρη των παρουσιών προσαρμόζονται σύμφωνα με το σφάλμα της τελευταίας πρόβλεψης. Η κύρια ιδέα είναι να αναγκάσει τα μοντέλα να επικεντρωθούν στις περιπτώσεις που είναι δύσκολες. Σε αντίθεση με το bagging, η ενίσχυση είναι μια διαδοχική μέθοδος και έτσι δεν μπορείτε να χρησιμοποιήσετε παράλληλες λειτουργίες εδώ.

Η γενική διαδικασία του αλγορίθμου ενίσχυσης ορίζεται ως εξής:

def adjust_dataset(_train, errors): #create a new dataset by using the hardest instances ix = get_highest_errors_index(train) return concat(_train[ix], random_select(train)) models = [] _train = random_select(train) for i in range(n): #n rounds model = base_algorithm.fit(_train) predictions = model.predict(_train) models.append(model) errors = calculate_error(predictions) _train = adjust_dataset(_train, errors) final_predictions = combine(models, test)

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

Το Adaboost είναι ένας ευρέως γνωστός αλγόριθμος που είναι μια μέθοδος ενίσχυσης. Οι ιδρυτές του Adaboost κέρδισαν το Βραβείο Gödel για τη δουλειά τους. Κυρίως, ο αλγόριθμος δέντρων αποφάσεων προτιμάται ως αλγόριθμος βάσης για το Adaboost και στη βιβλιοθήκη sklearn ο προεπιλεγμένος αλγόριθμος βάσης για το Adaboost είναι το δέντρο αποφάσεων ( AdaBoostRegressor και AdaBoostClassifier ). Όπως συζητήσαμε στην προηγούμενη παράγραφο, ισχύει η ίδια αυξητική μέθοδος για το Adaboost. Οι πληροφορίες που συλλέγονται σε κάθε βήμα του αλγορίθμου AdaBoost σχετικά με τη «σκληρότητα» κάθε δείγματος εκπαίδευσης τροφοδοτούνται στο μοντέλο. Το βήμα «προσαρμογή συνόλου δεδομένων» είναι διαφορετικό από αυτό που περιγράφεται παραπάνω και το βήμα «συνδυασμός μοντέλων» υπολογίζεται χρησιμοποιώντας σταθμισμένη ψηφοφορία.

συμπέρασμα

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

Σχετίζεται με:
  • Εισαγωγή στη Θεωρία Μηχανικής Μάθησης και τις Εφαρμογές της: Ένα οπτικό μάθημα με παραδείγματα
  • Μηχανές και εμπιστοσύνη: Πώς να μετριαστεί η προκατάληψη της AI

Ένας λόγος ενάντια σε όμορφα σχέδια εφαρμογών

Σχεδιασμός Ux

Ένας λόγος ενάντια σε όμορφα σχέδια εφαρμογών
Πώς το GWT ξεκλειδώνει την επαυξημένη πραγματικότητα στο πρόγραμμα περιήγησής σας

Πώς το GWT ξεκλειδώνει την επαυξημένη πραγματικότητα στο πρόγραμμα περιήγησής σας

Τεχνολογία

Δημοφιλείς Αναρτήσεις
Πώς να δημιουργήσετε μια εφαρμογή επεξεργασίας φυσικής γλώσσας
Πώς να δημιουργήσετε μια εφαρμογή επεξεργασίας φυσικής γλώσσας
Πρόβλεψη επενδυτικού κεφαλαίου 2017: Σημάδια κόπωσης
Πρόβλεψη επενδυτικού κεφαλαίου 2017: Σημάδια κόπωσης
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 2: Τα δυνατά σημεία και οι αδυναμίες και των δύο
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 2: Τα δυνατά σημεία και οι αδυναμίες και των δύο
Πώς να ποσοτικοποιήσετε αποτελεσματικά την αξία προϊόντος - Ένας οδηγός για τους διαχειριστές προϊόντων
Πώς να ποσοτικοποιήσετε αποτελεσματικά την αξία προϊόντος - Ένας οδηγός για τους διαχειριστές προϊόντων
Το μέλλον των ομάδων: Διαχείριση του συνδυασμένου εργατικού δυναμικού
Το μέλλον των ομάδων: Διαχείριση του συνδυασμένου εργατικού δυναμικού
 
Think Business - Πώς να αυξήσετε την αξία του σχεδιαστή σας
Think Business - Πώς να αυξήσετε την αξία του σχεδιαστή σας
Εργονομία για Ψηφιακούς Νομάδες: Εργασία στο δρόμο χωρίς να σκοτωθείτε
Εργονομία για Ψηφιακούς Νομάδες: Εργασία στο δρόμο χωρίς να σκοτωθείτε
Μια βαθιά κατάδυση στις επενδύσεις του Elon Musk: The Makings of a Billionaire
Μια βαθιά κατάδυση στις επενδύσεις του Elon Musk: The Makings of a Billionaire
Αρχιτεκτονικοί Αλγόριθμοι Βελτιστοποίησης με HorusLP
Αρχιτεκτονικοί Αλγόριθμοι Βελτιστοποίησης με HorusLP
Κοιτάζοντας τα αποτυχημένα IPO στην εποχή του μονόκερου
Κοιτάζοντας τα αποτυχημένα IPO στην εποχή του μονόκερου
Δημοφιλείς Αναρτήσεις
  • πόσες ερωτήσεις στην εξέταση λύσεων αρχιτέκτονα συνεργάτη
  • αποκριτικά μεγέθη οθόνης σχεδίασης ιστοσελίδων
  • διαφορά σε s corp και c corp
  • πώς χρησιμοποιούνται οι αρχές και τα στοιχεία του οπτικού σχεδιασμού
  • τι είναι το node.js javascript από την πλευρά του διακομιστή
  • Παράδειγμα μεικτού ακέραιου γραμμικού προγραμματισμού
Κατηγορίες
  • Κατανεμημένες Ομάδες
  • Τροποσ Ζωησ
  • Αλλα
  • Κερδοφορία & Αποδοτικότητα
  • © 2022 | Ολα Τα Δικαιώματα Διατηρούνται

    portaldacalheta.pt