Als u een ontwikkelaar bent die overgaat in data science, zijn hier uw beste bronnen

Het lijkt erop dat iedereen tegenwoordig datawetenschapper wil zijn - van promovendi tot data-analisten tot je oude kamergenoot die Linkedin je blijft berichten om 'koffie te pakken'.

Misschien heb je dezelfde flauw idee dat je op zijn minst een aantal gegevenswetenschappelijke posities moet verkennen en moet zien waar de hype over gaat. Misschien heb je artikelen als Vicki Boykis gezien 'Data Science' is anders nu staat:

Wat duidelijk wordt, is dat, in de late fase van de hype-cyclus, data science asymptotisch dichter bij engineering komt, en de vaardigheden die datawetenschappers nodig hebben om vooruit te gaan, zijn minder visualisatie en op statistieken gebaseerd, en meer in lijn met traditionele computerwetenschap ...:
Concepten als unit testing en continue integratie vonden snel hun weg in het jargon en de toolset die gewoonlijk wordt gebruikt door datawetenschappers en numerieke wetenschappers die werken aan ML-engineering.

of tweets zoals die van Tim Hopper:

Wat niet duidelijk is, is hoe je je ervaring als software-ingenieur kunt inzetten voor een functie in data science. Enkele andere vragen die u heeft, zijn:

Wat moet ik prioriteit geven aan leren?

Zijn er best practices of tools die verschillen voor datawetenschappers?

Zal mijn huidige vaardigheden worden overgedragen naar een rol in data science?

Dit artikel geeft een achtergrond over de rol van datawetenschapper en waarom uw achtergrond geschikt is voor datawetenschap, plus concrete stapsgewijze acties die u als ontwikkelaar kunt ondernemen om datawetenschap te verbeteren.

Wil je de nieuwste data science-functies zien? Abonneer u op de tweewekelijkse ML Jobs-nieuwsbrief voor nieuwe vacatures voor data science in uw inbox.

Data Scientist versus Data Engineer

Allereerst moeten we onderscheid maken tussen twee complementaire rollen: Data Scientist versus Data Engineer. Hoewel beide rollen omgaan met machine learning-modellen, variëren hun interactie met deze modellen en de vereisten en aard van het werk voor Data Scientists en Data Engineers sterk.

Opmerking: de functie Data Engineer die gespecialiseerd is in machine learning kan zich ook manifesteren in functiebeschrijvingen als ‘Software Engineer, Machine Learning’ of ‘Machine Learning Engineers’

Als onderdeel van een workflow voor machine learning zal datawetenschapper de benodigde statistische analyse uitvoeren om te bepalen welke benadering van machine learning moet worden gebruikt, vervolgens beginnen met prototypen en die modellen uitbouwen.

Machineleertechnici werken vaak samen met datawetenschappers voor en na dit modelleringsproces: (1) datapijplijnen bouwen om gegevens in deze modellen te voeren en (2) een engineeringsysteem ontwerpen dat deze modellen dient om een ​​continue modelgezondheid te garanderen.

Het onderstaande diagram is een manier om dit continuüm van vaardigheden te bekijken:

Er is een schat aan online bronnen over het verschil tussen Data Scientists en Data Engineers - bekijk zeker:

  • Panoply: wat is het verschil tussen een data-engineer en een data-wetenschapper?
  • Springplank: Machine Learning Engineer versus Data Scientist
  • O'Reilly: Data-ingenieurs versus data-wetenschappers

Als een disclaimer behandelt dit artikel in de eerste plaats de rol van Data Scientist met enige knipoog naar de kant van Machine Learning Engineering (vooral relevant als je naar een positie in een kleiner bedrijf kijkt waar je misschien als beide moet dienen). Als u wilt weten hoe u de overstap kunt maken naar een Data Engineer of Machine Learning Engineer, laat het ons dan weten in de reacties hieronder!

Uw voordeel als ontwikkelaar

Ten koste van iedereen, klassen rond machine learning zoals ‘Inleiding tot Data Science in Python’ of Coursera cursus van Andrew Ng hebben geen betrekking op concepten en best practices van software engineering zoals unit testing, het schrijven van modulaire herbruikbare code, CI / CD of versiebeheer. Zelfs enkele van de meest geavanceerde machine learning-teams gebruiken deze praktijken nog steeds niet voor hun machine learning-code, wat leidt tot een verontrustende trend ...

Pete Warden omschreef deze trend als ‘de machinaal leren reproduceerbaarheidscrisis’:

we zijn nog steeds terug in de donkere eeuwen als het gaat om het volgen van veranderingen en het opnieuw opbouwen van modellen vanaf nul. Het is zo erg dat het soms voelt alsof je een stap terug doet in de tijd naar toen we codeerden zonder broncontrole.

Hoewel je deze vaardigheden op het gebied van ‘software engineering’ mogelijk niet expliciet in de functiebeschrijvingen van gegevenswetenschappers ziet, helpt een goede kennis van deze vaardigheden als onderdeel van je achtergrond al 10x je werk als gegevenswetenschapper. Bovendien worden ze gebruikt wanneer het tijd is om die programmeervragen te beantwoorden tijdens je data science-interview.

Bekijk voor een interessant perspectief van de andere kant het stuk van Trey Causey over 'Software-ontwikkelvaardigheden voor datawetenschappers' over vaardigheden die hij adviseert dat datawetenschappers moeten leren om 'betere code te schrijven, beter te communiceren met softwareontwikkelaars en je uiteindelijk tijd en hoofdpijn”.

Ramping up op data science

Het is geweldig dat je een goede basis hebt met je software engineering achtergrond, maar wat is de volgende stap om datawetenschapper te worden? De tweet van Josh Will over de definitie van een datawetenschapper is verrassend nauwkeurig:

Het verwijst naar een van de onderwerpen die u moet bespreken als u geïnteresseerd bent in een functie of carrière als gegevenswetenschapper: statistieken. In dit volgende gedeelte behandelen we geweldige bronnen voor:

  • ML-specifieke kennis opbouwen
  • Kennis van de bouwsector
  • Hulpmiddelen in de ML-stapel
  • Vaardigheden en kwalificaties

ML-specifieke kennis opbouwen

Het is het meest effectief om een ​​combinatie van op theorie gebaseerde kennis rond waarschijnlijkheid en statistieken op te bouwen, evenals toegepaste vaardigheden in dingen zoals data wrangling of trainingsmodellen op GPU's / gedistribueerde computers.

Een manier om de kennis die u opdoet te kaderen, is om deze te vergelijken met de workflow voor machine learning.

Een vereenvoudigde weergave van de workflow voor machinaal leren
Bekijk deze gedetailleerde workflow van Skymind AI

Hier noemen we enkele van de beste bronnen die u kunt vinden over machine learning. Het zou onmogelijk zijn om een ​​uitputtende lijst te hebben en om ruimte (en leestijd) te besparen, hebben we geen zeer populaire bronnen genoemd, zoals de cursus Coursera van Andrew Ng of Kaggle.

cursussen:

  • Fast.ai MOOC (gratis cursussen die zeer toegepaste vaardigheden onderwijzen in praktisch diep leren voor codeerders, geavanceerde diep leren voor codeerders, computationele lineaire algebra en introductie tot machinaal leren voor codeerders)
  • Khan Academie
  • 3Blue1 Bruin en wiskundig kanaal voor YouTube-kanalen
  • Udacity cursussen (inclusief Preprocessing voor Machine Learning in Python)
  • Springboard AI / ML-specifiek spoor

Leerboeken: * probeerde voor de meeste hiervan gratis PDF's online te vinden *

  • Probabilistic Programming & Bayesian Methods for Hackers
  • Waarschijnlijkheid en willekeurige processen
  • Elementen van statistiek leren
  • Lineaire algebra goed gedaan
  • Inleiding tot lineaire algebra
  • Algoritme ontwerp

Gidsen:

  • Handleiding Google Machine-ontwikkelaars
  • Masteryhandleidingen voor Machine Learning (voor een goed startpunt, zie deze minicursus over Python Machine Learning)
  • Pyimagesearch (voor computer vision)

Meetups: * voornamelijk op NYC gebaseerde *

  • Papers We Love
  • NYC Kunstmatige intelligentie & machinaal leren
  • DataCouncil.ai
  • NY Kunstmatige intelligentie
Bekijk voor een cool startpunt Will Wolf's ‘Open-Source Machine Learning Masters’ over hoe je je tijd kunt structureren over het bestuderen van specifieke onderwerpen en het werken aan projecten om expertise te tonen op een goedkope externe locatie.

Industrie-specifieke kennis opbouwen

Als u een vermoeden heeft dat u een specifieke bedrijfstak wilt zijn, zoals gezondheidszorg, financiële diensten, consumentengoederen, detailhandel, enz ..., is het van onschatbare waarde om de pijnpunten en ontwikkelingen van die bedrijfstak bij te houden wat betreft gegevens en machines aan het leren.

Een pro-tip = u kunt de websites van verticaal-specifieke AI-startups scannen en zien hoe zij hun waardepropositie positioneren en waar machine learning een rol speelt. Dit geeft u ideeën voor specifieke gebieden van machine learning om te bestuderen en onderwerpen voor projecten om uw werk onder de aandacht te brengen.

We kunnen een voorbeeld doorlopen: stel dat ik geïnteresseerd ben in werken in de gezondheidszorg.

  1. Via een snelle google-zoekopdracht naar 'machine learning healthcare' vond ik deze lijst van Healthcareweekly.com op ‘Best Healthcare Startups to Watch for in 2019’
U kunt ook snel zoeken op Crunchbase of AngelList met "gezondheidszorg" als trefwoord

2. Laten we een van de bedrijven op de lijst, BenevolentAI, als voorbeeld nemen.

3. De website van BenevolentAI verklaart:

Wij zijn een AI-bedrijf met end-to-end-mogelijkheden, van vroege geneesmiddelenontdekking tot laat stadium klinische ontwikkeling. BenevolentAI combineert de kracht van computationele geneeskunde en geavanceerde AI met de principes van open systemen en cloud computing om de manier te veranderen waarop geneesmiddelen worden ontworpen, ontwikkeld, getest en op de markt gebracht.
We hebben het Benevolent Platform gebouwd om ziekten beter te begrijpen en nieuwe, en bestaande behandelingen te verbeteren, op basis van enorme hoeveelheden biomedische informatie. Wij geloven dat onze technologie wetenschappers in staat stelt om medicijnen sneller en kostenefficiënter te ontwikkelen.
Elke 30 seconden wordt een nieuw onderzoek gepubliceerd, maar wetenschappers gebruiken momenteel slechts een fractie van de beschikbare kennis om de oorzaak van de ziekte te begrijpen en nieuwe behandelingen voor te stellen. Ons platform verzamelt, 'leest' en contextualiseert enorme hoeveelheden informatie uit schriftelijke documenten, databases en experimentele resultaten. Het is in staat om oneindig veel meer aftrekkingen en gevolgtrekkingen te maken over deze ongelijksoortige, complexe gegevensbronnen, door relaties, trends en patronen te identificeren en te creëren die een mens onmogelijk alleen zou kunnen maken.

4. U kunt onmiddellijk zien dat BenevolentAI natuurlijke taalverwerking (NLP) gebruikt en waarschijnlijk met enkele kennisgrafieken werkt als ze relaties tussen ziekten en behandelingsonderzoek identificeren

5. Als u de carrièrepagina van BenevolentAI bekijkt, kunt u zien dat zij een Senior Machine Learning Researcher inhuren. Dit is een senior functie, dus het is geen perfect voorbeeld, maar bekijk hieronder de vaardigheden en kwalificaties waar ze om vragen:

Opmerking:

  • natuurlijke taalverwerking, kennisgrafiek, actief leren en biochemische modellering
  • gestructureerde en ongestructureerde gegevensbronnen
  • Bayesiaanse modelbenaderingen
  • kennis van moderne tools voor ML

Dit zou u enkele stappen moeten geven voor wat u vervolgens moet benaderen:

  • werken met gestructureerde gegevens
  • werken met ongestructureerde gegevens
  • classificeren van relaties in kennisgrafieken (zie hier een goede bron)
  • Bayesiaanse waarschijnlijkheid en benaderingen van modellen leren
  • werken aan een NLP-project (dus tekstgegevens)

We bevelen niet aan dat u zich aanmeldt voor de bedrijven die u via uw zoekopdracht vindt, maar zien eerder hoe ze de pijnpunten van hun klanten beschrijven, de waardeproposities van hun bedrijf en wat voor soort vaardigheden ze in hun functiebeschrijvingen vermelden om uw onderzoek te begeleiden.

Hulpmiddelen in de ML-stapel

In de functiebeschrijving van BenevolentAI Senior Machine Learning Researcher vragen ze om "kennis van moderne tools voor ML, zoals Tensorflow, PyTorch, enz ..."

Het leren van deze moderne tools voor ML kan ontmoedigend lijken, omdat de ruimte altijd verandert. Om het leerproces op te splitsen in beheersbare stukken, vergeet dan niet om uw denken rond de machine learning workflow van bovenaf te verankeren - "Welke tool kan mij helpen met dit deel van de workflow?"

Om te zien welke tools bij elke stap van deze machine learning-workflow horen, bekijk je Roger Huang's ‘Inleiding tot de Machine Learning Stack’ met tools zoals Docker, Comet.ml en dask-ml.

Python en R zijn tactisch gezien de meest voorkomende programmeertalen die datawetenschappers gebruiken en je kunt add-onpakketten tegenkomen die zijn ontworpen voor data science-applicaties, zoals NumPy en SciPy, en matplotlib. Deze talen worden geïnterpreteerd in plaats van gecompileerd, waardoor de datawetenschapper zich kan concentreren op het probleem in plaats van nuances van de taal. Het is de moeite waard om tijd te investeren in het leren van objectgeoriënteerd programmeren om de implementatie van gegevensstructuren als klassen te begrijpen.

Als u ML-frameworks zoals Tensorflow, Keras en PyTorch wilt inhalen, gaat u naar hun documentatie en probeert u hun tutorials end-to-end te implementeren.

Aan het einde van de dag wilt u er zeker van zijn dat u projecten bouwt die deze moderne hulpmiddelen voor gegevensverzameling en-ruzie, machinaal leren experimentbeheer en modellering onder de aandacht brengen.

Bekijk voor wat inspiratie voor je projecten het stuk van Edouard Harris over 'Het koude startprobleem: hoe je je machine learning-portfolio samenstelt'

Vaardigheden en kwalificaties

We hebben dit gedeelte voor het laatst verlaten, omdat het veel van de informatie uit de vorige secties verzamelt, maar specifiek is gericht op de voorbereiding van data science-interviews. Er zijn zes hoofdonderwerpen tijdens een interview met datawetenschappers:

  1. Coding
  2. Product
  3. SQL
  4. A / B-testen
  5. Machine leren
  6. Waarschijnlijkheid (zie hier een goede definitie versus statistieken)

U zult merken dat een van deze onderwerpen niet hetzelfde is als de andere (Product). Voor data science-posities is communicatie over technische concepten en resultaten, evenals bedrijfsstatistieken en impact cruciaal.

Enkele nuttige verzamelingen van interviewvragen over data science:
https://github.com/kojino/120-Data-Science-Interview-Questions
https: //github.com/iamtodor/data-science-interview-questions-and-answers
https://hookedondata.org/red-flags-in-data-science-interviews/
https://medium.com/@XiaohanZeng/i-interviewed-at-five-top-companies-in-silicon-valley-in-five-days-and-luckily-got-five-job-offers-25178cf74e0f

Je zult merken dat we Hooked on Data's stuk over 'Red Flags in Data Science Interviews' hebben opgenomen - als je solliciteert voor functies, kom je bedrijven tegen die nog bezig zijn met het opbouwen van hun data-infrastructuur of misschien geen goed begrip hebben van hoe hun data science-team past in de grotere bedrijfswaarde.

Deze bedrijven kunnen nog steeds deze hiërarchie van behoeften beklimmen.

De populaire AI-hiërarchie van behoeften van Monica Rogati

Voor wat verwachtingen rond interviews met data science zou ik aanraden het stuk van Tim Hopper te lezen over ‘Some Reflections on Turned for a of the Data Data Jobs Jobs’

Bedankt voor het lezen! We hopen dat deze gids je helpt te begrijpen of data science een carrière is die je moet overwegen en hoe je aan die reis kunt beginnen!

Wil je de nieuwste data science-functies zien? Abonneer u op de tweewekelijkse ML Jobs-nieuwsbrief voor nieuwe vacatures voor data science in uw inbox: