Воспроизводимость в науке о данных

Это значит больше, чем вы думаете

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

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

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

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

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

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

Что такое воспроизводимость?

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

Тот же код

Ваш код должен быть хорошо документирован и работать. Иди разберись. Здесь есть два основных фактора успеха

  1. Управление зависимостями — как вы управляете сторонними пакетами, активно ли они поддерживаются, закреплены ли версии? Есть ли у вас надежный контроль над зависимостями системного уровня?
  2. Управление средой — на какой языковой версии вы создали свой продукт? Будет ли среда приложения использовать то же самое?

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

Те же данные

Управление версиями данных становится все более популярным. Фреймворк Cookie Cutter Data Science имеет свободную встроенную версию этого. Например, в Cookie Cutter данные делятся на необработанные, промежуточные, обработанные. ,и внешние данные из сторонних источников. Этот интуитивно понятный способ разделения данных может помочь вам рассказать историю преобразования данных из необработанного формата во что-то, что можно проанализировать. Построение повествования вокруг любого преобразования данных с использованием управления версиями данных позволит вам подтвердить с заинтересованными сторонами, что ваша логика верна и вашим данным можно доверять. Анализ может быть расширен или даже отменен по мере необходимости, что позволяет вам иметь ту же гибкость, что и git, предлагает код, но теперь в данных.

Те же случайные числа

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

Та же история

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

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

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

В итоге

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

Есть над чем подумать: как вы можете повысить воспроизводимость в своих проектах?

Спасибо, что прочитали эту статью! Я надеюсь, что это было открытием и информативным. Не стесняйтесь связаться со мной на Linkedin, если у вас есть какие-либо вопросы или вы просто хотите расширить свою сеть.