Дерево решений — это тип алгоритма контролируемого обучения (с заранее определенной целевой переменной), который в основном используется в задачах классификации. Деревья решений задают множество линейных вопросов для классификации данных. то есть сформировать границу решения в наборе классификационных данных.

Прирост информации, энтропия и загрязнение:

Энтропия — это мера нечистоты в ряде примеров. то есть это помогает нашему дереву решений решить, где разделить данные.

где 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 дочерних ветвей, поэтому изменение этого значения обеспечит хорошее соответствие. Точно так же мы можем поиграть с другими параметрами, чтобы получить правильную границу решения.

Вывод :

Несмотря на то, что дерево решений является хорошим выбором для формирования обобщенной границы решений, оно склонно к переобучению. Следовательно, во время обучения модели рекомендуется точно настроить параметры.