Введение в машинное обучение: от данных к задаче
Продолжаем изучать принципы и концепции машинного обучения. Ключевой момент, который необходимо разобрать, — это кодирование категориальных полей. Любой алгоритм работает с числами. Однако в реальных данных часто встречаются категории: уровень образования («бакалавриат», «магистратура»), цвет волос и другой текст. Этот текст необходимо превращать в числа, чтобы подать данные на вход алгоритму.
Что такое машинное обучение
Машинное обучение (Machine Learning, ML) — это обширный подраздел искусственного интеллекта, изучающий методы построения алгоритмов, способных обучаться. Главная цель — заменить человека при решении рутинных задач и находить закономерности в гигантских объёмах данных, которые человек не в состоянии обработать и проанализировать самостоятельно.
Задача машинного обучения включает несколько этапов:
- Определение данных: что является объектом, и какие признаки его описывают.
- Определение целевой переменной: что именно мы хотим предсказать.
- Оценка качества: выбор критериев и способа валидации полученной модели.
Для оценки модели используется обучающая выборка (training set) и тестовая выборка (test set). На обучающей выборке модель настраивает свои внутренние параметры, а на тестовой — проверяется, насколько хорошо она работает на новых, не виденных ранее данных. «Хорошо» означает приемлемый уровень ошибки, который измеряется с помощью критериев качества.
По своей сути, каждый объект в данных — это вектор в конечном пространстве признаков.
Типы признаков
Признаки, описывающие объекты, бывают разных типов:
- Вещественные (Numerical): числа, например, зарплата, возраст.
- Бинарные (Binary): принимают два значения (да/нет, 0/1).
- Категориальные (Categorical): текст, обозначающий принадлежность к группе (цвет волос).
- Порядковые (Ordinal): категориальные, но упорядоченные. Например, уровень образования можно выстроить в шкалу от «среднего» к «высшему», в отличие от цвета волос, где нет понятия «лучше» или «хуже».
- Строковые (String): произвольный текст.
Каждый из этих типов необходимо уметь преобразовывать в числа. Для вещественных и бинарных признаков это уже сделано по умолчанию.
Кодирование категориальных признаков
Рассмотрим пример: у нас есть столбец «Цвет» со значениями «красный», «жёлтый», «зелёный». Чтобы превратить этот один текстовый столбец в числа, используется техника One-Hot Encoding (создание дамми-переменных). Вместо одного признака «Цвет» создаются три новых бинарных признака: «Цвет_красный», «Цвет_жёлтый» и «Цвет_зелёный».
Кодирование происходит следующим образом:
| Исходный признак «Цвет» |
Цвет_красный |
Цвет_жёлтый |
Цвет_зелёный |
| красный | 1 | 0 | 0 |
| красный | 1 | 0 | 0 |
| жёлтый | 0 | 1 | 0 |
| зелёный | 0 | 0 | 1 |
| жёлтый | 0 | 1 | 0 |
Таким образом, категориальный признак превращается в набор бинарных числовых столбцов, где 1 означает «да», а 0 — «нет».
Кодирование текста: «мешок слов»
Для работы с текстовыми документами используется подход «мешок слов» (Bag of Words). Суть метода: выписываются все уникальные слова, встречающиеся во всех документах. Каждое слово становится отдельным признаком (столбцом). Затем для каждого документа проставляется 1, если слово в нём встречается, и 0 — если нет.
Недостаток этого метода — потеря семантики и порядка слов. Фразы с одинаковым набором слов, но разным порядком («кот съел мышь» и «мышь съела кота»), будут закодированы одинаково. Несмотря на это, «мешок слов» часто даёт хорошие результаты. Более продвинутые методы, такие как N-граммы, учитывают пары, тройки и более длинные последовательности слов подряд, что позволяет частично восстановить смысл.
Типы задач машинного обучения
Обучение с учителем (Supervised Learning)
В этом типе обучения у нас есть обучающая выборка с известными правильными ответами — целевой переменной. Задача алгоритма — найти зависимость между признаками и целевой переменной.
- Классификация (Classification): предсказание принадлежности объекта к одному из заранее известных классов. Целевая переменная — категория. Пример: определить, вернёт ли клиент кредит (классы «да» и «нет»).
- Регрессия (Regression): предсказание непрерывного числового значения. Пример: предсказать розничную стоимость автомобиля по его характеристикам.
- Прогнозирование временных рядов (Time Series Forecasting): особый тип, где для предсказания значения в будущем используются значения этой же переменной в прошлом. Пример: прогноз цены акции на завтра на основе её цены за прошлые дни.
- Рекомендательные системы (Recommender Systems): предсказание того, какие объекты могут быть интересны пользователю.
Обучение без учителя (Unsupervised Learning)
Здесь у нас есть только признаки объектов, но нет целевой переменной.
- Кластеризация (Clustering): задача разделения объектов на группы (кластеры) на основе их признаков, при этом сами группы заранее не определены. Ключевое отличие от классификации: в классификации классы известны заранее, а в кластеризации мы их ищем.
- Понижение размерности (Dimensionality Reduction): уменьшение числа рассматриваемых признаков или объектов без существенной потери информации, например, за счёт усреднения похожих объектов.
- Визуализация данных (Data Visualization): представление многомерных данных в наглядном виде (на плоскости или в 3D), чтобы человек мог увидеть структуру и закономерности.
Отдельно стоит обучение с подкреплением (Reinforcement Learning), где модель обучается методом проб и ошибок, получая «награду» за правильные действия и «штраф» за неправильные.
Критерии качества модели
Чтобы оценить, насколько хорошо работает модель, необходимо измерить её ошибку.
Оценка ошибки в регрессии
В задачах регрессии, где предсказывается число, ошибка — это разница между правильным ответом и ответом модели. На основе этой разницы вычисляется средняя ошибка по всем объектам.
Распространённые критерии:
- MSE (Mean Squared Error, среднеквадратичная ошибка): разница возводится в квадрат, затем усредняется. Сильно штрафует за большие ошибки.
- MAE (Mean Absolute Error, средняя абсолютная ошибка): считается абсолютная разность без возведения в квадрат. Менее чувствительна к выбросам.
- Бинарная ошибка (Binary Error): важна не величина ошибки, а сам факт её превышения определённого порога (epsilon). Если ошибка меньше порога, она считается равной 0; если больше — 1.
Выбор критерия зависит от задачи и целей заказчика.
Оценка ошибки в классификации
В задачах классификации ответом является класс. Здесь важно не числовое значение класса, а факт совпадения предсказания с реальностью. Если классы закодированы числами 1, 2, 3, то разность между 4 и 2 не имеет смысла, важна только ошибка.
Основная метрика — точность (Accuracy). Для каждого объекта ошибка равна 0, если класс угадан, и 1 — если нет. Средняя точность по всей выборке и будет критерием качества.
В случае задачи классификации с пересекающимися классами, когда объект может принадлежать нескольким классам одновременно, точность считается как доля правильно угаданных классов для каждого объекта, а затем усредняется по всем объектам.
Ключевое требование к критерию качества — он должен быстро и легко вычисляться в офлайне (offline) по имеющимся данным, чтобы можно было оперативно обучать и улучшать модель.
Проблема переобучения
Главная цель — построить модель, которая хорошо работает не только на обучающей выборке, но и на новых данных. Если модель идеально подстраивается под все точки обучающей выборки, она может «заучить» шум и случайные отклонения. Такая модель называется переобученной (overfitted).
Эффект переобучения заключается в том, что модель показывает отличное качество на обучающих данных, но катастрофически плохое — на новых, тестовых. Хорошая модель должна улавливать общую закономерность, тренд (паттерн), а не запоминать конкретные ответы.
Именно поэтому выборку делят на обучающую и тестовую. Модель обучается на первой, а её качество оценивается на второй. Хорошее качество на тестовой выборке — главный показатель того, что модель действительно научилась решать задачу, а не запомнила ответы.
Типичное разделение выборки: от 70/30 до 80/20 (на обучение/на тест).
От постановки задачи к её решению
Первый и самый важный этап — это формализация бизнес-задачи в терминах машинного обучения. Необходимо:
- Определить объект и его признаки: что мы анализируем и чем это описывается.
- Определить тип задачи и целевую переменную: что мы предсказываем (класс, число, группу).
- Выбрать критерий качества и метод валидации: как мы поймём, что модель хорошая.
- Найти источник данных: без данных построение модели невозможно. Это могут быть открытые источники или внутренние системы заказчика.
Пример: задача кредитного скоринга
- Объект: заёмщик.
- Признаки: паспортные данные, кредитная история, зарплата (2-НДФЛ), возраст, семейное положение, количество детей, наличие собственности (авто, квартира).
- Целевая переменная (вариант 1): вернёт кредит или нет (задача классификации).
- Целевая переменная (вариант 2): в каком размере и под какой процент выдать кредит (задача регрессии).
- Критерий качества: может быть сложным. Например, клиент, выплативший 90% кредита и ушедший в дефолт, «лучше» клиента, ушедшего в дефолт после первого платежа. Критерий должен учитывать, насколько мы ошиблись, а не только сам факт ошибки.
Реальные задачи, например, создание беспилотного автомобиля, — это комплекс из множества подзадач (распознавание знаков, прогнозирование действий пешеходов, планирование маршрута), каждая из которых решается отдельно.
Ключевой вывод
Грамотная постановка задачи — половина успеха. Перевод задачи с бизнес-языка на математический язык машинного обучения, правильный выбор данных, целевой переменной и критерия качества — сложный и критически важный этап. Ошибка на этом этапе обесценивает всю последующую работу. Лучше потратить больше времени на формализацию, чтобы гарантировать качество конечного решения.
Краткие итоги
Материал последовательно разворачивает перед слушателем фундаментальную логику, лежащую в основе любого проекта в области анализа данных. Центральная мысль заключается в том, что успех машинного обучения напрямую зависит от качества подготовки данных и точности формализации решаемой задачи. Автор подводит к пониманию того, что данные — это не просто набор чисел, а структурированное описание реальности, где каждый признак имеет свою природу и требует особого подхода. Особый акцент на преобразовании категориальных признаков в числовые показывает, что этот рутинный, на первый взгляд, процесс является мостом между «сырым» миром бизнес-информации и математическим аппаратом алгоритмов. Объяснение принципов кодирования, от простого one-hot encoding до более сложного «мешка слов», раскрывает практическую необходимость поиска баланса между сохранением информации и адаптацией данных к требованиям вычислительных методов. Потеря семантики при использовании простых моделей — это не просто технический недостаток, а иллюстрация фундаментального компромисса между вычислительной эффективностью и содержательной точностью.
Переход от данных к постановке задач позволяет увидеть машинное обучение не как набор изолированных техник, а как целостную методологию решения прикладных проблем. Четкое разделение задач на обучение с учителем и без, а также на классификацию, регрессию и кластеризацию, формирует у слушателя системное мышление, позволяющее классифицировать любую новую проблему. Это важный прикладной навык: умение определить, что является объектом, что — признаком, а что — целевой переменной, по сути, является первым шагом к созданию работающей модели. Наибольшую практическую ценность представляет анализ проблемы переобучения. Концепция оценки качества на отдельной тестовой выборке — это не просто техническая деталь, а фундаментальный принцип, который отделяет «иллюзию знания» от реальной предсказательной силы. Пример с двумя моделями наглядно демонстрирует, что идеальное воспроизведение прошлых данных не гарантирует успеха в будущем, и что цель модели — улавливать закономерности, а не запоминать факты.
Таким образом, материал формирует у слушателя целостный каркас понимания, необходимый для грамотного старта в области машинного обучения. Он показывает, что качество решения определяется не только сложностью используемых алгоритмов, но и тщательностью подготовки данных, корректностью выбора метрик и, прежде всего, глубоким пониманием сути решаемой бизнес-задачи. Именно этот подход — от общего понимания к детальной формализации — позволяет выстраивать эффективные и надежные системы анализа данных.
Введение в машинное обучение
Машинное обучение (Machine Learning, ML) — это раздел искусственного интеллекта, который строит алгоритмы, способные обучаться на данных. Цель — находить закономерности и автоматизировать задачи анализа, непосильные для человека.
Данные и признаки
Каждый объект в данных описывается набором признаков. Алгоритмы работают только с числами, поэтому важно понимать типы признаков:
- Вещественные: числа (зарплата, возраст).
- Бинарные: два значения (да/нет, 0/1).
- Категориальные: текст, обозначающий группу (цвет).
- Порядковые: категориальные, но упорядоченные (уровень образования).
- Строковые: произвольный текст.
Нечисловые признаки необходимо кодировать в числа.
Кодирование категориальных признаков
One-Hot Encoding — основной метод. Для признака с N категориями создается N новых бинарных столбцов. Объекту проставляется 1 в том столбце, который соответствует его категории, и 0 — в остальных.
Пример: Признак «Цвет» (красный, жёлтый) превращается в столбцы «Цвет_красный» и «Цвет_жёлтый».
- Объект «красный» → [1, 0]
- Объект «жёлтый» → [0, 1]
Кодирование текста: «мешок слов» (Bag of Words). Все уникальные слова из всех документов становятся отдельными признаками. Для каждого документа проставляется 1, если слово встречается, и 0, если нет. Недостаток — потеря порядка слов и смысла. Более сложные методы, N-граммы, учитывают последовательности из нескольких слов, частично решая эту проблему.
Типы задач машинного обучения
Обучение с учителем (есть правильные ответы — целевая переменная):
- Классификация: предсказание класса из заранее известных (вернет кредит? да/нет).
- Регрессия: предсказание числа (стоимость авто).
- Прогнозирование временных рядов: предсказание будущего значения переменной на основе ее прошлых значений.
- Рекомендательные системы: предсказание интересных объектов для пользователя.
Обучение без учителя (правильных ответов нет):
- Кластеризация: разделение объектов на группы (кластеры), которые заранее не определены. Отличие от классификации: в классификации классы известны, в кластеризации — мы их ищем.
- Понижение размерности: уменьшение числа признаков или объектов без потери важной информации.
- Визуализация данных: наглядное представление многомерных данных.
Оценка качества модели
В регрессии ошибка — это разница между правильным ответом и ответом модели. Метрики:
- MSE (среднеквадратичная ошибка): разница возводится в квадрат. Сильно штрафует за большие ошибки.
- MAE (средняя абсолютная ошибка): берется абсолютная разность.
- Бинарная ошибка: важна не величина ошибки, а факт превышения порога (0 или 1).
В классификации важна не разность чисел (классы условны), а факт угадывания. Основная метрика — точность (Accuracy): доля правильно угаданных классов. Для пересекающихся классов точность считается отдельно для каждого объекта как доля угаданных классов.
Проблема переобучения
Главная цель — построить модель, хорошо работающую на новых данных. Модель, которая идеально «заучивает» обучающую выборку, называется переобученной. Она показывает отличный результат на обучении, но ужасный на новых данных, так как не уловила общий тренд (паттерн), а запомнила шум.
Для борьбы с этим выборку делят:
- Обучающая выборка: для настройки модели (70-80% данных).
- Тестовая выборка: для проверки качества модели на новых данных (20-30% данных).
Качество модели оценивается по ошибке на тестовой выборке.
Как решать задачу машинного обучения
- Формализовать задачу: перевести с бизнес-языка на язык ML.
- Определить объект и его признаки: что анализируем и чем описываем.
- Определить целевую переменную (тип задачи): что предсказываем (класс, число, группу).
- Выбрать критерий качества: как поймем, что модель хороша.
- Найти источник данных: внутренние системы или открытые источники.
Пример (кредитный скоринг):
- Объект: заемщик.
- Признаки: зарплата, возраст, кредитная история, наличие собственности.
- Целевая переменная 1: вернет/не вернет (классификация).
- Целевая переменная 2: сумма кредита (регрессия).
- Критерий качества: может учитывать, как быстро клиент ушел в дефолт, так как потери банка в этом случае разные.
Ключевой вывод: грамотная постановка задачи — критически важный этап. Ошибка здесь обесценивает всю последующую работу.
1. Машинное обучение — это метод построения алгоритмов, которые обучаются на данных для поиска закономерностей и замены человека в задачах анализа.
2. Любой алгоритм машинного обучения работает только с числовыми данными, поэтому все нечисловые признаки, включая текст, необходимо кодировать.
3. Категориальные признаки успешно преобразуются в числовые с помощью метода one-hot encoding, создающего набор бинарных признаков.
4. Метод «мешок слов» позволяет кодировать тексты, но теряет порядок слов и семантику; для ее частичного сохранения используют N-граммы.
5. Основные типы задач с учителем — это классификация (предсказание класса) и регрессия (предсказание числа).
6. В обучении без учителя решаются задачи кластеризации, понижения размерности и визуализации, где правильные ответы отсутствуют.
7. Выбор критерия качества зависит от типа задачи и бизнес-целей; для регрессии и классификации метрики принципиально различаются.
8. Эффект переобучения возникает, когда модель идеально «заучивает» обучающие данные и теряет способность к обобщению.
9. Качество модели необходимо оценивать на тестовой выборке, которую модель не видела в процессе обучения.
10. Разделение данных на обучающую и тестовую выборки — ключевая практика для проверки реальной предсказательной силы модели.
11. Формализация бизнес-задачи — критически важный этап, где необходимо определить объект, признаки, целевую переменную и критерий качества.
12. Сложные практические задачи (например, беспилотный автомобиль) представляют собой комплекс взаимосвязанных подзадач машинного обучения.
1. Почему алгоритмы машинного обучения не могут напрямую работать с категориальными признаками?
2. В чем принципиальное различие между категориальным и порядковым типами признаков?
3. Как работает техника one-hot encoding и сколько новых столбцов она создает?
4. Опишите, как работает модель «мешок слов» для кодирования текстовых документов.
5. Какой главный недостаток у модели «мешок слов» и какой более сложный метод помогает его частично преодолеть?
6. В чем основное различие между задачами классификации и регрессии?
7. Чем задача кластеризации отличается от задачи классификации?
8. Для каких целей исходный набор данных разделяют на обучающую и тестовую выборки?
9. Что такое эффект переобучения и как он проявляется?
10. Почему модель, показывающая нулевую ошибку на обучающей выборке, может оказаться бесполезной на практике?
11. Какие ключевые шаги необходимо выполнить для формализации бизнес-задачи в терминах машинного обучения?
12. Почему в задаче кредитного скоринга важен не только сам факт ошибки (угадали/не угадали), но и величина финансовых потерь от этой ошибки?