当前位置:   article > 正文

python决策树分类鸢尾花_【sklearn决策树算法】DecisionTreeClassifier(API)的使用以及决策树代码实例 - 鸢尾花分类...

sklearn对鸢尾花数据集,构建id3, c4.5, cart三种决策树,并分别进行可视化

决策树算法

决策树算法主要有ID3, C4.5, CART这三种。

ID3算法从树的根节点开始,总是选择信息增益最大的特征,对此特征施加判断条件建立子节点,递归进行,直到信息增益很小或者没有特征时结束。

信息增益:特征 A 对于某一训练集 D 的信息增益 g(D,A) 定义为集合 D 的熵 H(D) 与特征 A 在给定条件下 D 的熵 H(D/A) 之差。

熵(Entropy)是表示随机变量不确定性的度量。

\[g(D, A) = H(D) - H(D \mid A)

\]

C4.5是使用了信息增益比来选择特征,这被看成是 ID3 算法的一种改进。

但这两种算法都会导致过拟合的问题,需要进行剪枝。

决策树的修剪,其实就是通过优化损失函数来去掉不必要的一些分类特征,降低模型的整体复杂度。

CART 算法在生成树的过程中,分类树采用了基尼指数(Gini Index)最小化原则,而回归树选择了平方损失函数最小化原则。

CART 算法也包含了树的修剪,CART 算法从完全生长的决策树底端剪去一些子树,使得模型更加简单。

具体代码实现上,scikit-learn 提供的 DecisionTreeClassifier 类可以做多分类任务。

1. DecisionTreeClassifier API 的使用

和其他分类器一样,DecisionTreeClassifier 需要两个数组作为输入:

X: 训练数据,稀疏或稠密矩阵,大小为 [n_samples, n_features]

Y: 类别标签,整型数组,大小为 [n_samples]

from sklearn import tree

X = [[0, 0], [1, 1]]

Y = [0, 1]

clf = tree.DecisionTreeClassifier()

clf = clf.fit(X, Y)

模型拟合后,可以用于预测样本的分类

clf.predict([[2., 2.]])

array([1])

此外,可以预测样本属于每个分类(叶节点)的概率,(输出结果:0%,100%)

clf.predict_proba([[2., 2.]])

array([[0., 1.]])

DecisionTreeClassifier() 模型方法中也包含非常多的参数值。例如:

criterion = gini/entropy 可以用来选择用基尼指数或者熵来做损失函数。

splitter = best/random 用来确定每个节点的分裂策略。支持 “最佳” 或者“

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/330925?site
推荐阅读
相关标签
  

闽ICP备14008679号