Дерево решений и случайный лес — различия между версиями
Sokolova (обсуждение | вклад) (→Рекурсивный алгоритм построения бинарного дерева решений ID3) |
Sokolova (обсуждение | вклад) (→Критерии информативности) |
||
Строка 62: | Строка 62: | ||
* максимальна, когда <tex>p_y = \frac{1}{|Y|}</tex> для всех <tex>y \in Y</tex> | * максимальна, когда <tex>p_y = \frac{1}{|Y|}</tex> для всех <tex>y \in Y</tex> | ||
* не зависит от перенумерации классов | * не зависит от перенумерации классов | ||
− | <tex>Ф(U) = \sum\nolimits_{y \in Y} p_y L(p_y) = \frac{1}{|U|} \sum\nolimits_{x_i \in U}L(P(y_i | x_i \in U)) \rightarrow min</tex>, <br> где <tex>L(p)</tex> убывает и <tex>L(1) = 0</tex>, например: <tex>- | + | <tex>Ф(U) = \sum\nolimits_{y \in Y} p_y L(p_y) = \frac{1}{|U|} \sum\nolimits_{x_i \in U}L(P(y_i | x_i \in U)) \rightarrow min</tex>, <br> где <tex>L(p)</tex> убывает и <tex>L(1) = 0</tex>, например: <tex>-log_2(p)</tex>, <tex>1 - p</tex>, <tex>1 - p^2</tex> |
}} | }} | ||
+ | Примеры: | ||
+ | * Энтропия: <tex>Ф(U) = -\sum\nolimits_{i}p_i log_2p_i</tex> | ||
+ | * Критерий Джини: <tex>Ф(U) = \sum\nolimits_{i != j}p_i p_j = \sum\nolimits_{i}p_i*(1-p_i)</tex> | ||
{{Определение | {{Определение | ||
|id=def1 | |id=def1 | ||
Строка 77: | Строка 80: | ||
|definition= | |definition= | ||
'''Информационный выигрыш от ветвления вершины <tex>v</tex>''' <br> | '''Информационный выигрыш от ветвления вершины <tex>v</tex>''' <br> | ||
− | <tex>Gain(\beta, U) = Ф(U) - Ф(U_1, ... ,U_{|D_v|}) = Ф(U) - \sum\nolimits_{k \in D_v} \frac{|U_k|}{|U|}Ф(U_k) \rightarrow max_{ | + | <tex>Gain(\beta, U) = Ф(U) - Ф(U_1, ... ,U_{|D_v|}) = Ф(U) - \sum\nolimits_{k \in D_v} \frac{|U_k|}{|U|}Ф(U_k) \rightarrow max_{\beta \in B} </tex> |
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Рецукция решающих деревьев == | == Рецукция решающих деревьев == |
Версия 21:53, 20 января 2019
Содержание
Дерево решений
Определение: |
Дерево решений (англ. decision tree, DT) — алгоритм классификации
| , задающийся деревом (связным ациклическим графом):
Определение: |
Бинарное дерево решений — частный случай дерева решений, для которого
| .
function classify(x):if then else return
Рекурсивный алгоритм построения бинарного дерева решений ID3
Идея алгоритма
Проще всего записать этот алгоритм в виде рекурсивной процедуры , которая строит дерево по заданной подвыборке и возвращает его корневую вершину.
1:function ID3(): 2: if все объекты множества принадлежат одному классу then 3: создать новый лист 4: 5: return v 6: найти предикат с максимальной информативностью : Gain( , ) 7: разбить выборку на две части по предикату : 8: if или then 9: создать новый лист 10: = класс, в котором находится большинство объектов из 11: else 12: создать новую внутреннюю вершину 13: 14: = ID3( ) 15: = ID3( ) 16: return
Критерии информативности
Определение: |
Мера неопределенности (англ. impurity) распределения
где убывает и , например: , , | :
Примеры:
- Энтропия:
- Критерий Джини:
Определение: |
Неопределенность распределения | после ветвления вершины по предикату и разбиения :
Определение: |
Информационный выигрыш от ветвления вершины |
Рецукция решающих деревьев
Суть редукции состоит в удалении поддеревьев, имеющих недостаточную статистическую надёжность. При этом дерево перестаёт безошибочно классифицировать обучающую выборку, зато качество классификации новых объектов, как правило, улучшается. Рассмотрим наиболее простые варианты редукции.
Предредукция
Предредукция (англ. pre-pruning) или критерий раннего останова досрочно прекращает дальнейшее ветвление в вершине дерева, если информативность
Для этого на шаге 8 алгоритма условие или заменяется условием . Порог является управляющим параметром метода.
Предредукция считается не самым эффективным способом избежать переобучения, так как жадное ветвление по-прежнему остаётся глобально неоптимальным. Более эффективной считается cтратегия постредукции.
Постредукция
Постредукция (англ. post-pruning) просматривает все внутренние вершины дерева и заменяет отдельные вершины либо одной из дочерних вершин (при этом вторая дочерняя удаляется), либо терминальной вершиной. Процесс замен продолжается до тех
пор, пока в дереве остаются вершины, удовлетворяющие критерию замены.
Критерием замены является сокращение числа ошибок на контрольной выборке, отобранной заранее, и не участвовавшей в обучении дерева. Стандартная рекомендация — оставлять в контроле около 30% объектов.
Для реализации постредукции контрольная выборка пропускается через
построенное дерево. При этом в каждой внутренней вершине запоминается подмножество попавших в неё контрольных объектов. Если , то вершина считается ненадёжной и заменяется терминальной по мажоритарному правилу:
в качестве берётся тот класс, объектов которого больше всего в обучающей подвыборке , пришедшей в вершину .
Затем для каждой внутренней вершины вычисляется число ошибок, полученных при классификации выборки следующими способами:
- — классификация поддеревом, растущим из вершины ;
- — классификация поддеревом левой дочерней вершины ;
- — классификация поддеревом правой дочерней вершины ;
-
Эти величины сравниваются, и, в зависимости от того, какая из них оказалась
минимальной, принимается, соответственно, одно из четырёх решений:
- сохранить поддерево вершины ;
- заменить поддерево вершины поддеревом левой дочерней вершины ;
- заменить поддерево вершины поддеревом правой дочерней вершины ;
- заменить поддерево терминальной вершиной класса .
Алгоритмы построения решающих деревьев
Композиции решающих деревьев
Случайный лес
Пример использования (через scikit-learn)
Ссылки
- Classification and Regression Trees — лекции Cosma Shalizi, ноябрь 2009.