Ако сте програмист, който преминава към наука за данни, ето ви най-добрите ресурси

Изглежда всеки иска да бъде учен по данни в наши дни - от докторанти до анализатори на данни до стария ви съквартирант в колежа, който държи Linkedin да ви изпраща съобщения, за да „вземете кафе“.

Може би сте имали същото изказване, че трябва поне да проучите някои позиции в науката за данни и да видите за какво става въпрос. Може би сте виждали статии като науката за данни на Вики Бойкис, сега е различно, когато се казва:

Става ясно, че в късния стадий на цикъла на свръхтехнологията науката за данни се приближава асимптотично към инженерството, а уменията, от които се нуждаят учените от данни, са по-малко визуализация и базирани на статистиката и повече в съответствие с традиционните компютърни науки ...:
Концепции като тестване на единици и непрекъсната интеграция бързо намериха своя път в жаргона и инструментариума, използван обикновено от учен с данни и нумерологичен учен, работещ върху ML инженеринга.

или туитове като Тим Хопър:

Това, което не е ясно, е как можете да използвате опита си като софтуерен инженер в позиция на науката за данни. Някои други въпроси, които може да имате са:

Какво трябва да дам приоритет на обучението?

Има ли най-добри практики или инструменти, които са различни за учените по данни?

Дали сегашният ми набор от умения ще се пренесе в ролята на науката за данни?

Тази статия ще предостави информация за ролята на учения за данни и защо вашият фон може да бъде подходящ за науката за данни, плюс осезаеми стъпаловидни действия, които вие като разработчик можете да предприемете, за да разширите науката за данни.

Искате ли да видите най-новите роли в науката за данни? Абонирайте се за бюлетина на ML Jobs за две седмици за нови отворени обяви за работа в областта на научните данни във вашата пощенска кутия.

Data Scientist срещу Data Engineer

Първо, първо трябва да разграничим две допълващи се роли: Data Scientist срещу Data Engineer. Докато и двете роли се справят с моделите на машинно обучение, тяхното взаимодействие с тези модели, както и изискванията и естеството на работата за Data Scientist и Data Engineers варират в голяма степен.

Забележка: Ролята на Data Engineer, която е специализирана за машинно обучение, може да се прояви и в описанията на заданията като „Софтуерни инженери, Машинно обучение“ или „Машинно инженерно обучение“

Като част от процеса на машинно обучение, ученият за данни ще извърши необходимия статистически анализ, за ​​да определи кой метод на машинно обучение да използва, след което да започне прототипизиране и изграждане на тези модели.

Инженерите за машинно обучение често си сътрудничат с учени по данни преди и след този процес на моделиране: (1) изграждане на тръбопроводи за данни за захранване на данни в тези модели и (2) проектиране на инженерна система, която да служи на тези модели, за да се гарантира непрекъснато здраве на модела.

Диаграмата по-долу е един от начините да видите този континуум от умения:

Разликата между Data Scientist и Data Engineers има богато онлайн ресурси - не забравяйте да проверите:

  • Panoply: Каква е разликата между инженер по данни и учен с данни?
  • Трамплин: Инженер за машинно обучение срещу Data Scientist
  • O’Reilly: Инженери на данни срещу учени по данни

Като отказ от отговорност тази статия обхваща предимно ролята на Data Scientist с известни кимвания към машинното инженерно обучение (особено уместно, ако търсите позиция в по-малка компания, където може да се наложи да работите и като двете). Ако се интересувате от това как можете да преминете към инженер на данни или инженер за машинно обучение, уведомете ни в коментарите по-долу!

Вашето предимство като програмист

За ваша вреда класовете около машинното обучение като „Въведение в науката за данни в Python“ или курса на Coursera на Andrew Ng не обхващат концепции и най-добри практики от софтуерното инженерство като тестване на единици, писане на модулен код за многократна употреба, CI / CD или контрол на версиите. Дори някои от най-напредналите екипи за машинно обучение все още не използват тези практики за техния код за машинно обучение, което води до тревожна тенденция ...

Пит Уордън определи тази тенденция като „кризата на машинното обучение за възпроизводимост“:

все още сме в тъмните епохи, когато става въпрос за проследяване на промените и възстановяване на модели от нулата. Толкова е лошо, че понякога се чувствам като отстъпи назад във времето, когато сме кодирали без контрол на източника.

Въпреки че може да не видите тези умения за „софтуерно инженерство“, изрично посочени в длъжностните характеристики на длъжностното лице на ученията на данни, това да се запознаете добре с тези умения като част от вашия опит вече ще ви помогне 10 пъти да работите като учен с данни. Плюс това, те ще влязат в употреба, когато дойде време да отговорите на тези програмни въпроси по време на интервюто ви за научни данни.

За интересна гледна точка от другата страна, вижте статията на Трей Каузи на тема „Умения за разработка на софтуер за учени с данни“ относно уменията, които той препоръчва на учените по данни трябва да се научат да „пишат по-добър код, да взаимодействат по-добре със разработчиците на софтуер и в крайна сметка да ви спестят време и главоболие ".

Насилване на науката за данните

Чудесно е, че имате добра основа със своя софтуер за инженерна подготовка, но коя е следващата стъпка към това да станете учен с данни? Туитът на Джош Уил по езика на дефиницията на учен с данни е изненадващо точен:

Той намеква за една от темите, по които трябва да се захванете, ако се интересувате от ролята или кариерата на учен с данни: статистика. В този следващ раздел ще покрием страхотни ресурси за:

  • Изграждане на специфични за ML знания
  • Изграждане на знания за индустрията
  • Инструменти в стека на ML
  • Умения и квалификации

Изграждане на специфични за ML знания

Най-ефикасно е да се изгради комбинация от теоретично базирани знания около вероятността и статистиката, както и приложни умения в неща като модели за разбъркване на данни или модели за обучение на GPU / разпределени изчисления.

Един от начините за рамкиране на знанията, които получавате, е да го сравните с машинния работен процес.

Опростен изглед на процеса на машинно обучение
Вижте този подробен работен процес от Skymind AI

Тук изброяваме някои от най-добрите ресурси, които можете да намерите около машинното обучение. Би било невъзможно да има изчерпателен списък и да спестим място (и време за четене), не споменахме много популярни ресурси като курса на Coursera на Andrew Ng или Kaggle.

курсове:

  • Fast.ai MOOC (безплатни курсове, които преподават много приложни умения в практическото дълбоко обучение за кодери, рязане на дълбоко обучение за кодери, изчислителна линейна алгебра и запознаване с машинно обучение за кодери)
  • Академия Хан
  • 3Blue1Brown и matematicmonk youtube канал
  • Курсове Udacity (включително предварителна обработка за машинно обучение в Python)
  • Специална песен за трамплин AI / ML

Учебници: * се опита да намери безплатни PDF файлове онлайн за повечето от тях *

  • Вероятностно програмиране и байесовски методи за хакери
  • Вероятност и случайни процеси
  • Елементи на статистическото обучение
  • Линейна алгебра направена вдясно
  • Въведение в линейна алгебра
  • Дизайн на алгоритъм

ръководства:

  • Ръководство за машинно обучение за разработчици на Google
  • Машинно ръководство за майсторско обучение (за добра отправна точка вижте този мини курс за Python Machine Learning)
  • Pyimagesearch (за компютърно зрение)

Срещи: * основно такива, базирани на NYC *

  • Документи, които обичаме
  • NYC Изкуствен интелект и машинно обучение
  • DataCouncil.ai
  • NY Изкуствен интелект
За добра отправна точка вижте „Учителите на машинното обучение с отворен код“ на Уолф как можете да структурирате времето си за изучаване на конкретни теми и работа по проекти, за да демонстрирате експертиза в отдалечено място на ниска цена.

Изграждане на специфични за индустрията знания

Ако имате дума, че бихте искали да бъдете специфична индустрия като здравеопазване, финансови услуги, потребителски стоки, дребно и т.н. ..., е безценно да наваксате точките на болка и развитието на тази индустрия, тъй като е свързано с данни и машина изучаване на.

Един съвет: можете да сканирате уебсайтовете на стартиращи AI, специфични за вертикала, и да видите как позиционират предлаганата стойност и къде се играе машинното обучение. Това ще ви даде идеи за конкретни области на машинно обучение за изучаване и теми за проекти, които да покажат вашата работа.

Можем да направим пример: нека да кажем, че се интересувам от работа в здравеопазването.

  1. Чрез бързо търсене в Google за „машинно обучение за здравеопазване“, намерих този списък от Healthcareweekly.com в „Най-добри стартъпи в здравеопазването, които трябва да наблюдавате през 2019 г.“
Можете също така да направите бързи търсения в Crunchbase или AngelList с „здравеопазване“ като ключова дума

2. Да вземем за пример една от компаниите, включени в списъка, BenevolentAI.

3. В уебсайта на BenevolentAI се посочва:

Ние сме AI компания с капацитет от край до край от ранно откриване на лекарства до клинично развитие в късен етап. BenevolentAI съчетава силата на компютърната медицина и усъвършенствания AI с принципите на отворените системи и облачните изчисления, за да трансформира начина, по който лекарствата се проектират, разработват, тестват и пускат на пазара.
Ние изградихме благоприятната платформа, за да разберем по-добре болестта и да проектираме нови и подобряваме съществуващите лечения от огромно количество биомедицинска информация. Вярваме, че нашата технология дава възможност на учените да разработват лекарства по-бързо и по-ефективно.
Нова изследователска статия се публикува на всеки 30 секунди, но в момента учените използват само част от наличните знания, за да разберат причината за заболяването и да предложат нови лечения. Нашата платформа приема, „чете“ и контекстуализира огромно количество информация, получена от писмени документи, бази данни и експериментални резултати. Той е в състояние да направи безкрайно повече изводи и изводи в тези различни, сложни източници на данни, идентифицирайки и създавайки връзки, тенденции и модели, които биха били невъзможни за човек да направи сам.

4. Веднага можете да видите, че BenevolentAI използва обработка на естествен език (NLP) и вероятно работят с някои графики на знания, ако идентифицират връзката между болестите и изследванията за лечение

5. Ако проверите страницата за кариера на BenevolentAI, можете да видите, че те се наемат за Старши изследовател за машинно обучение. Това е висша роля, така че не е перфектен пример, но погледнете по-долу уменията и квалификациите, които искат:

Забележка:

  • обработка на естествен език, извеждане на графика от знания, активно обучение и биохимично моделиране
  • структурирани и неструктурирани източници на данни
  • байесов модел подходи
  • познаване на съвременни инструменти за МЛ

Това трябва да ви даде няколко стъпки за това, към какво да подходите по-нататък:

  • работа със структурирани данни
  • работа с неструктурирани данни
  • класифициране на взаимоотношенията в графиките на знанията (вижте добър ресурс тук)
  • изучаване на байесовска вероятност и моделиране на подходи
  • работа по NLP проект (така че текстови данни)

Не препоръчваме да кандидатствате за компаниите, които намерите при вашето търсене, а по-скоро вижте как те описват болките на клиентите си, предложенията за стойност на тяхната компания и какви умения изброяват в длъжностните им характеристики, за да ръководят вашите изследвания.

Инструменти в стека на ML

В описанието на работата на BenevolentAI Senior Machine Learning Research те искат „знания за съвременни инструменти за ML, като Tensorflow, PyTorch и др.“

Научаването на тези съвременни инструменти за ML може да изглежда обезсърчително, тъй като пространството винаги се променя. За да разделите учебния процес на управляеми парчета, не забравяйте да закрепите вашето мислене около машинния процес на обучение отгоре - „Кой инструмент може да ми помогне с тази част от работния процес?“

За да видите кои инструменти придружават всяка стъпка от този работен процес на машинно обучение, проверете „Въведение в стека за машинно обучение“ на Роджър Хуанг, който обхваща инструменти като Docker, Comet.ml и dask-ml.

Тактически погледнато, Python и R са най-разпространените езици за програмиране, които учените използват данни и можете да срещнете допълнителни пакети, предназначени за приложения за наука на данни, като NumPy и SciPy, и matplotlib. Тези езици се интерпретират, а не компилират, оставяйки на учения с данни свобода да се съсредоточи върху проблема, а не върху нюансите на езика. Заслужава си да инвестирате време, като научите обектно-ориентирано програмиране, за да разберете прилагането на структурите от данни като класове.

За да достигнете до ML рамки като Tensorflow, Keras и PyTorch, не забравяйте да отидете на тяхната документация и да опитате да приложите техните уроци от край до край.

В края на деня искате да сте сигурни, че създавате проекти, които показват тези съвременни инструменти за събиране и караница на данни, управление на експерименти с машинно обучение и моделиране.

За малко вдъхновение за вашите проекти, вижте статията на Едуард Харис на тема „Проблемът със студения старт: как да изградите портфолиото си за машинно обучение“

Умения и квалификации

Оставихме този раздел за последно, тъй като той обобщава голяма част от информацията от предишните раздели, но е специално насочен към подготовката за интервю за научни данни. Има шест основни теми по време на интервю за учен с данни:

  1. кодиране на стоките
  2. продукт
  3. SQL
  4. A / B тестване
  5. Машинно обучение
  6. Вероятност (вижте добро определение спрямо статистиката тук)

Ще забележите, че една от тези теми не е като другите (Продукт). За позициите в областта на научните данни комуникацията относно техническите концепции и резултати, както и бизнес метриките и въздействието е от решаващо значение.

Няколко полезни обобщения от въпроси за интервю за наука за данни:
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

Ще забележите, че ние включихме „Хук“ в парче на данни „Червени знамена в интервюта за научни данни“ - когато интервюирате за роли, ще попаднете на компании, които все още изграждат своята инфраструктура за данни или може да нямат стабилно разбиране за това как техният екип за научни данни се вписва в по-голямата стойност на компанията.

Тези компании все още могат да изкачат тази йерархия на нуждите по-долу.

Популярната AI Йерархия на потребностите от Моника Рогати

За някои очаквания около интервютата в областта на научните данни, бих препоръчал да прочетете парчето на Тим Хопър на тема „Някои размисли относно това, че са отхвърлени за много работни места в областта на научните данни“.

Благодаря за четенето! Надяваме се това ръководство да ви помогне да разберете дали науката за данни е кариера, която трябва да помислите и как да започнете това пътуване!

Искате ли да видите най-новите роли в науката за данни? Абонирайте се за бюлетина на ML Jobs за две седмици за нови работни места за научни данни във вашата кутия: