Προγραμματισμός

Kaggle: Πού μαθαίνουν και ανταγωνίζονται οι επιστήμονες δεδομένων

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

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

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

Τι είναι το Kaggle;

Εξετάζοντας πιο περιεκτικά, το Kaggle είναι μια διαδικτυακή κοινότητα για επιστήμονες δεδομένων που προσφέρει διαγωνισμούς μηχανικής μάθησης, σύνολα δεδομένων, σημειωματάρια, πρόσβαση σε επιταχυντές κατάρτισης και εκπαίδευση. Ο Anthony Goldbloom (CEO) και ο Ben Hamner (CTO) ίδρυσαν την Kaggle το 2010 και η Google απέκτησε την εταιρεία το 2017.

Οι διαγωνισμοί Kaggle έχουν βελτιώσει την κατάσταση της τέχνης μηχανικής μάθησης σε διάφορους τομείς. Κάποιος χαρτογραφεί τη σκοτεινή ύλη. Ένα άλλο είναι η έρευνα για το HIV / AIDS. Κοιτάζοντας τους νικητές των διαγωνισμών Kaggle, θα δείτε πολλά μοντέλα XGBoost, μερικά μοντέλα Random Forest και μερικά βαθιά νευρωνικά δίκτυα.

Διαγωνισμοί Kaggle

Υπάρχουν πέντε κατηγορίες διαγωνισμού Kaggle: Ξεκινώντας, Παιδική χαρά, Προτεινόμενα, Έρευνα και Προσλήψεις.

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

Οι διαγωνισμοί παιδικής χαράς είναι ένα βήμα παραπάνω Ξεκινώντας με δυσκολία. Τα έπαθλα κυμαίνονται από kudos έως μικρά βραβεία μετρητών.

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

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

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

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

Σύνολα δεδομένων Kaggle

Το Kaggle φιλοξενεί πάνω από 35 χιλιάδες σύνολα δεδομένων. Αυτές είναι σε μια ποικιλία μορφών δημοσίευσης, συμπεριλαμβανομένων τιμών διαχωρισμένων με κόμματα (CSV) για δεδομένα πίνακα, JSON για δέντρα τύπου δεδομένων, βάσεις δεδομένων SQLite, αρχεία ZIP και 7z (συχνά χρησιμοποιούνται για σύνολα δεδομένων εικόνας) και BigQuery Datasets, τα οποία είναι πολλαπλά - σύνολα δεδομένων Sterabyte που φιλοξενούνται στους διακομιστές της Google.

Υπάρχουν διάφοροι τρόποι εύρεσης συνόλων δεδομένων Kaggle. Στην αρχική σελίδα του Kaggle θα βρείτε μια λίστα με "καυτά" σύνολα δεδομένων και σύνολα δεδομένων που ανεβάζουν άτομα που ακολουθείτε. Στη σελίδα συνόλων δεδομένων Kaggle θα βρείτε μια λίστα συνόλων δεδομένων (αρχικά ταξινομήθηκε από "πιο καυτά" αλλά με άλλες επιλογές παραγγελίας) και ένα φίλτρο αναζήτησης. Μπορείτε επίσης να χρησιμοποιήσετε ετικέτες και σελίδες ετικετών για να εντοπίσετε σύνολα δεδομένων, για παράδειγμα //www.kaggle.com/tags/crime.

Μπορείτε να δημιουργήσετε δημόσια και ιδιωτικά σύνολα δεδομένων στο Kaggle από τον τοπικό υπολογιστή σας, τις διευθύνσεις URL, τα αποθετήρια GitHub και τις εξόδους Kaggle Notebook. Μπορείτε να ορίσετε ένα σύνολο δεδομένων που δημιουργήθηκε από μια διεύθυνση URL ή ένα αποθετήριο GitHub για ενημέρωση περιοδικά.

Προς το παρόν, το Kaggle διαθέτει αρκετά σύνολα δεδομένων, προκλήσεις και φορητούς υπολογιστές COVID-19. Υπήρξαν ήδη αρκετές κοινοτικές συνεισφορές στην προσπάθεια κατανόησης αυτής της ασθένειας και του ιού που την προκαλεί.

Σημειωματάρια Kaggle

Το Kaggle υποστηρίζει τρεις τύπους σημειωματάριων: σενάρια, σενάρια RMarkdown και Jupyter Notebooks. Τα σενάρια είναι αρχεία που εκτελούν τα πάντα ως κώδικα διαδοχικά. Μπορείτε να γράψετε φορητούς υπολογιστές σε R ή Python. Οι κωδικοποιητές R και τα άτομα που υποβάλλουν κώδικα για διαγωνισμούς χρησιμοποιούν συχνά σενάρια. Οι κωδικοποιητές Python και οι άνθρωποι που κάνουν διερευνητική ανάλυση δεδομένων τείνουν να προτιμούν τους Jupyter Notebooks.

Τα σημειωματάρια οποιασδήποτε λωρίδας μπορούν προαιρετικά να διαθέτουν δωρεάν GPU (Nvidia Tesla P100) ή επιταχυντές TPU και μπορεί να χρησιμοποιούν υπηρεσίες Google Cloud Platform, αλλά υπάρχουν ποσοστώσεις που ισχύουν, για παράδειγμα 30 ώρες GPU και 30 ώρες TPU ανά εβδομάδα. Βασικά, μην χρησιμοποιείτε GPU ή TPU σε ένα σημειωματάριο, εκτός εάν χρειάζεται να επιταχύνετε την εκπαίδευση σε βάθος. Η χρήση των υπηρεσιών Google Cloud Platform ενδέχεται να επιβαρύνεται με χρεώσεις στο λογαριασμό σας στο Google Cloud Platform, εάν υπερβαίνετε τα επιτρεπόμενα επίπεδα.

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

Οι φορητοί υπολογιστές λειτουργούν σε πυρήνες, οι οποίοι είναι ουσιαστικά κοντέινερ Docker. Μπορείτε να αποθηκεύσετε εκδόσεις των φορητών σας καθώς τα αναπτύσσετε.

Μπορείτε να αναζητήσετε σημειωματάρια με ένα ερώτημα λέξεων-κλειδιών ιστότοπου και ένα φίλτρο σε σημειωματάρια ή περιηγηθείτε στην αρχική σελίδα του Kaggle. Μπορείτε επίσης να χρησιμοποιήσετε την καταχώριση Notebook. Όπως τα σύνολα δεδομένων, η σειρά των φορητών υπολογιστών στη λίστα είναι από προεπιλογή "hotness". Η ανάγνωση δημόσιων σημειωματάριων είναι ένας καλός τρόπος για να μάθετε πώς οι άνθρωποι κάνουν την επιστήμη των δεδομένων.

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

Kaggle δημόσιο API

Εκτός από τη δημιουργία και τη λειτουργία διαδραστικών φορητών υπολογιστών, μπορείτε να αλληλεπιδράσετε με το Kaggle χρησιμοποιώντας τη γραμμή εντολών Kaggle από το τοπικό μηχάνημά σας, το οποίο καλεί το δημόσιο API Kaggle. Μπορείτε να εγκαταστήσετε το Kaggle CLI χρησιμοποιώντας το πρόγραμμα εγκατάστασης Python 3 κουκούτσικαι επικυρώστε τον υπολογιστή σας κατεβάζοντας ένα διακριτικό API από τον ιστότοπο Kaggle.

Το Kaggle CLI και το API μπορούν να αλληλεπιδράσουν με διαγωνισμούς, σύνολα δεδομένων και φορητούς υπολογιστές (πυρήνες). Το API είναι ανοιχτού κώδικα και φιλοξενείται στο GitHub στη διεύθυνση //github.com/Kaggle/kaggle-api. Το αρχείο README εκεί παρέχει την πλήρη τεκμηρίωση για το εργαλείο γραμμής εντολών.

Kaggle κοινότητα και εκπαίδευση

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

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