python中函数∑_活用西瓜书——sklearn包中的决策树算法DecisionTreeClassifier的使用(决策...

本文介绍了如何使用Python的sklearn库实现决策树算法DecisionTreeClassifier,通过对经典数据集iris进行分类任务,展示了决策树的工作原理和在实际应用中的效果。文章涉及ID3、C4.5和CART三种决策树算法,并解释了信息熵、信息增益、基尼指数等相关概念。
摘要由CSDN通过智能技术生成

引言

最近在读西瓜书,查阅了多方资料,恶补了数值代数、统计概率和线代,总算是勉强看懂了西瓜书中的公式推导。但是知道了公式以后还是要学会应用的,几经摸索发现python下的sklearn包把机器学习中经典的算法都封装好了,因此,打算写几篇博客记录一下sklearn包下的常用学习算法的使用,防止自己以后忘了,嘿嘿。

1.决策树

决策树是一种常见的机器学习算法,它的原理就是以事物的属性为节点,属性的不同取值为分支构造一棵多叉树。初始的多叉树可以学习到训练集上的事物的所有属性,我们通过相关的方法对这棵树进行剪枝和层次调整后,使之对于训练集中未出现过的新数据具有一定的分类能力,即泛化。

2.决策树算法种类

由1中对决策树的描述,我们可以知道生成决策树的核心问题就是分支的选择,即每一步我们应该选择待分类事物的哪一个属性作为分支属性,我们应该把对事物影响大的属性尽可能放在树的高层,这是因为越往下走剩下的样本就会越少对事物影响大的属性应该在树中对大多数样本起到分类作用。基于不同的分支选择方法,决策树主要有三类,即ID3算法,C4.5算法和CART算法。

1.ID3算法

ID3主要基于信息增益来进行分支属性的选择。首先引入信息熵:

E

n

t

(

D

)

=

k

=

1

y

p

k

l

o

g

2

p

k

Ent(D)=-\sum_{k=1}^{|y|} p_klog_2p_k

Ent(D)=−k=1∑∣y∣pklog2pk其中,|y|表示样本类别总数,

p

k

p_k

pk表示第k类样本所占的比例,我们可以把Ent(D)看成一个多元函数,使用拉格朗日乘数法(还需要结合分析法)即可求出其最大最小值,即:

0

E

n

t

(

D

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值