Дерево решений — это тип алгоритма контролируемого обучения (с заранее определенной целевой переменной), который в основном используется в задачах классификации. Деревья решений задают множество линейных вопросов для классификации данных. то есть сформировать границу решения в наборе классификационных данных.
Прирост информации, энтропия и загрязнение:
Энтропия — это мера нечистоты в ряде примеров. то есть это помогает нашему дереву решений решить, где разделить данные.
где p(xi) — доля примеров в классе i и, таким образом, сумма всех классов в наборе данных. Минимальное значение энтропии = 0, если в взятом примере есть только один класс. Значение энтропии может возрасти до 1, если в рассматриваемом примере есть разные классы.
Дерево решений пытается максимизировать прирост информации и использовать эту информацию для разделения данных.
Прирост информации = Энтропия[родительский]-[средневзвешенный]*Энтропия[дочерний]
Реализация обучения Scikit:
from sklearn import tree >>> X = input data set >>> Y = input data set >>> model= tree.DecisionTreeClassifier() Fitting the data: >>> model= model.fit(X, Y) Predicting the output: >>> predictions = model.predict(X_test)
Обычно деревья решений склонны к избыточной подгонке, поэтому всякий раз при подгонке данных целесообразно настраивать параметр tree.DecisionTreeClassifier().
class sklearn.tree.DecisionTreeClassifier
(criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_split=1e-07, class_weight=None, presort=False)
Note : [criterion='gini' or 'entropy'] both values almost gives the same best result.
Обратите внимание на параметр "min_samples_split". этот параметр поможет нам избежать чрезмерной подгонки данных или высокой дисперсии. Если min_samples_split = 50, каждый узел будет разделен еще на 50 дочерних ветвей, поэтому изменение этого значения обеспечит хорошее соответствие. Точно так же мы можем поиграть с другими параметрами, чтобы получить правильную границу решения.
Вывод :
Несмотря на то, что дерево решений является хорошим выбором для формирования обобщенной границы решений, оно склонно к переобучению. Следовательно, во время обучения модели рекомендуется точно настроить параметры.