English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гость
1 / ?
назад к урокам

Что такое наука о данных?

Наука о данных — это не просто машинное обучение. Это не просто статистика. Это не просто программирование.

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

Data Science Pipeline

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

1. Собрать — собрать сырые данные из баз данных, API, CSV-файлов или веб-скрейпинга

2. Очистить — обработать отсутствующие значения, исправить типы, удалить дубликаты

3. Исследовать — визуализировать распределения, найти закономерности, задать вопросы

4. Инженерия — создать новые признаки, которые помогают моделям учиться

5. Моделировать — обучать алгоритмы, оценивать производительность, повторять

6. Общаться — представить выводы заинтересованным сторонам, которые принимают решения

Если вы когда-либо использовали сводные таблицы Excel, условное форматирование или VLOOKUP, вы уже выполнили шаги 1-3. Этот урок связывает этот опыт с рабочим процессом на основе Python, используемым в промышленности.

Разминка

Ваш опыт работы с данными

Каждый работал с данными в той или иной форме — бюджетная электронная таблица, трекер оценок, приложение для фитнеса, даже плейлист с количеством воспроизведений.

Опишите момент, когда вы работали с данными в электронной таблице или приложении. Что вы пытались выяснить и дали ли вам данные ответ?

Мусор на входе, мусор на выходе

Почему очистка имеет значение

Специалисты по данным тратят 60-80% своего времени на очистку данных. Это не преувеличение — это последовательный результат во всех опросах промышленности.

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


Распространенные проблемы с данными

- Отсутствующие значения — ячейки пусты. Данные не были собраны или значение действительно равно нулю? Это разные ситуации, требующие разной обработки.

- Неправильные типы данных — столбец чисел, хранящихся как текст, даты в несовместимых форматах (01/02/2024 — это 2 января или 1 февраля?)

- Выбросы — столбец зарплаты содержит одну запись $1 000 000 000. Это реально или опечатка? В любом случае это исказит ваши средние значения.

- Дубликаты — одна и та же запись появляется дважды, потому что две системы объединились несовершенно

- Категориальное кодирование — столбец содержит 'Yes', 'yes', 'Y', 'TRUE' и '1'. Все они означают одно и то же, но ваш компьютер этого не знает.


В pandas (стандартной библиотеке Python для данных) вы обрабатываете это методами типа dropna(), fillna(), astype() и drop_duplicates(). Но сложная часть — это не код, а решение что делать с каждой проблемой.

Common Data Problems

Решения об очистке

Решение того, что делать

Вот реальный сценарий. У вас есть набор данных из 10 000 записей клиентов. В столбце 'age' отсутствует 500 значений.

Ваши варианты:

- Удалить строки — удалить все 500 записей. Просто, но вы теряете 5% своих данных. Если эти 500 клиентов имеют общую черту (может быть, они пропустили поле возраста, потому что обеспокоены приватностью), их удаление вводит смещение.

- Заполнить средним — заменить пробелы средним возрастом. Быстро, но это искусственно снижает дисперсию вашего столбца возраста.

- Заполнить медианой — лучше, чем среднее, если распределение возраста асимметрично (несколько очень старых или очень молодых клиентов, смещающих среднее).

- Использовать флаг — создать новый столбец под названием 'age_missing' (1 или 0) и заполнить исходный медианой. Теперь ваша модель может научиться, информативно ли само отсутствие значений.

Нет универсального правильного ответа. Выбор зависит от того, почему отсутствуют данные и что вы планируете с ними делать.

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

Постановка правильных вопросов

Исследовательский анализ данных (EDA)

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


Ключевые инструменты

- Гистограммы — показывают распределение одной переменной. Имеет ли она колокольчиковую форму? Асимметричная? Бимодальная (два пика)? Гистограмма дохода всегда асимметрична вправо, потому что несколько человек зарабатывают намного больше, чем большинство.

- Диаграммы рассеивания — показывают связь между двумя переменными. Более высокие люди весят больше? Коррелирует ли большее время учебы с более высокими оценками? Паттерн (или его отсутствие) говорит вам, существует ли связь.

- Корреляция — число между -1 и +1, которое измеряет линейную связь. +1 означает идеальную положительную связь, -1 означает идеальную отрицательную, 0 означает отсутствие линейной связи. Но корреляция не подразумевает причинность — продажи мороженого и смерти от утопления коррелируют, потому что оба увеличиваются летом.

- Сводная статистика — среднее, медиана, стандартное отклонение, минимум, максимум. В pandas: df.describe() дает вам все это в одной строке.


Настоящий навык

Инструменты легко учить. Сложная часть — задавать правильные вопросы. Плохой вопрос: 'Что говорят данные?' Хороший вопрос: 'Имеют ли клиенты, которые связались с поддержкой в первую неделю, более высокие показатели удержания?'

EDA Tools

Ловушка корреляции

Корреляция против причинности

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

Классические примеры:

- Города с большим количеством пожарных имеют больше пожаров. (Более крупные города имеют оба.)

- Студенты, которые едят завтрак, получают лучшие оценки. (Может быть, более богатые семьи более вероятно обеспечивают завтрак И академическую поддержку.)

- Страны, которые потребляют больше шоколада, выигрывают больше Нобелевских премий. (Оба коррелируют с национальным богатством.)

Скрытый фактор называется смешивающей переменной — третьей переменной, которая управляет обоими переменными, которые вы рассматриваете.

Correlation vs. Causation

Компания обнаруживает, что сотрудники, которые пользуются офисным спортзалом, берут на 30% меньше больничных. Генеральный директор хочет требовать от всех сотрудников пользоваться спортзалом. Что здесь не так? Какие смешивающие переменные могут объяснить корреляцию?

Создание полезных переменных

Что такое инженерия признаков?

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

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


Распространенные методы

- Нормализация — масштабирование чисел в общий диапазон (0 на 1, или среднее=0 и стандартное отклонение=1). Без этого признак, измеренный в тысячах (зарплата), будет доминировать над признаком, измеренным в единицах (годы опыта).

- Горячее кодирование — преобразование категориальных переменных в бинарные столбцы. Столбец 'color' со значениями [red, blue, green] становится тремя столбцами: 'color_red', 'color_blue', 'color_green', каждый с 0 или 1.

- Группировка — преобразование непрерывной переменной в категории. Возраст 0-17 становится 'minor', 18-64 становится 'adult', 65+ становится 'senior'. Это помогает, когда связь не линейна.

- Признаки взаимодействия — умножение двух признаков вместе. 'Квадратные метры, умноженные на количество ванных комнат' может предсказать цену дома лучше, чем каждый отдельно.

- Знание предметной области — самая мощная методика. Врач, создающий признаки для медицинской модели, знает, какие лабораторные значения имеют значение. Маркетолог знает, что 'дни с последней покупки' более полезны, чем 'дата покупки'. Ни один алгоритм не может это заменить.

Feature Engineering Techniques

Практика признаков

Применение инженерии признаков

Представьте, что вы создаете модель для прогнозирования того, какие клиенты отменят подписку на потоковое вещание в следующем месяце. Ваши сырые данные включают:

- Дата создания аккаунта

- Дата последнего входа

- Количество просмотренных шоу в прошлом месяце

- Размер ежемесячного платежа

- Поданные билеты поддержки клиентов

- Страна

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

Разделение на обучение/тестирование

Почему вы разделяете данные

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

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

Стандартная практика — разделить ваши данные:

- Обучающий набор (обычно 70-80%) — модель учится на этом

- Набор тестирования (обычно 20-30%) — удерживается, используется только для оценки итоговой модели

В scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)


Общие алгоритмы

- Линейная регрессия — рисует лучшую прямую линию через данные. Простая, интерпретируемая, работает, когда связь примерно линейная. Предсказывает число (цена, температура, оценка).

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

- Случайные леса — много деревьев решений, которые голосуют вместе. Более точны, чем одно дерево, менее подвержены переобучению, но сложнее объяснить.


Переобучение против недообучения

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

- Недообучение — модель слишком проста. Она не может захватить реальные закономерности. Низкая точность как на обучающих, так и на тестовых данных.

Цель — найти золотую середину.

Train/Test Split and Bias-Variance Tradeoff

Метрики оценки

Как узнать, хороша ли ваша модель?

Одна точность может быть вводящей в заблуждение. Если 95% писем — это не спам, модель, которая всегда говорит 'не спам', на 95% точна — но совершенно бесполезна.

Ключевые метрики:

- Точность — процент правильных прогнозов. Полезно, когда классы сбалансированы.

- Точность предсказания — из всего, что модель отметила как положительное, сколько на самом деле было? Высокая точность означает мало ложных срабатываний.

- Полнота — из всех реальных положительных случаев, сколько поймала модель? Высокая полнота означает мало пропущенных случаев.

- F1 оценка — гармоническое среднее точности и полноты. Полезно, когда вам нужно сбалансировать оба.

- RMSE (среднеквадратичная ошибка) — для регрессии (прогнозирование чисел). Насколько далеко в среднем ошибаются прогнозы?

Какая метрика наиболее важна, зависит от проблемы. Для обнаружения рака полнота важнее — вы не хотите пропустить случай. Для фильтрации спама точность важнее — вы не хотите удалить реальное письмо.

Evaluation Metrics and Confusion Matrix

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

Аналитик данных vs. Специалист по данным vs. Инженер машинного обучения

Три различные роли

Область данных имеет три основных карьерных пути, и они требуют разных навыков.


Аналитик данных

- Фокус: ответы на бизнес-вопросы с использованием существующих данных

- Инструменты: SQL, Excel, Tableau, базовый Python или R

- Ежедневно: панели управления, отчеты, анализ A/B тестов, презентации заинтересованных сторон

- Путь входа: часто наиболее доступный. Многие аналитики начинают без степени CS.


Специалист по данным

- Фокус: создание прогностических моделей и поиск закономерностей в сложных данных

- Инструменты: Python (pandas, scikit-learn, matplotlib), статистика, SQL, Jupyter notebooks

- Ежедневно: EDA, инженерия признаков, построение моделей, экспериментирование

- Путь входа: обычно требует статистического или количественного образования. Bootcamp и самообучение жизнеспособны.


Инженер машинного обучения

- Фокус: развертывание и масштабирование моделей в производственных системах

- Инструменты: Python, TensorFlow/PyTorch, Docker, облачные платформы (AWS/GCP), APIs

- Ежедневно: оптимизация моделей, инфраструктура конвейера, мониторинг производственных моделей

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


Создание портфолио

Менеджерам по найму важно, что вы можете делать, а не только то, что вы изучали. Портфолио из 3-5 твёрдых проектов на GitHub имеет значение больше, чем сертификаты. Хорошие проекты используют реальные (не игрушечные) наборы данных, включают четкую документацию и показывают полный конвейер — от грязных данных к полезной идее.

Data Career Paths

Ваши следующие шаги

Куда идти дальше

Инструменты ремесла свободны и доступны:

- pandas — стандартная библиотека Python для манипуляции данными

- matplotlib / seaborn — библиотеки визуализации

- scikit-learn — рабочая лошадь классического машинного обучения

- Jupyter notebooks — интерактивные среды кодирования, где вы можете смешивать код, вывод и заметки

- Kaggle — бесплатные наборы данных, конкурсы и сообщество практиков

Начните с одного реального набора данных, который вас интересует. Загрузите его, очистите, исследуйте и попытайтесь ответить на вопрос. Этот единственный проект научит вас больше, чем любой курс.

На основе того, что вы узнали в этом уроке, какая из трех ролей (аналитик данных, специалист по данным или инженер машинного обучения) вас больше всего интересует? Какой один конкретный шаг вы могли бы предпринять на этой неделе, чтобы начать развивать навыки для этой роли?