В области машинного обучения глубокое обучение () преобладают нейронные сети, в то время как поверхностное обучение () по-прежнему является областью модели дерева. С одной стороны, хотя глубокое обучение эффективно при крупномасштабном обучении, его производительность при маломасштабном обучении оставляет желать лучшего; с другой стороны, ансамблевые древовидные модели (,,и т. д.) из-за его высокой интерпретации модели, низкой сложности в настройке параметров, высокой скорости работы и почти отсутствия необходимости в разработке признаков, он полностью подавляет глубокое обучение на малых и средних наборах данных, и это трудно для «разнородных данных». (такие как контроль рисков), данные, такие как возраст, доход, город в сцене), модель дерева ансамбля работает лучше, чем глубокое обучение, даже на крупномасштабных наборах данных. В практических приложениях крупные предприятия, такие как Facebook и Alibaba, используют комбинацию LR.В качестве технической поддержки для важных предприятий, таких как оценка рейтинга кликов и рекомендации по рекламе, а такжеВ последние годы он неоднократно процветал в конкурсе алгоритмов Kaggle.
В этой статье представлены основные алгоритмы ID3, C4.5 и CART модели дерева.Если вы хотите узнать о модели дерева ансамбля (случайный лес, дерево повышения градиента и т. д.), вы можете обратиться к двум другим моим сообщениям в блоге. :
Один из алгоритмов обучения ансамбля:Методы и случайные леса
Один из алгоритмов обучения ансамбля:метод с,
Древо решений
Это классический алгоритм очень раннего происхождения. Его идея основана на теории информации, а прирост информации используется для измерения выбора признаков.Каждый раз, когда для ветвления выбирается признак с наибольшим приростом информации, алгоритм использует жадный поиск сверху вниз для обхода всех возможных пространств дерева решений.
получение информации
- «Информационная энтропия» является наиболее часто используемым показателем для измерения чистоты выборки. Предположим, что текущий набор образцовБДоля образцов класса, ноИнформационная энтропия определяется как:
- Информационная энтропияЧем меньше значение , тем множествоЧем выше уверенность, тем выше чистота. Предположим, что дискретные свойстваимеютвозможные значения, если использоватьк набору образцовподразделение, оно будет производитьузлы ответвления, гдеузлы ветвления содержатВсе в свойствахВерхнее значениеобразец, обозначаемый как,РассчитатьИнформационная энтропия , а затем, учитывая различное количество выборок, содержащихся в разных узлах ветвления, присваивает веса узлам ветвления., то есть большее влияние оказывает узел ответвления с большим количеством отсчетов, поэтому его можно вычислить с помощью атрибутадля набора образцов«Информационный прирост», полученный путем деления:
-
Принцип мысли:
В целом, чем больше прирост информации, тем выше использование атрибутов.Чем больше «улучшение достоверности» (или «улучшение чистоты»), полученное разделением, и алгоритм обучения дерева решений ID3 использует прирост информации в качестве критерия для выбора атрибутов, которые будут использоваться в каждой ветви, так что дерево решений ближе к корню.Ветвь узла имеет более сильную способность «детерминированного повышения».
генерация дерева
- Взяв в качестве примера приведенный выше набор данных (классификация арбузов по внешнему виду), всего имеется 17 обучающих выборок. В начале обучения дерева решений корневой узел содержитВсе примеры в , из которых положительные примеры составляют, контрпример учитывает, то по формуле информационная энтропия корневого узла может быть рассчитана как:
- Затем мы должны вычислить текущий набор атрибутовПолучение информации для каждого атрибута в цвете, корне, ударе, текстуре, пупке, осязании}. Возьмем в качестве примера свойство «цвет», оно имеет 3 возможных значения:Бирюзовый, угольно-черный, светло-белый}. Если вы используете эту пару атрибутовРазделив, можно получить три подмножества, которые записываются как(цвет = зеленыйцветугольно-черный(цвет = светло-белый). ПодмножествоВключить номер6 примеров, из которых положительные примеры составляют, контрпример учитываетВключить номер6 примеров , в которых учитываются положительные и отрицательные примерыВключить номер5 примеров, в которых учитываются положительные и отрицательные примеры. Согласно формуле, информационная энтропия трех узлов ветвления, полученная после деления на «цвет», может быть рассчитана как:
- Следовательно, по формуле информационный прирост признака «цвет» можно рассчитать как:
- Точно так же мы можем рассчитать прирост информации для других атрибутов:
- Очевидно, что атрибут «текстура» имеет наибольший информационный прирост, поэтому он выбран в качестве атрибута раздела. На следующем рисунке показан результат разделения корневого узла на основе «текстуры», а образцы подмножеств, содержащиеся в каждом узле ответвления, отображаются в узле:
-
Затем алгоритм дерева решений будет дополнительно разделять каждый узел ветви. Обратите внимание, что «текстура» больше не будет использоваться в качестве потенциального атрибута разделения в это время.
-
Возьмите в качестве примера первый узел ответвления (texture = clear) на приведенном выше рисунке, образец набора, содержащийся в этом узле.имеет количество,9 примеров , набор доступных свойствцвет, корень, стук, пупок, тактильный. на основеРассчитайте информационный прирост каждого атрибута:
-
Три атрибута «корень», «пупочная часть» и «тактильное ощущение» достигли наибольшего информационного прироста, и один из них может быть выбран в качестве атрибута деления. Аналогично вышеперечисленные операции выполняются на каждом узле ответвления, и итоговое дерево решений выглядит следующим образом:
окончание дерева
законченныйМетод генерации дерева решений, то в процессе непрерывного разбиения узлов дерева, когда следует прекратить расщепление? Обычно, когда узел удовлетворяет следующим трем условиям, ему необходимо прекратить разделение:
- Когда образцы, содержащиеся в узле, все принадлежат к одной и той же категории, разделение узла завершается (даже если в узле все еще есть неразделенные атрибуты), он помечается как листовой узел, а его категория устанавливается как нижняя. категория образца.
- Когда в узле нет неделимого атрибута или все образцы, содержащиеся в узле, имеют одинаковое значение оставшихся неделимых атрибутов, разделение узла прекращается, он помечается как конечный узел, а его класс устанавливается равным класс с наибольшим количеством образцов в узле.
- Когда набор выборок, содержащийся в узле, пуст, разделение узла прекращается, он помечается как конечный узел, а его категория устанавливается как категория с наибольшим количеством образцов, содержащихся в его родительском узле.
Алгоритмические недостатки
- Нет стратегии обрезки, легко переобучить;
- Критерий получения информации отдает предпочтение признакам с большим количеством возможных значений, а прирост информации таких признаков, как «число», близок к 1;
- Не может обрабатывать характеристики непрерывных переменных;
- Пропущенные значения не учитываются
Древо решений
даСам предлагающийНедостатки алгоритма исправлены в следующих аспектах:
- Внедрение скорости получения информации в качестве стандарта классификации атрибутов
- Внедрить стратегию обрезки для обрезки
- Дискретизация непрерывных функций
- Обработка пропущенных значений
Скорость получения информации
-
спередиВ процессе построения дерева решений мы намеренно игнорировали столбец «Число» в таблице 4.1, а если «Число» используется еще и как признак-кандидат деления, то его информационный прирост можно рассчитать по формуле, намного больше, чем другие атрибуты деления-кандидата, это связано с тем, что «число» в качестве атрибута деления будет генерировать 17 ветвей, каждый узел ветви содержит только одну выборку, и одна выборка соответствует только одной категории, тогда «детерминированный» или «чистота» будет очень большим. Однако такое дерево решений, очевидно, не обладает способностью к обобщению и не может делать эффективные прогнозы на новых выборках. На самом деле критерий получения информации отдает предпочтение атрибутам с большим числом возможных значений.Чтобы уменьшить возможные неблагоприятные последствия этого предпочтения,Вместо прямого использования прироста информации для выбора оптимального свойства разделения используется «коэффициент усиления»:
-
в
-
Согласно этой формуле свойствоЧем больше количество возможных значений (т.е.больше), тоЗначение обычно больше. Например, для предыдущей таблицыарбузный набор данных,имеюттрогатьцвет,Нумерация.
-
Следует отметить, что критерий коэффициента усиления отдает предпочтение атрибутам с меньшим числом возможных значений, поэтомуАлгоритм напрямую не выбирает атрибут-кандидат раздела с наивысшим коэффициентом усиления, а использует эвристический метод: сначала находят атрибут с более высоким информационным приростом, чем средний уровень, из атрибутов-кандидатов раздела, а затем выбирают атрибут с наивысшим коэффициентом усиления. .
Обрезка
-
ОбрезкаАлгоритмы имеют дело с «переоснащением». вЧтобы как можно точнее классифицировать обучающие выборки, деление узлов будет слишком сложным, что иногда приводит к слишком большому количеству ветвей дерева решений.В это время обучающие выборки могут быть «слишком хорошими», так что некоторые характеристики используется сам обучающий набор.Переобучение происходит как общее свойство всех данных. Следовательно, риск переобучения можно снизить, активно удаляя некоторые ветки.
-
Если вы хотите реализовать обрезку, перед созданием дерева решений набор данных должен быть разделен, одна часть разделена на «обучающий набор», который используется для обучения дерева решений, а другая часть разделена на «проверочный набор». ", которое используется для дерева решений. Оценивается способность к обобщению. Взяв в качестве примера предыдущий набор данных об арбузах, разделенный набор данных выглядит следующим образом:
-
Результирующее неусеченное дерево решений выглядит следующим образом:
-
Процесс обрезки представлен ниже.Обрезка обычно делится на два типа: «до обрезки» и «после обрезки»:
-
Предварительная обрезка
- Предварительная обрезка заключается в оценке производительности обобщения каждого узла до и после разделения в процессе генерации дерева решений.Если точность прогнозирования дерева решений в наборе проверки после разделения ниже, чем до разделения, оно также будет То есть разбиение текущего узла не может улучшить обобщающую способность дерева решений, тогда остановите разбиение узла и пометьте его как конечный узел, а его категория помечается как категория с наибольшим количеством обучающих образцы.
- На следующем рисунке показано дерево решений, в котором представлена предварительная обрезка:
- Плюсы: предварительная обрезка не только снижает риск переобучения, но и значительно сокращает время обучения.
- Недостатки: Предварительная обрезка основана на «жадной» стратегии, что влечет за собой риск недообучения.
-
после обрезки
-
Постобрезка заключается в оценке нелистовых узлов снизу вверх после того, как дерево решений полностью сгенерировано.Если поддерево, соответствующее узлу, заменяется листовым узлом, а его категория помечается как категория с наибольшим количеством обучающих выборок. , не уменьшит обобщающую способность дерева решений, то есть точность на проверочном множестве не уменьшится, то отрезать поддерево и пометить узел как листовой.
-
На следующем рисунке показано дерево решений после введения обрезки:
- Преимущества: По сравнению с предварительным сокращением, последующее сокращение может эффективно предотвращать чрезмерную подгонку, сохраняя при этом способность деревьев решений к обобщению, и не подвержено недостаточной подгонке.
- Недостаток: сильно увеличивает время обучения модели.
-
-
Непрерывная обработка значений
-
Непрерывная обработка значений вводится путем дискретизации непрерывных признаков, предполагая, что непрерывный признак А имеетценность,Отсортируйте его и возьмите среднее значение каждых двух соседних значений.точки деления, рассчитатьКаждая точка деления используется в качестве информационного прироста точки деления пополам, а точка с наибольшим информационным приростом выбирается в качестве двоичной дискретной точки классификации непрерывного признака.
-
Возьмем в качестве примера следующий набор данных:
-
Для атрибута «плотность» в начале обучения дерева решений 17 обучающих выборок, содержащихся в корневом узле, имеют 17 различных непрерывных значений этого атрибута. В соответствии с описанным выше методом точками-кандидатами пополам этого атрибута являются 16 значений-кандидатов:, . Рассчитайте прирост информации для этих возможных точек деления пополам соответственно, и максимальный прирост информации атрибута «плотность» может быть получен как, соответствующий точке бисекции. Аналогичным образом дискретизируется и показатель «сахаристость», в итоге получаемое дерево решений выглядит следующим образом:
Обработка пропущенных значений
-
Была введена обработка пропущенных значений. Неполные выборочные данные обычно встречаются в реальных данных.Очевидно, что просто отказываться от неполных выборок и использовать только выборки без пропущенных значений для обучения - большая трата информации о данных. Чтобы иметь дело с наборами данных с пропущенными значениями, вам необходимо решить следующие две проблемы:
- Как разделить выбор атрибута при наличии отсутствующих значений атрибута?
- Для определенного узла атрибута, если значение выборки по атрибуту отсутствует, как разделить выборку?
-
На вопрос один,Подход таков: для признаков с пропущенными значениями используйте подмножество выборок без пропущенных значений для расчета прироста информации и умножьте результат на долю выборок без пропущенных значений для этой характеристики; для вопроса 2,Подход такой: разделить выборку на все дочерние узлы с разными значениями веса, то есть разделить выборку на каждый дочерний узел с разными вероятностями, а его вероятность равна доле выборок без пропущенных значений в каждой ветви.
Алгоритмические недостатки
Хотяалгоритм по сравнению сОн был значительно улучшен, но все еще имеет следующие недостатки:
- Стратегия обрезки может быть повторно оптимизирована
- Он использует дерево с несколькими ответвлениями, но бинарное дерево более эффективно.
- Его можно использовать только для классификации, а не для регрессии.
- В используемой энтропийной модели много трудоемких логарифмических операций.
Древо решений
-
Полное название ""(Дерево регрессии классификации) - это мощный алгоритм, известныйАлгоритм представляет собой основанный на нем алгоритм обучения ансамбля.
-
по сравнению с наличиемЗначительные улучшения, в основном отраженные в следующих моментах:
- Его структура представляет собой бинарное дерево, которое быстрее, чем дерево с несколькими ветвями.
- Он может выполнять как классификацию, так и регрессию
- Когда он выполняет классификацию, он использует коэффициент Джини в качестве стандарта разделения атрибутов, объем операций намного меньше, чем логарифмическая операция, а скорость выше.
- Он выполняет обрезку на основе метода сложности затрат, и эффект лучше.
Коэффициент Джини
- Информационная энтропия содержит логарифмы, и операция занимает много времени.При классификации вместо информационной энтропии вводится коэффициент Джини, эквивалентный расширению Тейлора энтропийной модели, что является более эффективным стандартом классификации атрибутов. Он рассчитывается следующим образом:
- Индекс Джини отражает вероятность того, что две случайно взятые выборки из набора данных имеют несовместимые метки классов. Следовательно, чем меньше индекс Джини, тем выше достоверность и чистота набора данных. так какявляется бинарным деревом, для бинарной задачи предположим, что множествов свойствахв условияхидве части, то имуществоКоэффициент Джини рассчитывается как:
Бинарное рекурсивное разбиение
-
Алгоритм принимает бинарное рекурсивное разбиение, В процессе генерации дерева текущий набор выборок всегда делится на два набора подвыборок, так что каждый нелистовой узел сгенерированного дерева решений имеет только две ветви, а все дерево решений представляет собой структуру краткого бинарного дерева, поэтому алгоритм CART подходит для сценариев, в которых значение выборочной функции равно «Да» или «Нет».
-
Для функций с несколькими дискретными значениямиДелается разрез пополам и выбирается разрез с наименьшим коэффициентом Джини. Если собственное значение имеетТри значения, то разрез пополам будет иметь следующие три возможности:, а затем вычислить коэффициент Джини, когда приведенный выше список раздвоен, и выбрать оптимальный метод сегментации.
-
в то же время,Для дерева не задан критерий завершения, что означает, что дерево вырастет до максимального размера. Поэтому обрезка особенно важна, и стратегия обрезки будет обсуждаться позже.
дерево регрессии
-
Существенное различие между регрессией и классификацией заключается в том, является ли результат непрерывным или дискретным.Его можно использовать не только как дерево классификации, но и как дерево регрессии.При использовании в качестве дерева регрессии применимый сценарий: хотя значения меток результатов непрерывно распределяются, их можно разделить на сообщества, то есть похожи внутри сообщества и различны между сообществами.
-
Функция потерь для деревьев регрессии: сумма квадратов ошибок
- В ранее изученном дереве решений мы использовали информационную энтропию или коэффициент Джини в качестве функции потерь, но в дереве регрессии, поскольку полученные метки являются непрерывными числовыми значениями, информационная энтропия и коэффициент Джини уже неприменимы.Функция потерь для деревьев регрессии обычно использует «сумму квадратов ошибок»:
- В приведенной выше формулев обучающей выборкесоответствующий фактическийценность,засоответствующие образцам набора данныхсреднее,засоответствующие образцам набора данныхсредний из.
-
Генерация деревьев регрессии
Для заданного обучающего набора D
- Пройдите значение каждой переменной по очереди, найдите оптимальную переменную сегментации j и точку сегментации s, а затем решите:
- Этот шаг заключается в поиске оптимальной точки разделения для текущего узла, чтобы общая квадратичная ошибка двух узлов после разделения была наименьшей.
- Затем разделите область с выбранной парой (j, s) и определите соответствующее выходное значение:
- , соответственно представляют левый и правый дочерние узлы, а оценочные значения на двух узлахОн представлен средним значением целевого значения на соответствующем дочернем узле (обратите внимание, что интервал всегда делится в соответствии с минимальными потерями квадратной ошибки, ноИспользуется среднее значение, потому что функция потерь в это время представляет собой квадрат ошибки, а не среднее значение при изменении функции потерь).
-
Продолжайте вызывать шаг 1 и шаг 2 для двух подобластей, пока не будет выполнено условие остановки (например, количество выборок в подузле слишком мало или дерево решений не достигло указанной глубины).
-
Разделите входное пространство на M областей, чтобы сгенерировать дерево решений:
- f(x) — дерево решений CART, которое мы изучили, I\left(x \in R_{m}\right) представляет область, к которой принадлежит соответствующий образец, и его значение равно 1 в соответствующей области, в противном случае оно равно 0 .
- Наконец, конечные узлы обученного дерева регрессии содержат несколько значений y, так как же вывести предсказанное значение? Метод по-прежнему заключается в том, чтобы найти значение, которое минимизирует функцию потерь конечного узла, и вывести его как прогнозируемое значение. Что касается «суммы квадратов ошибок» в качестве функции потерь здесь, поскольку ее можно непосредственно использовать в качестве ошибки после вывода, среднее значение - это значение, которое минимизирует функцию потерь, и для вывода требуется только среднее значение.
Сокращение на основе сложности затрат
-
так какДля дерева нет определенного критерия завершения, и дерево вырастет до своего максимального размера, поэтому обрезка особенно важна.Используя стратегию сокращения, основанную на стоимости, этот метод в конечном итоге сгенерирует серию деревьев разных размеров, каждое дерево получается путем замены некоторых поддеревьев самого большого дерева узлами-листами, из которых самое маленькое дерево содержит только один лист. узел, и, наконец, перекрестная проверка используется в наборе проверки для оценки производительности всех деревьев, и выбирается дерево с наилучшей производительностью классификации.
-
Конкретные шаги алгоритма:
-
Сначала назовем самое большое дерево как, мы хотим уменьшить размер дерева, чтобы предотвратить «переоснащение», но беспокоимся о «недообучении» после удаления слишком большого количества поддеревьев, поэтому мы определяем функцию потерь, чтобы сбалансировать два:
-
: любое поддерево;
-
: ошибка прогнозирования поддерева в обучающем наборе (коэффициент Джини для классификации и сумма квадратов ошибок для регрессии), которая используется для измерения степени соответствия поддерева обучающим данным;
-
: количество листовых узлов поддерева, которое используется для измерения сложности поддерева;
-
: Параметр штрафа за регуляризацию, чтобы сбалансировать взаимосвязь между подгонкой и сложностью дерева.
-
Наша конечная цель — сделать функцию потерьминимум, как видно из формулы, с параметром регуляризациивозрастает, сложность модели деревабудет вынужден уменьшаться, а количество сокращений увеличивается, поэтому степень соответствия уменьшается, а ошибка прогнозапостепенно увеличивается, поэтому функция потерьразмер не может быть определен интуитивно. Поэтому мы вводим «коэффициент увеличения ошибки».
-
-
Скорость увеличения ошибки:
-
: любой внутренний одиночный узел
-
:УзелВключенное поддерево
-
:отдля листовых узлов (отрезатьподдерево) ошибка предсказания
-
: поддеревоошибка предсказания
-
: поддеревоКоличество листовых узлов
-
Понимание формулы:
-
Скорость увеличения ошибки используется для измерения «выгоды» или «экономической эффективности» «поведения обрезки».
-
Для числителя он представляет собой приращение ошибки до и после обрезки, конечно, мы надеемся, что он будет как можно меньше; для знаменателя он представляет собой размер отсеченного поддерева, и мы надеемся, что он будет как можно больше (модель дерева менее сложна). Поэтому мы надеемся, что чем в целом меньше приведенная выше формула, тем лучше, так что «выгода» от обрезки будет наибольшей, а «экономичность» — самой высокой.
-
-
Далее, для самого большого дерева, вычислить «коэффициент увеличения ошибки» каждого внутреннего узла отдельно, выбрать узел с наименьшей «коэффициентом увеличения ошибки», обрезать его ветви, и обрезанное дерево помечается как; следующий за«Скорость увеличения ошибки» каждого узла, выберите нижнюю часть, обрежьте и пометьте ее как; повторяйте этот шаг до последнего дереваТолько с одним листовым узлом ряд деревьев получается следующим образом:, которые являются оптимальными поддеревьями при разном числе узлов соответственно, а также являются параметрами регуляризации.отувеличить довремя в каждом интервалеоптимальное поддерево . Наконец, каждое поддерево оценивается в наборе проверки (оценка перекрестной проверки) и выбирается оптимальное поддерево.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение.
Наконец, если вы интересуетесь Python, интеллектуальным анализом данных, машинным обучением и т. д., добро пожаловать в мой блог.