Kaggle: Wo Datenwissenschaftler lernen und konkurrieren

Data Science ist trotz des Namens eher eine Kunst als eine Wissenschaft. Sie beginnen mit schmutzigen Daten und einem alten statistischen Vorhersagemodell und versuchen, mit maschinellem Lernen bessere Ergebnisse zu erzielen. Niemand überprüft Ihre Arbeit oder versucht, sie zu verbessern: Wenn Ihr neues Modell besser passt als das alte, übernehmen Sie es und fahren mit dem nächsten Problem fort. Wenn die Daten zu driften beginnen und das Modell nicht mehr funktioniert, aktualisieren Sie das Modell aus dem neuen Datensatz.

Data Science in Kaggle zu betreiben ist ganz anders. Kaggle ist eine Online-Umgebung und Community für maschinelles Lernen. Es enthält Standarddatensätze, die Hunderte oder Tausende von Einzelpersonen oder Teams zu modellieren versuchen, und für jeden Wettbewerb gibt es eine Rangliste. Viele Wettbewerbe bieten Geldpreise und Statuspunkte an, und die Teilnehmer können ihre Modelle bis zum Ende des Wettbewerbs verfeinern, um ihre Punktzahlen zu verbessern und die Leiter zu erklimmen. Winzige Prozentsätze machen oft den Unterschied zwischen Gewinnern und Zweitplatzierten.

Kaggle ist etwas, mit dem professionelle Datenwissenschaftler in ihrer Freizeit spielen können, und angehende Datenwissenschaftler können damit lernen, wie man gute Modelle für maschinelles Lernen erstellt.

Was ist Kaggle?

Umfassender betrachtet ist Kaggle eine Online-Community für Datenwissenschaftler, die Wettbewerbe für maschinelles Lernen, Datensätze, Notizbücher, Zugang zu Trainingsbeschleunigern und Bildung anbietet. Anthony Goldbloom (CEO) und Ben Hamner (CTO) gründeten Kaggle im Jahr 2010 und Google übernahm das Unternehmen im Jahr 2017.

Kaggle-Wettbewerbe haben den Stand der Technik des maschinellen Lernens in mehreren Bereichen verbessert. Eine ist die Kartierung der Dunklen Materie; Ein weiterer Grund ist die HIV / AIDS-Forschung. Wenn Sie sich die Gewinner der Kaggle-Wettbewerbe ansehen, sehen Sie viele XGBoost-Modelle, einige Random Forest-Modelle und einige tiefe neuronale Netze.

Kaggle-Wettbewerbe

Es gibt fünf Kategorien von Kaggle-Wettbewerben: Erste Schritte, Spielplatz, Vorgestellt, Forschung und Rekrutierung.

Erste Schritte Wettbewerbe sind semi-permanent und sollen von neuen Benutzern genutzt werden, die im Bereich des maschinellen Lernens nur einen Fuß in die Tür bekommen. Sie bieten keine Preise oder Punkte, haben aber reichlich Tutorials. Erste Schritte Wettbewerbe haben zweimonatige Ranglisten.

Spielplatzwettbewerbe sind einen Schritt höher als Erste Schritte in Schwierigkeitsgraden. Die Preise reichen von Lob bis hin zu kleinen Geldpreisen.

Bei den vorgestellten Wettbewerben handelt es sich um umfassende Herausforderungen beim maschinellen Lernen, die schwierige Vorhersageprobleme darstellen, im Allgemeinen mit einem kommerziellen Zweck. Ausgewählte Wettbewerbe ziehen einige der beeindruckendsten Experten und Teams an und bieten Preispools, die bis zu einer Million Dollar betragen können. Das mag entmutigend klingen, aber selbst wenn Sie keine davon gewinnen, lernen Sie aus dem Versuch und dem Lesen der Lösungen anderer Leute, insbesondere der hochrangigen Lösungen.

Forschungswettbewerbe beinhalten Probleme, die experimenteller sind als vorgestellte Wettbewerbsprobleme. Aufgrund ihres experimentellen Charakters bieten sie normalerweise keine Preise oder Punkte an.

In Rekrutierungswettbewerben konkurrieren Einzelpersonen darum, Modelle für maschinelles Lernen für von Unternehmen kuratierte Herausforderungen zu entwickeln. Am Ende des Wettbewerbs können interessierte Teilnehmer ihren Lebenslauf zur Prüfung durch den Gastgeber hochladen. Der Preis ist (möglicherweise) ein Vorstellungsgespräch bei der Firma oder Organisation, die den Wettbewerb ausrichtet.

Es gibt verschiedene Formate für Wettbewerbe. Bei einem Standard-Kaggle-Wettbewerb können Benutzer zu Beginn des Wettbewerbs auf die vollständigen Datensätze zugreifen, die Daten herunterladen, Modelle auf den Daten lokal oder in Kaggle-Notizbüchern erstellen (siehe unten), eine Vorhersagedatei erstellen und die Vorhersagen dann als Einreichung hochladen auf Kaggle. Die meisten Wettbewerbe auf Kaggle folgen diesem Format, aber es gibt Alternativen. Einige Wettbewerbe sind in Etappen unterteilt. Einige sind Code-Wettbewerbe, die in einem Kaggle-Notizbuch eingereicht werden müssen.

Kaggle-Datensätze

Kaggle hostet über 35.000 Datensätze. Diese sind in verschiedenen Veröffentlichungsformaten verfügbar, darunter CSV (Comma Separated Values) für Tabellendaten, JSON für baumartige Daten, SQLite-Datenbanken, ZIP- und 7z-Archive (häufig für Bilddatensätze verwendet) und BigQuery-Datensätze, die mehrere sind -terabyte SQL-Datasets, die auf den Servern von Google gehostet werden.

Es gibt verschiedene Möglichkeiten, Kaggle-Datensätze zu finden. Auf der Kaggle-Homepage finden Sie eine Liste der „heißen“ Datensätze und Datensätze, die von Personen hochgeladen wurden, denen Sie folgen. Auf der Seite mit den Kaggle-Datensätzen finden Sie eine Datensatzliste (ursprünglich nach "heißesten" sortiert, aber mit anderen Bestelloptionen) und einen Suchfilter. Sie können auch Tags und Tag-Seiten verwenden, um Datensätze zu suchen, z. B. //www.kaggle.com/tags/crime.

Sie können öffentliche und private Datasets auf Kaggle von Ihrem lokalen Computer, URLs, GitHub-Repositorys und Kaggle Notebook-Ausgaben erstellen. Sie können ein aus einer URL oder einem GitHub-Repository erstelltes Dataset so einstellen, dass es regelmäßig aktualisiert wird.

Derzeit verfügt Kaggle über einige COVID-19-Datensätze, -Herausforderungen und -Notizbücher. Es gab bereits mehrere Beiträge der Gemeinschaft zu den Bemühungen, diese Krankheit und das Virus, das sie verursacht, zu verstehen.

Kaggle-Notizbücher

Kaggle unterstützt drei Arten von Notizbüchern: Skripte, RMarkdown-Skripte und Jupyter-Notizbücher. Skripte sind Dateien, die alles nacheinander als Code ausführen. Sie können Notizbücher in R oder Python schreiben. R-Codierer und Personen, die Code für Wettbewerbe einreichen, verwenden häufig Skripte. Python-Codierer und Personen, die explorative Datenanalysen durchführen, bevorzugen Jupyter-Notizbücher.

Notebooks aller Art können optional über kostenlose GPU- (Nvidia Tesla P100) oder TPU-Beschleuniger verfügen und möglicherweise Google Cloud Platform-Dienste verwenden. Es gelten jedoch Kontingente, z. B. 30 Stunden GPU und 30 Stunden TPU pro Woche. Verwenden Sie grundsätzlich keine GPU oder TPU in einem Notebook, es sei denn, Sie müssen das Deep-Learning-Training beschleunigen. Für die Nutzung der Google Cloud Platform-Dienste können Gebühren für Ihr Google Cloud Platform-Konto anfallen, wenn Sie die kostenlosen Berechtigungen überschreiten.

Sie können Kaggle-Notizbüchern jederzeit Kaggle-Datensätze hinzufügen. Sie können auch Wettbewerbsdatensätze hinzufügen, jedoch nur, wenn Sie die Wettbewerbsregeln akzeptieren. Wenn Sie möchten, können Sie Notizbücher verketten, indem Sie die Ausgabe eines Notizbuchs zu den Daten eines anderen Notizbuchs hinzufügen.

Notebooks werden in Kerneln ausgeführt, bei denen es sich im Wesentlichen um Docker-Container handelt. Sie können Versionen Ihrer Notebooks während der Entwicklung speichern.

Sie können nach Notizbüchern mit einer Site-Keyword-Abfrage und einem Filter für Notizbücher suchen oder die Kaggle-Homepage durchsuchen. Sie können auch die Notizbuchliste verwenden. Wie bei Datensätzen ist die Reihenfolge der Notizbücher in der Liste standardmäßig "Hotness". Das Lesen öffentlicher Notizbücher ist ein guter Weg, um zu lernen, wie Menschen Data Science betreiben.

Sie können auf verschiedene Weise mit anderen an einem Notizbuch zusammenarbeiten, je nachdem, ob das Notizbuch öffentlich oder privat ist. Wenn es öffentlich ist, können Sie bestimmten Benutzern Bearbeitungsrechte gewähren (jeder kann es anzeigen). Wenn es privat ist, können Sie Anzeige- oder Bearbeitungsrechte gewähren.

Öffentliche API von Kaggle

Zusätzlich zum Erstellen und Ausführen interaktiver Notizbücher können Sie mit Kaggle über die Kaggle-Befehlszeile Ihres lokalen Computers interagieren, der die öffentliche Kaggle-API aufruft. Sie können die Kaggle-CLI mit dem Python 3-Installationsprogramm installieren pipund Ihren Computer authentifizieren, indem Sie ein API-Token von der Kaggle-Site herunterladen.

Die Kaggle-CLI und -API können mit Wettbewerben, Datensätzen und Notizbüchern (Kerneln) interagieren. Die API ist Open Source und wird auf GitHub unter //github.com/Kaggle/kaggle-api gehostet. Die dortige README-Datei enthält die vollständige Dokumentation für das Befehlszeilentool.

Kaggle Gemeinschaft und Bildung

Kaggle veranstaltet Community-Diskussionsforen und Mikrokurse. Zu den Forenthemen gehören Kaggle selbst, Erste Schritte, Feedback, Fragen und Antworten, Datensätze und Mikrokurse. Mikrokurse behandeln Fähigkeiten, die für Datenwissenschaftler in jeweils wenigen Stunden relevant sind: Python, maschinelles Lernen, Datenvisualisierung, Pandas, Feature-Engineering, Deep Learning, SQL, Geodatenanalyse und so weiter.

Alles in allem ist Kaggle sehr nützlich, um Data Science zu lernen und sich mit anderen in datenwissenschaftlichen Herausforderungen zu messen. Es ist auch sehr nützlich als Repository für öffentliche Standarddatensätze. Es ist jedoch kein Ersatz für kostenpflichtige Cloud Data Science-Dienste oder für Ihre eigene Analyse.