我的脑子有病。
分类: 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 ;