决策树

根据树形结构,一层一层网下判断,直到叶子节点就是所求的判断结果。

一、基本流程如下图:

 二、我们从集合中选择最优化分属性有以下方法:

1.信息增益

首先介绍“信息熵”的概念,信息熵用来度量样本纯度

Ent=-\sum_{k=1}^{|y|}p_klog_2p_kEnt越小,纯度越高,y是样本集合(D)的大小。pk表示第k类样本所占比例。

假定离散属性a有V中可能的取值(a^1,a^2,...a^V),若用a进行划分,则会由V个分支点,每个分支点包含的属性a为a^v的样本,记作D^v,在计算出该分支点的信息熵乘以权重,我们用原来整个的信息熵减去该分支点的信息熵就是用a进行划分所能得到的信息增益。

信息增益Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v)

然后计算出所有属性的信息增益后我们比较得到最大的信息增益即a=arg maxGain(D,a).来决策此次用来决定划分的属性。

2.增益率

增益率对取值较多的属性有所偏好,所以引入增益率

Gain_ratio(D,a)=Gain(D,a)/IV(a);

IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}

属性取值越多IV(a)就越大,增益率就越小,所以增益率对取值少的有所偏好。所以在使用的时候是先从划分中选取信息增益较高的,然后再从中选取增益率较大的。

3.基尼指数

CART决策树使用基尼指数来选择划分属性。

Gini=\sum_{k=1}^{|y|}\sum_{k\neq k'}p_kp_{k'}=1-\sum_{k=1}^{|y|}p_k^2基尼指数反应从数据集中选取两个不一致样本的概率,因此基尼越小纯度越高。

属性a的基尼指数定义为

GiniIndex(D,a)=\sum_{v=1}^{V}\frac{|D^v|}{|D|}Gini(D^v)选择基尼属性最小的

三、剪枝处理

剪枝主要对付过拟合来用。

1.预剪枝

是在决策树生成过程中执行,每次划分前估计要不要再继续进行划分。我们先假设将其划分,然后用验证集去验证划分前和划分后的精度,若精度变高有有必要划分,反之就不划分。

2.后剪枝

是在决策树生成之后,由下而上。我们计算去掉这个节点和不去掉时的精度,若去掉>不去掉,则剪枝;反之部剪枝。

预剪枝容易出现欠拟合的情况,后剪枝的泛化性能更好,而开销也就更大。

四、连续与缺失值

1.连续值

首先将连续属性a的值进行排序,然后设置一个划分点t将a的属性值划分成两部分D_t^-,D_t^+。前者包含小于t的值,后者包含大于t的值。对于划分点两边的相邻点来说,t只要取a^i到a^(i+1)之间的任意值就行了,所以我们可以取这两个数的中位点。

 通过上式来寻找能够使信息增益最大的划分点t。

注意:离散属性划分过后该属性不再进行后续划分,连续属性还可作为后续划分属性。

2.缺失值

\widetilde{D},\widetilde{D}^v,\widetilde{D}_k分别表示D中在属性a上有值的样本集合,\widetilde{D}中属性a的值为a^v的样本集合,\widetilde{D}中属于第k类的样本集合。

\rho =\frac{\sum_{x \in \widetilde{D}}\omega_x}{\sum_{x \in D}\omega_x}

\widetilde{p_k} =\frac{\sum_{x \in \widetilde{D}_k}\omega_x}{\sum_{x \in \widetilde{D}}\omega_x}(1<=k<=|y|)

\widetilde{r_v} =\frac{\sum_{x \in \widetilde{D}^v}\omega_x}{\sum_{x \in \widetilde{D}}\omega_x}(1<=v<=V)

一开始初始化w为1

 

若样本x在属性a上的取值已知,那么将x划入对应节点,且权值w保持不变;若取值为空,那么将x划入所有子节点,并且将对应的权值修改为\widetilde{r_v}*\omega_x

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值