Чему нельзя научиться на учебных курсах по Data Science

Пять вещей, которые нужно изучить потом

Как бывший инструктор программы General Assembly's Data Science Immersive, я научил более тысячи студентов тому, как решать проблемы с данными, и получил привилегию с самого начала составлять и курировать значительную часть школьной учебной программы. Для справки: в настоящее время я не поддерживаю ни один из доступных учебных курсов по науке о данных или образовательных программ. Тем не менее, у меня есть совет для всех, кто прошел учебный курс по науке о данных и задается вопросом, что изучать дальше (или начинающим специалистам по данным).

Почему Bootcamp?

Возьмем, к примеру, такую ​​популярную программу колледжа, как степень магистра информатики и анализа данных Калифорнийского университета в Беркли. Чтобы поступить в UCB и получить степень магистра наук о данных, требуется дополнительная сумма в размере 60 тысяч долларов, предварительные требования по исчислению, линейной алгебре, лист бумаги, называемый степенью бакалавра в соответствующей области количественного анализа, и хорошие оценки на базовых курсах инженерного образования университетского уровня. Это отражает большинство программ колледжей сегодня. Колледж не так доступен, если вы самоучка или у вас нет более формальной математики, статистики и инженерного образования.

Действительно, есть лучшие варианты за деньги, если вы хотите пойти по пути колледжа (например, получить степень магистра наук в области аналитики в Технологическом институте Джорджии) .

Учебные курсы по науке о данных часто бывают двух видов:

  • Неполный рабочий день: 10–12 недель @ ~ 6 часов в неделю ночью
  • Полный рабочий день: 10–12 недель по 40 часов в неделю с 9:00 до 17:00

Идея, которую предлагают будущим студентам, а иногда и настоятельно подразумевается, состоит в том, что можно стать экспертом в области науки о данных за короткий период целенаправленного обучения. 2–6 тыс. Долларов, которые вы тратите на посещение занятий с неполным рабочим днем ​​или более 16 тыс. Долларов на полный рабочий день, при этом затрачивая при этом немало времени и ресурсов, в любом случае все равно меньше, чем вы бы в противном случае взяли на себя для полного обучения. по магистерской программе. Кроме того, многие учебные курсы по науке о данных предлагают финансирование, поэтому наряду с меньшим количеством предварительных условий для участия в учебном курсе; это веские причины на бумаге, если вы взвесите рентабельность такой возможности.

Более мягкие предпосылки для буткемпов по науке о данных также являются аспектом, обеспечиваемым этим маршрутом, что не только выгодно, но и гарантирует различия в знаниях и способностях ваших потенциальных одноклассников. В основном, то, что предлагается, в зависимости от школы, - это какая-то форма оценивания, которая измеряет предварительные знания и ваши способности с математикой, статистикой и основными основами Python или R. Результаты оценки являются авторитетными для списка материалов и более коротких классов по тем конкретным предметам, которые вам необходимо изучать. Этот процесс приема, который направляет студентов в определенные области обучения, контрастирует с традиционной программой колледжа тем, что процесс приема на учебный курс позволяет вам изучить очень сжатый набор тем, основанный на вашей оценке, для подготовки к первому дню занятий. В конце дня буткемп - это частная коммерческая школа, которая в конце дня заинтересована в вашем поступлении.

Обычно учащиеся, не выполнившие предварительную работу, бросают учебный лагерь через две недели, чтобы получить возмещение, как только они осознают, что темп и широта занятий более интенсивны, чем они ожидали. На мой взгляд, темп занятия похож на питье из пожарного шланга. Тем не менее, классы лаконичны, с упором на практическое применение. Концепции очень быстро накладываются друг на друга; тем не менее, он оставляет очень мало места, чтобы замедлить или пропустить какие-либо занятия.

Самый распространенный вопрос, который задают мне потенциальные студенты, - это действительно ли они могут быть «наняты» в качестве аналитика или специалиста по данным после 12-недельного интенсивного занятия. Я бы сказал да, но это зависит от вашего прошлого опыта. Кому-то без какого-либо опыта в программировании, статистике, математике или машинном обучении будет нелегко, имея за плечами только один проект по науке о данных, и ничего другого, связанного с наукой о данных, в их резюме после выпуска.

Найти работу после завершения вашего последнего учебного проекта - задача не из невыполнимых, и я видел, как студенты ориентируются на сложных рынках труда, но большинство из них дает успешные результаты. Студенты соглашаются на такие должности, как специалисты по обработке данных, инженеры по обработке данных, аналитики и другие должности в области науки о данных.

Кто в твоем классе?

Ваши одноклассники - количественные финансовые аналитики, биологи, актуарии, бывшие учителя математики в старших классах, венчурные капиталисты, бухгалтеры, инженеры или кто-либо еще, не имеющий отношения к инженерным наукам или данным. Большинство из этих студентов имеют либо качественное образование, либо прикладное инженерное образование, смешанное со студентами, не имеющими ни того, ни другого.

Одна из самых сложных проблем, которую необходимо решить преподавателю, - это провести класс со студентами с динамическим диапазоном способностей, включая статистику, математику и инженерию. Хотя я действительно думаю, что общий средний уровень знаний и способностей учащихся в программировании в определенной степени влияет на качество обучения, это также отличная возможность учиться у более знающих одноклассников, если вы настроены на рост.

Поскольку каждая когорта состоит из самых разных людей с разным опытом, убеждениями и способностями, каждый сталкивается с различными проблемами. Как правило, студентам легче знакомиться с представленными теоретическими концепциями или с аспектами программирования. Некоторые студенты борются со всем, не имея опыта ни в том, ни в другом, но я склонен полагать, что эти студенты усваивают дисциплину, основанную на стремлении к неизведанному, и, следовательно, прекрасно выживают.

Как правило, студенты с количественным образованием помогают студентам с инженерным мышлением и наоборот. Один общий опыт, который у всех есть в программах в стиле буткемпов, - это серьезная борьба с одной или двумя концепциями в тот или иной момент. Идеи, с которыми сталкиваются студенты, уникальны и индивидуальны для всех.

Только что изучили линейную регрессию? Отлично, теперь давайте изучим линейные регрессии во многих регуляризованных формах, о том, как коллинеарность может повлиять на качество ваших моделей, и о влиянии компромисса смещения и дисперсии, подразумеваемого в этой области моделирования, которую вы только что изучили. Эти концепции, которые я только что упомянул, рассчитаны на несколько месяцев или лет обучения в традиционной обстановке, но студенты получают «суть» всего примерно за неделю, если они уделяют внимание урокам в стиле учебного лагеря.

Что ты изучаешь?

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

  • Импортировать библиотеки
  • Очистка и преобразование данных с помощью некоторой формы фреймов данных
  • Обучайте и оценивайте модели
  • Использовать базы данных (минимально)

Вы также научитесь работать с приложениями в наиболее важных доменах машинного обучения, включая:

  • Обучение с учителем и без учителя
  • Регресс
  • Классификация
  • НЛП Байеса
  • Временная последовательность
  • Нейронные сети
  • «Знать» о «некоторых» наборах инструментов для работы с большими данными

Большим отличием с полным «погружением» от занятий с частичной занятостью является больше кодирования моделей машинного обучения с нуля, больше практических проектов, больше лекций и намного больше практики в целом. Программы полного рабочего дня будут намного более выгодными, если вы посмотрите на стоимость часа, но особенно потому, что вы можете попросить инструкторов 1: 1 раз и, возможно, помочь с трудоустройством (результатами) в зависимости от школы.

Вы научитесь машинному обучению? да. Вы научитесь лучше писать код? да. Сможете ли вы разбираться в статистике настолько, чтобы быть полезным? Скорее всего. Сможете ли вы узнать достаточно, чтобы продолжать учиться самостоятельно и оставаться в курсе? Определенно. Это также будет один из самых сложных, но полезных образовательных опытов в вашей жизни. Это лишь один из многих возможных путей, зависящих от вашей толерантности к стрессу и роста, по сравнению с альтернативными вариантами учебы в колледже.

Вы будете знать, как эффективно проводить собеседование? Маловероятно, потому что эта область большинства программ недостаточно строгая. Разрыв между реальной зарплатой в области науки о данных и кандидатом после буткемпинга будет намного меньше по прошествии 12 недель, но стробирующим фактором может быть не только достаточное знание статистики, математики или машинного обучения. Вы также должны уметь кодировать уровень инженера среднего звена (мое мнение), но это достижимо при правильном уровне внимания и подготовки. Я считаю, что большинство студентов получают вакансии в области науки о данных после посещения учебного курса по науке о данных. Тем не менее, это требует немного дополнительных усилий, которые обычно не рекламируют перед первым днем ​​занятий.

Моя самая критическая оценка программ такого типа - это разрыв между тем, чему вас учат, и тем, что вам нужно делать, чтобы вас приняли на работу. Учебные курсы пытаются научить вас использовать процесс науки о данных, но вместо этого больше сосредотачиваются на том, чтобы научить вас проводить правильные эксперименты с машинным обучением. Наука о данных - это гораздо больше, чем просто машинное обучение. Рынок вакансий в области науки о данных все еще формируется, но стало намного более ясно, какие роли существуют и чего рынок ожидает на данный момент. Компании нанимают кандидатов, которые не только хорошо разбираются в проектировании, статистике и машинном обучении, но также могут взаимодействовать с нетехническими менеджерами, имея дело с потребностями бизнеса.

Чему вы не научитесь

Я так много хочу написать о том, насколько увлекательна и увлекательна наука о данных в реальном мире. Существует множество интересных инструментов, позволяющих проводить полезные оценки моделей, которых нет, например, в scikit-learn или R Studio. Вы можете подумать, что по прошествии 12 недель наука о данных - это все о моделировании, но, честно говоря, специалисты по данным не тратят весь день на обучение моделям, за исключением, возможно, тех, кто занимается исследованиями. Моделирование составляет 10–20% объема большинства проектов, а остальные будут анализировать данные, очищать их и постоянно задавать вопросы, чтобы определить, черт возьми, невероятно расплывчатый набор предположений.

Машинное обучение становится тем интереснее, чем больше вы изучаете, но на начальном этапе это не то, что обеспечит большинство рабочих мест в области науки о данных, если только это не будет исключительно исследовательская работа. Практически во всех программах учебных курсов по науке о данных есть значительные слепые зоны, потому что наука о данных - это не только моделирование.

1. Как определить масштаб проектов, демонстрирующих влияние на бизнес

Самый большой навык, который отличает кандидатов, участвующих в собеседовании на должность специалиста по данным, - это способность четко определить проблему, в которой существует много двусмысленности, при объяснении конечных результатов таким образом, чтобы связать реальную ценность для бизнеса. Наука о данных - это процесс. Он должен оправдывать свой подход и отстаивать свое существование в реальном мире на каждом этапе, включая модели обучения и оптимизацию гиперпараметров, а также то, как исследовать данные и задавать им правильные вопросы.

После 12-недельного курса по науке о данных большинство студентов считают, что моделирование является наиболее важным шагом в проекте. В реальном мире мы должны обосновать, как данные и модель работают вместе, чтобы измерить решение проблемы. Большую часть времени следует тратить на изучение данных, очистку данных и определение степени достоверности результатов ваших проектов, а не только на работу с моделями машинного обучения.

Конечно, не каждый может приспособить новейший метод ансамбля или нейронную сеть для решения задачи классификации и измерить 80% -ную точность проверки с соответствующими графиками, которые объясняют компромиссы производительности модели. Что делать бизнесу с этой информацией? Что означает ложноположительный результат с точки зрения риска при классификации? Конечно, нелегко определять проблемы науки о данных в терминах, ориентированных на коммерческую ценность, но важно, чтобы вы обосновывали свою работу и точно сообщали о существующих рисках, учитывая возможность ошибок и предвзятости.

Технически оценить проблему и в то же время определить потенциальное влияние на бизнес - это не то, в чем вы научитесь эффективно работать в течение 12 недель. Можно прожить 12 недель без особого упоминания об определении нетехнической ценности через общение.

Безусловно, определение проблемы с нуля - самый сложный навык для новых специалистов по обработке данных. Bootcamps не очень хорошо тренируют для этого. Тем не менее, вы можете сделать себе одолжение и выбрать окончательные проекты, которые сосредоточены на четком определении масштабов проекта с соответствующими показателями успеха, которые также имеют в виду бизнес-результат. Расскажите историю с данными и почему это важно.

Компании жаждут специалистов по обработке данных, которые могут глубоко и тщательно обдумать проблему. Предприятиям нужен кто-то, кто может объяснить, что такое успех, обосновать выбор модели и заявить неопровержимые факты нетехнической аудитории, защищая их работу, поскольку на нее влияют хорошие и плохие данные. Единственный способ добиться успеха - задавать правильные вопросы, выслушивать ключевые заинтересованные стороны и просить помощи у наставников и более опытных членов команды.

Получение опыта может звучать как «уловка-22», например, «как мне получить опыт проблем с определением объема работ?». Мой совет - делать больше проектов, которые четко определяют проблему, устанавливают ключевые показатели, измеряют влияние, завершают с тем, что наиболее вероятно, и рекомендуют следующие действия. Просить помощи. Ищите мудрости у более опытных.

Рекомендуемая литература

Проходит вице-президент по продажам, замечает ваше волнение и спрашивает: «Итак, у вас есть что-нибудь для меня?» И вы восклицаете: «Да, прогнозная модель, которую я создал с помощью логистической регрессии, имеет TPR 95% и FPR 0,5%!»

Она смотрит на вас, как будто вы вырастили пару лишних голов и разговариваете с ней на марсианском языке.

2. Знание SQL, достаточное для прохождения собеседований.

SQL - это стандартный обмен в современном бизнесе. Чтобы иметь возможность работать с командой, которая взаимодействует с данными на любом уровне, рано или поздно вы будете помещать данные в базу данных или извлекать их. Хотя не все применяют реляционную базу данных для каждого аспекта своего приложения или бизнеса, вы, скорее всего, будете писать SQL-запрос, который превышает 2–3 целых страницы в редакторе. Большинство учебных курсов имеют минимальную широту охвата SQL, достаточного для уверенного прохождения первого экрана собеседования.

Что касается навыков SQL, вам нужно будет хорошо разбираться в следующих темах:

  • Агрегация и группировка
  • «Имеющие» квалификаторы
  • Основные функции даты и времени
  • Разбиение
  • Оконные функции
  • Подзапросы
  • Получение SQL-соединений с учетом ERD или даже простого текстового определения схемы

Некоторые отличные ресурсы SQL для самостоятельного изучения:

  • Курс SQL 2 - отличный ресурс, но для продвинутых новичков или среднего уровня.
  • Dataflair SQL Tutorials - это фантастический ресурс с простыми примерами. По отдельности изучите Хранимые процедуры, Индекс, Нормализация и Нормальные формы, Ограничения в дополнение к другим темам, о которых я упоминал выше. Это концепции, которые важно понимать при работе с системами реляционных баз данных при работе с реальными проблемами.
  • Essential SQL - Крис Венцель собрал обширную коллекцию видео и ресурсов SQL.

3. Работа с «большими данными»

В реальном мире данные грязные, в неправильном формате, и их очень много. Я имею в виду много! Так много данных, которые не поместятся на вашем ноутбуке. Большие данные - это не только инструменты, но и инфраструктура и операции поддерживающих их сервисов. Знание того, как хотя бы работать в Google Cloud или экосистеме AWS, будет минимальным ожиданием для большинства технологических компаний, но также и для любой компании, у которой есть реальное приложение, которое зависит от данных, поддерживаемых современной инфраструктурой.

Ожидание того, что новые сотрудники, по крайней мере, смогут использовать какую-либо систему больших данных для выборки собственных данных для экспериментов, достаточно распространено. Типичными в наши дни являются современные системы хранилищ данных, такие как Redshift на AWS и Bigquery в Google, или один из многих доступных инструментов Apache, таких как Hadoop, Spark или Hive. Многие системы больших данных имеют компонент хранилища как часть жизненного цикла управления данными, и важно знать, как они связаны.

Только за последние два года было создано 90 процентов данных в мире. - Бернард Марр, Forbes 2018

В наши дни экосистема больших данных очень разнообразна. Тем не менее, почти все учебные курсы почти не затрагивают эту тему таким образом, чтобы можно было быть достаточно уверенным, чтобы работать независимо над проблемами больших данных от начала до конца. Хорошие идеи в области науки о данных часто заканчиваются масштабируемыми решениями, что обычно влечет за собой большое количество ETL и предварительную очистку данных.

Честно говоря, существует множество препятствий для создания учебной программы по большим данным, но еще меньше инструкторов, имеющих опыт работы с любыми большими данными. Возможно, это не относится ко всем инструкторам или разработчикам учебных программ, но, судя по моей оценке 3–4 лучших учебных курсов по науке о данных, глубина содержания больших данных недостаточна, как и не хватает таланта преподавать ее.

Работая в сфере образования, зарплата намного меньше, чем при работе в отрасли. Высокооплачиваемых профессионалов в области науки о данных, специализирующихся на больших данных, мало. Эта причина могла бы объяснить, почему так сложно нанять в учебу на эту специальность.

Что вы можете узнать о больших данных в Интернете

Эту область нетрудно изучить, по крайней мере, для основных концепций, однако изучение деталей более низкого уровня требует времени. Большая часть того, что вам нужно изучить, должна подтвердить тот факт, что крупномасштабная инфраструктура и среды программирования - это то, как промышленность позволяет создавать масштабируемые приложения данных.

Первая ссылка ниже - отличный ресурс для общего взгляда на мир больших данных. Spark - это стандартный отраслевой фреймворк, который стоит изучить, если вы знаете Python или Scala. Dask - это новая технология, которая предоставляет распределенные фреймы данных, которые очень хорошо дополняют Pandas, если вы знакомы с Python (автор Pandas является советником Dask).

Большие данные - это больше, чем я могу адекватно передать, как учиться, но я считаю, что это хорошая отправная точка. Я могу написать более подробное продолжение о том, как начать работу с большими данными.

4. Общий инжиниринг и управление жизненным циклом разработки программного обеспечения.

Рискуя показаться капризным стариком, я обнаружил, что в некоторых академических кругах существует настоящее отвращение к реальности практики науки о данных как функции инженерии или, по крайней мере, ее отрасли. Некоторые из лучших инженеров - лучшие специалисты в области данных. Модели и фреймворки построения графиков, которые мы используем в R и Python, - это программное обеспечение. Развертывание моделей в производственной системе, позволяющее прогнозировать данные в расходных приложениях, - это программное обеспечение.

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

Другой важный аспект, который следует учитывать с точки зрения выбора модели и любого конвейера управления данными, - это экономия времени и пространства, связанная с данными и их обработкой. Слишком легко импортировать библиотеки sklearn и забыть о компромиссах с моделями с точки зрения эффективности, которые могут означать разницу между тем, что возможно, а что нет в большем масштабе, чем ваш ноутбук. Например, классификатор K-ближайших соседей, который в теории кажется достаточно простым, на самом деле имеет множество сложных оптимизаций, когда дело доходит до поиска точек для измерения расстояний. В классе вы изучаете метод прямого перебора соседей, который равен O [DN²] (D = измерение), но не понимаете, почему может быть возможно установить гиперпараметры, позволяющие использовать альтернативные методы поиска, которые более например O [DNlog⁡ (N)], но также знаете, почему они лучше, поскольку размер ваших измерений и данных увеличивается. Вы не узнаете, почему O (N) ‹O (log (N))‹ O (N²) и да, это имеет значение, если вы хотите оценить компромиссы и возможности ваших моделей и конвейеров.

Упомянутый выше O относится к нотации Big-O. Отличное краткое введение в эту тему на Youtube от Уильяма Фисета:

На то, чтобы научиться эффективно программировать на практике, требуются месяцы, но вы все равно можете пройти несколько уроков по этой теме или заняться самостоятельно, если вы достаточно дисциплинированы. Одна из моих любимых статей об эффективности программирования написана профессором Массачусетского технологического института Эриком Гримсоном. Лекции Эрика по этой теме интересны и легко просматриваются.

Я особенно рекомендую эти лекции:

5. Наборы инструментов для ETL и автоматизации рабочих процессов.

В реальном мире моделирование - это обычно краткая, но очень важная часть головоломки. Удивительно, но большая часть времени, затрачиваемого на проекты, связана не столько с обучением моделей. Как упоминалось ранее, данные грязные, но они не в той форме, которую вы ожидаете, и не настолько свежи, насколько вам нужно для ваших проектов. В некоторой степени связано с общей инженерией, но процесс извлечения, преобразования и загрузки данных - это то место, где большая часть вашего времени будет потрачена в определенном масштабе.

Разработка процессов, которые форматируют данные до определенного уровня и, в свою очередь, могут быть смоделированы, требует времени и размышлений. ETL может повлечь за собой (но не ограничиваясь этим) объединение таблиц базы данных, объединение данных из разных форматов, агрегирование, разработку функций или просто выборку соответствующего количества данных для эксперимента. Конечно, вы можете сделать большинство из них на своем языке по выбору (Python), но, учитывая множество вариантов, доступных на полке с точки зрения ETL-фреймворков и инструментов управления рабочими процессами, проектирование конвейеров интеграции данных лучше всего выполнять с помощью специализированных библиотек и сервисов. .

Некоторые популярные наборы инструментов, которые используются в промышленности, включают:

Чтобы лучше понять, какие инструменты ETL существуют, ознакомьтесь с этим удобным репозиторием на Github: Awesome ETL.

Что вы можете сделать, чтобы восполнить пробел в знаниях

К счастью, мы живем во времена, когда есть много отличных ресурсов, чтобы чему-нибудь научиться. Многие школы также знают о своих недостатках и предлагают дополнительные классы, такие как расширенный SQL и даже семинары по инжинирингу данных, поэтому воспользуйтесь этими предложениями до и после, если вы окажетесь в одном из многих предложений учебных курсов по науке о данных. Youtube также отлично подходит для того, чтобы научиться настраивать большие данные. Встречи предлагают возможность учиться непосредственно у представителей отрасли, если вы живете в любом мегаполисе мира. Предложите поработать над проектом с открытым исходным кодом, помогая с документацией и воспользуйтесь возможностью попросить помощи у более опытных участников. Есть больше способов учиться, чем когда-либо в прошлом. Не жди.

По сей день я нахожу, что чем больше я узнаю о работе с данными, тем больше я чувствую, что это было правильное решение, выбрав этот карьерный путь, из-за постоянного обучения, включенного в разные области. Любой человек с правильным мышлением может получить работу в области науки о данных. Если ваша цель - получить работу в качестве специалиста по обработке данных или на аналогичную должность, не ждите, пока к вам откроются возможности. Быть инициативным. Не бойтесь потерпеть неудачу или показать свои ограничения. Обучение - это результат «почти» и «не совсем», когда вы приближаетесь к новым знаниям из новых возможностей. Быть скромным. Просить помощи. Помочь другим. Не жди.