Дерево решений и случайный лес — различия между версиями
Sokolova (обсуждение | вклад) |
Sokolova (обсуждение | вклад) |
||
Строка 26: | Строка 26: | ||
− | == | + | == Алгоритм построения решающего дерева ID3 == |
+ | Идея алгоритма <tex>ID3</tex> (англ. ''Induction of Decision Tree'') заключается в последовательном дроблении выборки на две части до тех пор, пока в каждой части не окажутся объекты только одного класса. Проще всего записать этот алгоритм в виде рекурсивной процедуры <tex>TreeGrowing</tex>, которая строит дерево по заданной подвыборке <tex>U</tex> и возвращает его корневую вершину. | ||
+ | TODO: возможные StopCriterion, Major | ||
+ | |||
+ | '''V''' TreeGrowing(<tex>U</tex>): | ||
+ | '''if''' StopCriterion(<tex>U</tex>)'''then''' | ||
+ | '''return''' новый лист <tex>v</tex>, взяв <tex>y_v</tex> := Major(<tex>U</tex>) | ||
+ | выбрать признак, наиболее выгодный для ветвления дерева: | ||
+ | <tex>f_v = \mathrm{arg}\max_{f\in F} </tex> Gain(<tex>f</tex>, <tex>U</tex>) | ||
+ | '''if''' Gain(<tex>f_v</tex>, <tex>U</tex>) <tex> < G_0</tex> '''then''' | ||
+ | '''return''' новый лист <tex>v</tex> взяв <tex>y_v</tex> := Major(<tex>U</tex>) | ||
+ | создать новую внутреннюю вершину <tex>v</tex> с функцией <tex>f_v</tex> | ||
+ | '''for''' (<tex>k \in D_v</tex>): | ||
+ | <tex>U_k := \{x \in U: f_v(x) = k\}</tex> | ||
+ | <tex>S_v(k)</tex> := TreeGrowing(<tex>U_k</tex>) | ||
+ | '''return''' <tex>v</tex> | ||
+ | |||
+ | ===Мера неопределенности распределения=== | ||
+ | |||
+ | ===Критерий ветвления=== | ||
+ | |||
+ | ====Критейрий Джини==== | ||
+ | ====Энтропийный критерий==== | ||
+ | |||
− | |||
== Разновидности решающих деревьев == | == Разновидности решающих деревьев == |
Версия 17:21, 20 января 2019
Содержание
Дерево решений
Определение: |
Дерево решений (англ. decision tree, DT) — алгоритм классификации
| , задающийся деревом (связным ациклическим графом):
Определение: |
Бинарное решающее дерево — частный случай дерева решений, для которого
| .
Y classify(x):while : ( (x)) ; return
Алгоритм построения решающего дерева ID3
Идея алгоритма
(англ. Induction of Decision Tree) заключается в последовательном дроблении выборки на две части до тех пор, пока в каждой части не окажутся объекты только одного класса. Проще всего записать этот алгоритм в виде рекурсивной процедуры , которая строит дерево по заданной подвыборке и возвращает его корневую вершину. TODO: возможные StopCriterion, MajorV TreeGrowing(): if StopCriterion( )then return новый лист , взяв := Major( ) выбрать признак, наиболее выгодный для ветвления дерева: Gain( , ) if Gain( , ) then return новый лист взяв := Major( ) создать новую внутреннюю вершину с функцией for ( ): := TreeGrowing( ) return
Мера неопределенности распределения
Критерий ветвления
Критейрий Джини
Энтропийный критерий
Разновидности решающих деревьев
Тип задачи
Критерии ветвления
Критерии останова
Что находится во внутренних вершинах
Что находится в листьях
Передача информации между вершинами
- (alternating decision tree)
Рецукция решающих деревьев
Оценивание вероятностей
Полужадный синтез
Алгоритмы построения решающих деревьев
Обобщающая способность решающих деревьев
Композиции решающих деревьев
- Решающий лес
- Бустинг над решающими деревьями
История
Ссылки
- Classification and Regression Trees — лекции Cosma Shalizi, ноябрь 2009.