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

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

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

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

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

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

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

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

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

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

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

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“ или курсът на Andrew Ng Coursera не обхващат концепции и най-добри практики от софтуерното инженерство като модулно тестване, писане на модулен код за многократна употреба, CI / CD или контрол на версиите. Дори някои от най-напредналите екипи за машинно обучение все още не използват тези практики за своя код за машинно обучение, което води до обезпокоителна тенденция ...

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

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

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

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

Разширяване на науката за данните

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

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

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

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

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

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

Вижте този подробен работен процес от Skymind AI

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

Курсове:

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

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

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

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

  • Ръководство за машинно обучение на Google Developers
  • Ръководства за овладяване на машинно обучение (за добра отправна точка вижте този мини курс за машинно обучение на Python)
  • Pyimagesearch (за компютърно зрение)

Срещи: * предимно базирани в Ню Йорк *

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

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

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

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

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

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

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

3. Уебсайтът на BenevolentAI гласи:

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

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

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

Забележка:

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

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

  • работа със структурирани данни
  • работа с неструктурирани данни
  • класифициране на връзките в графики на знанието (вижте добър ресурс тук)
  • изучаване на байесова вероятност и подходи за моделиране
  • работа по 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

Ще забележите, че включихме парчето Hooked on Data на „Red Flags in Data Science Interviews“ - докато интервюирате за роли, ще попаднете на компании, които все още изграждат своята инфраструктура за данни или може да нямат солидно разбиране за това как техният екип по наука за данни се вписва в по-голямата стойност на компанията.

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

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

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

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

Бюлетин на ML Jobs - Ревю

Регистрирайте се, за да получите този двуседмичен подготвен списък с работни места в науката за данни в най-добрите компании в бранша. Роли ... www.getrevue.co