Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1094052
  • 博文数量: 120
  • 博客积分: 4377
  • 博客等级: 上校
  • 技术积分: 1521
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-29 01:01
个人简介

我的脑子有病。

文章分类

全部博文(120)

分类: Python/Ruby

2018-09-09 00:13:02

决策树是对数据进行分类,以此达到预测的目的。该决策树方法先根据训练集数据形成决策树,如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到训练集数据中,重复该过程一直到形成正确的决策集。决策树代表着决策集的树形结构。
决策树由决策结点、分支和叶子组成。决策树中最上面的结点为根结点,每个分支是一个新的决策结点,或者是树的叶子。每个决策结点代表一个问题或决策,通常对应于待分类对象的属性。每一个叶子结点代表一种可能的分类结果。沿决策树从上到下遍历的过程中,在每个结点都会遇到一个测试,对每个结点上问题的不同的测试输出导致不同的分支,最后会到达一个叶子结点,这个过程就是利用决策树进行分类的过程,利用若干个变量来判断所属的类别。


本文是我在 某保险公司和某运营商数据挖掘导论的讲义,感兴趣可以留下email索要PPT。

背景:

XXX 保险公司使用电话推销车险。 为了节约呼叫成本,通过数据挖掘技术对客户进行分类, 优先拨打有购买可能性的电话名单。


算法(ID3算法)

输入:训练数据集D,特征集A,阈值? ?
输出:决策树T
(1) 若D中所有实例属于同一类C k  Ck ,则T为单结点树,并将类C k  Ck 作为该结点的类标记,返回T;
(2) 若A=? A=? ,则T为单结点树,并将D中实例数最大的类C k  Ck 作为该结点的类标记,返回T;
(3) 否则,计算A中各特征对D的信息增益,选择信息增益最大的特征A g  Ag ;
(4) 如果A g  Ag 的信息增益小于阈值? ? ,则置T为单结点树,并将D中实例数最大的类C k  Ck 作为该结点的类标记,返回T;
(5) 否则,对A g  Ag 的每一个可能值a i  ai ,依A g =a i  Ag=ai 将D分割为若干非空子集D i  Di ,将D i  Di 中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树T,返回T;
(6) 对第i个子子结点,以D i  Di 为训练集,以 A?{A g } A?{Ag} 为特征集,递归地调用步(1)~(5),得到子树T i  Ti ,返回T i  Ti

阅读(1038) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~