Bemærkninger Datoforsker: hvor skal man starte, og er det nødvendigt?

Bemærkninger Datoforsker: hvor skal man starte, og er det nødvendigt?

TL;DR er et indlæg for spørgsmål/svar om Data Science og hvordan man går ind i faget og udvikler sig i det. I artiklen vil jeg analysere de grundlæggende principper og FAQ og er klar til at besvare dine specifikke spørgsmål - skriv i kommentarerne (eller i en privat besked), jeg vil forsøge at svare på alt inden for et par dage.

Med fremkomsten af ​​"Satanist Date"-serien af ​​noter kom der mange beskeder og kommentarer med spørgsmål om, hvordan man starter og hvor man skal grave, og i dag vil vi analysere de vigtigste færdigheder og spørgsmål, der opstod efter udgivelserne.

Alt anført her hævder ikke at være den ultimative sandhed og er forfatterens subjektive mening. Vi vil se på de vigtigste ting, der synes vigtigst i processen.

Hvorfor er det helt præcist nødvendigt?

For at målet bedre kan nås, så det i det mindste ser noget specifikt ud - vil du gerne blive DS eller Research Scientist hos Facebook/Apple/Amazon/Netflix/Google - se på kravene, sprogene og de nødvendige færdigheder specifikt til hvilken stilling. Hvad er ansættelsesprocessen? Hvordan går en typisk dag igennem i sådan en rolle? Hvordan ser den gennemsnitlige profil ud for en person, der arbejder der?

Ofte er det overordnede billede, at en person ikke rigtig forstår, hvad han præcist vil have, og det er ikke helt klart, hvordan man forbereder sig på dette uklare billede - så det er værd at have i det mindste en grov plan for, hvad man præcist vil have.

Konkretiser den aktuelle målvisning

Selvom det ændrer sig undervejs, og det generelt er normalt at ændre planer i løbet af legen, er det værd at have et mål og fokusere på det, periodisk evaluere og gentænke.

Bliver det eller er det stadig relevant?

Når du vokser ind i en stilling.

Forestil dig, at du inden din stilling skal tage en ph.d., arbejde 2-3 år i branchen og generelt klippe dit hår, mens du mediterer i et kloster - vil situationen med Data Science ikke være den samme, som den engang var med økonomer og advokater? Vil alt ændre sig til ukendelighed i det område, du ønsker at forfølge?

Er der ikke en god chance for, at alle skynder sig derned nu, og vi vil se et billede, hvor der er et bredt lag af mennesker, der forsøger at komme ind i faget - og der vil simpelthen være en mager startposition.

Det kan være værd at overveje de aktuelle tendenser, når du vælger en vej, ikke kun den aktuelle situation på arbejdsmarkedet, men også din idé om, hvordan den ændrer sig, og hvor den er.

For eksempel havde forfatteren ikke planer om at blive satanist, men i løbet af sin ph.d.-grad arbejdede han på tredjepartsprojekter, der havde stærke kompetencer til fælles med DS, og i slutningen af ​​ph.d.-skolen skiftede han naturligvis til miljøet, da han så en god position.

Hvis det i løbet af stykket viser sig, at det bliver nødvendigt at flytte et andet sted hen - fordi der nu er mest bevægelse, og der sker alt det mest interessante, så flytter vi naturligvis dertil.

Færdighedsopdeling

Det er betingede kategorier af færdigheder, som efter min mening er nøglen til fuldt og effektivt arbejde i DS. Jeg fremhæver engelsk separat - lær hvad end du laver i CS. Dernæst er nøglekategorierne.

Programmering/Scripting

Hvilke sprog er du sikker på at stifte bekendtskab med? Python? Java? Shell scripting? Lua? SQL? C++?

Hvad skal du helt præcist kunne og hvorfor i forhold til programmering – udvalget af stillinger her varierer meget.

For eksempel skal jeg ofte implementere kompleks logik, forespørgsler, modeller, analyser og generelt udvikle fortolkede systemer, men der er næsten aldrig krav til kodens hastighed, bortset fra de mest generelle og rimelige.

Derfor er mit færdighedssæt meget anderledes end dem, der skriver Tensorflow-biblioteket og tænker på at optimere koden til effektiv brug af l1-cachen og lignende ting, så se på, hvad præcis du har brug for, og vurder den rigtige vej til læring.

For eksempel, for python, gør folk allerede op map sprogindlæring.

Der er helt sikkert allerede erfarne råd og gode kilder til dine behov - du skal beslutte dig for en liste og begynde at arbejde på den.

Forståelse af forretningsprocesser

Du kan ikke gå nogen steder uden det: du skal forstå, hvorfor du er nødvendig i denne proces, hvad du gør og hvorfor. Det er ofte det, der kan spare dig for en masse tid, maksimere din fordel og ikke spilde tid og ressourcer på bullshit.

Normalt stiller jeg mig selv følgende spørgsmål:

  • Hvad laver jeg helt præcist i virksomheden?
  • Hvorfor?
  • Hvem vil bruge det og hvordan?
  • Hvilke muligheder har jeg?
  • Hvad er grænserne for parametrene?

Her er lidt flere detaljer om parametrene: du kan ofte i høj grad ændre arbejdsscenariet, hvis du ved, at noget kan ofres: for eksempel fortolkning eller omvendt, et par procent vil ikke spille en rolle her, og vi har en meget hurtig løsning, og kunden har brug for det, fordi han betaler for den tid, pipelinen kører i AWS.

matematik

Her tænker og forstår du alt selv - uden viden om grundlæggende matematik er du ikke andet end aber med en granat (undskyld Random Forest) - så du skal i det mindste forstå de grundlæggende ting. Hvis jeg skulle lave en meget minimal liste, ville den omfatte:

  • Lineær algebra - et stort antal ressourcer er nemme at Google, se efter hvad der passer dig bedst;
  • Matematisk analyse - (mindst i de første to semestre);
  • Sandsynlighedsteori er overalt i maskinlæring;
  • Kombinatorik – det er faktisk komplementært til teorien;
  • Grafteori - mindst BASIC;
  • Algoritmer - i hvert fald for de første to semestre (se Cormens anbefalinger i hans bog);
  • Mathlogic - i det mindste grundlæggende.

Praktisk dataanalyse og visualisering

En af de vigtigste ting er at være i stand til ikke at være bange for at få hænderne snavset med data og foretage en omfattende analyse af datasættet, projektet og skabe en hurtig datavisualisering.

Udforskende dataanalyse skal simpelthen blive noget naturligt, ligesom alle andre datatransformationer og muligheden for at skabe en simpel pipeline fra unix-noder (se tidligere artikler) eller skrive en læsbar og forståelig notesbog.

Jeg vil gerne nævne visualisering: det er bedre at se én gang end at høre hundrede gange.

At vise en graf til en leder er hundrede gange nemmere og tydeligere end et sæt tal, så matplotlib, seaborn og ggplot2 er dine venner.

Bløde værdier

Lige så vigtigt er det at kunne formidle dine ideer, samt resultater og bekymringer (osv.) til andre – sørg for, at du klart kan formulere opgaven både teknisk og forretningsmæssigt.

Du kan forklare kolleger, ledere, overordnede, kunder og alle andre, der har brug for det, hvad der sker, hvilke data du bruger, og hvilke resultater du fik.

Dine diagrammer og dokumentation bør læses uden dig. Det vil sige, at du ikke behøver at gå til dig for at forstå, hvad der står der.

Du kan lave en klar præsentation for at få pointen igennem og/eller dokumentere projektet/dit arbejde.

Du kan formidle din holdning på en begrundet og følelsesløs måde, sige "ja/nej" eller stille spørgsmålstegn ved/støtte en beslutning.

uddannelse

Der er mange forskellige steder, hvor du kan lære alt dette. Jeg vil give en kort liste - jeg prøvede alt fra det, og for at være ærlig har hvert element sine fordele og ulemper. Prøv det og beslut dig for, hvad der passer dig, men jeg anbefaler stærkt, at du prøver flere muligheder og ikke bliver hængende i én.

  • Online kurser: coursera, udacity, Edx, etc;
  • Nye skoler: online og offline - SkillFactory, ShAD, MADE;
  • Klassiske skoler: universitets masteruddannelser og avancerede uddannelseskurser;
  • Projekter - du kan blot vælge opgaver, der interesserer dig, og klippe dem, uploade dem til github;
  • Praktikpladser - det er svært at foreslå noget her; du skal kigge efter, hvad der er til rådighed, og finde passende muligheder.

Er det nødvendigt?

Afslutningsvis vil jeg nok tilføje tre personlige principper, som jeg selv forsøger at følge.

  • Det burde være interessant;
  • Bringe indre nydelse (= i det mindste ikke forårsage lidelse);
  • "At være din."

Hvorfor dem? Det er svært at forestille sig at gøre noget hver dag og ikke nyde det eller ikke være interesseret. Forestil dig, at du er læge, og du hader at kommunikere med mennesker - dette kan selvfølgelig på en eller anden måde fungere, men du vil konstant være utilpas med strømmen af ​​patienter, der vil spørge dig om noget. Dette virker ikke i det lange løb.

Hvorfor nævnte jeg specifikt intern nydelse? Det forekommer mig, at det er nødvendigt for videre udvikling og i princippet læringsprocessen. Jeg nyder det virkelig, når jeg formår at færdiggøre en eller anden kompleks funktion og bygge en model eller beregne en vigtig parameter. Jeg nyder det, når min kode er æstetisk smuk og velskrevet. Derfor er det interessant at lære noget nyt og kræver ikke direkte nogen væsentlig motivation.

"At være din" er den samme følelse af, at det nogenlunde var det, du ønskede at gøre. Jeg har en lille historie. Siden barndommen har jeg været interesseret i rockmusik (og metal - SALMON!), og som så mange andre ville jeg lære at spille, og det er alt. Det viste sig, at jeg ingen hørelse og ingen stemme havde - det generede mig overhovedet ikke (og jeg må sige, at det ikke generer mange kunstnere lige på scenen), og da jeg stadig gik i skole, fik jeg en guitar... og det blev klart, at jeg egentlig ikke kan lide at sidde i timevis og spille på det. Det gik hårdt, det forekom mig altid, at der kom en eller anden form for bullshit ud - jeg havde overhovedet ingen glæde af det og følte mig bare elendig, dum og fuldstændig ude af stand. Jeg tvang bogstaveligt talt mig selv til at sætte mig ned til undervisning, og generelt var det ikke godt foder til hesten.

Samtidig kunne jeg ganske roligt sidde i timevis og udvikle noget legetøj, bruge et script til at animere noget på flash (eller noget andet), og jeg var vildt motiveret til at afslutte elementer i spillet eller beskæftige mig med bevægelsesmekanismerne og/eller tilslutning af tredjepartsbiblioteker, plugins og alt muligt andet.

Og på et tidspunkt indså jeg, at det ikke er min ting at spille guitar, og at jeg virkelig kan lide at lytte, ikke at spille. Og mine øjne funklede, når jeg skrev spil og kode (lyttede til al slags metal i det øjeblik), og det var det, jeg kunne lide dengang, og det skulle jeg have gjort.

Har du andre spørgsmål?

Vi kunne selvfølgelig ikke gennemgå alle emner og spørgsmål, så skriv kommentarer og PM mig - jeg er altid glad for at have spørgsmål.

Bemærkninger Datoforsker: hvor skal man starte, og er det nødvendigt?

Bemærkninger Datoforsker: hvor skal man starte, og er det nødvendigt?

Kilde: www.habr.com

Tilføj en kommentar