Обучающая выборка (датасет) – это набор примеров, на которых алгоритм машинного обучения учится решать конкретную задачу. Нейросети и алгоритмы не умеют думать логически, они ищут закономерности в предоставленной им информации. Если вы хотите, чтобы программа отличала спам от важных писем, ей нужно показать тысячи примеров спама и тысячи обычных писем. Этот массив текстов с пометками и будет обучающей выборкой.
На практике успех любого ИИ-проекта на 80% зависит от качества собранных данных и только на 20% – от архитектуры самой нейросети. Плохая выборка гарантированно приведет к нерабочему алгоритму, какие бы современные технологии вы ни использовали.
| Что разберем | Что это даст на практике |
| Из чего состоит датасет и как он работает | Сможете правильно ставить задачи аналитикам и собирать нужные данные |
| Как правильно делить данные на части | Научитесь честно проверять алгоритм, чтобы он не обманул вас на реальных клиентах |
| Частые ошибки: дисбаланс, утечки и смещения | Не потратите бюджет на обучение модели, которая выдает абсурдные решения |
| Где брать качественные данные | Сможете выбрать оптимальный источник под вашу задачу и бюджет |
Суть обучающей выборки на практическом примере
Чтобы алгоритм мог учиться, данные должны быть структурированы. Классическая обучающая выборка состоит из двух элементов:
- Признаки (Features): характеристики объекта. То, на основе чего алгоритм должен принимать решение.
- Целевая переменная (Target): правильный ответ. То, что алгоритм должен научиться предсказывать.
Пример: Вы хотите сделать алгоритм, который автоматически оценивает стоимость квартир для сайта объявлений (аналог оценки на Авито или Циан).
В вашей таблице (обучающей выборке) каждая строка – это отдельная квартира. Столбцы с признаками: площадь, этаж, расстояние до метро, год постройки дома, наличие ремонта. Столбец с целевой переменной: цена, по которой квартира была реально продана.
Вы загружаете в алгоритм 50 000 таких строк. Он анализирует их и выводит математическое правило: «Каждый километр от метро снижает цену на N рублей, а первый этаж отнимает Y% от стоимости». Когда на сайт приходит новый пользователь и вводит параметры своей квартиры (без цены), алгоритм применяет это правило и выдает прогноз стоимости.
Как правильно делить данные: обучающая, валидационная и тестовая выборки
Если вы покажете алгоритму все имеющиеся у вас данные, он может их просто «зазубрить». На старых примерах он будет выдавать 100% точности, а на новых, которых не видел, начнет жестоко ошибаться. Это называется переобучением.
Чтобы этого избежать, весь собранный массив данных обязательно делят на три неравные части.
1. Обучающая выборка (Train) – 70-80% данных
Это «учебник». На этих данных модель ищет закономерности и настраивает свои внутренние параметры. Чем больше здесь разнообразных примеров, тем лучше.
2. Валидационная выборка (Validation) – 10-15% данных
Это «промежуточный экзамен» во время учебы. Модель делает предсказания на этих данных, сравнивает с правильными ответами и корректирует свои настройки. Это помогает инженерам понять, в правильном ли направлении учится алгоритм, и при необходимости поменять его архитектуру.
3. Тестовая выборка (Test) – 10-15% данных
Это «государственный экзамен». Эти данные алгоритм не должен видеть ни разу за весь процесс обучения и настройки. Тестовая выборка открывается только один раз – в самом конце, чтобы проверить, как модель работает в реальных условиях. Если на тесте модель провалилась – значит, она переобучилась, и нужно начинать заново.
Частые ошибки при формировании выборки (Точки провала)
Собрать много данных – не значит собрать хорошие данные. Ниже описаны три самые дорогие ошибки, из-за которых алгоритмы приходится переделывать с нуля.
Ошибка 1: Дисбаланс классов
В чем проблема: Одного типа примеров в выборке в десятки раз больше, чем другого.
Пример: Вы учите модель искать мошеннические транзакции в банке. В вашей выборке 99 000 честных переводов и 1 000 мошеннических. Модель быстро поймет, что если она будет всегда отвечать «это честная транзакция», ее точность составит 99%. Она просто проигнорирует признаки мошенничества.
Как избежать: Искусственно сокращать количество частых примеров (Undersampling), дублировать редкие примеры (Oversampling) или штрафовать алгоритм за ошибку на редком классе сильнее, чем на частом.
Ошибка 2: Утечка данных (Data Leakage)
В чем проблема: В признаки попадает информация, которая в реальности появляется только после совершения целевого события.
Пример: Вы прогнозируете, вернет ли клиент микрозайм. В обучающую выборку случайно попал столбец «Дата первого платежа по просрочке». Алгоритм видит: если дата есть, значит, кредит не вернули. Он выдает 100% точности. Но когда приходит новый клиент за кредитом, у него еще нет и не может быть такой даты. В реальной работе модель окажется бесполезной.
Как избежать: Жестко удалять любые столбцы, данные в которых формируются позже, чем момент, в который вы должны сделать прогноз.
Ошибка 3: Смещенная выборка (Bias)
В чем проблема: Данные для обучения не отражают реальность, в которой будет работать алгоритм.
Пример: Вы обучаете систему распознавания лиц для проходной завода в Сургуте. Но датасет скачали из открытых источников: там фотографии людей, сделанные при идеальном студийном свете. Зимой, когда рабочие будут идти на смену в шапках, воротниках и при плохом освещении, модель никого не узнает.
Как избежать: Собирать данные ровно в тех условиях и из тех источников, с которыми модель столкнется в «боевой» эксплуатации.
Критерии качественной обучающей выборки
Чтобы понять, готовы ли ваши данные к передаче разработчикам, проверьте их по трем параметрам:
- Репрезентативность: Выборка содержит все возможные сценарии. Если вы предсказываете спрос на такси, в данных должны быть будни, выходные, праздники, дождливые дни и дни снегопадов.
- Актуальность: Данные не устарели. Нет смысла обучать бота-консультанта интернет-магазина на логах переписок 2018 года, если у вас полностью сменился ассортимент и регламенты общения.
- Единообразие разметки: Если данные размечают люди (например, операторы колл-центра отмечают «позитивный» или «негативный» звонок), у них должна быть строгая инструкция. Если один оператор считает жалобу на цену «негативом», а другой «нейтральным вопросом» – алгоритм запутается.
Где брать данные для обучения
В зависимости от задачи, существует четыре основных пути получения данных. Выбирать нужно исходя из бюджета и наличия уникальной специфики в вашем бизнесе.
1. Внутренние исторические данные компании
Самый надежный источник для бизнес-задач. Это выгрузки из вашей CRM (1С, Битрикс24, amoCRM), логи баз данных, записи звонков телефонии, история покупок на сайте.
Ограничение: Данные часто хранятся в хаосе. Потребуется много времени дата-инженеров, чтобы очистить их от дублей, опечаток и пустых строк.
2. Открытые датасеты
В интернете есть готовые собранные базы для стандартных задач (распознавание лиц, анализ тональности текста, классификация изображений). Искать их можно на платформах Kaggle, в репозиториях университетов или в открытых наборах от крупных ИТ-компаний (например, открытые датасеты Яндекса или Сбера).
Когда подходит: Для старта проекта, создания прототипа (MVP) или решения базовых задач, не требующих специфики вашего бизнеса.
3. Парсинг (сбор из открытых источников)
Написание скриптов, которые автоматически собирают данные с сайтов конкурентов, форумов, сервисов отзывов или социальных сетей (ВКонтакте, Telegram).
Ограничение: Нужно учитывать юридические риски (нельзя собирать персональные данные без согласия) и технические защиты сайтов от ботов.
4. Краудсорсинг и ручная разметка
Если данных нет, их нужно создать. Вы собираете «сырые» материалы (например, тысячи фотографий товаров с полок магазинов) и отдаете их на разметку людям через сервисы вроде Яндекс Толоки.
Когда подходит: Для сложных визуальных или текстовых задач, где алгоритм должен научиться имитировать человеческую логику и восприятие.