Уроки, извлеченные из реальной практики науки о данных

Когда вы впервые услышали слова наука о данных или машинное обучение? Собственно, вопрос в том, когда вы впервые их поняли? Мы говорим о понимании этих терминов в более реалистичных или применимых терминах, а не о том, что «Терминатор» бессмысленно. Для меня это была моя первая работа (после окончания аспирантуры), что заставило меня задуматься, как я получил 4-летнюю степень в области разработки программного обеспечения, не ценив эту область. Хорошо, что с тех пор программа была пересмотрена.

Когда я поступил в аспирантуру (Университет Карнеги-Меллона), где наука о данных была одним из основных направлений, я слышал этот термин больше раз, чем популярный хэштег в Твиттере, настолько, что я изменил свой карьерный путь. Я прошел несколько курсов в этой области (аналитика данных, вывод данных, прикладное машинное обучение и т. Д.), Но, конечно, этого было недостаточно. Поэтому, когда я закончил семестр раньше, я сделал своим главным приоритетом изучение этого вопроса, и, к счастью, мне выпала честь присоединиться к авторитетной команде по анализу данных на трехмесячной оплачиваемой стажировке в Найроби. Однако из-за ситуации с COVID-19 мне пришлось лететь домой и работать удаленно, ведь мой непосредственный руководитель сама была в Сан-Франциско. Несмотря на сбои, связанные с удаленной работой (присмотр за детьми и все такое), я все же воспользовался этой возможностью и превратился из начинающего специалиста по данным в (подождите) ... конечно же, в специалиста по данным!

Я хотел бы поделиться своим опытом более актуальным образом, но, к сожалению, я не могу, потому что я подписал соглашение о конфиденциальности с моей принимающей компанией. Я все еще надеюсь, что как специалист по обработке данных начального уровня вы сможете извлечь уроки из моего путешествия. Приведенные здесь уроки больше касаются практик и концепций науки о данных, чем самих фактических концепций, насколько я понял и то, и другое. Например, некоторые из вещей, которые я не мог определить (не говоря уже о том, чтобы использовать) до стажировки, были одноразовое кодирование, недостаточная / избыточная выборка, вменение, утечка данных, когда использовать определенные методы оценки (например, баллы AUC-ROC или F1 ) и почему и т. д.

Я хотел бы поблагодарить моего руководителя (Розину), от которой я так много узнал как прямо, так и косвенно. Тем не менее, вот пять уроков, извлеченных из моей стажировки с точки зрения выпускника-специалиста по науке о данных, который только что присоединяется к авторитетной команде по науке о данных:

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

  1. Контекст важен. Любая задача науки о данных решается с точки зрения ее предметной области (здравоохранение, энергетика, сельское хозяйство, финансы и т. д.). Я так много узнала об этом от моего начальника, по ее словам, «это может создать или разрушить проект », потому что то, как разрабатывать и использовать модели, зависит от контекста. Тем не менее, вам нужно продолжать задавать вопросы (о предметной области), знать свои данные и помнить о контексте проблемы. Делайте это в течение всего процесса (продолжайте связывать код с реальным миром) вашего моделирования, потому что он вам понадобится для принятия некоторых решений.
  2. Вы не всегда будете писать код без использования ноутбука. По крайней мере, не следует. До стажировки я не думал, что наука о данных - это что-то большее, чем записная книжка Jupyter (записные книжки должны помогать вам визуализировать и тестировать свой код), только чтобы обнаружить, что вам нужно будет писать сценарии для некоторых функций. . Если вы обнаружите, что пишете повторяющиеся блоки кода, это может быть признаком того, что вам нужна функция для этого (кроме того, вам может потребоваться больше «обычного» Python, чем вы думаете). Реорганизация повторяющихся фрагментов кода в сценарии сэкономит ваше время, сделает вашу работу удобочитаемой и подготовит вас к переносу кода в рабочую среду. Пока мы здесь, вам также может понадобиться знать важность комментирования вашего кода, но, что более важно, то, как комментировать. По словам Розины, «при написании комментариев я бы рекомендовала писать, почему вы делаете что-то, а не то, что делаете».
  3. Чтение данных не всегда так просто, как pd.read_excel (): Да, это верно, иногда данные не подготовлены для вас на серебряной тарелке (в файле MS Excel или CSV). Например, вам может потребоваться извлечь его из рабочей среды, что означает, что вам нужно иметь возможность иметь дело с изменяющимися данными, огромными их объемами и т. поможет вам многократно получать нужные данные.
  4. Присмотритесь, создайте некоторые функции. В большинстве случаев вам придется проявлять творческий подход к данным и думать о новых функциях по сравнению с изначально предоставленными. Например, вы можете найти среднее значение более предсказуемым, чем обычное, или объединение некоторых функций для создания новых может оказаться полезным. Поэтому подумайте об агрегированных функциях, которые могут иметь смысл в вашем домене, и помните, что данные не всегда такие, как есть. Вот подкаст, который рекомендовал мой начальник о критическом мышлении в науке о данных. Борьба с данными - действительно одна из запутанных областей науки о данных, но она довольно важна, поэтому подумайте о том, чтобы практиковать методы обработки и очистки данных.
  5. Будьте осторожны при поиске помощи в Интернете. Одна из проблем, с которой я столкнулся, заключалась в том, что люди в Интернете часто предлагают решения, не объясняя все мелкие детали своего сценария. Итак, когда вы берете все это, вы вносите в свой проект намного больше, чем вы думаете (вы, вероятно, просто пытаетесь избавиться от ошибки). Тем не менее, вам нужно более внимательно смотреть на каждую строку кода, которую вы вводите. и понять причину этого. Что еще более важно, научитесь использовать документацию по пакету вместо обычных решений. Всегда спрашивайте себя, что делает функция и зачем она вам нужна, потому что она может изменить то, чего вы пытаетесь достичь.
  6. Бонус: Не каждая проблема связана с глубоким обучением. Да, вы правильно прочитали. Это адресовано всем, кто прошел эти модные курсы по глубокому обучению и пытается заставить их решать простые задачи. Вы будете удивлены, что здесь, в реальном мире, для выполнения работы требуется всего лишь случайная модель леса. Просто знайте, когда использовать какой навык!