Делая карьеру в сторону технологий, многие могут подумать о том, чтобы подать заявку на «Учебный лагерь по кодированию». Всего 7 с лишним недель назад я был одним из таких людей. Теперь у меня развилась зависимость от кофеина, я сплю в среднем 3 часа в сутки и мечтаю строго по коду… шучу!!! …или я?

Быть зачисленным в 12-недельную иммерсивную программу на основе Python — это все равно, что пить из пожарного шланга. Теперь, как читатель, вы можете подумать: должен ли я игнорировать тот факт, что автор этой статьи делится информацией о состоянии своего психического и физического здоровья, которая может привести или не привести к надвигающейся проблеме со здоровьем? (Пауза для дыхания). Какие у меня есть основания для принятия решения: 1: «беспокоиться» или 0: «не волноваться»?

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

Процесс науки о данных

  1. Определите проблему. В данном случае: Должен ли я беспокоиться о здоровье авторов? Упрощая ответ «да» или «нет», мы можем классифицировать нашу целевую переменную (ответ на этот вопрос) как двоичную. Это означает, что мы можем смоделировать ответ на вопрос как 1, если да, или 0, если нет.
  2. Сбор данных. Существуют ли какие-либо другие способы сбора данных об авторе помимо этой статьи? Могу ли я собрать данные об авторе путем веб-скрейпинга учетных записей авторов в социальных сетях для получения дополнительной информации? Могу ли я сделать это с помощью API или BeautifulSoup? Если бы это было более доступно, могу ли я использовать информацию другого иммерсивного учащегося для моделирования моей проблемы? Будет ли этично так поступать?
  3. Исследуйте данные. Здесь я должен отвлечься от повествования и надеть свои большие, неуклюжие, прозрачные пластиковые лабораторные очки. А если серьезно, то именно здесь вступает в дело творчество. Это также этап, на который выделяется большая часть времени. Однако одним из многих преимуществ Python являются его многочисленные библиотеки с открытым исходным кодом, которые можно использовать для ускорения этого процесса. Используя Pandas, прочитайте свои данные. Определите пропущенные значения и выбросы и решите, как с ними обращаться. Оцените типы данных. Несколько вопросов, которые следует задать себе в ходе этого процесса: числовые данные качественные или количественные? Должны ли какие-либо из наших качественных данных быть преобразованы в фиктивные переменные? Каково распределение данных? Должен ли я создавать новые столбцы с помощью разработки функций? Отвечая на эти вопросы, не стесняйтесь создавать визуальные эффекты из данных. Гистограммы идеально подходят для отображения распределения, а диаграммы рассеяния — отличный способ визуализировать отношения между переменными. Python поставляется со встроенной библиотекой визуализации данных, Matplotlib, но Seaborn и Plotly также могут быть полезными библиотеками при создании визуализации данных. После очистки данных экспортируйте и сохраните их как отдельный файл. Хорошей практикой также является сохранение копии исходного файла.
  4. Модель с данными. Давайте вернемся к нашей первоначальной постановке проблемы: должен ли я беспокоиться о здоровье авторов? Важно рассмотреть, как может быть смоделирован ответ на нашу определенную проблему. При моделировании двоичного результата, логистической регрессии или K-ближайших соседей можно использовать два алгоритма контролируемого обучения, встроенные в библиотеку Python Scikit-learn. Сначала определите целевую переменную (зависимую переменную, обычно обозначаемую как y) и определите матрицу признаков (независимые переменные, обозначаемые как X). Затем обучаем-тестируем-разделяем ваши переменные X и y на тренировочный набор и набор для тестирования. При необходимости масштабируйте данные. Наконец, создайте экземпляр вашей модели.
  5. Оцените модель — пока не снимайте очки! Теперь, когда данные очищены и подобраны, они готовы к оценке. Модель логистической регрессии Scikit-learn имеет встроенные атрибуты, которые можно использовать для оценки производительности ваших моделей. Например, model.coef_ будет отображать коэффициенты независимых переменных. Используя sklearn.Metrics, вы можете проверить оценку точности вашей модели. Создание визуальных графиков остатков может помочь вам определить коллинеарность ваших объектов. Основываясь на ваших результатах, вы можете вернуться к шагу 4. Говорят, что все модели плохие, но некоторые из них полезны. Выполнение шагов 3–5 несколько раз только поможет вам выбрать наилучшие параметры для использования в вашей модели и поможет сделать ее как можно более совершенной. Опять же, не забудьте сохранить свою работу! Лучше иметь несколько моделей для последующего удаления, чем случайно перезаписать хорошую. В библиотеке метрик также есть множество функций, используемых для оценки модели линейной регрессии. Нажмите здесь для дополнительной информации.
  6. Ответьте на вопрос. Наконец, основываясь на наших оценках параметров и общей оценке, мы можем сделать вывод! И, может быть, снять очки… а может и нет?

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

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

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