在Python中如何使用决策树构造分类器?

决策树是随机森林算法的基本构建块。它被认为是机器学习中最流行的算法之一,并用于分类目的。由于它们易于理解,因此非常受欢迎。

决策树给出的决策可用于解释为什么做出某个预测。这意味着用户可以清楚地了解输入和输出过程,它们也是诸如装袋,随机森林和梯度增强之类的集成方法的基础。它们也称为CART,即分类和回归树。它可以可视化为一棵二叉树(在数据结构和算法中研究过的一棵树)。

树中的每个节点代表一个输入变量,叶节点(也称为终端节点)包含输出变量。这些叶节点用于对节点进行预测。创建决策树时,基本思想是将给定的空间分为多个部分。汇总所有值并尝试不同的拆分,以便获得更少的成本和最佳的预测值。以贪婪的方式选择这些值。

继续拆分这些节点,直到达到树的最大深度。使用决策树的想法是根据特定特征值将输入数据集划分为较小的数据集,直到每个目标变量都属于一个类别。进行该划分以便获得每个步骤的最大信息增益。

每个决策树均以根开头,这是进行第一次拆分的地方。应该设计一种有效的方法来确保定义了节点。

这就是基尼价值体现出来的地方。基尼系数被认为是衡量不平等程度的最常用方法之一。不等式是指节点中每个子集可能属于的目标类(输出)。

因此,基尼值是在每次分割后计算的。基于基尼值/不等式值,可以定义信息增益。

DecisionTreeClassifier用于执行多类分类。

下面是相同的语法。

class sklearn.tree.DecisionTreeClassifier(*, criterion='gini',…)

以下是示例-

示例

from sklearn import tree
from sklearn.model_selection import train_test_split
my_data = [[16,19],[17,32],[13,3],[14,5],[141,28],[13,34],[186,2],[126,25],[176,28],
[131,32],[166,6],[128,32],[79,110],[12,38],[19,91],[71,136],[116,25],[17,200], [15,25], [14,32],[13,35]]
target_vals =['Man','Woman','Man','Woman',
'Woman','Man','Woman','Woman',
'Woman','Woman','Woman','Man','Man',
'Man','Woman', 'Woman', 'Woman',
'Woman','Man','Woman','Woman']
data_feature_names = ['Feature_1','Feature_2']
X_train, X_test, y_train, y_test = train_test_split(my_data, target_vals, test_size = 0.2, random_state = 1)
clf = tree.DecisionTreeClassifier()
print("正在调用决策树分类器")
DTclf = clf.fit(my_data,target_vals)
prediction = DTclf.predict([[135,29]])
print("预测值是 ")print(prediction)

输出结果

正在调用决策树分类器
预测值是
['Woman']

说明

  • 所需的包将导入到环境中。

  • 该代码用于基于特征值对目标值的值进行分类。

  • 定义了特征向量和目标值。

  • 借助“ train_test_split”功能将数据分为训练和测试集。

  • 将调用DecisionTreeClassifier并将数据拟合到模型。

  • “预测”功能用于预测特征值。

  • 输出显示在控制台上。

猜你喜欢