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

Введение
Я решил написать эту статью, поскольку она включает темы, которые обычно не рассматриваются в курсах или других материалах, связанных с наукой о данных. Большая часть имеющегося там материала включает инструменты, которые вам следует изучить, объяснения алгоритмов, которые вы должны знать, жизненный цикл проекта Data Science и т. Д.
Эта статья другая. Он включает в себя советы, которые я собрал на основе своего опыта, которые носят довольно общий характер. Это актуально независимо от того, в какой области вы работаете. Возможно, это больше связано с теми, кто работает в среде стартапов, но не только. А также, честно говоря, я рассматриваю эту статью как справочник, к которому я могу время от времени возвращаться, чтобы убедиться, что я нахожусь на правильном пути :)
Что считается успешным в отрасли?
Проще говоря, если ваш проект приносит пользу вашей компании, он успешен! Но помимо точности (или любой другой используемой метрики) вашего решения ключевым фактором является скорость, с которой решение было адаптировано. Проекты DS часто требуют времени, но в идеале мы бы предпочли, чтобы они были как можно короче. Бывают ситуации, когда на полпути к проекту обнаруживается ошибка, вынуждающая нас начать (почти) заново. Этой ситуации мы бы хотели избежать. Эти советы предназначены как для создания лучших решений, так и для их интеграции за минимальное время.
Итак, как мы можем максимизировать ценность, которую мы приносим нашей компании?
1. Определите проблему и цель
Менеджер: «Мне нужно, чтобы вы построили модель, которая будет определять поток неверных данных в системе».
Я: «Хм, конечно, без проблем. Просто дайте мне знать, в какой БД находятся данные, и я сразу займусь этим ».
Но что такое «плохие данные»? Почему мы хотим отфильтровать это? В чем ценность этого проекта для бизнеса? Важно точно определить, в чем проблема и какова наша цель. Какова стоимость ложноположительного результата в этом случае? Это эквивалентно ложноотрицательному? Задайте все вопросы, необходимые для достижения четкой цели, и создайте четкую метрику для вашего проекта, желательно с одним значением. Обидно, если вы выполняете полный цикл построения модели только для того, чтобы обнаружить, что не до конца понимаете, в чем проблема на самом деле. Возможно, вы не совсем вернетесь к исходной точке, но это было много усилий, потраченных в неправильном направлении.
Бывают случаи, когда вам нужен другой персонал в вашей компании, чтобы полностью понять проект. Не откладывайте на потом, двигайтесь вперед к четкому определению того, что требуется в вашем проекте.
Поскольку мы обсуждаем начало проекта, я добавлю еще одно примечание, относящееся к этому этапу проекта. Ваш менеджер не обязательно понимает сложность проблемы. Важно отразить первоначальный результат проекта (какой точности вы достигнете и т. д.). Вы, вероятно, будете немного не в себе, но когда вы вернетесь с результатами, вы предпочтете не получать реакцию «о…». Будьте выровнены с самого начала.
2. Полностью понимать данные
Менеджер: «В столбце метки отсутствуют значения. Они указывают на то, что автор аннотаций ничего не нашел на изображении ».
Звучит логично. Но оказывается, что отсутствующие значения также указывают на случаи, когда аннотатор просто не мог решить, какая из 6 возможных меток является наиболее точной, поэтому он оставил поле пустым. Эти два сценария совершенно разные, но если оба типа пропущенных значений обрабатываются одинаково, это повредит вашей обученной модели.
Очень важно хорошо понимать свои данные. Вы можете спроектировать какую-то функцию, а позже обнаружить, что она была спроектирована неправильно (например, вы взяли столбец «почтовый индекс» и поместили его в разные регионы в определенной стране, но оказалось, что не все почтовые индексы принадлежат той же конкретной страна).
Независимо от того, является ли это столбцом с ярлыками или столбцом, который вы будете использовать в качестве функции, убедитесь, что вы понимаете данные настолько точно, насколько хотите, чтобы ваша модель была. Вы даже можете проконсультироваться с самими аннотаторами или их руководителями. Все, что нужно.
3. Какая будет ситуация в производстве?
Менеджер: «Соответствующие данные находятся в таблицах table1, table2, table3 и table4. Простое соединение предоставит вам все данные ».
Круто, у тебя есть все необходимое. Вы продвигаетесь вперед со своей моделью, получаете отличные результаты и готовы внедрить ее в производство. Вам просто нужно внести окончательные корректировки.
Я: «Скажите, какой источник предоставляет поле A?»
Менеджер: «Поле А? Это некоторое улучшение, которое мы вносим в данные, когда они завершают полный поток в системе ».
Ой, это нехорошо. Оказывается, это даже функция, которая не слишком увеличивает точность модели. Но ваша модель уже была обучена на ней. Убедитесь, что вы понимаете, какой будет ситуация, когда ваша модель будет запущена в производство, чтобы ваша модель имела все необходимые данные и подходила для этой конкретной настройки в производстве.
4. Будьте проще
Я: «Думаю, сначала я попробую супер-пупер-действительно-классную-модель. Что вы думаете?"
Менеджер: «Ты обладаешь знаниями. Действуй!"
Как уже было сказано, ваша цель - относительно быстро добиться результатов. Ваш руководитель не всегда понимает возможные решения. Обычно простые решения более ценны, если учесть затраченное время. И очень часто они даже работают лучше, чем сверхсложное решение, которое, как вы думаете, будет здесь крутым, независимо от вложенного времени. Это, конечно, не всегда так, но, по крайней мере, сначала попробуйте более «простые» решения, прежде чем переходить к «крутым».
Кроме того, очень часто можно решить проблему хотя бы частично с помощью простого решения. Делая это, вы уже создаете ценность. После этого вы можете перейти к более сложным решениям, если они все еще необходимы.
5. Проконсультируйтесь с другими
Я: «Да, я попробовал алгоритм А. Это похоже на хорошее решение».
Коллега: «Это интересно, здесь может хорошо получиться. Хотя, думаю, я бы попробовал здесь алгоритм Б. "
Я: «Ха… Не думал об этом. Отличная идея!"
Надеюсь, вы не единственный специалист по данным в своей компании. Если да, то это прекрасная возможность поучиться у других и узнать, как они решат вашу проблему. Не стесняйтесь. Нет никого, кто мог бы предложить все возможные решения, нет никого, кто знает все. Кроме того, очень часто в результате совместного мозгового штурма вы сами приходите к мысли, о которой бы не подумали без этой консультации.
Что касается этой темы, я бы также добавил важность планирования вашего проекта и разбивки вашей работы на задачи. Результат группового мозгового штурма должен быть именно таким. Это позволит вам оставаться сосредоточенным и не слишком увлекаться изучением конкретного алгоритма, который является потенциальным решением.
6. Анализ ошибок
Менеджер: «Мне интересно, почему модель хорошо работает для сценариев A и B, но не для сценария C.»
Я: «Я думаю, что другой алгоритм будет работать лучше. А также обучение на большем количестве данных, вероятно, поможет ».
Да, наверное, это не то, о чем вы мечтали, когда устроились на эту работу. Но это очень важно. Анализ нескольких (или многих) ошибок вручную может дать вам хорошее представление о том, что не так. Не думайте, что это «не то, чем я должен заниматься». Это, вероятно, будет более эффективным, чем просто добавление большего количества данных в вашу модель.
7. Документация
Я: «Я не случайно отфильтровал эти строки из данных. Я не могу вспомнить, зачем я это сделал ... "
Иногда этим шагом пренебрегают или делают лишь частично. В текущем проекте, над которым вы работаете, есть элементы, о которых вы забудете в следующем месяце, когда перейдете к следующему проекту. Задокументируйте, какие шаги вы предприняли на протяжении всего проекта, какие данные были выбраны и почему, запросы, которые вы выполняли в своей БД (и, конечно же, ваш код!). Чем больше, тем лучше. Это будет чрезвычайно полезно, когда вам, возможно, придется пересмотреть проект и уточнить свое решение, или, возможно, когда вы будете работать над другим проектом, связанным с этим. Вы даже можете извлечь пользу из документации, продолжая работать над проектом («почему я решил снова выбрать маршрут A вместо маршрута B…?»).
Заключение
Если бы мне пришлось резюмировать в нескольких словах, что нужно сделать, чтобы реализовать успешный проект в отрасли, я бы сказал, что важно быть прагматичным и хорошо общаться со своими коллегами и руководителями. Не будьте пассивными, проявляйте инициативу, убедитесь, что у вас есть вся необходимая информация. И сосредоточьтесь на своей цели. Надеюсь, вы нашли это проницательным :) Удачи!