Перейти к основному контенту

Гид по кейсам использования data science

Узнайте о кейсах использования data science и о том, как data science можно внедрять в разных отраслях для стимулирования роста и принятия решений.
Обновлено 31 авг. 2026 г.  · 15 мин читать

Изучить с помощью AI

ChatGPTClaudePerplexity

Концептуальное изображение искусственного интеллекта

Data Science: определение и практические применения

Data science — относительно недавняя, но быстро развивающаяся и многогранная область знаний, применяемая во множестве сфер. Она использует различные методы продвинутой аналитики и алгоритмы предиктивного моделирования, чтобы извлекать из данных значимые инсайты, помогающие отвечать на стратегические бизнес- или научные вопросы. Data science объединяет широкий спектр навыков — от технических (программирование, линейная алгебра, статистика и моделирование) до нетехнических (наглядное представление и эффективная коммуникация результатов). Кроме того, в зависимости от отрасли, где применяется data science, важно обладать глубокими предметными знаниями, чтобы корректно интерпретировать доступную информацию и полученные выводы.

Алгоритмы data science успешно применяются в самых разных контекстах, где собирается или может собираться большой объём данных: финансы, торговля, маркетинг, управление проектами, страхование, медицина, образование, производство, HR, лингвистика, социология и др. По сути, любая отрасль или наука может серьёзно выиграть от сбора, аккумулирования, анализа и моделирования своих данных.

Что такое кейс использования data science?

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

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

  • Планирование кейса data science включает: формулирование чёткой цели и ожидаемых результатов, понимание объёма работ, оценку доступных ресурсов, предоставление необходимых данных, оценку рисков и определение KPI как меры успеха.
  • Самые распространённые подходы к решению кейсов data science: прогнозирование, классификация, обнаружение шаблонов и аномалий, рекомендательные системы и распознавание изображений.
  • Некоторые кейсы представляют типовые задачи для разных сфер, и для их решения можно полагаться на схожие подходы: прогноз оттока клиентов, сегментация клиентов, выявление мошенничества, построение рекомендаций и оптимизация цен.

Как решить кейс по data science?

Ответ на этот вопрос сильно зависит от конкретики, продиктован бизнес-стратегией компании и сутью самого кейса. Тем не менее полезно наметить общий план действий, подходящий практически к любому кейсу по data science:

  1. Постановка корректного вопроса. Этот первый шаг очень важен и включает обзор литературы и существующих исследований, изучение лучших практик, проработку релевантных теорий и рабочих гипотез, а также заполнение возможных пробелов в предметной экспертизе. В итоге должен появиться чёткий вопрос, на который предстоит ответить в интересующем кейсе.
  2. Сбор данных. На этом этапе проводятся инвентаризация и сбор данных. В реальности данные часто нерепрезентативны, неполны, с ошибками и неструктурированы, то есть далеки от аккуратной таблицы, готовой к анализу. Поэтому необходимо искать и выявлять все возможные источники данных, пригодные для темы. Нужные данные могут быть найдены в архивах компании, получены веб-скрейпингом, предоставлены спонсором и т. п.
  3. Подготовка данных. Обычно это самая трудо- и ресурсоёмкая часть любого проекта по data science. Оцениваются качество и репрезентативность собранных данных, проводится первичное исследование. Данные очищаются, предобрабатываются, трансформируются, модифицируются и приводятся из сырого вида к более удобному формату.
  4. Анализ и моделирование. Очищенные данные анализируются с точки зрения их текущего состояния, затем подгоняются под выбранную предиктивную статистическую модель. Оценивается точность модели, и если она неудовлетворительна, пробуются другие подходы к моделированию. Этот процесс повторяется до получения модели, которая с наибольшей точностью прогнозирует будущие сценарии. Поэтому этот шаг, как и предыдущие, может быть итеративным.
  5. Коммуникация результатов. В отличие от предыдущих шагов, здесь важнее коммуникация и софт-скиллы, а не программирование и техническая экспертиза. Необходимо донести ключевые находки и итоговые выводы до руководства, акционеров и других заинтересованных сторон. Инсайты обычно представляются в виде отчётов, статей и презентаций с указанием возможных дальнейших шагов.

Кейсы использования data science по отраслям

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

Data science в здравоохранении

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

Медицина и поставщики медуслуг собирают огромные объёмы данных из множества источников: электронные медицинские карты (EHR), данные с носимых устройств, результаты медицинских исследований, биллинговые документы. Использование инновационных методов data science и анализа данных постепенно трансформирует всю индустрию здравоохранения, предлагая самые перспективные и значимые решения для её развития. В частности, отдельные специализированные направления — генетика, репродуктивная медицина, онкология, биотехнологии, радиография, предиктивная диагностика, фармацевтика — вышли на новый уровень благодаря раскрытию потенциала своих данных.

Чтобы лучше понять ценность data science для медицины, рассмотрим один из классических кейсов.

Кейс data science в здравоохранении: прогнозирование рака молочной железы

Согласно World Cancer Research Fund International, рак молочной железы — самый распространённый вид рака среди женщин и второй по распространённости в целом. Своевременная диагностика патологии молочной железы — доброкачественной или злокачественной — чрезвычайно важна, поскольку существенно повышает шансы на успешное лечение и выживаемость. Здесь на помощь приходит data science.

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

Основная проблема при использовании таких наборов данных в классификаторах — сильный дисбаланс классов. Например, если исход имеет вид «рак / нет рака», вероятность наличия патологии (записи минорного класса) значительно ниже вероятности её отсутствия (записи мажорного класса). В результате алгоритм склонен относить новые случаи к непатологическим. Поэтому для более корректной оценки точности таких моделей имеет смысл использовать метрику F1, поскольку она учитывает ложноположительные (ошибка I рода) и ложноотрицательные (ошибка II рода) ответы, а не только долю правильных классификаций.

Рассмотрим реальный набор данных Breast Cancer из одного из штатов США. Подробные описания признаков приведены в документации; в общих чертах это средние значения, стандартные ошибки и наибольшие значения атрибутов, извлечённых из оцифрованных изображений клеточных ядер в тканях груди. Каждая запись соответствует женщине со злокачественной или доброкачественной опухолью (то есть у всех есть какая-то опухоль). Среди атрибутов: радиус клетки, текстура, гладкость, компактность, вогнутость, симметрия и т. д.

import pandas as pd

cancer_data = pd.read_csv('data.csv')
pd.options.display.max_columns = len(cancer_data)
print(f'Number of entries: {cancer_data.shape[0]:,}\n'
      f'Number of features: {cancer_data.shape[1]:,}\n\n'
      f'Number of missing values: {cancer_data.isnull().sum().sum()}\n\n'
      f'{cancer_data.head(2)}')
Number of entries: 569
Number of features: 33

Number of missing values: 569

      id diagnosis  radius_mean  texture_mean  perimeter_mean  area_mean  \
0  842302         M        17.99         10.38           122.8     1001.0  
1  842517         M        20.57         17.77           132.9     1326.0  

  smoothness_mean  compactness_mean  concavity_mean  concave points_mean  \
0          0.11840           0.27760          0.3001              0.14710  
1          0.08474           0.07864          0.0869              0.07017  

  symmetry_mean  fractal_dimension_mean  radius_se  texture_se  perimeter_se  \
0         0.2419                 0.07871     1.0950      0.9053         8.589  
1         0.1812                 0.05667     0.5435      0.7339         3.398  

  area_se  smoothness_se  compactness_se  concavity_se  concave points_se  \
0   153.40       0.006399         0.04904       0.05373            0.01587  
1    74.08       0.005225         0.01308       0.01860            0.01340  

  symmetry_se  fractal_dimension_se  radius_worst  texture_worst  \
0      0.03003              0.006193         25.38          17.33  
1      0.01389              0.003532         24.99          23.41  

  perimeter_worst  area_worst  smoothness_worst  compactness_worst  \
0            184.6      2019.0            0.1622             0.6656  
1            158.8      1956.0            0.1238             0.1866  

  concavity_worst  concave points_worst  symmetry_worst  \
0           0.7119                0.2654          0.4601  
1           0.2416                0.1860          0.2750  

  fractal_dimension_worst  Unnamed: 32 
0                  0.11890          NaN 
1                  0.08902          NaN 

Удалим последний столбец, который содержит только пропуски:

cancer_data = cancer_data.drop('Unnamed: 32', axis=1)

Какой процент женщин имеет подтверждённый рак (злокачественную опухоль молочной железы)?

round(cancer_data['diagnosis'].value_counts()*100/len(cancer_data)).convert_dtypes()
B    63
M    37
Name: diagnosis, dtype: Int64

37% всех респонденток имеют рак молочной железы, следовательно, набор данных довольно сбалансирован.

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

X = cancer_data.iloc[:, 2:32].values
y = cancer_data.iloc[:, 1].values

# Encoding categorical data
from sklearn.preprocessing import LabelEncoder

labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)

Теперь создадим обучающую и тестовую выборки, а затем масштабируем признаки:

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)

sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

Для моделирования данных применим алгоритмы с параметрами по умолчанию: k-ближайших соседей (KNN) и логистическую регрессию:

from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression

# KNN
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
knn_predictions = knn.predict(X_test)

# Logistic regression
lr = LogisticRegression()
lr.fit(X_train, y_train)
lr_predictions = lr.predict(X_test)

Ранее мы увидели, что набор данных достаточно сбалансирован, поэтому для выбора наиболее точной модели можно использовать метрику accuracy:

from sklearn.metrics import accuracy_score

print(f'Accuracy scores:\n'
      f'KNN model:\t\t   {accuracy_score(y_test, knn_predictions):.3f}\n'
      f'Logistic regression model: {accuracy_score(y_test, lr_predictions):.3f}')
Accuracy scores:
KNN model:         0.956
Logistic regression model: 0.974

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

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

Другие распространённые кейсы data science в здравоохранении:

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

Data science в транспорте и логистике

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

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

Чем именно может помочь data science в транспорте и логистике? Вот далеко не полный список возможных применений:

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

Кейс data science в транспорте и логистике: определение оптимального расположения такси

Uber Technologies Inc. (Uber) — американская компания, предоставляющая различные логистические и транспортные услуги. В этом кейсе мы кластеризуем GPS-данные поездок Uber, чтобы определить оптимальное размещение такси. В частности, это может быть полезно для следующих целей:

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

Мы будем использовать набор данных из FiveThirtyEight о поездках Uber в Нью‑Йорке в апреле 2014 года:

import pandas as pd

uber_data = pd.read_csv('uber-raw-data-apr14.csv')
print(f'Number of trips: {uber_data.shape[0]:,}\n\n'
      f'{uber_data.head()}')
Number of trips: 564,516

          Date/Time      Lat      Lon    Base
0  4/1/2014 0:11:00  40.7690 -73.9549  B02512
1  4/1/2014 0:17:00  40.7267 -74.0345  B02512
2  4/1/2014 0:21:00  40.7316 -73.9873  B02512
3  4/1/2014 0:28:00  40.7588 -73.9776  B02512
4  4/1/2014 0:33:00  40.7594 -73.9722  B02512

Схематично визуализируем все точки посадки, учитывая, что долгота — это ось x, а широта — ось y:

import matplotlib.pyplot as plt

plt.scatter(uber_data.iloc[:, 2], uber_data.iloc[:, 1])
plt.show()

График данных поездок Uber

Для кластеризации используем алгоритм неконтролируемого обучения k-means. Идея подхода — разделить все образцы данных на несколько групп с одинаковой дисперсией. По сути, он принимает количество кластеров n_clusters (по умолчанию 8) и делит данные соответствующим образом. Чтобы определить оптимальное число кластеров, применим графический метод локтя. Он включает следующие шаги:

  • Обучение нескольких моделей с разным количеством кластеров и сбор значений WCSS (сумма квадратов отклонений внутри кластера) для каждой — сумма квадратов расстояний наблюдений до ближайшего центра кластера.
  • Построение графика WCSS в зависимости от числа кластеров.
  • Выбор наименьшего числа кластеров, при котором наблюдается существенное снижение WCSS.
from sklearn.cluster import KMeans

wcss = []
for i in range(1, 11):
    kmeans = KMeans(n_clusters=i, random_state=1)
    kmeans.fit(uber_data[['Lat', 'Lon']])
    wcss.append(kmeans.inertia_)

plt.figure(figsize=(12, 5))
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method', fontsize=25)
plt.xlabel('Number of clusters', fontsize=18)
plt.ylabel('WCSS', fontsize=18)
plt.xticks(ticks=list(range(1, 11)),
          labels=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'])
plt.show()

График количества кластеров

В нашем случае наиболее подходящее число кластеров — 7. Используем это значение для обучения модели и предсказания номера кластера для каждой точки посадки. Также снова изобразим точки на графике, добавив положения семи центроидов кластеров:

kmeans = KMeans(n_clusters=7, random_state=1)
kmeans.fit_predict(df[['Lat', 'Lon']])
plt.scatter(uber_data.iloc[:, 2], uber_data.iloc[:, 1])
plt.scatter(kmeans.cluster_centers_[:, 1], kmeans.cluster_centers_[:, 0], s=100, c='lime')
plt.show()

График с семью центроидами кластеров

Теперь извлечём точные координаты всех центроидов и выведем их отдельно, без самих данных:

centroids = pd.DataFrame(kmeans.cluster_centers_)
centroids.columns = ['Lat', 'Lon']
print(centroids)
plt.scatter(centroids['Lon'], centroids['Lat'])
plt.show()
  Lat        Lon
0  40.688588 -73.965694
1  40.765423 -73.973165
2  40.788001 -73.879858
3  40.656997 -73.780035
4  40.731074 -73.998644
5  40.700541 -74.201673
6  40.971229 -73.611288

Отображённые координаты всех центроидов

Было бы нагляднее показать эти центроиды на карте Нью‑Йорка:

import folium

centroids_values = centroids.values.tolist()
nyc_map = folium.Map(location=[40.79659011772687, -73.87341741832425], zoom_start=50000)
for point in range(0, len(centroids_values)):
    folium.Marker(centroids_values[point], popup=centroids_values[point]).add_to(nyc_map)
nyc_map

Карта Нью‑Йорка

С помощью нашей модели можно предсказывать ближайший кластер для любой точки в Нью‑Йорке, заданной географическими координатами. На практике это означает, что Uber отправит свободное такси из ближайшего кластера и обслужит клиента быстрее.

Найдём ближайший кластер для Линкольн-центра (Lincoln Center for the Performing Arts) в Манхэттене:

lincoln_center = [(40.7725, -73.9835)]
kmeans.predict(lincoln_center)
array([1])

И для района Ховард-Бич (Howard Beach) в Квинсе:

howard_beach = [(40.6571, -73.8430)]
kmeans.predict(howard_beach)
array([3])

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

Другие распространённые кейсы data science в транспорте и логистике:

  • динамическое ценообразование под спрос/предложение
  • прогнозирование спроса
  • автоматизация ручных операций
  • беспилотные транспортные средства
  • прозрачность цепочки поставок
  • обнаружение повреждений
  • управление складом
  • анализ тональности клиентов
  • чат-боты службы поддержки

Data science в телекоме

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

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

Применение методов data science к накопленным данным может помочь телекому во многих отношениях:

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

Рассмотрим подробнее типичную задачу в телекоме — обнаружение и фильтрацию нежелательных сообщений.

Кейс data science в телекоме: построение спам-фильтра

Фильтрация спама — важнейшая функция всех современных каналов письменной коммуникации, поскольку защищает нас от ежедневных писем, пытающихся выманить деньги. Технически это ещё один пример задачи классификации: на основе исторических данных каждому новому сообщению присваивается метка ham (нормальное сообщение) — тогда оно попадает напрямую получателю, или spam — тогда оно блокируется или помещается в папку «Спам».

Популярный алгоритм контролируемого обучения для этой задачи — наивный байесовский классификатор. Он основан на одноимённой теореме теории вероятностей, а «наивный» — из‑за предположения о взаимной независимости всех слов в сообщении. Это допущение не совсем верно, игнорируются контекст и векторные представления слов. Однако в большинстве задач текстовой классификации с небольшим количеством данных этот подход хорошо работает и даёт точные предсказания.

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

Применим мультиномиальный наивный Байес к SMS Spam Collection Data Set из UCI Machine Learning Repository.

import pandas as pd

sms_data = pd.read_csv('SMSSpamCollection', sep='\t', header=None, names=['Label', 'SMS'])
print(f'Number of messages: {sms_data.shape[0]:,}\n\n'
      f'{sms_data.head()}')
Number of messages: 5,572

  Label                                                SMS
0   ham  Go until jurong point, crazy.. Available only ...
1   ham                      Ok lar... Joking wif u oni...
2  spam  Free entry in 2 a wkly comp to win FA Cup fina...
3   ham  U dun say so early hor... U c already then say...
4   ham  Nah I don't think he goes to usf, he lives aro...

Всего 5 572 сообщения, размеченных вручную. Какой процент из них — спам?

round(sms_data['Label'].value_counts()*100/len(sms_data)).convert_dtypes()
ham     87
spam    13
Name: Label, dtype: Int64

13% SMS были вручную помечены как спам.

Чтобы подготовить данные для мультиномиального наивного Байеса, сначала нужно выполнить следующие шаги:

  1. Закодировать метки из строкового формата в числовой. В нашем случае метки бинарны, поэтому используем 0/1.
  2. Выделить признаки-предикторы и целевую переменную.
  3. Разбить данные на обучающую и тестовую выборки.
  4. Векторизовать строки из столбца SMS в обучающем и тестовом наборах предикторов, получив CSR-матрицы (compressed sparse row).

Четвёртый шаг требует дополнительного пояснения. Мы создаём объект векторизатора, обучаем его на словаре (все уникальные слова из всех сообщений обучающего набора предикторов с их частотами), а затем преобразуем обучающий и тестовый наборы предикторов в матрицы. В результате получим две матрицы для train и test: столбцы соответствуют каждому уникальному слову из сообщений обучающего набора, строки — самим сообщениям, а значения в ячейках — частоте слова в сообщении.

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer

# Encoding labels
sms_data = sms_data.replace('ham', 0).replace('spam', 1)

X = sms_data['SMS'].values
y = sms_data['Label'].values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)

# Vectorizing strings from the 'SMS' column
cv = CountVectorizer(max_df=0.95)
cv.fit(X_train)
X_train_csr_matrix = cv.transform(X_train)
X_test_csr_matrix = cv.transform(X_test)

Далее построим мультиномиальный наивный Байес с параметрами по умолчанию и проверим его точность:

from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score, f1_score

clf = MultinomialNB()
clf.fit(X_train_csr_matrix, y_train)
predictions = clf.predict(X_test_csr_matrix)

print(f'Model accuracy:\n'
      f'Accuracy score: {accuracy_score(y_test, predictions):.3f}\n'
      f'F1-score:       {f1_score(y_test, predictions):.3f}\n')
Model accuracy:
Accuracy score: 0.990
F1-score:       0.962

В результате мы получили высокоточный спам-фильтр.

Возможные дальнейшие шаги: попробовать другие способы разбиения train/test, улучшить процесс векторизации настройкой её многочисленных параметров (например, порог отсечения слишком частых слов и в спаме, и в ham), проанализировать редкие случаи неверной классификации и понять их причины. Кроме того, можно визуализировать самые частотные слова в спаме и ham с помощью облака слов (после предварительной очистки данных и исключения стоп-слов/низкоинформативной лексики). Наконец, можно применить другие алгоритмы машинного и глубокого обучения (SVM, деревья решений, нейросети) и сравнить результаты с наивным Байесом.

Другие распространённые кейсы data science в телекоме:

  • сегментация клиентов
  • разработка продуктов
  • анализ детализации звонков (CDR)
  • рекомендательные системы
  • прогноз оттока клиентов
  • таргетированный маркетинг
  • выявление мошенничества
  • управление и оптимизация сети
  • повышение безопасности сети
  • оптимизация цен
  • прогноз пожизненной ценности клиента

Кейсы по data science: курсы

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

  1. Кейс: бюджетирование школ с машинным обучением на Python. В этом курсе по мотивам соревнования на DrivenData вы изучите задачу, связанную с бюджетированием районов и тем, как упростить и ускорить школам сравнение своих расходов с другими. Применяя методы обработки естественного языка, вы подготовите школьные бюджеты и построите модель для автоматической классификации их статей — начнёте с простой версии и постепенно перейдёте к более продвинутой. Кроме того, вы увидите и проанализируете решение победителя соревнования, а также ознакомитесь с работами других участников.
  2. Анализ маркетинговых кампаний с pandas. Pandas — самая популярная библиотека Python, и уверенное владение её инструментами — маст‑хэв для любого специалиста по данным. В этом практическом курсе вы закрепите основы Python и pandas (добавление столбцов, объединение/срезы наборов данных, работа с датами, визуализация в matplotlib) на базе фиктивного маркетингового датасета онлайн‑подписок. Вы попрактикуетесь переводить типичные маркетинговые вопросы в измеримые метрики. Среди вопросов: «Как сработала эта кампания?», «Почему конкретный канал недопоказывает результат?», «Какой канал приводит больше всего подписчиков?» и т. п.
  3. Анализ данных переписей США на Python. Вы научитесь легко ориентироваться в деценнальной переписи и ежегодном обследовании American Community Survey и извлекать демографические и социально‑экономические данные — доход домохозяйств, маятниковую миграцию, расовый состав, структуру семьи. Вы будете использовать Python для запросов данных по разным географиям к Census API, а также pandas для обработки данных и получения значимых инсайтов. Дополнительно вы попрактикуетесь в картографировании с библиотекой geopandas.
  4. Кейс: разведочный анализ данных в R. Короткий курс для тех, кто уже знаком с инструментами манипуляции и визуализации данных в R. Пройдя материалы, вы примените навыки на реальном наборе данных, исследуя исторические результаты голосований Генассамблеи ООН. В частности, вы проанализируете тенденции голосования между странами, во времени и по международным вопросам. Этот кейс позволит провести полный цикл EDA, попрактиковаться с пакетами dplyr и ggplot2 и освоить новые приёмы.
  5. HR‑аналитика: исследование данных о сотрудниках в R. R известен как более приспособленный для статистики, чем Python. В этом курсе вы используете это преимущество R для манипуляций, визуализации и проведения статистических тестов на серии кейсов по HR‑аналитике. Методы data science пришли в HR относительно недавно, но сегодня это очень перспективное направление: всё больше компаний рассчитывают на HR‑подразделения в предоставлении практических инсайтов и рекомендаций на основе базы данных сотрудников.
  6. Принятие решений на основе данных в SQL. Вы научитесь использовать SQL для поддержки принятия решений и отчётности для руководства. Рассматриваемый кейс посвящён онлайн‑сервису аренды фильмов с базой о клиентах, оценках фильмов, фоновой информации об актёрах и т. д. Среди задач — применять SQL‑запросы для изучения предпочтений клиентов, вовлечённости и динамики продаж. Вы узнаете о расширениях SQL для онлайн‑аналитической обработки, помогающих получать ключевые инсайты из сложных многомерных данных.

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

Заключение

Итак, в этой статье мы с разных сторон рассмотрели, что такое data science, чем она отличается от аналитики данных, в каких сферах применима, что такое кейс использования и какой общий план действий помогает успешно его решить. Мы обсудили, как именно data science полезна для реальных задач в востребованных отраслях. Перечислив множество существующих и потенциальных применений, мы сфокусировались на самых распространённых кейсах в каждой из популярных сфер и показали, как их решать с помощью алгоритмов data science и аналитики данных. Если вы хотите узнать больше о кейсах в других индустриях, ознакомьтесь с нашими материалами по банкингу, маркетингу и продажам. Наконец, мы рассмотрели несколько полезных онлайн‑курсов для более глубокого погружения в другие кейсы data science.

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

Темы
Data Science
Дата-грамотность