Что такое конкурс Data Science?

Соревнования по науке о данных стали чрезвычайно популярными за последние 5 лет. Они популярны не только на таких сайтах, как Kaggle[0], но и при собеседовании с компаниями на роль на рынке труда в виде кандидатского теста. Эти тесты быстро превратились в способ оценить работу участника/кандидата и определить, справились ли они с заданием или нет.

Эти соревнования / тесты обычно состоят из ограниченной по времени цели, где организатор предоставляет некоторые данные, часто обучающий и тестовый набор [1], а участники представляют прогнозы, которые выдала их модель, чтобы увидеть, насколько хорошо они справились со всеми. остальные участники. То есть прогнозы сравниваются с зависимой переменной[2], исключенной из тестового набора. Те, которые дают самую высокую точность, намного лучше по сравнению с остальными. В определенных случаях методы участника также могут быть подвергнуты сомнению, но это больше касается собеседований при приеме на работу, хотя и не так часто, как следовало бы, а не онлайн-конкурсов.

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

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

Реальные данные не входят в файл CSV

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

Это полностью отличается от файла .csv, который вам вручают на конкурсе, набора данных, в котором кто-то уже проделал работу по упаковке данных для вас. Есть шутка, что «специалисты по данным тратят 80% своего времени на очистку данных, а остальные 20% жалуются на это». Это, конечно, преувеличение, однако оно предназначено для того, чтобы подчеркнуть, насколько сложно Data Scientist получить необходимые данные еще до того, как он сможет начать моделирование. Это то, чему эти соревнования не могут вас научить.

Промышленность не занимается производством с наивысшей долей точности.

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

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

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

Чтобы соответствовать нормативно-правовой базе, компании должны иметь возможность объяснить свои процессы, чтобы получить одобрение регулирующих органов. Если процессы компании по борьбе с отмыванием денег (AML) ставятся под сомнение из-за того, что конкретный случай проваливается, «машинное обучение» в качестве оправдания не годится. Вот почему простые для понимания и прозрачные алгоритмы машинного обучения, такие как деревья решений [4], имеют тенденцию быть предпочтительными при применении к проблемам соответствия.

Соревнования не помогают понять вашу модель

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

В соревнованиях, как правило, используются менее сложные наборы данных, чтобы снизить входной барьер и увеличить участие, за исключением, конечно, временных ограничений. Они также делают это, потому что им не разрешено публично делиться личной информацией (PII) о своих клиентах. Другая причина заключается в том, что данные компании являются конфиденциальными. Есть причина, по которой данные называют новой нефтью. Ни одна компания не собирается добровольно выдавать свой секретный соус другим для использования в собственном бизнесе. Это ограничивает то, чему вы можете научиться, участвуя в таких соревнованиях.

Не для всех материалов требуется исходный код

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

Вы не обязаны писать хороший чистый код

Работа Data Scientist — это не только моделирование, но и написание хорошего чистого кода, в котором другие смогут понять и воспроизвести результаты, полученные вами с теми же данными. Поскольку проблемы науки о данных настолько сосредоточены на точности модели, у вас нет стимула должным образом документировать свой код и подход, который вы использовали, чтобы прийти к выводам, которые вы представили. Это мешает другим учиться на ваших методах и, конечно же, мешает вам делать то же самое у других.

Вас не учили SQL

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

Что, если размер вашей базы данных составляет сотни ГБ, если не ТБ? Общее эмпирическое правило заключается в том, что в Pandas вам нужно в десять раз больше оперативной памяти, чем вы обрабатываете данные. Это означает, что всего для 1 ГБ данных вам потребуется 10 ГБ ОЗУ. Базы данных гораздо эффективнее обрабатывают данные, чем библиотеки, такие как Pandas, поэтому я всегда рекомендую выполнять как можно больше обработки в базе данных и извлекать данные только в крайнем случае, когда вам действительно нужна библиотека, такая как Pandas, для продолжения. с вашей работой. Это не означает, что нет более эффективных библиотек, чем Pandas[5], однако существует компромисс между эффективностью и сложностью, на который вам придется пойти.

Как улучшить свои навыки Data Science

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

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

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

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

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

Чем хороши соревнования

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

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

  • [0] Kaggle – это сайт, который известен тем, что объединяет специалистов по обработке и анализу данных и специалистов по машинному обучению для участия в соревнованиях по решению задач в области науки о данных.
  • [1] Тестовый набор — это подмножество данных, используемое для проверки точности вашей модели на основе данных, которые она никогда раньше не видела. В случае соревнований тестовые наборы, как правило, не включают зависимую переменную.
  • [2] Зависимая переменная — это значение, которое вы пытаетесь предсказать и которое зависит от значений других переменных.
  • [3] Переобучение — это «производство анализа, который слишком близко или точно соответствует определенному набору данных и поэтому может не соответствовать дополнительным данным или надежно предсказывать будущие наблюдения».
  • [4] Дерево решений — это диаграмма или диаграмма, которая помогает определить курс действий или показать статистическую вероятность. Каждая ветвь дерева решений представляет собой возможное решение, результат или реакцию. Самые дальние ветви дерева представляют собой конечные результаты определенного пути принятия решений.
  • [5] NumPy — это библиотека Python, используемая для вычисления математических операций над данными. Он написан на C, что делает его невероятно быстрым по сравнению с другими библиотеками.

Первоначально опубликовано на https://gabriel.gaucimaistre.com 18 мая 2021 г.