1. Основы машинного обучения: типы задач, сбор и предварительная обработка данных
Основы машинного обучения: типы задач, сбор и предварительная обработка данных
Добро пожаловать в мир машинного обучения! Это первая статья нашего курса, и мы начнем с фундамента. Часто новички сразу хотят писать нейросети, но профессионалы знают: успех модели на 80% зависит от понимания задачи и качества данных, и только на 20% — от выбора алгоритма.
В этой статье мы разберем, чем машинное обучение отличается от обычного программирования, какие задачи оно решает и, самое главное, как подготовить данные так, чтобы модель смогла чему-то научиться.
Что такое машинное обучение?
В традиционном программировании разработчик пишет четкие правила. Например: «Если сумма покупки больше 1000 рублей, сделай скидку 5%». Вы даете компьютеру данные и правила, а он выдает ответы.
Машинное обучение (Machine Learning, ML) переворачивает эту схему. Вы даете компьютеру данные и правильные ответы (исторические примеры), а он сам находит правила, связывающие одно с другим.
!Сравнение подходов: в ML мы получаем правила на основе данных и ответов
Типы задач машинного обучения
Глобально большинство задач в ML можно разделить на три большие категории: обучение с учителем, обучение без учителя и обучение с подкреплением.
1. Обучение с учителем (Supervised Learning)
Это самый распространенный тип. У нас есть набор данных, где для каждого примера известен правильный ответ (метка). Задача модели — научиться предсказывать этот ответ для новых данных.
Здесь выделяют два основных подтипа:
* Регрессия: Предсказание непрерывного числа. Пример*: Прогноз цены квартиры на основе её площади, района и этажа. Ответ может быть любым числом (5 млн, 12.5 млн и т.д.). * Классификация: Предсказание категории (класса). Пример*: Определение, является ли письмо спамом. Ответ ограничен конкретным набором вариантов: «Спам» или «Не спам».
2. Обучение без учителя (Unsupervised Learning)
В этом случае у нас есть данные, но нет правильных ответов. Мы просто бросаем данные в алгоритм и просим: «Найди здесь какую-нибудь структуру».
* Кластеризация: Группировка похожих объектов. Пример*: Сегментация клиентов банка. Алгоритм сам выделит группу «студенты», «пенсионеры» или «бизнесмены» на основе их транзакций, даже если мы заранее не называли эти группы. * Понижение размерности: Упрощение данных с сохранением смысла. Пример*: Сжатие видео или визуализация сложных многомерных данных на 2D-графике.
3. Обучение с подкреплением (Reinforcement Learning)
Это обучение методом проб и ошибок. Агент (например, робот или программа для игры в шахматы) действует в среде и получает «награды» за хорошие действия и «штрафы» за плохие. Его цель — максимизировать суммарную награду.
!Иерархия основных типов задач в машинном обучении
Сбор данных: топливо для алгоритмов
Данные — это новая нефть. Без качественных данных даже самый современный алгоритм бесполезен. Откуда берутся данные?
Предварительная обработка данных (Preprocessing)
В индустрии существует принцип Garbage In, Garbage Out («Мусор на входе — мусор на выходе»). Реальные данные всегда «грязные»: в них есть пропуски, ошибки, опечатки и выбросы. Работа Data Scientist'а на 70-80% состоит из чистки и подготовки данных.
Разберем основные этапы предобработки.
1. Очистка данных
Первым делом нужно решить проблему пропущенных значений (Missing Values). Если в таблице у некоторых клиентов не указан возраст, модель может выдать ошибку.
Что можно сделать: * Удалить строки с пропусками (если данных много, а пропусков мало). * Заполнить средним или медианой (для чисел). * Заполнить модой (самым частым значением) или специальной категорией «Неизвестно».
2. Кодирование категориальных признаков
Компьютеры понимают только числа. Они не знают, что такое «Красный», «Зеленый» или «Синий». Нам нужно перевести слова в цифры.
Один из популярных методов — One-Hot Encoding (прямое кодирование). Мы создаем для каждого цвета отдельный столбец, где ставим 1, если цвет присутствует, и 0, если нет.
Пример:
| Цвет | -> | Цвет_Красный | Цвет_Зеленый | Цвет_Синий | |---|---|---|---|---| | Красный | -> | 1 | 0 | 0 | | Зеленый | -> | 0 | 1 | 0 | | Синий | -> | 0 | 0 | 1 |
3. Масштабирование признаков (Scaling)
Представьте, что у нас есть два признака: «Возраст» (от 0 до 100) и «Зарплата» (от 20 000 до 500 000). Для многих алгоритмов число 500 000 кажется гораздо более важным, чем 50, просто потому что оно больше. Это искажает обучение.
Чтобы избежать этого, данные приводят к одному масштабу. Один из методов — нормализация (Min-Max Scaling). Она сжимает все значения в диапазон от 0 до 1.
Формула нормализации выглядит так:
Где: * — новое нормализованное значение. * — исходное значение, которое мы хотим изменить. * — минимальное значение в этом столбце данных. * — максимальное значение в этом столбце данных.
> Пример: Если минимальная зарплата 20 000, максимальная 100 000, а у конкретного человека 60 000, то после нормализации его зарплата превратится в 0.5.
4. Разделение выборки
Финальный этап перед обучением — разделение данных на две части:
Если не сделать разделение и проверить модель на тех же данных, на которых она училась, мы получим иллюзию идеальной работы. Это называется переобучение (overfitting) — модель просто «зазубрила» ответы, но не поняла суть.
!Визуализация разделения данных на обучающую и тестовую выборки
Заключение
Сегодня мы узнали, что машинное обучение — это поиск правил на основе данных. Мы выяснили, что задачи делятся на обучение с учителем (когда есть ответы) и без учителя (когда ответов нет). Также мы поняли, что «сырые» данные нельзя сразу скармливать модели — их нужно очистить, перевести в цифры и масштабировать.
В следующей статье мы углубимся в конкретные алгоритмы и разберем, как работает Линейная регрессия.