На этом занятии мы открываем обширный новый раздел машинного обучения — классификацию. В отличие от регрессионного анализа, где мы прогнозировали непрерывные числа (цену аренды, площадь), в задачах классификации наша цель — соотнести объект с одной из заранее известных категорий или классов.
1. Суть задачи и классификация видов
Задача классификации относится к категории обучения с учителем. Модель анализирует вектор признаков объекта \(X\) и подбирает функцию, которая наилучшим образом соотносит его с истинной меткой класса \(y\).
Бинарная (двоичная) классификация: задача, где существует ровно два исхода («Да / Нет», «Спам / Не спам», «Кредит одобрен / Отказано»).
Многоклассовая классификация: задача, где количество классов строго больше двух (распознавание 10 цифр от 0 до 9, классификация музыкальных жанров).
Многолейбловая (Multi-label) классификация: ситуация, когда один объект может одновременно принадлежать сразу к нескольким категориям (например, новостная статья может быть одновременно помечена тегами «политика», «экономика» и «международные отношения»).
2. Классический датасет «Ирисы Фишера»
В качестве эталонного набора данных мы используем знаменитый датасет Ирисы Фишера, собранный ботаником Эдгаром Андерсоном и опубликованный Рональдом Фишером в 1936 году. Датасет содержит информацию о 150 цветках трех видов ирисов: Setosa (щетинистый), Versicolor (разноцветный) и Virginica (виргинский) — по 50 экземпляров каждого класса.
Для каждого цветка измерены 4 признака (в сантиметрах):
Длина чашелистика (sepal length)
Ширина чашелистика (sepal width)
Длина лепестка (petal length)
Ширина лепестка (petal width)
Визуальный анализ двух наиболее информативных признаков (длины и ширины лепестка) показывает, что класс Setosa идеально отделяется от двух других классов простой прямой линией (линейно разделим). Классы Versicolor и Virginica частично пересекаются, создавая нетривиальную задачу для классификаторов.
3. Линейный классификатор Perceptron (Перцептрон)
Перцептрон Розенблатта (1957 г.) — исторически одна из первых моделей искусственного нейрона. Он представляет собой простейший линейный классификатор, который пытается найти разделяющую плоскость между классами.
Значение \(z\) пропускается через пороговую функцию активации (ступеньку Хевисайда):
Если \(z > 0\), модель прогнозирует Класс 1.
Если \(z \le 0\), модель прогнозирует Класс 0.
Особенность обучения: Классический перцептрон не использует стандартную функцию потерь (Loss Function) и градиентный спуск в их современном понимании. Он функционирует на основе простого правила коррекции ошибок (error-correction rule): если предсказание верно — веса не меняются, если ошибочно — веса \(w\) и смещение \(b\) корректируются в сторону уменьшения ошибки.
Для проведения бинарной классификации мы отбрасываем из датасета класс Setosa (оставляя по 50 объектов классов Versicolor и Virginica), кодируем их метками 0 и 1, делим выборку в пропорции 80/20 и обучаем модель. На тестовом наборе мы получаем идеальную точность (Accuracy = \(1.00\)). Но можно ли доверять этому результату?
4. Проблема единственного разделения и K-Fold кросс-валидация
При однократном случайном разделении данных (train_test_split), особенно на малых выборках (как наши 100 объектов), оценка качества нестабильна. Если в тест случайно попали только легкие, далеко стоящие от разделяющей линии примеры, мы получим излишне оптимистичный результат (\(100\%\) точности). Если попали сложные пограничные объекты — пессимистичный.
Решением этой проблемы является метод K-блочной кросс-валидации (K-Fold Cross-Validation) — стандартный робастный метод оценки качества:
Весь датасет делится на \(K\) равных частей (блоков / фолдов). Обычно выбирают \(K = 5\) или \(K = 10\).
Запускается цикл из \(K\) итераций обучения.
На каждой итерации один из блоков удерживается как тестовый, а остальные \(K-1\) блоков объединяются и служат обучающей выборкой.
В результате мы получаем \(K\) независимых оценок качества.
Интерпретация результатов кросс-валидации:
Мы анализируем две ключевые метрики полученного массива оценок:
Среднее значение (Mean Accuracy): Наша итоговая, наиболее надежная и усредненная оценка качества.
Стандартное отклонение (Std Dev): Показывает стабильность модели. Большое отклонение сигнализирует о нестабильности модели и ее высокой чувствительности к изменению тренировочной выборки.
Анализ результатов
При запуске 5-блочной кросс-валидации нашего перцептрона мы получаем точность по фолдам: [0.5, 0.9, 0.6, 0.75, 0.9]. Средняя точность составила \(0.730\), а относительное стандартное отклонение превысило \(21.9\%\). Это указывает на высокую вариативность: модель нестабильна и сильно зависит от случайности. Для решения этой проблемы нам потребуются более устойчивые алгоритмы, такие как логистическая регрессия, которую мы изучим в следующей части.
План занятия
Введение в задачу классификации
Понятие классификации как задачи обучения с учителем: прогнозирование категориальной метки класса вместо непрерывных чисел.
Виды классификации: бинарная (двоичная), многоклассовая и многолейбловая (Multi-label) классификации.
Формализация задачи: образцы, признаки (вектор \(X\)), классы и метки класса (\(y\)).
Базовый датасет «Ирисы Фишера»
История создания, структура и значимость датасета в индустрии Data Science.
Загрузка датасета из Scikit-Learn (функция load_iris()) и трансформация в Pandas DataFrame.
Визуализация признаков с помощью двумерной диаграммы рассеяния (длина и ширина лепестка) в Seaborn. Понятие линейной разделимости признаков.
Линейный классификатор Perceptron (Перцептрон)
Перцептрон Розенблатта как прародитель современных нейросетевых архитектур.
Математическая модель: взвешенная сумма признаков \(z = w_1x_1 + w_2x_2 + b\) и пороговая функция активации (ступенька Хевисайда).
Процесс обучения: использование интуитивного правила коррекции ошибок (error-correction rule) вместо вычисления классических функций потерь.
Подготовка данных для бинарной классификации: удаление линейно разделимого класса Setosa и маппинг оставшихся классов в 0 и 1.
Построение разделяющей границы (вычисление весов \(w\) и сдвига \(b\)) и ее визуальное отображение на графике.