相关文章推荐
逃课的紫菜汤  ·  oracle ...·  2 月前    · 
时尚的蜡烛  ·  java - Spring 5 ...·  1 年前    · 

(7条消息) decisiontreeclassifier 剪枝操作_决策树剪枝问题&python代码_weixin_39857876的博客-CSDN博客

path = clf.cost_complexity_pruning_path(Xtrain, Ytrain)
#cost_complexity_pruning_path:返回两个参数,
#第一个是CCP剪枝后决策树序列T0,T1,...,Tt对应的误差率增益率α;第二个是剪枝后决策树所有叶子节点的不纯度
ccp_alphas, impurities = path.ccp_alphas, path.impurities
print(ccp_alphas)
clfs = []
for ccp_alpha in ccp_alphas:
    clf = tree.DecisionTreeClassifier(random_state=0, ccp_alpha=ccp_alpha)
    clf.fit(Xtrain, Ytrain)
    clfs.append(clf)
#输出最后一个数的节点个数和ccp_alphas
print("Number of nodes in the last tree is: {} with ccp_alpha: {}".format(
      clfs[-1].tree_.node_count, ccp_alphas[-1]))
#绘制不同ccp_alpha取值下,clf在训练样本和测试样本上的精确度
train_scores = [clf.score(Xtrain, Ytrain) for clf in clfs]
test_scores = [clf.score(Xtest, Ytest) for clf in clfs]
from matplotlib import pyplot
plt.rcParams['savefig.dpi'] = 80 #图片像素
plt.rcParams['figure.dpi'] = 200 #分辨率
# 默认的像素:[6.0,4.0],分辨率为100,图片尺寸为 600*400
fig, ax = pyplot.subplots()
ax.set_xlabel("alpha")
ax.set_ylabel("accuracy")
ax.set_title("Accuracy vs alpha for training and testing sets")
ax.plot(ccp_alphas, train_scores, marker='', label="train",
        drawstyle="steps-post")
ax.plot(ccp_alphas, test_scores, marker='', label="test",
        drawstyle="steps-post")
ax.legend()
pyplot.show()
(7条消息) decisiontreeclassifier 剪枝操作_决策树剪枝问题&python代码_weixin_39857876的博客-CSDN博客path = clf.cost_complexity_pruning_path(Xtrain, Ytrain)#cost_complexity_pruning_path:返回两个参数,#第一个是CCP剪枝后决策树序列T0,T1,...,Tt对应的误差率增益率α;第二个是剪枝后决策树所有叶子节点的不纯度ccp_alphas, im
【对应博客内本章内容】 4.3 编程实现基于信息熵进行划分选择的决策树算法,并为西瓜数据集3.0中的数据生成一颗决策树。 4.4 编程实现基于基尼指数进行划分选择的决策树算法,为西瓜数据集2.0生成预剪枝、后剪枝决策树,并与未剪枝决策树进行比较。 4.6 选择4个UCI数据集,对上述2种算法产生的未剪枝,预剪枝,后剪枝决策树进行实验比较,并进行适当的统计显著性检验。 原文链接:https://blog.csdn.net/m0_46345193/article/details/
剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段。决策树剪枝的基本策略有“预剪枝”(prepruning)和“后剪枝”(postpruning)。 预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点得划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点 后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
《老饼讲解-机器学习》本文讲解sklearn中决策树ccp_alpha参数的使用方法,它主要用于ccp剪枝ccp_alpha的值要设为多少? 事实上,一般并不是直接设置ccp_alpha, 而是要先打印CCP路径,再根据路径信息来决定alpha的值。 CCP路径又是什么鬼? 本文一一道来。
目录决策树一、ID3决策树1.1 信息熵1.2 信息增益1.3 ID3决策树代码实现二、CART决策树 根据划分方法不同可以分为ID3、CART、C4.5三种决策树 一、ID3决策树 1.1 信息熵 决策树算法的关键在于如何选择最优划分属性。一般而言,我们希望决策树的分支节点所包含的样本尽可能属于同一类别,即其纯度越高越好。 通常,使用信息熵(information entropy)来作为度量样本纯度的标准,计算公式为: Ent(D)=−∑k=1∣y∣pklog2pk Ent(D) = -\disp
CART,又名分类回归树,是在ID3的基础上进行优化的决策树,学习CART记住以下几个关键点: (1)CART既能是分类树,又能是分类树; (2)当CART是分类树时,采用GINI值作为节点分裂的依据;当CART是回归树时,采用样本的最小方差作为节点分裂的依据; (3)CART是一棵二叉树。 接下来将以一个实际的例子对CART进行介绍: