Истории о машинном обучении

Обзор:

В машинном обучении общепринятой практикой является всегда проверять производительность вашей модели перед ее развертыванием в рабочей среде. Для этого вы должны создать подмножество ваших тренировочных данных (обычно около 20%) и убрать эти данные из своего обучения. Это подмножество данных называется «тестовым набором». Затем вы возьмете свою обученную модель и посмотрите, как она работает на тестовом наборе. Поскольку модель никогда не видела данные тестового набора, она может указать, как ваша модель будет работать в реальном мире.

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

Сказка:

Хизер и Маркус оба изучали психологию и науку о данных в местном университете. Для классного проекта им было поручено построить модель машинного обучения, которая предсказывала бы, получал ли когда-либо ученик из их школы штраф за превышение скорости. Их профессор предоставил им набор данных, полученный в результате опроса, проведенного ранее в этом году среди студентов университета. Поскольку школа была довольно маленькой, общее количество учеников, которые посещали, составляло 1000 человек.

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

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

Чтобы убедиться, что они создали тестовый набор, соответствующий этим стандартам, они использовали метод стратифицированной выборки. В университете было 5 категорий для регионов, распределенных следующим образом: Запад: 10%, Средний Запад: 10%, Юго-Запад: 15%, Юго-Восток: 35% и Северо-Восток: 30%. Хизер и Маркус создали тестовый набор, отражающий те же соотношения. С 1000 учащимися в школе и использованием 20% для своего тестового набора. Тестовый набор Маркуса и Хизер имел следующее распределение точек данных: Запад: 20 точек данных, Средний Запад: 20 точек данных, Юго-Запад: 30 точек данных, Юго-Восток: 70 точек данных. и Северо-восток: 60 точек данных. В результате они смогли более точно оценить, как их модель будет работать, когда они запустят ее в производство.

Резюме:

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

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

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