www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Прогнозирование более 90 вин с деревьями классификации и регрессии

Дата публикации Jul 3, 2017

Дерево классификации и регрессии (CART) является гибким инструментом для задач классификации. Он популярен своей адаптивностью и способностью хорошо работать практически без настройки. Я буду использовать CART, чтобы прогнозировать вина на более чем 90 баллов из данных обзоров вин, и покажу их характеристики и недостатки на этом пути.

Данные, которые я буду использовать, были извлечены из журнала WineEnthusiast и свободно доступны наhttps://www.kaggle.com/zynicide/wine-reviews, Он содержит баллы за 150 000 проверенных вин, а также их цену за бутылку, винодельню, регион выращивания, сортовую и другую информацию. Для этого проекта я буду использовать только вина, выращенные в США.

Одно разумное предположение состояло бы в том, что более дорогие вина будут набирать более 90 баллов чаще, чем более дешевые вина. Как показано на приведенном ниже графике гексбина, есть некоторые свидетельства, подтверждающие это, но, что более конкретно, есть довольно много дорогих вин, которые вообще не получают столь высоких оценок.

Другое предположение может заключаться в том, что в некоторых регионах надежно выращивается более 90 вин, в то время как другим суждено выращивать только более низкие урожаи. Опять же, данные показывают некоторую поддержку этому - но в любом конкретном регионе результаты оценки могут сильно различаться. На приведенном ниже графике скрипки показана плотность винных баллов для 30 лучших регионов, в каждой по 50 или более вин.

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

Чтобы проиллюстрировать это, давайте воспользуемся инструментами sci-kit learn для обучения модели CART на данных обзора вина:

Моя модель CART дополнена 20 081 различными терминальными «листочками» - каждый лист, в данном случае, состоит из одного или нескольких наблюдений из обучающих данных, которые не могут быть разделены дальше - либо потому, что они на 100% однородны, либо между функциональными отличиями нет эти наблюдения.

Выше мы наблюдаем главную ловушку моделей CART: они очень легко подходят для данных, с которыми они обучались. Когда я тестирую свою модель CART на 30% случайном наборе данных о задержках (называемом «тест»), уровень точности классификации падает более чем на 10%.

Лучший подход для устранения этого недостатка - это построить деревья, которые не больше, чем необходимо. Этот критерий немного субъективен, но, по сути, существует баланс между сложностью модели (количеством листьев) и нужным вам набором. Остальная часть этого обсуждения будет посвящена этому напрямую.

Одной из полезных функций моделей CART является возможность сравнивать «важность» различных функций модели. Важным здесь является вклад каждой функции в однородность классификации.

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

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

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

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

Точность модели CART начинает падать, когда число листьев ограничено примерно 7500, и относительно этой точки относительно статично. Но что интересно, так это то, что между 4-х и 2-х функциональными моделями ниже 6000 листов практически нет различий при использовании в тестовых данных. При 2500 максимальных листьях точность тестового образца все еще составляет почти 80%, а разница между показателями точности двухэлементного поезда и тестового образца составляет всего около 5%.

В конечном итоге выбор критериев для модели CART будет зависеть от уникальных целей поставленной задачи. Если бы 80% было приемлемым средним показателем точности для более чем 90-точечных прогнозов вина, модель с двумя функциями CART с примерно 2500 листами дала бы нам модель, которая будет работать последовательно по выборкам с разумной степенью достоверности.

dasotelo / Wine_Classify.py

github.com

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map