В этом модуле вы изучите простейший и наиболее распространенный алгоритм разделения, который создает условия вида в следующих настройках:
- Задача двоичной классификации
- Без пропущенных значений в примерах
- Без заранее вычисленного индекса в примерах
Предположим, имеется набор из примеров с числовым признаком и двоичной меткой «оранжевый» и «синий». Формально опишем набор данных как:
где:
- — значение числового признака в (множестве действительных чисел).
- — значение метки двоичной классификации в {оранжевом, синем} цвете.
Наша цель — найти такое пороговое значение (порог), при котором разделение примеров на группы и по условию улучшает разделение меток; например, больше «оранжевых» примеров в и больше «синих» примеров в .
Энтропия Шеннона является мерой беспорядка. Для двоичной метки:
- Энтропия Шеннона максимальна, когда метки в примерах сбалансированы (50% синего и 50% оранжевого).
- Энтропия Шеннона минимальна (значение 0), когда метки в примерах чистые (100% синие или 100% оранжевые).
Рисунок 8. Три разных уровня энтропии.
Формально мы хотим найти условие, уменьшающее взвешенную сумму энтропии распределений меток в и . Соответствующая оценка — это прирост информации , который представляет собой разницу между энтропией и энтропией {,}. Эта разница называется приростом информации .
На следующем рисунке показано плохое разделение, при котором энтропия остается высокой, а прирост информации – низким:
Рисунок 9. Плохое разделение не снижает энтропию метки.
Напротив, на следующем рисунке показано лучшее разделение, при котором энтропия становится низкой (а прирост информации высок):
Рисунок 10. Хорошее разделение снижает энтропию метки.
Формально:
где:
- — это информационный выигрыш от разделения на и .
- — энтропия множества примеров .
- — количество элементов в множестве .
- — пороговое значение.
- — это положительное значение метки, например «синий» в приведенном выше примере. Выбор другой метки в качестве «положительной метки» не меняет значения энтропии или прироста информации.
- — соотношение положительных значений меток в примерах .
- — это набор данных (как определено ранее в этом модуле).
В следующем примере мы рассматриваем набор данных двоичной классификации с одним числовым признаком . На следующем рисунке показаны различные пороговые значения (ось X):
- Гистограмма признака .
- Соотношение «синих» примеров в , и устанавливается в соответствии с пороговым значением.
- Энтропия в , и .
- Прирост информации; то есть дельта энтропии между и {,}, взвешенная по количеству примеров.
Рисунок 11. Четыре пороговых графика.
Эти графики показывают следующее:
- График «частоты» показывает, что наблюдения относительно хорошо разбросаны с концентрациями от 18 до 60. Широкий разброс значений означает, что существует много потенциальных разделений, что хорошо для обучения модели.
Доля «синих» меток в наборе данных составляет ~25%. График «коэффициента синей метки» показывает, что для пороговых значений от 20 до 50:
- Набор содержит избыток примеров «синих» меток (до 35% для порога 35).
- Набор содержит дополнительный дефицит примеров «синих» меток (всего 8% для порога 35).
Как «соотношение синих меток», так и графики «энтропии» показывают, что метки могут быть относительно хорошо разделены в этом пороговом диапазоне.
Это наблюдение подтверждается графиком «прироста информации». Мы видим, что максимальный прирост информации достигается при t~=28 при значении прироста информации ~0,074. Следовательно, условие, возвращаемое разделителем, будет .
Прирост информации всегда положителен или равен нулю. Он сходится к нулю, когда пороговое значение приближается к своему максимальному/минимальному значению. В этих случаях либо , либо становится пустым, а другой содержит весь набор данных и показывает энтропию, равную энтропии в . Прирост информации также может быть нулевым, когда = = . На пороге 60 соотношение «синих» меток как для , так и для такое же, как и для , и прирост информации равен нулю.
Возможные значения в множестве действительных чисел () бесконечны. Однако при конечном числе примеров существует лишь конечное число делений на и . Следовательно, только конечное число значений имеет смысл проверять.
Классический подход заключается в сортировке значений x i в порядке возрастания x s(i) так, чтобы:
Затем проверьте для каждого значения на полпути между последовательными отсортированными значениями . Например, предположим, что у вас есть 1000 значений с плавающей запятой для определенного объекта. Предположим, что после сортировки первые два значения равны 8,5 и 8,7. В этом случае первое пороговое значение для проверки будет 8,6.
Формально мы рассматриваем следующие возможные значения t:
Временная сложность этого алгоритма составляет с количеством примеров в узле (из-за сортировки значений признаков). При применении к дереву решений алгоритм разделения применяется к каждому узлу и каждому объекту. Обратите внимание, что каждый узел получает ~1/2 своих родительских примеров. Следовательно, согласно основной теореме , временная сложность обучения дерева решений с помощью этого сплиттера равна:
где:
- — количество функций.
- — количество обучающих примеров.
В этом алгоритме ценность признаков не имеет значения; важен только порядок. По этой причине этот алгоритм работает независимо от масштаба или распределения значений признаков. Вот почему нам не нужно нормализовать или масштабировать числовые характеристики при обучении дерева решений.