• (转)奇妙的数据挖掘




    谈到BI。就会谈到数据挖掘(Data mining)。

    数据挖掘是指用某些方法和工具。对数据进行分析,发现隐藏规律并利的一种方法。以下我们将通过详细的样例来学习什么是数据挖掘。

     
     
    案例“上大学分析”-体验什么是数据挖掘
     
    某社会机构,收集了大量的学生考大学的数据。该机构希望找出一些规律,以推动很多其它的学生考大学。

    该机构托付你来做这个分析工作,给出详细的能够推动很多其它学生考大学的建议。

     
    收集到的数据例如以下:
     
    你可能会考虑用SQL语句进行查询分析。

    但问题是:

    1.用什么语句查呢?要组合什么条件呢?
    2.你想查到如何的结果呢?这个结果对决策有帮助吗?
     
    那数据挖掘一下吧!

    但怎样挖掘呢?

    不了解数据挖掘的人,往往会觉得仅仅需要让计算机去挖掘一下,计算机就能帮我们找出想要的东西。计算机哪会这样奇妙,在数据挖掘之前。我们必需要自己好好分析一下。
     
    1.明白挖掘的目标。

    我们看看原始需求是这种:该机构希望找出一些规律,以推动很多其它的学生考大学。
    你可能会说:该目标也太大了一点吧!

    如今该机构托付你做这个事情,人家不是专业人士。你还指望人家什么都帮你做好吗?那要你干嘛!

    我们细致分析一下,原始数据有姓名、性别、IQ、家庭年收入、兄弟姐妹数量、是否想上大学字段。要推动很多其它学生考大学,我们无非就是要分析出:
    1)有上大学计划的人主要原因是什么呢?
    2)无上大学计划的人主要原因是什么呢?
    分析出这些原因,就能够提出针对性的建议了。

     
    2.明白因果关系
    看以下这个图:
     
    对原始数据表进行分析。我们能够推论出:家庭收入、性别、兄弟姐妹数量、IQ这些因素,非常可能会影响有否上大学计划。

    至于姓名会不会影响,我们能够用常识推断应该不会。故能够排除。

    这样我们就能够确定输入列有:家庭收入、性别、兄弟姐妹数量、IQ,可预測列为:有上大学计划否。
    数据挖掘的目标就是找出输入列与可预測列的关系。仅仅要找到这个规律,就能够提出针对性的建议,也能够利用这个规律做预測。
     
    以上工作准备就绪后,我们就须要选择合适的分析方法来数据挖掘了。我们选择“决策树”的方法,以下是决策树的部分分析结果:
     
    说明:
    1.最上面的一个节点表示有55%的人有计划上大学,45%的人没有计划。
    2.第二层节点。以IQ为条件进行划分,IQ大于100的人中,有上大学计划的人有79%之多,而IQ小于等于100的人,有上大学计划的人仅仅有35%。这说明IQ是非常重要的影响因素。
    3.第三层节点是年收入。第四层是兄弟姐妹数量。
    4.决策树算法会分析原始数据。将影响程度最大的因素排在上面,次之的因素排在后面。
     
    由上面的分析,我们能够得到这种一些信息:
    1.越是IQ高的越有上大学的计划。
    2.家庭收入越高。越有上大学计划。

    3.兄弟姐妹越多。上大学计划就越微。
    4.性别没有在这棵树出现,说明性别对有否上大学计划没有明显影响。
     
    接下来我们就能够提出针对性的建议,以推动很多其它人考大学:
    1.大学学位有限,眼下重点应该是鼓舞很多其它的聪明的学生考大学。
    2.聪明的学生不计划上大学,主要原因是家庭收入低、兄弟姐妹多,针对这种情况,政府可考虑减少大学学费。或对低收入、多子女的家庭进行资助。
     
    总结一下数据挖掘的过程:
    1.明白你的目标。收集相关数据。

    2.依据目标分析这些数据,找出输入列、可预測列。

    3.选择合适的数据挖掘方法。

    4.分析数据挖掘结果。给出建议。
    第2、3步可能须要不断地尝试和调试,才干找到合适的分析结果。
     
    怎么样?这个过程不简单吧?以上这个样例已经经过我的简化和提炼,其目标就是让大家能easy理解什么是数据挖掘。实际工作中的数据挖掘难度是非常高的,须要具备这些能力:
    1.能深彻体会业务的要求,能将客户笼统的需求转化为实在的工作指导。
    2.能分析出输入列、可预測列。
    3.熟悉各种数据挖掘方法,会选择合适的方法进行分析。
    4.能深入分析数据挖掘的结果,综合运用你的各种知识,为客户提出针对性的决策建议。
     
     
    常见的数据挖掘方法
     
    常见的数据挖掘方法有分类、聚类、关联、回归、时间序列分析、离散序列分成、偏差分析、贝叶斯、神经网络等等。这些内容都涉及到深厚的数学知识,以下仅仅是一些肤浅的介绍。让大家有个大概的认识。为大家进一步学习打好基础。
     
    数据挖掘算法之分类
     
    例:某银行每天收到非常多信用卡办理的申请,为提高效率和准确性,想应用数据挖掘技术来改善工作,你会如何考虑呢?
    该银行有大量的历史数据。将申请者分为高、中、低三种风险类型。这样输入列就是申请者的学历、收入、职业等信息。而可预測列就是风险类型。这样对历史数据进行数据挖掘后,当有新的申请者提交资料,系统就能够推断该申请者风险类型为高、中还是低了。
    以上的算法就是“分类”,该挖掘方法需人工指定类别。然后找出一组属性与该类别的关系。利用这些关系来预測新的情况。
     
    数据挖掘算法之聚类
     
    “聚类”与“分类”非常相似,相同是找出一组属性与类别的关系,不同的是这类别不是事先指定的,而是由数据挖掘自己找出分类。
    例:某公司收集了非常多客户的资料。记录了客户的年龄和收入。该公司相对这些数据进行分析,找出能够重点营销的客户对象。我们可指定输入列为年龄和收入,经过聚类数据挖掘后,发现客户群能够划分为三个群体:低收入年轻客户、高收入中年客户、收入相对低的年老客户。依据这种分析结果。公司可採取决策。重点针对高收入中年客户进行营销活动。
     
    数据挖掘算法之关联
     
    例:在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。可是这个奇怪的举措却使尿布和啤酒的销量双双添加了。这不是一个笑话。而是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。

    原来,美国的妇女们常常会叮嘱她们的丈夫下班以后要为孩子买尿布。而丈夫在买完尿布之后又要顺手买回自己爱喝的啤酒。因此啤酒和尿布在一起购买的机会还是非常多的。

     
    上述这个样例常常会被人拿来说。但非常少人会举一反三地应用这个样例。我们有非常多超市记录了大量的交易数据,仅仅要对这些交易数据做一下关联分析,就非常可能会得到不少价值巨大的商业机会。上述这个“尿布+啤酒”的样例,就是应用了关联分析。发现尿布和啤酒两个东西常常被一起卖掉。

    关联分析主要用来找出某些东西“摆在一起“的机会。我们上网上商城购买东西,你每选择一个商品。就可能会向你推销一堆别的商品,这非常可能就是关联分析在“作怪”。

     
    数据挖掘算法之回归
     
    变量X、Y可能存在关系。我们能够将大量的(X、Y)绘制到一张图上,形成一张散点图。

    假设这些散点更好都在一条直线附近。那么这条直线的方程就能够近似代表X与Y的关系。

    所谓的回归,就是要找到一个函数代表变量X1,X2,X3,...与Y的关系。该函数所绘制出来的曲线,能尽量拟合这些“散点”。

     
    下图是某软件公司某项目測试时间与发现缺陷数量的关系图:
     
    回归可分为线性回归和非线性回归,线性回归比較easy操作。但普通情况下数据非常难是线性的。而非线性回归就超复杂了。

    上图的线性模型採用的是多阶段的线性回归,指数模型採用的是多阶段的指数回归,而黑色曲线代表的是真实数据,从图中看,似乎指数模型的吻合度更高一点。

     
    数据挖掘算法之时间序列分析
     
    例1:炒股的人都想预測明天是涨还是跌,实际上我们已经积累了大量的历史数据,说不定还是能够预測的!某股票已经连续涨了3天。明天会不会再涨呢?某股票连续跌了7天了,明天应该不会再跌了吧?
    例2:非常多商家会在某些节假日时,重点销售某些产品,以求能够卖出很多其它,圣诞节快到了。应该主推什么产品好呢?实际上各商家的收款系统中,记录了大量的与时间相关的销售数据,假设对这些数据做一下时间序列分析,说不定能找到重大商机。
    时间序列分析,输入列都是与时间相关的数据,同一时候须要考虑季节、历史等因素,这样就能够预測某个时间会如何了。
     
    数据挖掘算法之离散序列分析
     
    某站点对訪问者的操作进行了统计,例如以下:
     
    说明:
    1.訪问者进入首页后。有20%会进入天气页面,40%进入新闻页面,20%进入商业页面。
    2.从首页进入新闻页面的机会是40%,而从天气进入新闻的机会是10%。
    以上的分析对于优化站点是非常有帮助的。上述的分析用到了离散序列分析技术。

    离散序列分析,输入列是一系列有“次序”的数据,通过这一系列有次序的数据预測另外一个数据情况。

     
    数据挖掘算法之偏差分析
     
    例:某银行有信用卡异常使用情况的监控系统,假设发现某些用卡行为与客户往常习惯不一样时,会发出警告。

    信用卡每次使用情况,包含时间、地点、金额、商户等信息都会记录下来。利用正常的历史数据对系统进行训练,告诉系统这些是“正常”的使用情况,当出现新的用卡记录与这些正常使用的特征不符时。则能够发出警告。

    偏差分析的原理就是用正常的数据去训练系统。由系统去推断新数据是否在正常范围?有没有偏差?

    软件项目管理假设达到CMMI4级或以上的层次,就会使用基线来管理项目,基线上下限范围内可觉得是“正常”的,假设超出上下限。则觉得是“偏差”,须要分析原因并採取措施。这样的用基线来管理项目,事实上也是一种数据挖掘算法-偏差分析。
     
    数据挖掘算法之贝叶斯
     
    贝叶斯算法是一种依据历史事件发生的概率来猜測将来的算法,由伟大的数学家Thomas Bayes所创建的。

    Thomas Bayes,1702年出生于英国伦敦。

    该算法的原理是这种:假设事情A、事情B、事情C、...、这些事情发生了,那么事情X发生的几率是多少。

    前面这些事情叫做前提事情,能够是一个到多个,前提事情越多分析起来就越复杂但会更加准确。

    举个样例:据说麦当劳当年发现。假设顾客购买了汉堡包和薯条。那么顾客再购买可乐的机会是70%,于是麦当劳就将这三个产品捆绑在一起作为套餐,于是销量大增。

    对于这个案例,前提事件就是购买汉堡包和购买薯条,要预測的是顾客会不会买可乐。预測结果就是有70%机会会买。

    我们能够利用贝叶斯原理来进行数据挖掘。

     
    数据挖掘算法之神经网络
     
    人脑事实上是由数量庞大的神经细胞组成的。神经细胞庞大的数量及复杂的结构。让人类充满了智慧。人一出世,脑袋是一片空白的,当我们学会了某样东西的时候。我们会对起进行推演和归纳。

    例如说我们认识了这是一条狗。当我们见到另外一条不同品种狗的时候,我们会推断这也是一条狗。

    而计算机的推断一般来说就比較死板了,假设有细微的偏差就会认不出来。

    神经网络算法事实上就是通过计算机来构造类似于人脑的神经细胞网络(当然该网络不管怎样不能跟人脑相比)。通过一些训练,能让该网络能识别某一类事物。

    文字识别、指纹识别等都是应用了神经网络技术的。

    通过数据训练。我们能够在输入列与可预測列之间找到合适的神经网络,然后通过这个网络对新情况进行推断。
     
     
    数据挖掘技术
     
    数据挖掘涉及到非常多知识,涉及到数学、机器学习、数据库等领域。

    数学方面的知识仅仅要是概率与统计方面的知识。回归、时序、决策树、贝叶斯等数据挖掘算法都是依赖于这些数学知识的。

    电脑的发展让机器学习发挥出无穷的威力。神经网络、遗传算法是两种倚赖于计算机学习的算法。
    数据仓库、数据集市、数据立方体的存储技术等数据库技术的发展。让数据挖掘能够处理越来越大量的数据。

    你假设对数据挖掘感兴趣,那么请努力学习以上提到的知识吧!
    数据挖掘是高精尖的技术,是改变世界的一种技术,希望我们能涌现出一批批实实在在的数据挖掘精英,改变我们的生活。改变我们的世界!
     
  • 相关阅读:
    JDBC原理及常见错误分析
    response,session,cookie
    Activity LifeCycle (安卓应用的运行机制)
    简单的接口取数据渲染到图表
    图表里面双重下拉框进行判断
    用js方式取得接口里面json数据的key和value值
    一个div多个图表共用一个图例
    一个页面多图表展示(四个div的方式)
    vue组件之子组件和父组件
    根据判断对颜色进行改变
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6853403.html
Copyright © 2020-2023  润新知