决策树 - Cart + iris数据集 + python实现

本文介绍了CART决策树算法的原理和在iris数据集上的应用。通过训练、剪枝和测试,展示了如何使用CART进行分类,并讨论了基尼系数在特征选择中的作用。

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

  1. 决策树:

https://blog.youkuaiyun.com/weixin_43909872/article/details/85206009

  1. CART

Classification and regression tree
https://www.cnblogs.com/yonghao/p/5135386.html
CART 是在给定输入X条件下输出随机变量Y的条件概率分布的学习方法。CART对每个特征(包括标签特征以及连续特征)进行二分,经过最优二分特征及其最优二分特征值的选择、切分,二叉树生成,剪枝来实现CART算法。对于回归CART树选择误差平方和准则、对于分类CART树选择基尼系数准则进行特征选择,并递归调用构建二叉树过程生成CART树。 CART既可以用于分类也可以用于回归。

CART算法分两步:
a. 决策树生成:基于训练数据生成决策树,决策树尽量大
b. 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,用损失函数最小作为剪枝的标准

  1. iris数据集的分析:

算法步骤:
a. load iris data, 打乱顺序,取前100个为训练数据,30个validation data,用于剪枝,剩下20个用于最后测试。

data = pd.read_csv("iris.csv")
    data = data.sample(frac=1.0)
    data = data.reset_index()
    deleteColumns = [0,1]
    data.drop(data.columns[deleteColumns], axis=1, inplace=True)

    trainDataset = data.loc[0:99]
    validationDataset = data.loc[100:129]
    testDataset = data.loc[130:-1]

b. 递归建立二叉树,对当前数据集选择最好的划分方式
最好的划分方式就是挨个用feature值里的每个例子的值去尝试划分,选择Gain(Gini)最大的划分方式,返回值是选定的feature和所用的value,我们设置了两个阈值&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值