介绍:html
Microsoft Naive Bayes 算法是一种基于贝叶斯定理的分类算法,可用于探索性和预测性建模。 Naïve Bayes 名称中的 Naïve 一词派生自这样一个事实:该算法使用贝叶斯技术,但未将可能存在的依赖关系考虑在内。算法
和其余 Microsoft 算法相比,此算法所需运算量较少,于是有助于快速生成挖掘模型,从而发现输入列与可预测列之间的关系。 可使用该算法进行初始数据探测,而后根据该算法的结果使用其余运算量较大、更加精确的算法建立其余挖掘模型。sql
算法的原理数据库
在给定可预测列的各类可能状态的状况下, Microsoft Naive Bayes 算法将计算每一个输入列的每种状态的几率。网络
若要了解其工做原理,请使用 Microsoft 中的 SQL Server Data Tools (SSDT) Naive Bayes 查看器(以下图所示)来直观地查看该算法分布状态的方式。post
此处, Microsoft Naive Bayes 查看器可列出数据集中的每一个输入列。若是提供了可预测列的每种状态,它还会显示每一列中状态的分布状况。大数据
您将利用该模型视图来肯定对区分可预测列状态具备重要做用的输入列。url
例如,在此处显示的“Commute Distance”行中,输入值的分布对于购买者和非买者存在明显的不一样。 这代表,“Commute Distance = 0-1 miles”输入多是一个预测因子。spa
该查看器还提供了分布的值,这样您便能看到,对于上下班路程为一至二英里的客户,其购买自行车的几率是 0.387,不购买自行车的几率是 0.287。 在本示例中,该算法使用从诸如上下班路程之类的客户特征得出的数字信息来预测客户是否会购买自行车。3d
有关使用 Microsoft Naive Bayes 查看器的详细信息,请参阅使用 Microsoft Naive Bayes 查看器浏览模型。
应用场景介绍
经过前面两种算法的应用场景介绍,这次总结的Microsoft Naive Bayes 算法也一样适用,但本篇的Microsoft Naive Bayes算法较上两种算法跟简单,或者说更轻量级。
该算法使用贝叶斯定力,可是没有将属性间的依赖关系融入进去,也就是跟简单的进行预测分析,所以该假定成为理想化模型的假定,简单点说:贝叶斯算法就是经过历史的属性值进行简单的两种对立状态的推算,而不会考虑历史属性值之间的关系,这也就形成了它预测结果的局限性,不能对离散或者连续值进行预测,只能对两元值进行预测,好比:买/不买、是/否、会/不会等,汗..挺符合中国的易经学中太极图..凡事只有两种状态能够解释,正所谓:太极生两仪,两仪生四相,四相生八卦...因此最简单的就是最易用的,也是速度最快的。
扯远了,具体算法明细可参照微软官方解释Microsoft Naive Bayes 算法
由于对于上两篇中的应用场景,对买自行车的顾客群体进行预测,贝叶斯算法一样也能够作到,反而更简洁,本篇我们使用这种算法来预测下,而且看看这种算法它的优越性有哪些。
技术准备
(1)一样咱们利用微软提供的案例数据仓库(AdventureWorksDW2008R2),两张事实表,一张已有的历史购买自行车记录的历史,另一张就是咱们将要挖掘的收集过来可能发生购买自行车的人员信息表,能够参考上一篇文章
(2)VS、SQL Server、 Analysis Services没啥可介绍的,安装数据库的时候全选就能够了。
下面咱们进入主题,一样咱们继续利用上次的解决方案,依次步骤以下:
(1)打开解决方案,进入到“挖掘模型”模板
能够看到数据挖掘模型中已经存在两种分析算法,就是咱们上两篇文章分析用到的决策树分析算法和聚类分析算法。咱们继续添加贝叶斯算法。、
二、右键单击“结构”列,选择“新建挖掘模型”,输入名称便可
点击肯定,这时候会弹出一个提示框,我么看图:
啥子意思?....上面咱们已经分析了贝叶斯算法做为最简单的两元状态预测算法,对于离散值或者连续值它是无能为力的,它单纯的认为这个世界只有两种状态,那就是是或者非,上图中标识的这两列年龄、年收入很明显为离散的属性值,因此它是给忽略的。点击“是”便可。
这样咱们新创建的贝叶斯分析算法就会增长在挖掘模型中,这里咱们使用的主键和决策树同样,一样的预测行为也是同样的,输入列也是,固然能够更改。
下一步,部署处理该挖掘模型。
结果分析
一样这里面咱们采用“挖掘模型查看器”进行查看,这里挖掘模型咱们选择“Clustering”,这里面会提供四个选项卡,下面咱们依次介绍,直接晒图:
这个展现面板可爱多了,集中了决策树算法中的“依赖关系网络”,聚类算法中的“属性配置文件”、“属性特征”、“属性对比”;一样也是这种算法的优势,简单的特征预测,基于对立面的结果预测,但也有它的缺点,下面咱们接着分析:
从依赖关系网络中能够看到,如今影响购买自行车行为的依赖属性最重要的是“家庭轿车的数量”、其次是“通勤距离”....当年咱们经过决策树算法预测出来的最牛因素“年龄”,如今已经没了,汗...只是由于它是离散型值,一样年收入也同样,这样其实使得咱们算法的精准度会略有偏低,固然该算法也有决策树算法作不到的,咱们来看“属性配置文件”面板:
经过该面板咱们已经能够进行群体特征分析,这一点是决策树分析算法作不到的,固然这是聚类分析算法的特色,上面图片中含义就能看到了家里有1个或者没有小汽车购买自行车的意愿更大一点。其它的分析方法相似,具体能够参照个人上一篇聚类分析算法总结。
“属性特征”和“属性对比”两个面板结果分析也是继承与聚类分析算法同样,上一篇文章咱们已经详细介绍了,下面只是切图晒晒:
是吧,家里没有孩子、在北美的、通常行驶距离在1Miles(千米?)之内的同志比较想买自行车。
家里没有小汽车...一般会买自行车倾向于1,若是有2辆了基本就不买了倾向于0,汗...常识...其它就不分析了。
下面咱们看一下这种算法对于我们购买自行车群体预测行为的准确性怎么样
准确性验证
最后咱们来验证一下今天这个贝叶斯分析算法的准确性如何,和上两篇文章中的决策树算法、聚类分析算法有何差距,咱们点击进入数据挖掘准确性图表:
能够看到,这次用的贝叶斯分析算法评分已经出来了,仅次于决策树算法,依次排名为:决策树分析算法、贝叶斯分析算法、聚类分析算法。看来简单的贝叶斯分析算法并不简单,虽然它摒弃掉了两大属性值:年龄、年收入,并且其中年龄属性经过决策树分析算法分析仍是比较重要的一个属性,贝叶斯无情的抛弃以后,依然以0.78分的优点远远胜于聚类分析算法!并且上面的分析能够看到它还具备聚类分析算法特长项,好比:特征分析、属性对比等利器。
到此经过三种分析算法的评比,咱们好像已经看到了适合咱们这种应用需求的最优的分析算法,每种算法的评比,经过上的曲线图已经轻易的展示出来来了,固然我们今天的这篇Miscrosoft贝叶斯分析算法也应该结束了。
<------------------------------------------------------------华丽分割线------------------------------------------------------------------------------------------>
可是.......我记得上次写聚类分析算法的时候,我无心间提到过,若是将国内IT从业人员和非IT从业人员根据性别属性进行预测的话...结果将会是毛骨悚然!你懂得,那咱们推测下这里买不买自行车会不会也与性别有关呢?一般男孩子比较喜欢骑自行车...嗯..我是说一般...那么结果呢...咱们来看:
咱们利用上图中打分最高的决策树分析算法来推测咱们的问题,咱们在”挖掘模型”中右键选择新建模型,选择决策树分析算法,咱们起个名字:
点击肯定,咱们已经将使用决策树分析算法分析男性购买自行车的几率,而后在该算法结构上右键,选择“设置模型筛选器”。咱们来设置筛选过滤条件为:M,即为男银
咱们利用想用的方法继续创建women(女银)的决策树挖掘算法,下面看图:
这里就不不过多解释了,咱们直接验证结果,来看看咱们上面的推断有没有意义。
下面看图:
....额...额...e...表激动...我那个去...上面根据性别的进行区分的预测模型结果已经出来了,从打分上看,Man(男银)的决策树已经能和所有的事例结果相聘美,都是0.71...这也就是说明咱们只须要对男人的群体进行预测就能够获得所有市场的规律..而不须要花费精力去研究所有......可是Women(女银)的分数直接飙升到0.84....汗...在这几种挖掘算法中利用决策树算法对于Women这个群体进行预测,结果的精准度居然达到如此之高!这个模型的存在直接秒杀了其它的任何一种分析算法,神马聚类、贝叶斯都是浮云....浮云而已。
经过上面的分析,咱们已经确立了咱们的推断,男性和女性同志在想不想购买自行车这件事情上是有群体差别的,并非只经过分析所有的事实就能够获得,固然自己而言就男性和女性这两种地球上特有的物种在行为和特征上就有较大的差距,对于买不买自行车固然也不会相同,呵呵...至少大米国是这样,上面的图表验证这一说法!因此对于不一样的行为预测咱们能够针对性别来分别挖掘,这样咱们挖掘后获得的推测值将更接近事实。
有兴趣能够对是否结婚两种群体进行分析挖掘,看看结不结婚和买不买自行车有没有关系。
本问建模来自:(原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft Naive Bayes 算法)