Современные методы анализа данных и машинного обучения

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

1. Введение в Data Science: сбор, очистка и разведочный анализ данных (EDA)

Введение в Data Science: сбор, очистка и разведочный анализ данных (EDA)

Добро пожаловать в курс «Современные методы анализа данных и машинного обучения». Мы начинаем наше путешествие с фундамента, на котором строится любая модель искусственного интеллекта. Часто новички стремятся сразу перейти к созданию нейронных сетей, игнорируя этапы работы с данными. Это критическая ошибка. В реальности Data Scientist тратит до 80% времени именно на подготовку данных, и только 20% — на моделирование.

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

Что такое Data Science?

Data Science (Наука о данных) — это междисциплинарная область, использующая научные методы, процессы, алгоритмы и системы для извлечения знаний и инсайтов из структурированных и неструктурированных данных.

Представьте, что данные — это сырая нефть. Сама по себе она имеет низкую ценность. Чтобы получить топливо (ценную информацию или прогноз), нефть нужно добыть, очистить и переработать. Именно этим и занимается Data Science.

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

Этап 1: Сбор данных (Data Collection)

Любой проект начинается с вопроса: «Где взять данные?». Данные могут быть структурированными (таблицы, базы данных) и неструктурированными (текст, изображения, аудио).

Основные источники данных:

  • Базы данных компании. Это могут быть SQL-базы (PostgreSQL, MySQL), где хранятся транзакции, информация о клиентах и логистика.
  • API (Application Programming Interface). Программные интерфейсы, позволяющие получать данные от сторонних сервисов (например, погода, котировки акций, социальные сети).
  • Web Scraping. Автоматический сбор информации с веб-сайтов. Используется, когда нет прямого доступа к API.
  • Открытые датасеты. Репозитории вроде Kaggle, UCI Machine Learning Repository или государственные порталы открытых данных.
  • Этап 2: Очистка данных (Data Cleaning)

    В индустрии существует принцип: Garbage In, Garbage Out (Мусор на входе — мусор на выходе). Если вы подадите в модель машинного обучения «грязные» данные, вы получите неверные прогнозы, какими бы мощными ни были ваши алгоритмы.

    Основные проблемы «грязных» данных:

    * Пропущенные значения (Missing Values). В таблицах они часто обозначаются как NaN (Not a Number) или null. Причины могут быть разными: пользователь не заполнил поле, ошибка датчика, сбой при выгрузке. * Дубликаты. Повторяющиеся записи, которые могут исказить статистику. * Выбросы (Outliers). Аномальные значения, сильно отличающиеся от остальных. Например, возраст человека 200 лет или зарплата -5000 рублей. * Неверный формат. Например, дата записана как строка «2023/01/01» в одной ячейке и «01-01-2023» в другой.

    Методы борьбы с пропусками:

  • Удаление. Если пропусков мало (например, менее 5%), строки с ними можно просто удалить.
  • Заполнение (Imputation).
  • * Заполнение средним или медианой (для численных данных). * Заполнение модой (самым частым значением) для категориальных данных. * Использование алгоритмов (например, k-NN) для предсказания пропущенного значения на основе других данных.

    Этап 3: Разведочный анализ данных (EDA)

    Exploratory Data Analysis (EDA) — это процесс предварительного анализа данных с целью выявления основных закономерностей, аномалий и проверки гипотез с помощью статистики и графических представлений.

    EDA помогает ответить на вопросы: * Как распределены данные? * Есть ли корреляция между признаками? * Какие факторы влияют на целевую переменную?

    Описательная статистика

    Для начала нам нужно описать данные числами. Рассмотрим ключевые метрики.

    #### Меры центральной тенденции

    Самая простая мера — это среднее арифметическое. Оно показывает «центр» данных.

    Где: * — среднее арифметическое значение выборки. * — количество элементов в выборке. * — знак суммирования (сигма). * — значение -го элемента выборки.

    Однако среднее чувствительно к выбросам. Если у нас есть 10 человек с зарплатой 50 000 и один с зарплатой 10 000 000, среднее будет огромным и не отразит реальность. В таких случаях используют медиану — число, которое делит упорядоченный ряд данных ровно пополам.

    #### Меры разброса

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

    Формула дисперсии для генеральной совокупности:

    Где: * — дисперсия (variance). * — знак суммирования. * — значение конкретного элемента. * — среднее значение генеральной совокупности. * — общий размер совокупности.

    Дисперсия измеряется в квадратных единицах (например, «квадратные рубли»), что неудобно для интерпретации. Поэтому чаще используют стандартное отклонение (среднеквадратическое отклонение), которое является корнем из дисперсии:

    Где: * — стандартное отклонение. Оно показывает, насколько в среднем значения отклоняются от среднего.

    !Иллюстрация правила трех сигм для нормального распределения.

    Визуализация в EDA

    Человеческий мозг лучше воспринимает образы, чем таблицы. Рассмотрим основные типы графиков.

  • Гистограмма (Histogram). Показывает распределение одной переменной. Весь диапазон значений делится на интервалы (бины), и высота столбца показывает, сколько объектов попало в этот интервал.
  • Ящик с усами (Boxplot). Отличный инструмент для поиска выбросов. Он показывает медиану, квартили (25% и 75%) и «усы», за пределами которых находятся аномальные значения.
  • Диаграмма рассеяния (Scatter plot). Показывает зависимость между двумя числовыми переменными. Каждая точка — это объект.
  • Тепловая карта (Heatmap). Часто используется для визуализации матрицы корреляций.
  • Корреляция

    Корреляция показывает, насколько сильно две переменные связаны друг с другом. Самый популярный метод — коэффициент корреляции Пирсона.

    Где: * — коэффициент корреляции Пирсона (значение от -1 до 1). * — значения переменных и для -го объекта. * — средние значения переменных и .

    Интерпретация : * 1: Полная положительная корреляция (рост ведет к росту ). * -1: Полная отрицательная корреляция (рост ведет к падению ). * 0: Линейная связь отсутствует.

    > «Корреляция не означает причинно-следственную связь (Correlation does not imply causation)». Наличие связи между продажами мороженого и нападениями акул не значит, что мороженое вызывает агрессию акул. Просто оба фактора зависят от третьего — жаркой погоды.

    Инструменты для EDA

    В современном мире стандартом де-факто для анализа данных является язык программирования Python. Основные библиотеки, с которыми вам предстоит работать:

    * Pandas: Для работы с табличными данными (аналог Excel на стероидах). * NumPy: Для быстрых математических операций. * Matplotlib / Seaborn: Для построения графиков и визуализации.

    Пример того, как просто загрузить и посмотреть данные на Python:

    Заключение

    Сбор, очистка и разведочный анализ данных — это фундамент Data Science. Без качественного EDA невозможно построить надежную модель. Мы научились понимать природу данных, находить в них ошибки и описывать их с помощью математической статистики и визуализации.

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

    2. Обучение с учителем: линейные модели, деревья решений и ансамблевые методы

    Обучение с учителем: линейные модели, деревья решений и ансамблевые методы

    В предыдущей статье мы проделали огромную работу: собрали данные, очистили их от мусора и провели разведочный анализ (EDA). Теперь у нас есть качественный датасет, и мы готовы к самому интересному этапу — созданию прогнозных моделей.

    Сегодня мы погрузимся в мир обучения с учителем (Supervised Learning). Это самый распространенный тип машинного обучения в бизнесе. Мы разберем путь от простых линий до мощных ансамблей, которые выигрывают международные соревнования.

    Что такое обучение с учителем?

    Представьте, что вы учите ребенка отличать яблоки от груш. Вы показываете ему фрукт и говорите: «Это яблоко». Показываете другой: «Это груша». После сотни примеров ребенок начинает самостоятельно определять фрукт, даже если видит его впервые.

    В машинном обучении: * Учитель — это размеченные данные (исторические примеры с правильными ответами). * Ученик — это алгоритм (модель).

    Формально у нас есть матрица признаков (характеристики объектов) и вектор целевой переменной (правильные ответы). Задача модели — найти такую функцию , чтобы .

    !Иллюстрация принципа работы Supervised Learning: данные с ответами подаются в модель для тренировки.

    Существует два основных типа задач:

  • Регрессия: предсказание непрерывного числа (цена квартиры, температура, выручка).
  • Классификация: предсказание категории (спам/не спам, болен/здоров, кошка/собака).
  • Линейные модели

    Линейные модели — это «автомат Калашникова» в мире Data Science: простые, надежные и интерпретируемые. Они пытаются описать зависимость в данных прямой линией (или гиперплоскостью в многомерном пространстве).

    Линейная регрессия (Linear Regression)

    Допустим, мы хотим предсказать стоимость квартиры () на основе её площади (). Линейная регрессия предполагает, что зависимость выглядит так:

    Где: * — целевая переменная (цена). * — признак (площадь). * — вес признака (коэффициент наклона). Показывает, насколько вырастет цена при увеличении площади на 1 метр. * — свободный член (bias/сдвиг). Базовая цена, если площадь равна нулю.

    Если признаков много (площадь, этаж, район), формула расширяется:

    Где: * — количество признаков. * — значение -го признака. * — вес -го признака.

    Как модель учится? Она подбирает веса , чтобы минимизировать ошибку. Чаще всего используется среднеквадратичная ошибка (MSE — Mean Squared Error):

    Где: * — количество объектов в выборке. * — знак суммирования. * — реальное значение целевой переменной. * — предсказанное моделью значение.

    !Линия регрессии, проходящая через облако точек данных.

    Логистическая регрессия (Logistic Regression)

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

    Линейная модель может выдать любое число (например, 500 или -20), а нам нужна вероятность от 0 до 1. Для этого результат линейного уравнения оборачивают в сигмоиду:

    Где: * — значение функции (вероятность класса 1), лежащее в диапазоне . * — основание натурального логарифма (примерно 2.718). * — выход линейной модели ().

    Деревья решений (Decision Trees)

    Если линейные модели ищут прямые линии, то деревья решений имитируют человеческую логику принятия решений. Это похоже на игру «20 вопросов» или медицинский протокол.

    Как это работает?

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

    Пример задачи: выдать кредит или нет?

  • Вопрос 1: Доход больше 50 000?
  • Да:* Идем направо. Нет:* Идем налево.
  • Вопрос 2 (ветка «Нет»): Есть поручитель?
  • Да:* Выдать кредит. Нет:* Отказать.

    !Визуализация структуры дерева решений с узлами условий и листьями ответов.

    Плюсы и минусы

    * Плюсы: Легко интерпретировать (можно объяснить бизнесу, почему принято решение), работают с нелинейными зависимостями, не требуют масштабирования данных. * Минусы: Склонны к переобучению (overfitting). Дерево может построить слишком сложную структуру, запомнив каждый пример из обучающей выборки, но провалиться на новых данных.

    Ансамблевые методы

    Как победить недостатки одиночных моделей? Объединить их! Ансамбли — это методы, которые комбинируют множество слабых моделей (обычно деревьев решений) для создания одной сильной.

    Существует две основные стратегии ансамблирования: Бэггинг и Бустинг.

    1. Бэггинг (Bagging) и Случайный лес (Random Forest)

    Идея проста: «Одна голова хорошо, а сто — лучше».

    Бэггинг (Bootstrap Aggregating) работает так:

  • Мы создаем множество копий обучающей выборки, выбирая объекты случайным образом (с повторениями).
  • На каждой копии обучаем свое дерево решений независимо от других.
  • Для получения ответа усредняем предсказания всех деревьев (регрессия) или проводим голосование (классификация).
  • Самый популярный алгоритм этого типа — Случайный лес (Random Forest). Он добавляет еще один элемент случайности: при построении каждого дерева рассматриваются не все признаки, а только их случайное подмножество. Это делает деревья максимально непохожими друг на друга, что улучшает качество ансамбля.

    2. Бустинг (Boosting)

    Если бэггинг обучает модели параллельно, то бустинг делает это последовательно.

    Идея: каждая следующая модель должна исправить ошибки предыдущей.

  • Обучаем первое дерево. Оно делает ошибки.
  • Второе дерево учится предсказывать не целевую переменную, а ошибки первого дерева.
  • Третье дерево исправляет ошибки первых двух.
  • Итоговое предсказание — это сумма предсказаний всех деревьев.
  • Популярные библиотеки для бустинга: XGBoost, LightGBM, CatBoost (разработка Яндекса).

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

    Сравнение подходов

    | Характеристика | Линейные модели | Деревья решений | Случайный лес | Бустинг | | :--- | :--- | :--- | :--- | :--- | | Интерпретируемость | Высокая | Высокая | Низкая (черный ящик) | Низкая | | Скорость обучения | Очень быстро | Быстро | Средне | Медленно/Средне | | Точность | Базовая | Средняя | Высокая | Очень высокая | | Склонность к переобучению | Низкая | Высокая | Низкая | Средняя |

    Заключение

    Мы прошли путь от простых формул до сложных композиций алгоритмов.

    * Начинайте с линейных моделей для создания базового решения (baseline). * Используйте деревья решений, если важна интерпретируемость правил. * Применяйте Случайный лес или Бустинг, когда нужна максимальная точность (например, на соревнованиях Kaggle или в продакшене).

    В следующей статье мы рассмотрим, как оценивать качество этих моделей, чтобы не обмануть самих себя красивыми цифрами.

    3. Обучение без учителя: методы кластеризации, понижение размерности и поиск аномалий

    Обучение без учителя: методы кластеризации, понижение размерности и поиск аномалий

    В предыдущей статье мы подробно разобрали обучение с учителем (Supervised Learning). Мы работали в комфортных условиях: у нас были исторические данные с правильными ответами (разметкой). Мы показывали модели характеристики квартиры и её цену, симптомы пациента и диагноз. Задача модели сводилась к тому, чтобы найти зависимость между входом и выходом.

    Но что делать, если «учителя» нет? Что если у нас есть миллионы транзакций, тысячи фотографий или терабайты логов сервера, но никто не проставил метки «мошенничество», «кошка» или «сбой»?

    Добро пожаловать в мир обучения без учителя (Unsupervised Learning). Здесь алгоритм предоставлен сам себе. Его задача — найти структуру в хаосе, сгруппировать похожие объекты и выделить то, что выбивается из общей картины.

    Что такое обучение без учителя?

    В обучении без учителя у нас есть только матрица признаков . Вектора правильных ответов не существует. Мы не говорим модели, что искать. Мы спрашиваем её: «Что ты видишь в этих данных?».

    Основные задачи Unsupervised Learning:

  • Кластеризация: разбиение объектов на группы по схожести.
  • Понижение размерности: сжатие информации для визуализации или ускорения вычислений.
  • Поиск аномалий: выявление редких и подозрительных событий.
  • !Робот самостоятельно находит закономерности и сортирует объекты без подсказок.

    Часть 1: Кластеризация (Clustering)

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

    Примеры из жизни: * Маркетинг: сегментация клиентов (экономные, VIP, охотники за скидками). * География: районирование территорий по типу климата. * IT: группировка новостей по темам в агрегаторах.

    Алгоритм K-Means (К-средних)

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

    Как работает K-Means:

  • Мы выбираем число кластеров , которое хотим найти (например, 3).
  • Алгоритм случайно выбирает точек в пространстве и называет их центроидами (центрами кластеров).
  • Каждый объект данных приписывается к ближайшему центроиду.
  • Центроиды перемещаются в центр масс своих новых кластеров.
  • Шаги 3 и 4 повторяются, пока центроиды не перестанут двигаться.
  • Чтобы определить «близость», чаще всего используется Евклидово расстояние:

    Где: * — расстояние между точкой и точкой (например, между клиентом и центром кластера). * — знак суммирования по всем признакам. * — количество признаков (размерность пространства). * — значения -го признака для точек и .

    > «Скажи мне, кто твой друг, и я скажу, кто ты». В кластеризации: «Скажи мне, к какому центру ты ближе, и я скажу, в какой ты группе».

    Проблема K-Means: Вам нужно заранее знать количество кластеров . Если вы укажете 3, алгоритм найдет 3 группы, даже если в реальности их 5 или 2.

    Иерархическая кластеризация

    Этот метод не требует задавать число кластеров заранее. Он строит дерево (дендрограмму), объединяя похожие объекты.

  • Сначала каждая точка — это отдельный кластер.
  • Находим два самых близких кластера и объединяем их в один.
  • Повторяем, пока все точки не соберутся в один гигантский кластер.
  • Потом мы можем «разрезать» это дерево на нужном уровне, получив любое количество групп.

    DBSCAN

    K-Means плохо работает, если кластеры имеют сложную форму (например, один кластер в форме кольца окружает другой). Здесь на помощь приходит DBSCAN (Density-Based Spatial Clustering of Applications with Noise).

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

    Часть 2: Понижение размерности (Dimensionality Reduction)

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

    Работать с такими данными сложно:

  • Проклятие размерности: в многомерном пространстве все объекты становятся одинаково далекими друг от друга, и алгоритмы (как K-Means) перестают работать.
  • Визуализация: мы не можем нарисовать 500-мерный график. Мы видим только 2D или 3D.
  • Ресурсы: обучение моделей занимает слишком много времени.
  • Задача понижения размерности — сжать эти 500 признаков до 2-3 самых важных, потеряв минимум информации.

    Метод главных компонент (PCA)

    Principal Component Analysis (PCA) — это математическая процедура, которая преобразует набор коррелирующих признаков в набор некоррелирующих переменных, называемых главными компонентами.

    Представьте, что вы фотографируете летящую птицу (3D-объект). Фотография — это проекция 3D в 2D. Если вы сфотографируете птицу спереди, вы увидите только точку (клюв). Это плохая проекция, потеря информации. Если сбоку — вы увидите размах крыльев и форму тела. Это хорошая проекция.

    PCA ищет такой ракурс (проекцию), при котором разброс (дисперсия) данных максимален.

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

    Где: * — дисперсия (разброс) выборки, которую PCA стремится максимизировать вдоль новых осей. * — количество наблюдений. * — значение конкретного наблюдения. * — среднее значение выборки.

    !Проекция многомерных данных на плоскость с помощью PCA для сохранения максимальной информации.

    t-SNE и UMAP

    PCA — линейный метод. Он хорош для простых данных. Для сложной визуализации (например, картинок или текста) используют нелинейные методы: t-SNE и UMAP. Они умеют разворачивать сложные многомерные «клубки» данных на плоскость так, чтобы похожие объекты остались рядом.

    Часть 3: Поиск аномалий (Anomaly Detection)

    Поиск аномалий — это выявление объектов, которые существенно отличаются от нормы.

    Примеры: * Банки: поиск мошеннических транзакций (карта использована в Москве, а через 5 минут — в Токио). * Производство: предсказание поломки оборудования по вибрации и температуре. * IT: обнаружение DDoS-атак.

    Isolation Forest (Изолирующий лес)

    Очень красивый и эффективный алгоритм. Идея основана на том, что аномалий мало и они отличаются от остальных данных.

    Представьте, что вы пытаетесь отделить одну точку от всех остальных, проводя случайные линии (разрезы). * Если точка находится в гуще других точек (норма), вам придется сделать много разрезов, чтобы изолировать её. * Если точка стоит особняком (аномалия), её можно отделить всего одним-двумя разрезами.

    Алгоритм строит множество случайных деревьев. Те объекты, которые изолируются быстрее всего (имеют короткий путь в дереве), считаются аномалиями.

    Практический пример: Сегментация клиентов торгового центра

    Допустим, у нас есть данные о посетителях: «Годовой доход» и «Оценка трат (1-100)».

  • Сбор данных: Мы выгружаем таблицу без меток.
  • EDA: Строим график (Scatter plot). Видим облако точек.
  • K-Means: Запускаем алгоритм с .
  • Результат: Алгоритм раскрашивает клиентов в 5 цветов.
  • Группа 1:* Низкий доход, низкие траты (Экономные). Группа 2:* Высокий доход, высокие траты (VIP). Группа 3:* Низкий доход, высокие траты (Транжиры). Группа 4:* Высокий доход, низкие траты (Рациональные). Группа 5:* Средний доход, средние траты (Стандарт).

    Теперь маркетологи могут отправить VIP-клиентам предложение эксклюзивных товаров, а «Транжирам» — купоны на скидку.

    Заключение

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

    * Используйте K-Means для простой группировки. * Применяйте PCA, если данных слишком много и компьютер «задыхается». * Запускайте Isolation Forest, если нужно найти мошенников или брак.

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

    4. Введение в глубокое обучение: основы нейронных сетей и работа с неструктурированными данными

    Введение в глубокое обучение: основы нейронных сетей и работа с неструктурированными данными

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

    Но посмотрите вокруг. Мир не состоит из таблиц Excel. Мы общаемся речью (аудио), пишем сообщения (текст), смотрим на мир глазами (изображения). Это неструктурированные данные. Для классических алгоритмов, вроде логистической регрессии, фотография кота — это просто набор из миллионов чисел, в котором они не могут найти закономерность.

    Здесь на сцену выходит Глубокое обучение (Deep Learning). Это раздел машинного обучения, основанный на искусственных нейронных сетях, которые пытаются имитировать работу человеческого мозга.

    Биологическое вдохновение

    Идея нейронных сетей не нова. Она возникла из попыток математически описать работу нейрона — базовой клетки нашей нервной системы.

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

    Если суммарный сигнал превышает определенный порог, нейрон «активируется» и передает импульс. Искусственный нейрон работает по тому же принципу.

    !Сравнение структуры биологического нейрона и его математической модели.

    Искусственный нейрон (Перцептрон)

    Давайте разберем математику одного нейрона. Это фундаментальный строительный блок любой, даже самой сложной сети (вроде ChatGPT).

    Нейрон получает на вход набор чисел (признаков), умножает их на веса (важность признака), суммирует и добавляет смещение. Затем результат проходит через функцию активации.

    Формула вычисления взвешенной суммы:

    Где: * — взвешенная сумма (промежуточный результат до активации). * — знак суммирования. * — количество входов (признаков). * — вес -го входа (числовой коэффициент, который сеть «выучивает»). * — значение -го входного признака. * — смещение (bias), позволяющее сдвигать функцию активации влево или вправо.

    Зачем нужна функция активации?

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

    Функция активации добавляет нелинейность. Она решает, насколько сильно должен «выстрелить» нейрон при данном входе.

    Самая популярная функция сегодня — ReLU (Rectified Linear Unit):

    Где: * — выходное значение функции активации. * — операция выбора максимального из двух чисел. * — ноль. * — входное значение (наша сумма ).

    Суть ReLU проста: если сигнал отрицательный, нейрон «молчит» (выдает 0). Если положительный — передает его как есть. Это удивительно просто, но именно это позволяет обучать глубокие сети.

    Многослойный перцептрон (MLP)

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

    Типичная архитектура нейросети:

  • Входной слой (Input Layer): принимает сырые данные (пиксели картинки, слова).
  • Скрытые слои (Hidden Layers): находятся между входом и выходом. Именно здесь происходит магия выделения признаков. Чем больше слоев, тем «глубже» сеть.
  • Выходной слой (Output Layer): выдает финальный прогноз (вероятность того, что на фото кот).
  • !Архитектура полносвязной нейронной сети с двумя скрытыми слоями.

    Как сеть учится? (Backpropagation)

    Изначально веса в сети расставлены случайно. Сеть ничего не знает и на картинку с собакой может сказать «это самолет». Обучение — это процесс настройки весов и так, чтобы минимизировать ошибку.

    Этот процесс состоит из трех шагов:

  • Прямое распространение (Forward Pass): Данные проходят через сеть слева направо, получается предсказание.
  • Вычисление ошибки (Loss Function): Мы сравниваем предсказание с реальностью. Например, используем квадратичную ошибку.
  • Обратное распространение ошибки (Backpropagation): Это ключевой алгоритм глубокого обучения. Мы идем от выхода к входу и вычисляем, какой вклад внес каждый конкретный вес в общую ошибку.
  • Для обновления весов используется метод градиентного спуска:

    Где: * — новое, обновленное значение веса. * — текущее значение веса. * (альфа) — скорость обучения (learning rate). Коэффициент, определяющий размер шага (насколько сильно мы меняем веса). * — градиент (частная производная) функции потерь по весу . Он показывает направление и крутизну роста ошибки.

    Простыми словами: мы узнаем, в какую сторону нужно подкрутить «ручку настройки» (вес), чтобы ошибка уменьшилась, и делаем маленький поворот в эту сторону.

    Работа с неструктурированными данными

    Обычные полносвязные сети (MLP) плохо работают с картинками и текстом. Почему?

    Представьте изображение размером 1000x1000 пикселей. Это 1 миллион входных значений. Если в первом скрытом слое 1000 нейронов, то количество весов будет миллиард. Это слишком много для вычислений, и сеть моментально переобучится.

    Поэтому для разных типов данных придумали специальные архитектуры.

    Компьютерное зрение и Сверточные нейросети (CNN)

    Для работы с изображениями используются Сверточные нейронные сети (Convolutional Neural Networks — CNN).

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

    * Первые слои находят простые линии. * Средние слои собирают из линий фигуры (глаза, уши). * Глубокие слои собирают из фигур целые объекты (морда кота).

    !Принцип работы сверточного слоя: фильтр сканирует изображение для выявления признаков.

    Обработка естественного языка (NLP)

    Текст — это последовательность. Порядок слов важен: «Я убил комара» и «Комар убил меня» — это разные вещи, хотя слова одинаковые.

    Раньше для этого использовали Рекуррентные нейросети (RNN), которые читали текст слово за словом, сохраняя контекст в «памяти».

    Сегодня стандартом являются Трансформеры (Transformers) (архитектура, на которой построен GPT). Они используют механизм внимания (Self-Attention), который позволяет модели видеть все слова в предложении одновременно и понимать, как они связаны друг с другом, независимо от расстояния между ними.

    Но компьютеры не понимают слова, они понимают числа. Поэтому перед подачей в сеть слова превращают в Эмбеддинги (Embeddings) — векторы чисел.

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

    Заключение

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

    Мы разобрали:

  • Нейрон: математическая модель, суммирующая входы.
  • Функции активации: добавляют нелинейность (ReLU).
  • Backpropagation: метод обучения сети через исправление ошибок.
  • CNN: архитектура для картинок.
  • NLP: методы работы с текстом через векторы.
  • В следующей статье мы перейдем от теории к практике и рассмотрим, как оценивать качество наших моделей, чтобы не допустить ошибок в реальных проектах.

    5. Метрики качества, валидация моделей и основы MLOps для внедрения решений

    Метрики качества, валидация моделей и основы MLOps для внедрения решений

    Мы прошли долгий путь. Мы научились собирать данные, строить линейные модели, деревья решений, кластеризовать объекты и даже заглянули в «черный ящик» нейронных сетей. Казалось бы, дело сделано: модель обучена, код работает. Но как понять, насколько хорошо она работает?

    В этой завершающей статье курса мы ответим на три главных вопроса:

  • Как измерить качество модели цифрами, а не ощущениями?
  • Как убедиться, что модель будет работать на новых данных (валидация)?
  • Как превратить код в ноутбуке в работающий сервис (MLOps)?
  • Метрики качества в задачах регрессии

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

    MAE (Mean Absolute Error)

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

    Где: * — средняя абсолютная ошибка. * — количество объектов в выборке. * — знак суммирования (сумма по всем объектам от 1 до ). * — модуль числа (абсолютное значение). * — истинное значение целевой переменной для -го объекта. * — предсказанное моделью значение для -го объекта.

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

    MSE и RMSE

    MSE (Mean Squared Error) — среднеквадратичная ошибка. Здесь мы возводим ошибку в квадрат.

    Где: * — среднеквадратичная ошибка. * — количество объектов. * — истинное значение. * — предсказанное значение.

    Зачем возводить в квадрат? Чтобы сильнее «наказывать» модель за большие ошибки. Ошибка в 10 единиц превращается в штраф 100, а ошибка в 2 единицы — всего в 4. Однако измеряется в «квадратных рублях», что сложно интерпретировать. Поэтому часто извлекают корень и получают RMSE (Root Mean Squared Error).

    Коэффициент детерминации ()

    Эта метрика показывает, какую долю разнообразия (дисперсии) данных объясняет наша модель. Значение варьируется от до 1.

    * : Идеальная модель. * : Модель работает так же, как если бы мы просто предсказывали среднее значение по больнице. * : Модель хуже, чем простое угадывание среднего.

    Метрики качества в задачах классификации

    С классификацией все сложнее. Допустим, мы ищем редкую болезнь, которой болеет 1 человек из 100. Если наша модель просто всем скажет «Здоров», ее точность (Accuracy) будет 99%. Звучит круто, но модель бесполезна, так как пропустила больного.

    Для оценки классификации используют Матрицу ошибок (Confusion Matrix).

    !Визуализация четырех исходов классификации: истинно-положительные, ложно-положительные, ложно-отрицательные и истинно-отрицательные срабатывания.

    Четыре базовых исхода:

  • True Positive (TP): Верно предсказали «Да» (Болен и мы сказали «Болен»).
  • True Negative (TN): Верно предсказали «Нет» (Здоров и мы сказали «Здоров»).
  • False Positive (FP): Ложная тревога (Здоров, а мы сказали «Болен»).
  • False Negative (FN): Пропуск цели (Болен, а мы сказали «Здоров»).
  • На основе этих чисел строятся две важнейшие метрики.

    Precision (Точность)

    Отвечает на вопрос: «Из всех, кого мы назвали больными, сколько реально больных?».

    Где: * — точность классификатора. * — количество истинно положительных срабатываний. * — количество ложно положительных срабатываний (ложных тревог).

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

    Recall (Полнота)

    Отвечает на вопрос: «Сколько больных мы нашли из всех, кто реально болен?».

    Где: * — полнота классификатора. * — количество истинно положительных срабатываний. * — количество ложно отрицательных срабатываний (пропусков).

    Важна там, где страшно пропустить цель (поиск террористов или рака).

    F1-Score

    Часто нам нужен баланс между Precision и Recall. Для этого используют их гармоническое среднее:

    Где: * — метрика F1-score. * — точность. * — полнота.

    Валидация моделей

    Обучить модель и проверить ее на тех же самых данных — это преступление в мире Data Science. Модель просто запомнит ответы (переобучится). Нам нужно проверить, как она работает на незнакомых данных.

    Отложенная выборка (Hold-out)

    Самый простой метод. Мы делим данные на две части: * Train (Обучающая): 70-80% данных. На них модель учится. * Test (Тестовая): 20-30% данных. На них мы проверяем качество.

    Кросс-валидация (Cross-Validation)

    Если данных мало, разбиение может быть неудачным (в тест попадут только легкие примеры). Здесь помогает k-fold кросс-валидация.

  • Делим данные на равных частей (фолдов), например, на 5.
  • Обучаем модель на 4 частях, проверяем на 1-й.
  • Повторяем процесс 5 раз, каждый раз меняя проверочную часть.
  • Усредняем метрики по всем 5 прогонам.
  • !Процесс разделения данных на 5 частей и поочередного использования каждой части в качестве тестовой выборки.

    Основы MLOps: Жизнь после обучения

    Вы создали идеальную модель с отличным F1-score. Что дальше? Файл с ноутбуком .ipynb не принесет пользы бизнесу. Его нужно внедрить. Этим занимается MLOps (Machine Learning Operations) — набор практик для вывода моделей в продакшн.

    Этапы жизненного цикла модели

  • Model Registry (Реестр моделей): Хранилище версий. Если новая модель сломается, мы должны иметь возможность мгновенно откатиться к старой версии (как git для кода).
  • Deployment (Развертывание): Упаковка модели в сервис (обычно через Docker-контейнеры), к которому можно обращаться по API. Например, сайт магазина отправляет запрос с данными пользователя, а сервис возвращает рекомендованные товары.
  • Monitoring (Мониторинг): Самый важный этап. Модели имеют свойство «протухать».
  • Проблема Data Drift (Дрейф данных)

    Мир меняется. Модель, обученная предсказывать спрос на такси в 2019 году, будет бесполезна в 2020 году из-за пандемии. Это называется Data Drift.

    Распределение данных, на которых модель училась, перестает совпадать с распределением данных в реальном мире. MLOps-инженер настраивает мониторинг, который бьет тревогу, если: * Среднее значение входных признаков резко изменилось. * Доля одного из классов стала аномально высокой. * Качество модели (если мы можем получить реальные метки с задержкой) начало падать.

    Заключение курса

    Поздравляю! Вы прошли путь от сырых данных до внедрения ML-систем. Мы изучили:

  • EDA: Как понимать данные.
  • Supervised Learning: Как учить на примерах.
  • Unsupervised Learning: Как находить скрытые структуры.
  • Deep Learning: Как работать со сложным контентом.
  • MLOps: Как заставить это работать в реальности.
  • Data Science — это не магия. Это сочетание математики, программирования и понимания предметной области. Теперь у вас есть карта этого мира. Дальше — только практика.