决策树(decision tree)(三)——连续值处理

决策树(decision tree)(三)——连续值处理

**注:本博客为周志华《机器学习》读书笔记,虽然有一些自己的理解,但是其中仍然有大量文字摘自周老师的《机器学习》书。  
决策树系列博客: 
    前面两篇博客分别介绍了如何构造决策树(根据信息增益,信息增益率,基尼指数等)和如何对决策树进行剪枝(预剪枝和后剪枝),但是前面两篇博客主要都是基于离散变量的,然而我们现实的机器学习任务中会遇到连续属性,这篇博客主要介绍决策树如何处理连续值。
连续值处理
    因为连续属性的可取值数目不再有限,因此不能像前面处理离散属性枚举离散属性取值来对结点进行划分。因此需要连续属性离散化,常用的离散化策略是二分法,这个技术也是C4.5中采用的策略。下面来具体介绍下,如何采用二分法对连续属性离散化:
    


下面举个具体的例子,来看看到底是怎样划分的。给定数据集如下(数据集来自周志华《机器学习》,我已经把数据集放到github上了,地址为:西瓜数据集3.0):

对于数据集中的属性“密度”,决策树开始学习时,根节点包含的17个训练样本在该属性上取值均不同。我们先把“密度”这些值从小到大排序:

根据上面计算 的公式,可得:

下面开始计算取不同值时的信息增益:

对属性“含糖率”,同样的计算,能够计算出:

再由第一篇博客中决策树(一)计算得到的各属性的信息增益值:

比较能够知道纹理的信息增益值最大,因此,“纹理”被选作根节点划分属性,下面只要重复上述过程递归的进行,就能构造出一颗决策树:

**有一点需要注意的是:与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。** 如下图所示的一颗决策树,“含糖率”这个属性在根节点用了一次,后代结点也用了一次,只是两次划分点取值不同。


以上就是决策树如何处理连续值的内容,关于如何处理缺失值,因为我会写的比较详细,所以如果和连续值放在一起,会显得篇幅过长,因此放在下一篇博客中单独介绍。
决策树是一种常用的机器学习算法,它可以对数据进行分类和预测。在银行房屋贷款申请中,决策树可以用来判断是否批准贷款申请。 假设我们有以下的贷款申请数据: | Applicant ID | Income | Credit History | Loan Amount | Loan Approved | |--------------|--------|----------------|-------------|---------------| | 1 | 125 | Good | 200,000 | Yes | | 2 | 100 | Good | 150,000 | Yes | | 3 | 70 | Poor | 50,000 | No | | 4 | 90 | Good | 100,000 | Yes | | 5 | 110 | Poor | 75,000 | No | 我们想要用决策树来判断一个新的贷款申请是否会被批准。下面是一种可能的决策树: ![Decision Tree](https://cdn.jsdelivr.net/gh/shijack/PicBed/markdown/20210919110607.png) 这个决策树首先根据申请人的信用记录将数据分为两个分支:好的信用记录和差的信用记录。对于好的信用记录,如果申请人的收入大于100,则批准贷款,否则不批准。对于差的信用记录,如果申请人的贷款金额小于等于75,000,则批准贷款,否则不批准。 当我们有一个新的贷款申请时,我们可以根据申请人的收入和信用记录,沿着树的分支一步步走到叶节点,从而得出是否批准贷款的决策。 决策树是一种简单而有效的算法,它易于理解和解释。它还可以处理具有非线性关系的数据,并且对于缺失数据也有很好的处理能力。但是,它也有一些缺点,例如容易出现过拟合、对噪声敏感等。
评论 67
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值