随着大数据时代的到来,数据挖掘的重要性就变得显而易见,几种做为最低层的简单的数据挖掘算法,如今利用微软数据案例库作一个简要总结。算法
应用场景介绍数据库
其实数据挖掘应用的场景无处不在,不少的环境都会应用到数据挖掘,以前咱们没有应用是由于尚未学会利用数据,或者说尚未体会到数据的重要性,如今随着IT行业中大数据时代的到来,让我一块儿去拥抱大数据,闲言少叙,此处咱们就列举一个最简单的场景,一个销售厂商根据以往的销售记录单,经过数据挖掘技术预测出一份可能会购买该厂商产品的客户名单,我相信这也是不少销售机构想要获得的数据,固然这其中还有许多数据可供挖掘,好比:各类商品之间的关联是否能带来联动销售(啤酒和尿不湿、商品货架商品摆放、网站导航商品布局等)、影响每一种商品的属性值等等吧,这些伴随和数据挖掘的过程都会造成报告。网络
技术准备数据结构
这里有几点技术储备须要提到工具
(1)咱们利用微软提供的案例数据仓库(AdventureWorksDW2008R2),固然其实咱们应用的也就是两张事实表,一张已有的历史购买自行车记录的历史表,固然包括购买自行车顾客的一些供挖掘的属性,另一张就是咱们将要挖掘的收集过来可能发生购买自行车的人员信息表,从这里面挖掘出可能会买自行车的人。布局
晒历史销售表结构:测试
包含一个主键记录、顾客的生日、姓名、Email、婚姻情况、是否有房子、是否有车、年龄、上班距离远近等属性状况,这后面还有一列是是否发生购买自行车,固然从三范式上讲这种设计方式是不符合OLTP的,但此处是OLAP,也不是规范的事实表,这种结构通常经过一个view就能拼凑出来,咱这里就不提这些基础技术了。大数据
另一张表:网站
一样是一张人员信息表,也是记录的一些人员的属性,固然这里不会和已经销售人员记录的信息同样,但会包含相同的属性集合,好比:生日、年龄、年收入等等,咱们要作的就是从这种表里面找到会买自行车的人。设计
(2)vs数据挖掘工具、安装好数据库配置好服务,这个都懂,没啥可说的,但要实现这种目的咱们会使用三种数据挖掘算法,稍做介绍
Microsoft 决策树:对于离散属性,该算法根据数据集中输入列之间的关系进行预测。它使用这些列的值或状态预测指定的可预测列的状态。具体地说,该算法标识与可预测列相关的输入列。
Microsoft 聚类分析:该算法使用迭代技术将数据集中的事例分组为包含相似特征的分类。在浏览数据、标识数据中的异常及建立预测时,这些分组十分有用。简单点就是找出相同一部分属性的种类。
Microsoft Naive Bayes:Microsoft Naive Bayes 算法是由 Microsoft SQL Server Analysis Services 提供的一种基于贝叶斯定理的分类算法,可用于预测性建模。
这些算法有不少底层算法做支撑,咱们只须要记住他们的应用场景和不一样算法所具备的特性便可。下面的分步骤分析过程我会总结每种算法能干什么,可以分析出什么。
下面咱们进入主题,经过简单的过程配置咱们来实现整个数据挖掘的过程,依次步骤以下
一、新建工程,配置数据源
这个没有什么可分析的,基于微软案例数据库创建数据链接,简单的数据配置,实例名和用户名和密码链接数据仓库便可
二、建立数据源视图
这里就是筛选出咱们想要数据挖掘的数据表,能够选择的是表或者视图,咱们这里要作的事很简单,其实就是把上面的两张表从数据库里链接出来,VS工具配置很简单,根据它的提示咱们就能够很轻松的配置出数据视图。
这里有几个技巧能够浏览两张表数据,在所选表中右键选择“浏览数据”,能够查看里面的列,还能分析数据中所占比状况,能够采用相似于Excel的透视表、透视图查看,也能够经过图表工具,例如:
此步骤是为了让咱们理解里面的表数据,经过分析数据能够先分析出数据表中能够供咱们挖掘的数据列属性有哪些,也能够简要推测影响咱们目标(购买自行车)这种行为可能影响的属性,好比:家里有汽车的、年龄大于60或者小于10岁的、上班距离跨越好几个城区的(好比从朝阳——海淀上班)、年收入百万的等等吧按照常理会买自行车的概率仍是挺小的,下一步咱们用挖掘算法来逐一验证咱们基于经验的这些推测是否合理。
三、建立挖掘结构
这一步咱们分步骤细一点,逐过程讲解
(1)在解决方案中“数据结构”中,右键选择新建数据挖掘,这里咱们选择“从现有数据库或数据仓库”来定义数据挖掘结构
(2)点击下一步,选择一种算法,这里列出了几种咱们比较经常使用的数据挖掘算法,咱们选择“Microsoft 决策树”算法
(3)点击下一步,选择咱们能够应用的数据源视图
(4)咱们选择上面的“vTargetMail”表做为事例来进行挖掘,所谓的事例就是之前咱们所存在的历史记录表,点击下一步
(5) 进入指定定性数据模块,显示图以下,这里面有几列比较重要,先看图片
这里面有几列须要咱们本身配置,键列:这个就是咱们的主键列了,vs能本身识别出来,而后就是输入列:这一列就是根据咱们要预测的目标,手动勾选的状态值列,这里咱们勾选了年龄、通勤距离、英国学历、英国职位、婚姻情况、家庭汽车数、家庭孩子总数、在家里孩子数、所在地区、年收入等咱们认为会影响预测目标的值列,固然这里有时候咱们本身的推断不必定能准,但VS一样根据数据给你推算出了可能影响的列供参考选择,这里咱们点击“建议”按钮,会弹出以下窗口:
看到了嘛,可爱的vs已经将肯尼个影响的列给你建议出来了,这里的分数就是评估的应该的几率,年龄是影响购买车辆影响最大的因素、其次是家庭车辆、再次是家庭孩子总数、固然这些值也是采样获取的,点击输入,就会选中相应的列,这里咱们的可预测列就选择:购买自行车列“BikeBuyer”,这里最前面的一列就是要显示的明细列,数据挖掘的结果提供明细钻取,显示明细的时候须要的列,咱们能够在这里面选中。
到这一步其实咱们能够简要的推断买不买自行车看来与年龄仍是关系比较大的,嗯...老年人和儿童估计骑自行车的可能性不大,呵呵...固然这仅是推测,我们接着往下挖掘。
(6)点击下一步,进入数据挖掘模型机构,这里面会显示出各个列里面的值类型和值状态,是连续值、仍是离散型,能够点击检测推断
(7)点击下一步,会进入数据集两个比较重要的参数配置,一个就是计算模型数据集所占比,一个就是最大实例数的值,先看图,然我我解释含义
在vs中已经有说明了,解释的比较清楚,第一个值就是用于计算数据挖掘模型的值占比,剩下的值做为后面验证咱们数据挖掘模型的正确性,简单点就是留一部分测试数据稍后咱们那它来测试测试咱们创建的数据挖掘模型是否正确。第二个值就是每一个挖掘回归所占的最大事例总数,这里咱们作一个限制。
(8)点击下一步,给这个数据挖掘模型起一个名字,而后勾选上容许钻取明细
至此咱们的Microsoft决策树数据挖掘模型已经创建完毕,看看图
下一步就是分析咱们的挖掘结果了,这一步最精彩,咱们来逐步分析。
结果分析
在分析以前咱们先在解决方案中右键部署该解决方案到本地Analysis Services数据库中。
在咱们数据挖掘模型中有四个选项卡一个就是咱们的挖掘结构,第二个就是挖掘模型中咱们设置的输入列、预测列、键列等信息,没啥可说的看图
接着才是咱们重点要分析的数据挖掘模型查看器,这里面会有咱们挖掘出来的结果值,造成咱们的分析报告等选项,先看看图:
整幅图片中,整个显示结果是一种树状结构图,从顶端依次展开的横向图片,从图例中咱们就能够看到,其中红色的也就是值为1的为购买自行车的比例,蓝色的就是没购买自行车的比例,这里有个选项比较重要,就是背景,默认为所有值,也就是说整个图中包含全部的事实,由于咱们的需求是要分析购买自行车的顾客的状态,因此咱们选择值为1(会发生购买)的进行分析,固然若是需求比较特别,你也能够选择不购买自行车的顾客这部分群体的特征,这里咱们选择为1的背景:
看看分析结果:
总体树种,颜色最深的为咱们最指望获得的值,而每一个方块所表明的就是一种状态值区间,每一个方块又能够依次展开看其子节点状态,最靠近根部的方块所表明的的由于即为影响结果值最重要的因素,从上图中咱们能够看到家庭中汽车的数量(Number Cars Owned)是决定是否购买自行车最重要的因素,而这种因素中汽车数量为0的购买自行车的几率最高,也就说最想买自行车,其次是有一辆汽车的顾客,咱们接着分析:
将鼠标移动到Number Cars Owned为0 的方块中,能够查看明细:
能够看到该部分顾客购买自行车的几率为63.15%,这里面共有4006个事例,发生购买的为2530个,因此这部分顾客应该是厂商最喜欢的,也是他们将要重点挖掘的对象,缘由你懂的。固然家里有一汽车的也有不少想买自行车的,咱们也不能放弃,一样咱们点开这个节点接着分析。
嘿嘿,从图中能够看到咱们上面推测的年龄因素已经浮出水面了,家里没有车,而后年龄在45岁如下购买自行车的几率已经飙升到73.49%,有图有真相,45岁如下,而后尚未小汽车,在大米国应该也算是屌丝一级别了,买辆自行车骑骑也正常,一样咱们接着分析。
紧接着,影响的第三层因素也开始冒泡了,那就是地域位置,看图中,不在北美位置的顾客购买概率更高,而这里面在家里的孩子为0的购买概率已经达到了92.50%,汗,厂商还等什么,遇到这种顾客你就让你的销售坐等业绩就可,我们来分析一下这部分人群:家里没有车、年龄在45岁一下、不在北美地区、家里也没有孩子......我那个去,这部分顾客什么状况,一种是直接型的屌丝级别,一种是绝对有品位的高富帅(孩子已经成家)。好吧,若是销售面对的是这群客户,你要作的就是升职、加薪、赢取白富美了...
我们再来分析另一种家里有一个汽车的状况,先看图:
结果:年龄在37到53之间,通勤距离小于10Miles,家里孩子既不等于3也不等于4,而后年收入在58000$以上,这部分顾客购买的概率在74.83%左右。
这里咱们能够经过查看依赖关系网络图,了解一下我全部的这些元素对购买自行车这种行为的影响:
经过拖动左侧的滑动条能够依次查看全部的因素对买自行车所形成的影响大小,下面最重要,这里为家庭轿车数(Number Cars Owned)、其次是年龄(Age)、再次是地区(Region)....
以上是对决策树算法所推测出的结果进行分析,咱们下一步要作的就是要验证咱们的分析结果正确率有多高,还会增长其它不一样的算法做对比,而后在根据正确率最好的算法推测上面咱们已有的顾客列表中找到购买自行车几率最高的那群人。限于篇幅,后面的文章中咱们继续详细的分析这些事情,下面我晒几个结果图,供你们玩味:
数据挖掘准确性图表:
图中有咱们剩下的那部分测试数据作出的验证图表,还有理想的最佳模型、最烂的随机预测模型,和他们的几率,固然这中间就是咱们决策树预测的模型,这图表中的维度和值就不分析了,本身品味。
一样咱们还能够根据咱们的预测模型绘出利润图:
所谓的利润图,就是经过这种分析能给咱们带来的利润,嗯,这个也是厂商关注的。
到这里还剩下最后一步那就是将上面咱们遗留下的顾客信息表中找出那些可能购买自行车的顾客,也就是数据挖掘的最高产物,推测之后将要发生的事情。这一步咱们留着下一篇介绍。
结语:大数据的时代到来了,我们做为底层的码农要时刻准备着,为本身保留饭碗的同时也能持续不断的发挥码农的能量,当咱们修炼到必定的境界时,遇到大数据,咱们也能够从容得喊道:畜生、放开那些数据,让我来!呵呵...国庆节了,祝你们国庆快乐。
部份内容参照微软官方案例展现,微软决策树算法详细参考http://technet.microsoft.com/zh-cn/library/ms175312.aspx