CART і дерева рішень, як алгоритми, працюють через рекурсивний розподіл навчального набору, щоб отримати максимально чисті підмножини для заданого цільового класу. Кожен вузол дерева асоціюється з певним набором записів який розділений конкретним тестом на функцію. Наприклад, розкол на суцільний атрибут може бути індукований тестом . Набір записів потім розподіляється на дві підмножини, що ведуть до лівої гілки дерева та правої.A A ≤ x TТАA ≤ xТ
Тл= { t ∈ T: t ( A ) ≤ x }
і
Тr= { t ∈ T: t ( A ) > x }
Аналогічно, категорична ознака може використовуватися для індукції розщеплення відповідно до її значень. Наприклад, якщо кожна гілка може бути індукована тестом .B = { b 1 , … , b k } i B = b iБB = { b1, … , Бк}iB = bi
Крок поділу рекурсивного алгоритму для створення дерева рішень враховує всі можливі розбиття для кожної функції та намагається знайти найкращий відповідно до обраної міри якості: критерій розщеплення. Якщо ваш набір даних наводиться за наступною схемою
A1,…,Am,C
де є атрибутами, а - цільовим класом, всі розбиті кандидати генеруються та оцінюються за критерієм розщеплення. Розщеплення на безперервні атрибути і категоричні генеруються, як описано вище. Відбір найкращого розколу зазвичай здійснюється за допомогою домішок. Домішка материнського вузла повинна зменшуватися на розщеплення . Нехай є розщепленням, індукованим на множині записів , критерієм розщеплення, який використовує міру домішки є:AjC(E1,E2,…,Ek)EI(⋅)
Δ=I(E)−∑i=1k|Ei||E|I(Ei)
Стандартними домішковими заходами є ентропія Шеннона або індекс Джині. Більш конкретно, CART використовує індекс Джині, який визначений для множини наступним чином. Нехай - частка записів у класу тоді
де - кількість класів.EpjEcj
pj=|{t∈E:t[C]=cj}||E|
Gini(E)=1−∑j=1Qp2j
Q
Це призводить до домішки 0, коли всі записи належать до одного класу.
Як приклад, скажімо, що у нас є набір записів бінарних класів де розподіл класів - наступний варіант є гарним розщепленням дляT(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
Перший розкол буде обраний як найкращий розкол, а потім алгоритм протікає рекурсивно.
Класифікувати новий екземпляр за допомогою дерева рішень легко, насправді достатньо прослідкувати шлях від кореневого вузла до листа. Запис класифікується з мажоритарним класом листа, до якого він потрапляє.
Скажіть, що ми хочемо класифікувати квадрат на цій фігурі
це графічне зображення навчального набору, індукованого на схемі , де - цільовий клас, а і - дві безперервні ознаки.CA,B,CCBAB
Можливим деревом прийнятих рішень може бути наступне:
Зрозуміло, що квадрат записів буде класифікований на дереві рішень як коло, враховуючи, що запис падає на лист, позначений кружечками.
У цьому прикладі іграшки точність набору для тренувань становить 100%, оскільки жоден запис неправильно класифікується деревом. На графічному зображенні навчального набору вище ми бачимо межі (сірі пунктирні лінії), які дерево використовує для класифікації нових екземплярів.
Про дерева рішень є багато літератури, я хотів просто написати схематичний вступ. Ще одна відома реалізація - C4.5.