分类树-sklearn

sklearn建模三部:
1.实例化
2.代入数据进行训练
3.进行评估打分

clf = tree.DecisionTreeClassifier(criterion="entropy"
                                  , random_state=30
                                  , splitter="random"
                                  , max_depth=3
                                  , min_samples_leaf=10
                                  , min_samples_split=10
                                  )

clf = clf.fit(Xtrain,Ytrain)

score = clf.score(Xtest, Ytest)  # 返回预测的准确度

参数criterion
1.默认基尼 gini
2.信息熵 entropy
如何选取参数:
通常使用gini
数据维度很大,噪音很大选gini
维度低,数据清晰选二者没区别
决策树拟合度不够选entropy
可以两个都试试

最优节点生成的不一定是最优的树(不明白)
解决办法:sklearn已经使用了
每次随机选取一部分特征,建立更多不同的树,选取最优树
andom_state = 30控制每次划分的特征

防止过拟合的两个方法:
1.random=30,决策树在分支时会更随机,更深
2.splitter=“random”

决策树停止生长:
1.没有更多特征可用
2.不纯度指标已经最优
决策树在不加限制的情况下,会由以上两点才停止生长会导致:过拟合
在训练集上表现很好100%,测试集上表现糟糕80%
解决办法:
剪枝策略
1.max_depth=3开始
超过限制树最大深度的都剪掉
高纬度低样本量非常有效
(决策树多生长一层,对样本量的需求就会多一倍)

2.min_samples_leaf & min_samples_split
min_samples_leaf 每个子节点必须包括的数量,一般和max_depth一起使用
建议从min_samples_lea=5开始
如果样本量变化很大,用浮点数百分数来使用,如0.05
min_samples_split 指每个节点必须包含的这么多数量,才允许分支
使得分降低的参数可以修改或者删除

max_features & min_impurity_decrease
max_features 限制此个决策树所使用的分枝特征数,适合高纬度(暴力)。会导致学习能力不足
min_impurity_decrease 限制信息增益的大小
信息增益越大,说明此次分枝对决策树贡献越大

确认最优的剪枝参数
超参数指的是超参数为横坐标,模型度量指为纵坐标
此树里是,剪枝参数为横坐标,score为纵坐标

目标权重参数
class_weight默认为1:1
min_weight_fraction_leaf作用于叶节点剪枝

clf接口
1.fit
2.score
3.clf.apply(Xtest)
返回每个测试样本所在的叶子节点的索引
4.clf.predict(Xtest)
返回预测结果
(输入的特征矩阵至少是二维)

决策树clf
八个参数:Criterion,2个随机性参数(random_state,splitter),5个剪枝参数(max_depth,min_samples_split,min_samples_leaf,max_feature,min_impurity_decrease)
一个属性:feature_importances_
四个接口:fit,score,apply,predict

最擅长月亮型数据是最近邻KNN,RBF支持向量机和高斯过程,
最擅长环形数据的是最近邻KNN和高斯过程;
最擅长高对半分的数据是朴素贝叶斯,神经网络和随机森林

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值