CART и деревья решений, такие как алгоритмы, работают через рекурсивное разбиение обучающего набора, чтобы получить подмножества, максимально чистые для данного целевого класса. Каждый узел дерева связан с определенным набором записей который разделен определенным тестом объекта. Например, разделение на непрерывный атрибут A может быть вызвано тестом A ≤ x . Набор записей T затем разделяется на два подмножества, что приводит к левой ветви дерева и правой ветви.TAA≤xT
Tl={t∈T:t(A)≤x}
и
Tr={t∈T:t(A)>x}
Точно так же категориальная особенность может использоваться, чтобы вызвать расщепления согласно его значениям. Например, если B = { b 1 , … , b k }, каждая ветвь i может быть индуцирована с помощью теста B = b i .BB={b1,…,bk}iB=bi
Шаг деления рекурсивного алгоритма для создания дерева решений учитывает все возможные разбиения для каждого признака и пытается найти лучший в соответствии с выбранной мерой качества: критерием разделения. Если ваш набор данных индуцирован по следующей схеме
A1,…,Am,C
где - атрибуты, а C - целевой класс, все кандидаты-расщепления генерируются и оцениваются по критерию расщепления. Разбиения по непрерывным и категориальным атрибутам генерируются, как описано выше. Выбор наилучшего разделения обычно проводится с помощью примесных мер. Примесь родительского узла должна быть уменьшена путем разделения . Пусть ( E 1 , E 2 , … , E k ) - расщепление, индуцированное на множестве записей E , критерий расщепления, который используется для примесной меры I ( ⋅ ), равен:AjC(E1,E2,…,Ek)EI(⋅)
Δ=I(E)−∑i=1k|Ei||E|I(Ei)
Стандартными мерами примеси являются энтропия Шеннона или индекс Джини. В частности, CART использует индекс Джини, который определен для набора следующим образом. Пусть p j - доля записей в E класса c j p j = | { t ∈ E : t [ C ] = c j } |EpjEcj
тогда
Gini(E)=1- Q ∑ j=1p 2 j,
гдеQ- количество классов.
pj=|{t∈E:t[C]=cj}||E|
Gini(E)=1−∑j=1Qp2j
Q
Это приводит к примесям 0, когда все записи принадлежат одному и тому же классу.
В качестве примера, давайте предположим , что у нас есть двоичный набор классов записей , где распределение класса ( 1 / +2 , 1 / +2 ) - следующий хороший раскол для TT(1/2,1/2)T
Tl(1,0)Tr(0,1)TlTr|Tl|/|T|=|Tr|/|T|=1/2Δ
Δ=1−1/22−1/22−0−0=1/2
Δ
Δ = 1 - 1 / 22- 1 / 22- 1 / 2 ( 1 - ( 3 / 4 )2- ( 1 / 4 )2) -1/2 ( 1-(1/4)2- ( 3 / 4 )2) =1/2−1/2(3/8)−1/2(3/8)=1/8
Первое разделение будет выбрано как наилучшее разделение, а затем алгоритм работает рекурсивно.
Новый экземпляр легко классифицировать с помощью дерева решений, на самом деле достаточно пройти путь от корневого узла до листа. Запись классифицируется по классу большинства листа, которого она достигает.
Скажем, что мы хотим классифицировать квадрат на этой фигуре
A,B,CCAB
Возможное индуцированное дерево решений может быть следующим:
Ясно, что квадрат записи будет классифицирован деревом решений как кружок, учитывая, что запись попадает на лист, помеченный кружками.
В этом примере с игрушкой точность на тренировочном наборе составляет 100%, потому что дерево не ошибочно классифицирует записи. На графическом представлении обучающего набора выше мы можем видеть границы (серые пунктирные линии), которые дерево использует для классификации новых экземпляров.
Есть много литературы по деревьям решений, я хотел просто записать схематичное введение. Другая известная реализация - C4.5.
Я не эксперт по CART, но вы можете попробовать книгу «Элементы статистического обучения», которая свободно доступна онлайн (см. Главу 9 для CART). Я считаю, что книга была написана одним из создателей алгоритма CART (Фридман).
источник