Kaggle实战之决策树完成泰坦尼克号船员获救比赛

本文阐述了决策树的基本原理,包括过拟合问题及解决策略,对比了信息熵和基尼指数作为分类标准的优劣,并介绍了sklearn库中决策树分类器和回归器的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、决策树的基本原理:

决策树简而言之就是根据不同的分类标准(Classification criteria)对于节点类别判断的先后顺序进行选择,进而对于训练集、测试集进行分类。

决策树使用树模型分类很快(相对于knn一个点一个点去算要快多了), 但是树模型也存在两个问题: 过拟合,分类标准选择

过拟合

树模型都存在很严重的过拟合问题, 如果树的深度不加任何限制, 最终肯定是一个叶子节点一个样本, 这样再对于没有训练过的测试集而言效果就很差. 解决方法有两种, 前剪枝和后剪枝, 即在构建决策树的时候将一些叶子节点砍掉和在不限深度建完树之后再将一些叶子节点砍掉. 由于sklearn只支持前剪枝, 所以我们可以通过交叉验证的方法挑选出最合适的树深度, 当达到一定深度时我们就不再新增节点.

分类标准(Classification criteria):

通常有信息熵和基尼指数两种

信息熵:

  其中,

香农的信息论提出了该方法, ID3算法中我们使用了信息增益来选择特征,先计算不同类别的数据的信息增益,信息增益大的优先选择,  这里面会涉及大量的对数运算,效果一般而言没有下面这种利用基尼指数的方法好。

基尼指数:

  其中,

基尼指数的运算较信息增益简单,可以做为熵模型的一个近似替代。效果较好,这篇博客用于Kaggle竞赛的也是这种分类方法。

二、sklearn库的常用接口:

分类:sklearn.tree.DecisionTreeClassifier(criterion,max_depth)

回归:sklearn.tree.DecisionTreeRegressor(criterion,max_depth)

criterion就是分类标准的选择, 默认为信息熵, max_depth可以通过cv(cross validation)实现选择.

三、Kaggle实战代码

穷苦学生买不起显卡配不起服务器,只能薅羊毛用Google的免费GPU跑代码,所以这些代码导入数据和读出结果是在colab里面完成的。

https://colab.research.google.com/drive/1DFkVOsec-V0BQYbeGhwdLfI62ZQXjo8S

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值