极简sklearn-决策树(三)

前言

上一篇中我们经过调参,把红酒数据集的准确率从88%调到94%,还算不错的成绩,但这个模型的准确率真有这么高么?

我们知道决策树有擅长和不擅长的数据集,它擅长的是对半分型数据,不擅长环形数据,而训练集是随机抽取的,有没有可能正好抽取到决策树擅长的数据导致分数虚高呢?如果更准确的评估模型的效果呢?这就是这次要讲的主角--交叉验证

交叉验证

既然随机抽取一次不可靠,那我们就把数据分成5份,第一次第一份作为测试集,剩下4份作为训练集,第二次第二份作为测试集,剩下的作为训练集,以此类推,这样就能准确评估模型效果了

交叉验证在sklearn中实现很简单,我们只需要把调完参的模型带进去就行了,需要注意的是数据不用切割,直接带入完整的,因为这个方法内部会切割数据

from sklearn import tree #导入决策树模型
from sklearn.datasets import load_wine  #导入红酒数据集
from sklearn.model_selection import train_test_split #导入训练集测试集分隔器
from sklearn.model_selection import cross_val_score

wine = load_wine() #加载红酒数据集

clf = tree.DecisionTreeClassifier(criterion="gini", random_state=20
                                 ,max_depth=5          #z最大深度
                                 ,min_samples_leaf=10  #叶子节点最小样本数
                                 ,min_samples_split=10) #节点允许分枝样本数

#参数1: 模型, 参数2:数据, 参数3:标签, cv表示分成几份
cross_val_score(clf, wine.data, wine.target, cv=5)

看下结果

 从结果中我们看出决策树在红酒数据集中表现并不稳定,有些数据集可以达到0.97,有些只有0.66,所以接下去我们可以用些更强大的模型来试试效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值