Notizen Date Scientist: Wo soll ich anfangen und ist es notwendig?

Notizen Date Scientist: Wo soll ich anfangen und ist es notwendig?

TL;DR ist ein Beitrag für Fragen/Antworten zum Thema Data Science und dazu, wie man in den Beruf einsteigt und sich darin weiterentwickelt. In dem Artikel werde ich die Grundprinzipien und FAQ analysieren und bin bereit, Ihre spezifischen Fragen zu beantworten – schreiben Sie in die Kommentare (oder in einer privaten Nachricht), ich werde versuchen, alles innerhalb weniger Tage zu beantworten.

Mit dem Aufkommen der Notizenreihe „Satanist Date“ kamen viele Nachrichten und Kommentare mit Fragen dazu, wie man anfängt und wo man gräbt, und heute werden wir die wichtigsten Fähigkeiten und Fragen analysieren, die nach den Veröffentlichungen auftauchten.

Alles hier Gesagte erhebt keinen Anspruch auf absolute Wahrheit und stellt die subjektive Meinung des Autors dar. Wir werden uns die wichtigsten Dinge ansehen, die in diesem Prozess am wichtigsten erscheinen.

Warum genau ist das nötig?

Damit das Ziel besser erreichbar ist, damit es zumindest einigermaßen konkret aussieht – Sie möchten DS oder Research Scientist bei Facebook/Apple/Amazon/Netflix/Google werden – schauen Sie sich die Anforderungen, Sprachen und notwendigen Fähigkeiten an speziell für welche Position. Wie läuft der Einstellungsprozess ab? Wie läuft ein typischer Tag in einer solchen Rolle ab? Wie sieht das durchschnittliche Profil einer Person aus, die dort arbeitet?

Das Gesamtbild ist oft, dass eine Person nicht wirklich versteht, was sie genau will, und es nicht ganz klar ist, wie sie sich auf dieses unklare Bild vorbereiten soll – es lohnt sich also, zumindest einen groben Plan zu haben, was genau man will.

Konkretisieren Sie die aktuelle Zielansicht

Auch wenn es sich im Laufe der Zeit ändert und es im Allgemeinen normal ist, Pläne im Laufe des Spiels zu ändern, lohnt es sich, ein Ziel zu haben, sich darauf zu konzentrieren und es regelmäßig zu bewerten und zu überdenken.

Wird es so sein oder ist es immer noch relevant?

Bis man in eine Position hineinwächst.

Stellen Sie sich vor, Sie müssen vor Ihrer Stelle promovieren, zwei bis drei Jahre in der Branche arbeiten und sich im Allgemeinen beim Meditieren in einem Kloster die Haare schneiden – wird die Situation bei Data Science nicht die gleiche sein wie früher bei Wirtschaftswissenschaftlern? Anwälte? Wird sich in dem Bereich, den Sie verfolgen möchten, alles bis zur Unkenntlichkeit verändern?

Besteht nicht eine gute Chance, dass jetzt alle dorthin eilen und wir ein Bild sehen, in dem es eine breite Schicht von Menschen gibt, die versuchen, in den Beruf einzusteigen – und es wird einfach nur eine dürftige Ausgangslage geben?

Es kann sich lohnen, bei der Berufswahl aktuelle Trends zu berücksichtigen, nicht nur die aktuelle Lage auf dem Arbeitsmarkt, sondern auch Ihre Vorstellung davon, wie sich dieser verändert und wo er steht.

Der Autor hatte zum Beispiel nicht vor, Satanist zu werden, aber während seiner Doktorarbeit arbeitete er an Drittprojekten, die starke Gemeinsamkeiten mit DS aufwiesen, und am Ende des Graduiertenstudiums wechselte er natürlich in die Umwelt, da er dort etwas Gutes sah Position.

Wenn sich im Laufe des Stücks herausstellt, dass es notwendig sein wird, woanders hinzugehen – weil dort jetzt die meiste Bewegung ist und die interessantesten Aktionen stattfinden, dann werden wir natürlich dorthin wechseln.

Aufschlüsselung der Fähigkeiten

Dies sind bedingte Kategorien von Fähigkeiten, die meiner Meinung nach für eine vollständige und effektive Arbeit in DS von entscheidender Bedeutung sind. Ich werde Englisch separat hervorheben – lernen Sie, was auch immer Sie in CS tun. Als nächstes folgen die Schlüsselkategorien.

Programmierung/Scripting

Mit welchen Sprachen werden Sie sich sicher vertraut machen? Python? Java? Shell-Scripting? Lua? SQL? C++?

Was Sie genau können müssen und warum Sie programmieren müssen – das Stellenangebot ist hier sehr unterschiedlich.

Ich muss zum Beispiel oft komplexe Logik, Abfragen, Modelle und Analysen implementieren und allgemein interpretierte Systeme entwickeln, aber es gibt fast nie Anforderungen an die Geschwindigkeit des Codes, außer den allgemeinsten und vernünftigsten.

Daher unterscheiden sich meine Fähigkeiten stark von denen derjenigen, die die Tensorflow-Bibliothek schreiben und über die Optimierung des Codes für eine effiziente Nutzung des L1-Cache und ähnliche Dinge nachdenken. Schauen Sie sich also an, was genau Sie benötigen, und bewerten Sie den richtigen Weg zum Lernen.

Für Python gibt es beispielsweise bereits Leute Karte Sprachen lernen.

Sicherlich gibt es bereits erfahrene Ratschläge und gute Quellen für Ihre Bedürfnisse – Sie müssen sich für eine Liste entscheiden und mit der Arbeit daran beginnen.

Geschäftsprozesse verstehen

Ohne sie geht es nirgendwohin: Sie müssen verstehen, warum Sie in diesem Prozess gebraucht werden, was Sie tun und warum. Oftmals ist es das, was Ihnen viel Zeit sparen, Ihren Nutzen maximieren und keine Zeit und Ressourcen mit Blödsinn verschwenden kann.

Normalerweise stelle ich mir folgende Fragen:

  • Was genau mache ich im Unternehmen?
  • Warum?
  • Wer wird es nutzen und wie?
  • Welche Möglichkeiten habe ich?
  • Wo liegen die Grenzen der Parameter?

Hier noch ein bisschen mehr Details zu den Parametern: Man kann das Arbeitsszenario oft stark verändern, wenn man weiß, dass etwas geopfert werden kann: zum Beispiel die Interpretierbarkeit oder umgekehrt, ein paar Prozent werden hier keine Rolle spielen und wir haben eine sehr schnelle Lösung, und der Kunde braucht sie, weil er für die Zeit bezahlt, die die Pipeline in AWS läuft.

Математика

Hier denkst und verstehst du alles selbst – ohne Grundkenntnisse der Mathematik bist du nichts weiter als Affen mit einer Granate (sorry Random Forest) – also musst du zumindest die grundlegenden Dinge verstehen. Wenn ich eine sehr minimale Liste zusammenstellen würde, würde sie Folgendes enthalten:

  • Lineare Algebra – eine große Anzahl an Ressourcen finden Sie ganz einfach bei Google. Suchen Sie nach dem, was am besten zu Ihnen passt.
  • Mathematische Analyse – (zumindest in den ersten beiden Semestern);
  • Die Wahrscheinlichkeitstheorie ist im maschinellen Lernen allgegenwärtig;
  • Kombinatorik – sie ist tatsächlich eine Ergänzung zur Theorie;
  • Graphentheorie – mindestens BASIC;
  • Algorithmen – zumindest für die ersten beiden Semester (siehe Cormens Empfehlungen in seinem Buch);
  • Mathlogic – zumindest grundlegend.

Praktische Datenanalyse und Visualisierung

Eines der wichtigsten Dinge ist, keine Angst davor zu haben, sich mit Daten die Hände schmutzig zu machen, eine umfassende Analyse des Datensatzes und des Projekts durchzuführen und eine schnelle Datenvisualisierung zu erstellen.

Die explorative Datenanalyse sollte einfach zu etwas Selbstverständlichem werden, wie alle anderen Datentransformationen und die Möglichkeit, aus Unix-Knoten eine einfache Pipeline zu erstellen (siehe vorherige Artikel) oder ein lesbares und verständliches Notizbuch zu schreiben.

Ich möchte die Visualisierung erwähnen: Es ist besser, einmal zu sehen, als hundertmal zu hören.

Einem Manager ein Diagramm zu zeigen ist hundertmal einfacher und klarer als eine Reihe von Zahlen, also sind Matplotlib, Seaborn und ggplot2 Ihre Freunde.

Soft Skills

Ebenso wichtig ist es, dass Sie Ihre Ideen sowie Ergebnisse und Bedenken (usw.) anderen mitteilen können – stellen Sie sicher, dass Sie die Aufgabe sowohl in technischer als auch in geschäftlicher Hinsicht klar formulieren können.

Sie können Kollegen, Managern, Vorgesetzten, Kunden und allen anderen, die es benötigen, erklären, was passiert, welche Daten Sie verwenden und welche Ergebnisse Sie erzielt haben.

Ihre Diagramme und Dokumentationen sollten ohne Sie gelesen werden. Das heißt, Sie müssen nicht zu Ihnen gehen, um zu verstehen, was dort geschrieben steht.

Sie können eine klare Präsentation halten, um den Punkt zu verdeutlichen und/oder das Projekt/Ihre Arbeit dokumentieren.

Sie können Ihre Position begründet und unemotional äußern, „Ja/Nein“ sagen oder eine Entscheidung hinterfragen/befürworten.

Ausbildung

Es gibt viele verschiedene Orte, an denen Sie all dies lernen können. Ich werde eine kurze Liste geben – ich habe alles davon ausprobiert und um ehrlich zu sein, hat jeder Punkt seine Vor- und Nachteile. Probieren Sie es aus und entscheiden Sie, was zu Ihnen passt. Ich empfehle jedoch dringend, mehrere Optionen auszuprobieren und nicht bei einer hängen zu bleiben.

  • Online-Kurse: Coursera, Udacity, Edx usw.;
  • Neue Schulen: online und offline – SkillFactory, ShAD, MADE;
  • Klassische Schulen: universitäre Masterstudiengänge und Fortbildungskurse;
  • Projekte – Sie können einfach Aufgaben auswählen, die Sie interessieren, sie ausschneiden und auf Github hochladen;
  • Praktika – hier kann man schwerlich etwas vorschlagen, man muss schauen, was es gibt und passende Möglichkeiten finden.

Ist es nötig?

Abschließend möchte ich wahrscheinlich drei persönliche Grundsätze hinzufügen, denen ich selbst zu folgen versuche.

  • Sollte interessant sein;
  • Bringen Sie innere Freude (= verursachen Sie zumindest kein Leid);
  • „Um dein zu sein.“

Warum sie? Es ist schwer vorstellbar, jeden Tag etwas zu tun und es dann nicht zu genießen oder kein Interesse daran zu haben. Stellen Sie sich vor, Sie sind Arzt und hassen die Kommunikation mit Menschen – das kann natürlich irgendwie funktionieren, aber Sie werden sich ständig unwohl fühlen mit dem Strom von Patienten, die Sie etwas fragen wollen. Das funktioniert auf Dauer nicht.

Warum habe ich das innere Vergnügen ausdrücklich erwähnt? Dies scheint mir für die Weiterentwicklung und grundsätzlich den Lernprozess notwendig zu sein. Es macht mir wirklich Spaß, wenn es mir gelingt, eine komplexe Funktion fertigzustellen und ein Modell zu erstellen oder einen wichtigen Parameter zu berechnen. Ich genieße es, wenn mein Code ästhetisch schön und gut geschrieben ist. Daher ist das Erlernen von etwas Neuem interessant und erfordert nicht direkt eine nennenswerte Motivation.

„Dein sein“ ist das gleiche Gefühl, das ungefähr das ist, was du tun wolltest. Ich habe eine kleine Geschichte. Seit meiner Kindheit interessiere ich mich für Rockmusik (und Metal – SALMON!) und wollte wie so viele andere spielen lernen, und das ist alles. Es stellte sich heraus, dass ich kein Gehör und keine Stimme hatte – das störte mich überhaupt nicht (und ich muss sagen, das stört nicht viele Künstler direkt auf der Bühne), und als ich noch in der Schule war, bekam ich eine Gitarre … und Mir wurde klar, dass ich es nicht wirklich mag, stundenlang darauf zu sitzen und zu spielen. Es ging hart voran, es kam mir immer so vor, als würde irgendein Blödsinn dabei herauskommen – ich hatte überhaupt keine Freude daran und fühlte mich einfach mies, dumm und völlig unfähig. Ich habe mich buchstäblich dazu gezwungen, mich für den Unterricht hinzusetzen, und im Allgemeinen war es kein gutes Futter für das Pferd.

Gleichzeitig konnte ich ganz ruhig stundenlang da sitzen und ein Spielzeug entwickeln, ein Skript verwenden, um etwas auf Flash (oder etwas anderes) zu animieren, und ich war wild motiviert, Elemente im Spiel fertigzustellen oder mich mit der Bewegungsmechanik und/oder zu befassen Anbindung von Bibliotheken, Plugins und allem anderen von Drittanbietern.

Und irgendwann wurde mir klar, dass Gitarrenspielen nicht mein Ding ist und dass ich lieber zuhöre als spiele. Und meine Augen funkelten, als ich Spiele und Code schrieb (in diesem Moment hörte ich alle möglichen Metal-Songs), und das gefiel mir damals, und das hätte ich auch tun sollen.

Haben Sie noch weitere Fragen?

Natürlich konnten wir nicht alle Themen und Fragen durchgehen, also schreibt mir Kommentare und schreibt mir eine PN – ich freue mich immer über Fragen.

Notizen Date Scientist: Wo soll ich anfangen und ist es notwendig?

Notizen Date Scientist: Wo soll ich anfangen und ist es notwendig?

Source: habr.com