Классический алгоритм дерева решений

машинное обучение искусственный интеллект алгоритм
Классический алгоритм дерева решений

Регрессия и классификация

Мы всегда сталкивались с двумя типами проблем в машинном обучении: одна проблема регрессии, а другая проблема классификации. Мы понимаем это буквально, легко понять, что проблема классификации фактически разделяет наши существующие данные на несколько категорий, а затем для новых данных мы разделяем их в соответствии с классифицированными категориями; и проблема регрессии состоит в том, чтобы соответствовать существующим данным. в Функция, которая предсказывает новые данные на основе подобранной функции. Разница между ними заключается в типе выходной переменной. Регрессия — это количественный результат или предсказание непрерывных переменных; задачи классификации учитывают количественный результат, предсказывая дискретные переменные. Po — это картинка, которую я видел на Zhihu, которая очень хорошо объясняет:

回归与分类区别

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

Деревья регрессии и классификации

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

получение информации

信息增益定义

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

数据集《统计学习方法》

信息增益计算过程

В книге «Красота математики» д-р Ву Цзюнь однажды предупредил, что единственный способ лучше судить о том, правильно это или нет, — это предоставить больше информации. Затем для этого дерева решений мы, конечно, склонны выбирать признаки с большей неопределенностью, потому что чем больше неопределенность, тем больше информации вводится после ее определения. В этом случае решение для всей системы является более эффективным.

коэффициент усиления информации

信息增益比定义

Коэффициент прироста информации, некоторые книги также называют коэффициентом прироста информации. Данные намного меньше, чем прирост информации. Разница в том, что прирост информации делится на общую энтропию. Какова конкретная выгода, мы упомянем об этом в алгоритме C4.5 ниже. Однако таким же образом нам все еще нужно обратить внимание на процесс расчета этого коэффициента прироста информации.Мы рассчитаем прирост информации.Эта общая энтропия согласуется с H(D), упомянутым выше. Разделите снова, чтобы получить результат, который мы хотим.


Алгоритм ID3

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

В определении и формуле этого прироста информации мы должны обратить внимание на алгоритм этого H(D). Мы решаем энтропию всего набора, обычно решая Прирост информации напрямую влияет на то, какой узел мы выбираем в качестве операции следующей функции, и устанавливается пороговое значение e, и цикл останавливается, когда прирост информации становится меньше этого порога. Чтобы не влиять на всеобщее понимание, напишу полный алгоритм здесь:

ID3: Вход: набор обучающих данных D, набор признаков A, порог e; Выход: дерево решений T 1. Если все экземпляры D China принадлежат одному и тому же классу Ck, то T — одноузловое дерево, Ck используется как маркер класса узла, и возвращается T; 2. Если A=пустое множество, T является деревом с одним узлом, и класс Ck с наибольшим числом экземпляров в D используется в качестве маркера класса узла, и возвращается T; 3. В противном случае подсчитайте информационный прирост каждой функции от A до D (подробности см. в моем предыдущем блоге на основе дерева решений) и выберите функцию Ag с наибольшим информационным приростом; 4. Если информационный прирост Ag меньше порога e, установить T как дерево с одним узлом и использовать класс Ck с наибольшим числом экземпляров в D в качестве метки класса узла и вернуть T; 5. Иначе для каждого возможного значения ai множества Ag разбить D на несколько непустых подмножеств Di согласно Ag=ai, использовать класс с наибольшим числом экземпляров Di в качестве маркера для построения подузла, состоящего из узла и его подузлов Точки образуют дерево T, возврат T; 6. Для i-го дочернего узла возьмите Di в качестве обучающего набора и A-{Ag} в качестве набора признаков, рекурсивно вызовите (1)~(5), чтобы получить поддерево Ti и вернуть Ti.

Чтобы углубить ваше понимание, я вставляю пример из «Статистических методов обучения» Ли Ханга:

数据集《统计学习方法》

ID3生成树计算过程

Алгоритм ID3 генерирует только деревья и не контролирует степень подгонки или обрезки ветвей, поэтому деревья, сгенерированные этим алгоритмом, склонны к переподгонке.


C4.5 Алгоритм

Алгоритм C4.5 очень похож на алгоритм ID3 и является его усовершенствованием. Единственное отличие от ID3 заключается в том, что C4.5 использует коэффициент прироста информации вместо прироста информации для выбора функций.

Опубликуйте алгоритм C4.5:

Вход: набор обучающих данных D, набор признаков A, порог e Выход: дерево решений T

  1. Если все экземпляры в D принадлежат к одному и тому же классу Ck, то T является деревом с одним узлом, Ck используется как метка класса узла, и возвращается T;
  2. Если A = пустой набор, то T является деревом с одним узлом, и класс Ck с наибольшим числом экземпляров в D используется в качестве метки класса узла, и возвращается T;
  3. В противном случае рассчитайте информационный прирост каждой функции от A до D (подробности см. В моем предыдущем блоге на основе дерева решений) и выберите функцию Ag с наибольшим информационным приростом;
  4. Если информационный прирост Ag меньше порогового значения e, установите T как дерево с одним узлом и используйте класс Ck с наибольшим количеством экземпляров в D в качестве метки класса узла и верните T;
  5. В противном случае для каждого возможного значения ai множества Ag разбить D на несколько непустых подмножеств Di в соответствии с Ag=ai, использовать класс с наибольшим числом экземпляров Di в качестве маркера для построения подузла, состоящего из узел и дерево его подузлов T, возврат T;
  6. Для i-го дочернего узла возьмите Di в качестве обучающего набора и A-{Ag} в качестве набора признаков, рекурсивно вызовите (1)~(5), чтобы получить поддерево Ti и вернуть Ti.

Почему мы говорим, что C4.5 лучше ID3? Мы должны начать с разницы между ними, то есть с соотношения прироста информации и прироста информации. Мы снова вставляем определение прироста информации и коэффициента прироста информации:

信息增益定义

信息增益比定义

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

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

Следовательно, на основе ID3, C4.5 принимает метод принятия решения по коэффициенту прироста информации, чтобы наказывать атрибуты со многими значениями.