数据挖掘分类算法介绍
-----------------------------------------------------------------------------------------------------------------------------分类是⽤于识别什么样的事务属于哪⼀类的⽅法,可⽤于分类的算法有决策树、bayes分类、神经⽹络、⽀持向量机等等。决策树例1
⼀个⾃⾏车⼚商想要通过⼴告宣传来吸引顾客。他们从各地的超市获得超市会员的信息,计划将⼴告册和礼品投递给这些会员。
但是投递⼴告册是需要成本的,不可能投递给所有的超市会员。⽽这些会员中有的⼈会响应⼴告宣传,有的⼈就算得到⼴告册不会购买。
所以最好是将⼴告投递给那些对⼴告册感兴趣从⽽购买⾃⾏车的会员。分类模型的作⽤就是识别出什么样的会员可能购买⾃⾏车。
⾃⾏车⼚商⾸先从所有会员中抽取了1000个会员,向这些会员投递⼴告册,然后记录这些收到⼴告册的会员是否购买了⾃⾏车。数据如下:
事例列 会员编号 12496 14177 24381 25597 ………… 输⼊列 婚姻状况 Married Married SingleSingle 性别 Female Male Male Male 收⼊ 40000 80000 70000 30000 孩⼦数 1 5 0 0 教育背景Bachelors PartialCollege Bachelors Bachelors 职业 SkilledManual Professional ProfessionalClerical 是否有房 Yes No Yes No 汽车数 0 2 1 0 上班距离 0-1Miles 2-5Miles 5-10Miles 0-1Miles 区域 Europe Europe Pacific Europe 年龄 42 60 41 36 预测列 是否购买⾃⾏车 No NoYes Yes ?
在分类模型中,每个会员作为⼀个事例,居民的婚姻状况、性别、年龄等特征作为输⼊列,所需预测的分类是客户是否购买了⾃⾏车。
使⽤1000个会员事例训练模型后得到的决策树分类如下:?图中矩形表⽰⼀个拆分节点,矩形中⽂字是拆分条件。
矩形颜⾊深浅代表此节点包含事例的数量,颜⾊越深包含的事例越多,如全部节点包含所有的1000个事例,颜⾊最深。经过第⼀次基于年龄的拆分后,年龄⼤于67岁的包含36个事例,年龄⼩于32岁的133个事例,年龄在39和67岁之间的602个事例,年龄32和39岁之间的229个事例。所以第⼀次拆分后,年龄在39和67岁的节点颜⾊最深,年龄⼤于67岁的节点颜⾊最浅。节点中的条包含两种颜⾊,红⾊和蓝⾊,分别表⽰此节点中的事例购买和不购买⾃⾏车的⽐例。如节点“年龄>=67”节点中,包含36个事例,其中28个没有购买⾃⾏车,8个购买了⾃⾏车,所以蓝⾊的条⽐红⾊的要长。表⽰年龄⼤于67的会员有74.62%的概率不购买⾃⾏车,有23.01%的概率购买⾃⾏车。
在图中,可以找出⼏个有⽤的节点:
1.年龄⼩于32岁,居住在太平洋地区的会员有72.75%的概率购买⾃⾏车;2.年龄在32和39岁之间的会员有68.42%的概率购买⾃⾏车;
3.年龄在39和67岁之间,上班距离不⼤于10公⾥,只有1辆汽车的会员有66.08%的概率购买⾃⾏车;
4.年龄⼩于32岁,不住在太平洋地区,上班距离在1公⾥范围内的会员有51.92%的概率购买⾃⾏车;
在得到了分类模型后,将其他的会员在分类模型中查找就可预测会员购买⾃⾏车的概率有多⼤。随后⾃⾏车⼚商就可以有选择性的投递⼴告册。
数据挖掘的⼀般流程
第⼀步,建⽴模型,确定数据表中哪些列是要⽤于输⼊,哪些是⽤于预测,选择⽤何种算法。这时建⽴的模型内容是空的,在模型没有经过训练之前,计算机是⽆法知道如何分类数据的。
第⼆步,准备模型数据集,例⼦中的模型数据集就是1000个会员数据。通常的做法是将模型集分成训练集和检验集,⽐如从1000个会员数据中随机抽取700个作为训练集,剩下300个作为检验集。
第三步,⽤训练数据集填充模型,这个过程是对模型进⾏训练,模型训练后就有分类的内容了,像例⼦图中的树状结构那样,然后模型就可以对新加⼊的会员事例进⾏分类了。由于时效性,模型内容要经常更新,⽐如⼗年前会员的消费模式与现在有很⼤的差异,如果⽤⼗年前数据训练出来的模型来预测现在的会员是否会购买⾃⾏车是不合适的,所以要按时使⽤新的训练数据集来训练模型。
第四步,模型训练后,还⽆法确定模型的分类⽅法是否准确。可以⽤模型对300个会员的检验集进⾏查询,查询后,模型会预测出哪些会员会购买⾃⾏车,将预测的情况与真实的情况对⽐,评估模型预测是否准确。如果模型准确度能满⾜要求,就可以⽤于对新会员进⾏预测。第五步,超市每天都会有新的会员加⼊,这些新加⼊的会员数据叫做预测集或得分集。使⽤模型对预测集进⾏预测,识别出哪些会员可能会购买⾃⾏车,然后向这些会员投递⼴告。
Na?veBayes
Na?veBayes是⼀种由统计学中Bayes法发展⽽来的分类⽅法。例1
有A、B两个政党对四个议题进⾏投票,A政党有211个国会议员,B政党有223个国会议员。下表统计了政党对四个议题赞成或反对的票数。
国家安全法 个⼈财产保护法 遗产税 反分裂法 总计 赞成 反对 赞成 反对 赞成 反对 赞成 反对 A政党 41 166 87 114 184 11 178 23 211 B政党 214 4 211 6 172 36 210 1 223 A政党 20% 80%43% 57% 94% 6% 89% 11% 49% B政党 98% 2% 97% 3% 83% 17% 99.50% 0.50% 51% ?A政党的议员有20%概率赞成国家安全法,43%概率赞成个⼈财产保护法,94%概率赞成遗产税,89%概率赞成反分裂法。
B政党的议员有98%概率赞成国家安全法,97%概率赞成个⼈财产保护法,83%概率赞成遗产税,99.5%概率赞成反分裂法。
基于这样的数据,Na?veBayes能预测的是如果⼀个议员对国家安全法投了赞成票,对个⼈财产保护法投了反对票,对遗产税投了赞成票,对反分裂法投了赞成票。哪么,这个议员有多⼤的概率属于A政党,⼜有多少的概率属于B政党。例2
⼀个产品在⽣产后经检验分成⼀等品、⼆等品、次品。⽣产这种产品有三种可⽤的配⽅,两种机器,两个班组的⼯⼈。下⾯是1000个产品的统计信息。
配⽅ 机器 ⼯⼈ 总计 配⽅1 配⽅2 配⽅3 机器1 机器2 班组1 班组2 ⼀等品 47 110 121 23 255130 148 278 ⼆等品 299 103 165 392 175 327 240 567 次品 74 25 56 69 86 38 117 155 ⼀等品 16.91% 39.57% 43.53% 8.27% 91.73% 46.76% 53.24% 27.80% ⼆等品 52.73% 18.17%29.10% 69.14% 30.86% 57.67% 42.33% 56.70% 次品 47.74% 16.13% 36.13% 44.52% 55.48%24.52% 75.48% 15.50% ?
使⽤Na?veBayes模型,每次在制定⽣产计划,确定⽣产产品所⽤的配⽅、机器及⼯⼈,便能预测⽣产中有多少的⼀等品、⼆等品和次品。神经⽹络
神经⽹络是⼀种模拟⽣物上神经元的⼯作的机器学习⽅法。
下⾯是银⾏⽤来识别给申请信⽤卡的客户发放何种信⽤卡的神经⽹络。
图中每个椭圆型节点接受输⼊数据,将数据处理后输出。输⼊层节点接受客户信息的输⼊,然后将数据传递给隐藏层,隐藏层将数据传递给输出层,输出层输出客户属于哪类信⽤卡。这类似于⼈脑神经元受到刺激时,神经脉冲从⼀个神经元传递到另⼀个神经元。
每个神经元节点内部包含有⼀个组合函数∑和激活函数f。X1,X2是其他神经元的输出值,对此神经元来说是输⼊值,组合函数将输⼊值组合后传递给激活函数。激活函数经过特定的计算后得到输出值y,y有被传递给其他神经元。
输⼊边上的w1和w2是输⼊权值,⽤于在组合函数中对每个输⼊值进⾏加权。训练模型时,客户事例输⼊,神经⽹络计算出客户的类别,计算值与真实值⽐较后,模型会修正每个输⼊边上的权值。在⼤量客户事例输⼊后,模型会不断调整,使之更吻合真实情况,就像是⼈脑通过在同⼀脉冲反复刺激下改变神经键连接强度来进⾏学习。回归
分类算法是建⽴事例特征对应到分类的⽅法。分类必须是离散的,像信⽤卡的种类只有三种,如果是要通过客户收⼊、婚姻状况、职业等特征预测客户会使⽤信⽤卡消费多少⾦额时,分类算法就⽆能为⼒了,因为消费⾦额可能是⼤于0的任意值。这时只能使⽤回归算法。例如,下表是⼯⼚⽣产情况。
机器数量 ⼯⼈数量 ⽣产数量 12 60 400 7 78 389 11 81 674 …… ?
使⽤线性回归后,得到了⼀个回归⽅程:⽣产数量=α+β·机器数量+γ·⼯⼈数量。代表每多⼀台机器就可以多⽣产β单位的产品,每多⼀个⼯⼈就可以多⽣产γ单位的产品。
除了简单的线性回归和逻辑回归两种,决策树可以建⽴⾃动回归树模型,神经⽹络也可以进⾏回归,实际上,逻辑回归就是去掉隐藏层的神经⽹络。
例如,服装销售公司要根据各地分销店⾯提交的计划预计实际销售量。
使⽤⾃动回归树得到上图的模型,假如⼭东销售店提交的计划童装数量是500套,预计销售量是-100+0.6×500=200套,按6Sigma原则,有99.97%的概率实际销售量可能是200±90套。⼴州提交计划童装300套,预计销售量是20+0.98×300=314±30套。⼴州的销售店制定的童装计划⽐⼭东的准确。聚类
分类算法的⽬的是建⽴事例特征到类别的对应法则。但前提是类别是已存在的,如已知道动物可以分成哺乳类和⾮哺乳类,银⾏发⾏的信⽤卡有银卡、⾦卡、⽩⾦卡三种。
有时在分类不存在前,要将现有的事例分成⼏类。⽐如有同种材料要分类装⼊到各个仓库中,这种材料有尺⼨、⾊泽、密度等上百个指标,如果不熟悉材料的特性很难找到⼀种⽅法将材料分装。
⼜例如,银⾏刚开始信⽤卡业务时,没有将客户分类,所有的客户都使⽤同⼀种信⽤卡。在客户积累到⼀定的数量后,为了⽅便管理和制定市场策略,需要将客户分类,让不同类别的客户使⽤不同的信⽤卡。但问题是,银⾏该把客户分成⼏个类别,谁该属于哪⼀类。
假定银⾏仅仅要参照客户的收⼊和使⽤信⽤卡销售⾦额两个指标对客户分类。通常情况下,仅仅是衡量这些指标的⾼低来分类,如规定收⼊⼩于4000,且消费⼩于2000的客户分成第⼀类;收⼊在4000⾄8000,消费在2000⾄4000的客户分成第⼆类;收⼊在8000⾄12000,消费在4000⾄6000的客户分成第三类;收⼊在12000以上,消费在6000以上分成第四类。下⾯的图展⽰了这种分类。
图中三⾓形的点代表客户,图中的红⾊线条是对客户的分类。可以看到这种不合理,第⼀类别没有包含任何事例,⽽第四类也只有少量事例,⽽第⼆和第三类分界处聚集着⼤量事例。观测图像,发现⼤部分客户事例聚集在⼀起形成了三个簇,下图中⽤三个椭圆标出了这些簇。
同在⼀个簇中的客户有着类似的消费⾏为,⿊⾊簇中的客户消费额与收⼊成正⽐;蓝⾊簇中的客户不习惯使⽤信⽤卡消费,可以对这类客户发放⼀种低⼿续费的信⽤卡,⿎励他们使⽤信⽤卡消费;绿⾊簇中的客户消费额相对收⼊来说⽐较⾼,应该为这类客户设计⼀种低透⽀额度的信⽤卡。
聚类模型就是这种可以识别有着相似特征事例,把这些事例聚集在⼀起形成⼀个类别的算法。聚类模型除了能将相似特征的事例归为⼀类外,还常⽤来发现异常点。
像上图中⽤红圈标出的点,这两个客户偏离了已有的簇,他们的消费⾏为异于⼀般⼈,消费远超出收⼊。意味他们有其他不公开的收⼊来源,这些客户是有问题的。
科学试验中,研究⼈员对异常点很感兴趣,通过研究不寻常的现象提出新的理论。聚类的另⼀个⽤途是发现属性间隐含的关系。例如有30名学⽣考试成绩:
学号 美术 语⽂ 物理 历史 英语 ⾳乐 数学 化学 31001 74 50 89 61 53 65 96 87 31002 70 65 88
55 50 65 92 87 31003 65 50 86 54 63 73 91 96 …… 教师想知道学科之间是否有关联,如果学⽣某门学科成绩优秀,是否会在另⼀门学科上也有优势。通过聚类后将30名学⽣分成了3个类:
变量 状态 总体(全部) 分类3 分类2 分类1 ⼤⼩ 30 10 10 10 语⽂ 平均值 74 71.6 89.6 59.4 语⽂偏差 13.39 4.38 3.95 5.46 英语 平均值 72 72.7 88.1 56.1 英语 偏差 14.27 4.4 6.9 4.46 ⾳乐 平均值 78 89.1 74.4 71 ⾳乐 偏差 9.71 7.31 4.12 5.27 物理 平均值 75 74 56.6 93.4 物理 偏差15.96 4.42 4.84 4.95 数学 平均值 75 74.3 57.3 92.3 数学 偏差 15.16 4.4 3.97 4.95 美术 平均值78 90.6 71.8 71.4 美术 偏差 10.43 5.38 4.71 5.66 历史 平均值 73 73.2 87.6 58.1 历史 偏差13.23 5.85 4.43 5.13 化学 平均值 74 74.7 56.2 90.6 化学 偏差 15.09 3.06 5.39 6.02 分类1学⽣的共同特点是他们的物理、数学、化学平均分都⽐较⾼,但语⽂、历史、英语的分数很低;分类2则恰恰相反。从中,可以得到规则:物理、数学和化学这三门学科是有相关性的,这三门学科相互促进,⽽与语⽂、历史、英语三门学科相排斥。分类1中的学⽣序列聚类
新闻⽹站需要根据访问者在⽹页上的点击⾏为来设计⽹站的导航⽅式。通过聚类算法可以发现⽹页浏览者的⾏为模式,⽐如识别出了⼀类浏览者的⾏为:喜欢察看体育新闻和政治新闻。但浏览者访问⽹页是有顺序的,先浏览体育新闻再浏览政治新闻,与先浏览政治新闻再浏览体育新闻是两种不同的⾏为模式,当⼀个浏览者在浏览体育新闻时,需要预测他下⼀步会访问哪个⽹页。
超市⾥也需要识别顾客购物的顺序,⽐如发现⼀类购物顺序是:尿布——奶瓶——婴⼉⼿推车——幼⼉玩具,当⼀个顾客购买了尿布的时候,就可以陆续向顾客寄发奶瓶、婴⼉⼿推车、幼⼉玩具的传单。
序列聚类通过对⼀系列事件发⽣的顺序聚类,来预测当⼀个事件发⽣时,下⼀步会发⽣什么事件。关联
在客户的⼀个订单中,包含了多种产品,这些产品是有关联的。⽐如购买了轮胎的外胎就会购买内胎;购买了⽻⽑球拍,就会购买⽻⽑球。
关联分析能够识别出相互关联的事件,预测⼀个事件发⽣时有多⼤的概率发⽣另⼀个事件。
因篇幅问题不能全部显示,请点此查看更多更全内容