Как Data Scientist может организовать свою работу?

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

Что такое методология в науке о данных?

Методология Data Science - лучший способ организовать вашу работу, делая ее лучше и не теряя времени. Методология Data Science состоит из 10 частей:

Эта статья состоит из пяти частей, каждая из которых содержит дополнительные шаги:

  1. От проблемы к подходу
  2. От требований к сбору
  3. От понимания к подготовке
  4. От моделирования к оценке
  5. От развертывания к обратной связи

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

От проблемы к подходу

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

  • Этап Бизнес Понимание имеет решающее значение, поскольку помогает уточнить цель клиента. На этом этапе мы должны задать клиенту множество вопросов по каждому аспекту проблемы; Таким образом, мы уверены, что изучим связанные данные, и в конце этого этапа у нас будет список бизнес-требований.
  • Следующим шагом является Аналитический подход, где после того, как бизнес-проблема была четко сформулирована, специалист по данным может определить аналитический подход для ее решения. Этот шаг влечет за собой выражение проблемы в контексте статистических методов и методов машинного обучения, и он важен, поскольку помогает определить, какие типы шаблонов потребуются для наиболее эффективного решения вопроса. Если проблема состоит в том, чтобы определить вероятность чего-либо, тогда можно использовать прогнозирующую модель; если вопрос состоит в том, чтобы показать взаимосвязь, может потребоваться описательный подход, а если наша проблема требует подсчета, то статистический анализ - лучший способ ее решить. Для каждого типа подхода мы можем использовать разные алгоритмы.

От требований к сбору

Как только мы нашли способ решить нашу проблему, нам нужно будет найти правильные данные для нашей модели.

  • Требования к данным - это этап, на котором мы определяем необходимое содержание данных, форматы и источники для первоначального сбора данных и используем эти данные в алгоритме выбранного нами подхода.
  • На этапе Сбор данных специалисты по обработке данных определяют доступные ресурсы данных, относящиеся к проблемной области. Чтобы получить данные, мы можем выполнить парсинг на соответствующем веб-сайте или использовать репозиторий с готовыми наборами данных, готовыми к использованию. Обычно готовые наборы данных представляют собой файлы CSV или Excel; в любом случае, если мы хотим собирать данные с любого веб-сайта или репозитория, мы должны использовать Pandas, полезный инструмент для загрузки, преобразования и изменения наборов данных. Вот пример этапа сбора данных с пандами.
import pandas as pd # download library to read data into dataframe
pd.set_option('display.max_column', None)
dataframe = pd.read_csv("csv_file_url")
print("Data read into dataframe!")
dataframe.head() # show the first few rows
dataframe.shape # get the dimensions of the dataframe

От понимания к подготовке

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

  • На этапе Анализ данных специалисты по обработке данных пытаются больше узнать о данных, собранных ранее. Мы должны проверить тип каждой информации и узнать больше об атрибутах и ​​их именах.
# get all columns from a dataframe and put them into a list
attributes = list(dataframe.columns.values)
# then we check if a column exist and what is its name.
print([match.group(0) for attributes in attributes for match in [(re.compile(".*(column_name_keyword).*")).search(attributes)] if match])
  • На этапе Подготовка данных специалисты по обработке данных подготавливают данные для моделирования, что является одним из наиболее важных шагов, поскольку модель должна быть чистой и без ошибок. На этом этапе мы должны быть уверены, что данные имеют правильный формат для алгоритма машинного обучения, который мы выбрали на этапе аналитического подхода. Фрейм данных должен иметь соответствующее имя столбца, единое логическое значение (да, нет или 1, 0). Мы должны обращать внимание на название каждой информации, потому что иногда они могут быть написаны разными символами, но это одно и то же; например (WaTeR, water), мы можем исправить это, сделав все значения столбца строчными. Еще одно улучшение можно сделать, удалив исключения данных из фрейма данных из-за их нерелевантности.
# replacing all 'yes' values with '1' and 'no' with '0'
dataframe = dataframe.replace(to_replace="Yes", value=1)
dataframe = dataframe.replace(to_replace="No", value=0)
# making all the value of a column lowercase
dataframe["column"] = dataframe["column"].str.lower()

От моделирования к оценке

После подготовки данных для выбранного алгоритма машинного обучения мы готовы к моделированию.

  • На этапе моделирования специалист по данным имеет возможность понять, готова ли его работа к работе или нуждается в проверке. Моделирование фокусируется на разработке моделей, которые являются описательными или прогнозирующими, и эти модели основаны на аналитическом подходе, который был применен статистически или с помощью машинного обучения. Описательное моделирование - это математический процесс, который описывает реальные события и взаимосвязи между факторами, которые за них отвечают. Например, описательная модель может исследовать такие вещи, как: если человек сделал это, то они, вероятно, предпочитать это. Прогностическое моделирование - это процесс, который использует интеллектуальный анализ данных и вероятность для прогнозирования результатов; например, для определения того, является ли электронное письмо спамом, можно использовать модель прогнозирования. Для прогнозного моделирования специалисты по обработке данных используют обучающий набор, который представляет собой набор исторических данных, результаты которых уже известны. Этот шаг можно повторять несколько раз, пока модель не поймет вопрос и не ответит на него.
  • На этапе Оценка модели специалисты по данным могут оценить модель двумя способами: задержка и перекрестная проверка. В методе Hold-Out набор данных делится на три подмножества: обучающий набор, как мы сказали на этапе моделирования; набор проверки, который представляет собой подмножество, используемое для оценки производительности модели, построенной на этапе обучения; набор тестов - это подмножество для оценки вероятных будущих характеристик модели.

Вот пример моделирования и оценки:

# select dataset and training field
data = pd.read_csv("student-mat.csv", sep=";")
data = data[["G1", "G2", "G3", "studytime", "failures", "absences"]]
predict = "G3" # select field to predict
x = np.array(data.drop([predict], 1))
y = np.array(data[predict])
# split the dataset into training and test subsets
x_train, x_test, y_train, y_test = sklearn.model_selection.train_test_split(x, y, test_size = 0.1)
linear = linear_model.LinearRegression() # create linear regression model
linear.fit(x_train, y_train) # perform the training of the model
acc = linear.score(x_test, y_test) # calculate the accuracy
print("Accuracy: ", acc) # print the accuracy of the model

От развертывания к обратной связи

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

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

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

Чтобы узнать больше, вы можете посетить мой репозиторий GitHub, где вы можете найти реальный пример использования и многое другое.

Источник: Методология IBM Data Science от Coursera
Источник книги: Модель для прогнозирования будущих парадигм: Том 1

Нунцио Логалло