决策树
来源:互联网 发布:js中的unicode编码表 编辑:程序博客网 时间:2024/06/10 07:53
1 决策树学习是以实例为基础的归纳学习算法,是应用最广泛的逻辑方法。
2 典型的决策树学习系统采用自顶向下的方法,在部分搜索空间中搜索解决方案。它可以确保求出一个简单的决策树,但未必是最简单的。
3 决策树常用来形成分类器和预测模型,可以对未知数据进行分类或预测、数据挖掘等。从20世纪60年代,决策树广泛应用在分类、预测、规则提取等领域。
4 用决策树分类的步骤:
第一步:利用训练集建立一棵决策树,建立决策树模型。这是从数据中获取知识,进行机器学习的过程。
第二步:利用生成的决策树模型对未知的数据样本进行分类。
从根结点开始对该对象的属性逐渐测试其值,并且顺着分支向下走,直至到达某个叶结点,此时叶结点代表的类即为该对象所处的类。
5 决策树分类的步骤——建模
6 决策树分类的步骤——分类或预测
7 训练决策树模型的步骤:
第一个步骤(建树)。选取部分训练数据,按广度优先递归算法建立决策树,直到每个叶子结点属于一个类为止。
第二个步骤(剪枝)。用剩余的数据对生成的决策树进行检验,将不正确的问题进行调整,对决策树进行剪枝和增加结点,直到建立一个正确的决策树。
建树是通过递归过程,最终得到一棵决策树,而剪枝则是为了降低噪声数据对分类正确率的影响。
8 信息论是美国数学家C.E.Shannon为解决信息传递(通信)过程问题建立的一系列理论。
传递信息系统由三部分组成:
信源:发送端
信宿:接受端
信道连接两者的通道
9 通信过程是随机干扰环境中传递信息的过程。
在通信前,收信者(信宿)不可能确切了解信源会发出什么样的信息;
不可能判断信源的会处于什么样的状态,
上述情形称为信宿对于信源状态具有不定性,又叫先验不确定性。通信结束后,信宿还仍然具有一定程度的不确定性,称为后验不确定性。
后验不确定性总要小于先验不确定性,不可能大于先验不确定性。
如果后验不确定性的大小等于先验不确定性的大小,表示信宿根本没有收到信息。
如果后验不确定性的大小等于零,表示信宿收到了全部信息。
10 信息用来消除(随机)不定性。信息的大小,由消除的不定性大小来计量。
自信息量。在收到ai之前,收信者对信源发出ai的不确定性定义为信息符号ai的自信息量I(ai)。即I(ai)=-log2p(ai),其中:p(ai)为信源发出ai的概率。
信息熵。自信息量只能反映符号的不确定性,而信息熵可以用来度量整个信源X整体的不确定性,定义如下:
其中:n为信源X所有可能的符号数,即用信源每发一个符号所提供的平均自信息量来定义信息熵。
在随机试验之前,只了解各取值的概率分布,而做完随机试验后,就能确切地知道取值,不确定性完全消失。
通过随机试验获得信息的数量恰好等于随机变量的熵,故熵又可作为信息的度量。
熵从平均意义上表征信源总体信息测度。
熵增原理:统计热力学中,熵是系统混乱度的度量。混乱度越小,熵越小。
独裁国家、开会、上课,系统的熵小
信息不增性原理:信息学中的熵是不确定性的度量。不确定性越小,即概率越大,熵越小,信息量越小。
在信息论中,熵H(X)表示属性X包含的信息量的多少。
熵可以衡量属性的纯度,属性的熵越小,表明属性中的数据在属性域上的分布越不均匀。
属性中属于某个属性值或某几个属性值的数据较多,而属于另外属性值的数据较少,则这个数据集合越纯。
如果一个属性的所有数据都属于同一属性值,则该属性的熵为0,该属性包含的信息为0,即该属性在数据集合中不存在对数据有用的信息。
一个属性的熵越大,说明数据在属性域上的分布越均匀,这个属性也就越不纯。
如果属性X中的数据在属性域上均匀分布,那么属性的熵最大,其蕴含的信息越多。
11 联合熵:对于联合随机变量(X,Y),如果每个可能的输出(x,y)对应的概率为P(x,y),
定义(X,Y)所能提供的信息量为联合熵,公式为:
条件熵:用于衡量在属性Y己知的情况下,属性X的不确定性程度,或者说属性X对属性Y的依赖性强弱程度。
在给定Y条件下,X的熵:
12 可证:H(X|Y)<H(X),H(Y|X)<H(Y)
上式表明,由于事物总是有联系的,因此,在平均意义上,对随机变量X的了解总能使随机变量Y的不确定性减少。
同样,对Y的了解也会减少X的不确定性。
互信息:已知随机变量Y后,X的不确定度的减少量为H(X)-H(X|Y),它是己知Y的取值后所提供的有关X的信息。
13 两个离散随机变量X和Y之间的互信息为:
性质:
I(X,Y)=I(Y,X),I(Y,X)=H(X)+H(Y)-H(X,Y)
0≤I(X,Y)≤min(H(X),H(Y))
当随机变量X和Y之间相互独立时,有I(X,Y)=0。
由于事物之间总是相互联系的,在己知一个随机变量的某个数值的条件下,其余事物之间也仍然存在着相互联系。
14 条件互信息:在随机变量Z的一个己知值z的条件下,随机变量X和随机变量Y之间的互信息定义为:
可证:I(X,Y|z)=H(X|z)+H(Y|z)-H(X,Y|z)
15条件互信息:在随机变量Z的一个己知值z的条件下,随机变量X和随机变量Y之间的互信息定义为:
可证:I(X,Y|z)=H(X|z)+H(Y|z)-H(X,Y|z)
16 ID3学习算法
ID3决策树学习算法是贪心算法,采用自顶向下的递归方式构造决策树。
(1)针对所有训练样本,从树的根节点处开始,选取一个属性来分区这些样本。
(2)属性的每一个值产生一个分枝。按属性值将相应样本子集移到新生成的子节点上。
(3)递归处理每个子节点,直到每个节点上只包含同类样本。
分类规则:从根到达决策树的叶节点的每条路径。
关键问题:节点属性选择。
ID3属性选择假设:决策树的复杂度和所给属性值表达的信息量密切相关。
算法:Decision_Tree(samples,attribute_list)
输入:由离散值属性描述的训练样本集samples;候选属性集合atrribute_list。
输出:一棵决策树。
方法:
(1)创建节点N;
(2)if samples都在同一类C中then 返回N作为叶节点,以类C标记;
(3)if attribute_list为空 then
(4) 返回N作为叶节点,以samples中最普遍的类标记;//多数表决
(5)选择attribute_list中具有最高信息增益的属性test_attribute;
(6)test_attribute标记节点N;
(7)for each test_attribute的已知值v //划分samples
(8) 由节点N分出一个对应test_attribute=v的分支;
(9) 令Sv为samples中test_attribute=v的样本集合; //一个划分块
(10) if Sv为空 then 加上一个叶节点,以samples中最普遍的类标记;
(11) else 加入一个由Decision_Tree(Sv,attribute_list–test_attribute)返回的节点。
设S是n个数据样本的集合,将样本集划分为k个不同的类Ci(i=1,2,…,k),每个类Ci含有的样本数目为ni,则S划分为k个类的信息熵或期望信息为:
其中:pi为S中的样本属于第i类Ci的概率,即pi=ni/n。信息以二进制编码,熵以二进制位的个数来度量编码的长度,因此,对数的底为2。
当样本属于每个类的概率相等时,即对任意第i类有pi=1/k时,上述的熵取到最大值log2k。而当所有样本属于同一个类时,S的熵为0。其他情况的熵介于0~log2k之间。
图4.1是k=2时布尔分类的熵函数随pi从0到1变化时的曲线。
熵反映对S分类的不确定性。熵值越小,划分的纯度越高,不确定性越低。
信息增益:指用这个属性对样本分类而导致的熵的期望值下降。
假设属性A的所有不同值的集合为Values(A),Sv是S中属性A的值为v的样本子集,即Sv={sSA(s)=v},在选择属性A后的每一个分支节点上,对该节点的样本集Sv分类的熵为E(Sv)。选择A导致的期望熵定义为每个子集Sv的熵的加权和,权值为属于Sv的样本占原始样本S的比例,即期望熵为:
其中:E(Sv)是将Sv中的样本划分到k个类的信息熵。
属性A相对样本集合S的信息增益Gain(S,A)定义为:
Gain(S,A)=E(S)–E(S,A)
因知道属性A的值后导致的熵的期望压缩。Gain(S,A)越大,说明选择测试属性A对分类提供的信息越多。
Quinlan的ID3算法就是在每个节点选择信息增益Gain(S,A)最大的属性作为测试属性。
17 例4.1 决策树归纳学习。表4.1给出训练样本集,类标号属性PlayTennis有两个不同值{yes,no},即有两个不同的类。设C1对应于yes,有9个样本;C2对应于no,有5个样本。
解:现计算每个属性的信息增益。
对给定样本分类所需的期望信息为:
E(S)=–(9/14)log2(9/14)–(5/14)log2(5/14)=0.940
Values(Outlook)={Sunny,Overcast,Rain},
SSunny={D1,D2,D8,D9,D11},|Ssunny|=5,其中2个属于类C1,3个属于类C2,故有:
E(SSunny)=–(2/5)log2(2/5)–(3/5)log2(3/5)=0.971
同理,E(SOvercast)=–(4/4)log2(4/4)–(0/4)log2(0/4)=0
E(SRain)=–(3/5)log2(3/5)–(2/5)log2(2/5)=0.971
因此属性Outlook的期望熵为:E(S,Outlook)=(5/14)E(SSunny)+(4/14)E(SOvercast)
+(5/14)E(SRain)=0.694
故A的信息增益为:Gain(S,Outlook)=E(S)–E(S,A)=0.940–0.694=0.246
同理:Gain(S,Humidity)=0.151
Gain(S,Wind)=0.048
Gain(S,Temperature)=0.029
Outlook的信息增益最大,令属性Outlook为根节点的测试属性,并对应每个值(Sunny,Overcast,Rain)
在根节点向下创建分支,形成如图4.2的部分决策树。
在Outlook=Sunny节点SSunny={D1,D2,D8,D9,D11},对应的训练样本集,Gain(Ssunny,Humidity)=0.970,
Gain(SSunny,Temperature)=0.570,Gain(SSunny,Wind)=0.019
因此,在该节点应选取的测试属性是Humidity。其余类同。
如果从根结点到当前结点的路径己包括所有属性,或者当前结点的训练样本同属一类时,算法结束。
由ID3算法返回的关于playTennis的最终决策树如图4.3所示。
从决策树的树根到树叶的每条路径对应一组属性测试的合取,决策树代表这些合取式的析取。
例如,图4.3中的决策树对应的表达式为:(Outlook=SunnyHumidity=Normal)(Outlook=Overcast)
(Outlook=RainWind=Weak)
if-then形式的分类规则。例如图4.3中最左侧的路径对应的据测规则:
if (Outlook=SunnyHumidity=High) then PlayTennis=No
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 对项目的一点思考
- 图像特征
- Mysql源码包的编译安装手册
- python 多线程远程执行命令
- oracle一张表向另一张表插入不重复数据merge into用法
- 决策树
- FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具
- HDU 2089 解题报告 数位DP
- es6字符串扩展(三)
- (搬运).net起步 (MemberShip 初步实例)
- 写Wireshark CORBA插件,来分析CORBA RPC
- 关于接口里面的方法的调用
- LTE网络-PCI规划
- cookie安全性设置的注意事项