数据挖掘算法与现实⽣活中的应⽤案例
如何分辨出垃圾邮件”、“如何判断⼀笔交易是否属于欺诈”、“如何判断红酒的品质和档次”、“扫描王是如何做到⽂字识别的”、“如何判断佚名的著作是否出⾃某位名家之⼿”、“如何判断⼀个细胞是否属于肿瘤细胞”等等,这些问题似乎都很专业,都不太好回答。但是,如果了解⼀点点数据挖掘的知识,你,或许会有柳暗花明的感觉。
本⽂,主要想简单介绍下数据挖掘中的算法,以及它包含的类型。然后,通过现实中触⼿可及的、活⽣⽣的案例,去诠释它的真实存在。
⼀般来说,数据挖掘的算法包含四种类型,即分类、预测、聚类、关联。前两种属于有监督学习,后两种属于⽆监督学习,属于描述性的模式识别和发现。
有监督学习
有监督的学习,即存在⽬标变量,需要探索特征变量和⽬标变量之间的关系,在⽬标变量的监督下学习和优化算法。例如,信⽤评分模型就是典型的有监督学习,⽬标变量为“是否违约”。算法的⽬的在于研究特征变量(⼈⼝统计、资产属性等)和⽬标变量之间的关系。
分类算法
分类算法和预测算法的最⼤区别在于,前者的⽬标变量是分类离散型(例如,是否逾期、是否肿瘤细胞、是否垃圾邮件等),后者的⽬标变量是连续型。⼀般⽽⾔,具体的分类算法包括,逻辑回归、决策树、KNN、贝叶斯判别、SVM、随机森林、神经⽹络等。
预测算法
预测类算法,其⽬标变量⼀般是连续型变量。常见的算法,包括线性回归、回归树、神经⽹络、SVM等。
⽆监督学习
⽆监督学习,即不存在⽬标变量,基于数据本⾝,去识别变量之间内在的模式和特征。例如关联分析,通过数据发现项⽬A和项⽬B之间的关联性。例如聚类分析,通过距离,将所有样本划分为⼏个稳定可区分的体。这些都是在没有⽬标变量监督下的模式识别和分析。
聚类分析
聚类的⽬的就是实现对样本的细分,使得同组内的样本特征较为相似,不同组的样本特征差异较⼤。常见的聚类算法包括kmeans、系谱聚类、密度聚类等。
关联分析
关联分析的⽬的在于,出项⽬(item)之间内在的联系。常常是指购物篮分析,即消费者常常会同时购买哪些产品(例如游泳裤、防晒霜),从⽽有助于商家的捆绑销售。
基于数据挖掘的案例和应⽤
上⽂所提到的四种算法类型(分类、预测、聚类、关联),是⽐较传统和常见的。还有其他⼀些⽐较有趣的算法分类和应⽤场景,例如协同过滤、异常值分析、社会⽹络、⽂本分析等。下⾯,想针对不同的算法类型,具体的介绍下数据挖掘在⽇常⽣活中真实的存在。下⾯是能想到的、⼏个⽐较有趣的、和⽣活紧密关联的例⼦。
基于分类模型的案例
这⾥⾯主要想介绍两个案例,⼀个是垃圾邮件的分类和判断,另外⼀个是在⽣物医药领域的应⽤,即肿瘤细胞的判断和分辨。
垃圾邮件的判别
邮箱系统如何分辨⼀封Email是否属于垃圾邮件?这应该属于⽂本挖掘的范畴,通常会采⽤朴素贝叶斯的⽅法进⾏判别。它的主要原理是,根据邮件正⽂中的单词,是否经常出现在垃圾邮件中,进⾏判断。例如,如果⼀份邮件的正⽂中包含“报销”、“发票”、“促销”等词汇时,该邮件被判定为垃圾邮件的概率将
会⽐较⼤。
⼀般来说,判断邮件是否属于垃圾邮件,应该包含以下⼏个步骤。
第⼀,把邮件正⽂拆解成单词组合,假设某篇邮件包含100个单词。
第⼆,根据贝叶斯条件概率,计算⼀封已经出现了这100个单词的邮件,属于垃圾邮件的概率和正常邮件的概率。如果结果表明,属于垃圾邮件的概率⼤于正常邮件的概率。那么该邮件就会被划为垃圾邮件。
医学上的肿瘤判断
如何判断细胞是否属于肿瘤细胞呢?肿瘤细胞和普通细胞,有差别。但是,需要⾮常有经验的医⽣,通过病理切⽚才能判断。如果通过机器学习的⽅式,使得系统⾃动识别出肿瘤细胞。此时的效率,将会得到飞速的提升。并且,通过主观(医⽣)+客观(模型)的⽅式识别肿瘤细胞,结果交叉验证,结论可能更加靠谱。
如何操作?通过分类模型识别。简⾔之,包含两个步骤。⾸先,通过⼀系列指标刻画细胞特征,例如细胞的半径、质地、周长、⾯积、光滑度、对称性、凹凸性等等,构成细胞特征的数据。其次,在细胞特征宽表的基础上,通过搭建分类模型进⾏肿瘤细胞的判断。
基于预测模型的案例
这⾥⾯主要想介绍两个案例。即通过化学特性判断和预测红酒的品质。另外⼀个是,通过搜索引擎来预测和判断股价的波动和趋势。
红酒品质的判断
如何评鉴红酒?有经验的⼈会说,红酒最重要的是⼝感。⽽⼝感的好坏,受很多因素的影响,例如年份、产地、⽓候、酿造的⼯艺等等。但是,统计学家并没有时间去品尝各种各样的红酒,他们觉得通过⼀些化学属性特征就能够很好地判断红酒的品质了。并且,现在很多酿酒企业其实也都这么⼲了,通过监测红酒中化学成分的含量,从⽽控制红酒的品质和⼝感。
那么,如何判断鉴红酒的品质呢?
第⼀步,收集很多红酒样本,整理检测他们的化学特性,例如酸性、含糖量、氯化物含量、硫含量、酒精度、PH值、密度等等。
第⼆步,通过分类回归树模型进⾏预测和判断红酒的品质和等级。
搜索引擎的搜索量和股价波动
⼀只南美洲热带⾬林中的蝴蝶,偶尔扇动了⼏下翅膀,可以在两周以后,引起美国德克萨斯州的⼀场龙卷风。你在互联⽹上的搜索是否会影响公司股价的波动?
很早之前,就已经有⽂献证明,互联⽹关键词的搜索量(例如流感)会⽐疾控中⼼提前1到2周预测出某地区流感的爆发。
同样,现在也有些学者发现了这样⼀种现象,即公司在互联⽹中搜索量的变化,会显著影响公司股价的波动和趋势,即所谓的投资者注意⼒理论。该理论认为,公司在搜索引擎中的搜索量,代表了该股票被投资者关注的程度。因此,当⼀只股票的搜索频数增加时,说明投资者对该股票的关注度提升,从⽽使得该股票更容易被个⼈投资者购买,进⼀步地导致股票价格上升,带来正向的股票收益。这是已经得到⽆数论⽂验证了的。
基于关联分析的案例:沃尔玛的啤酒尿布
啤酒尿布是⼀个⾮常⾮常古⽼陈旧的故事。故事是这样的,沃尔玛发现⼀个⾮常有趣的现象,即把尿布与啤酒这两种风马⽜不相及的商品摆在⼀起,能够⼤幅增加两者的销量。原因在于,美国的妇⼥通常在家照顾孩⼦,所以,她们常常会嘱咐丈夫在下班回家的路上为孩⼦买尿布,⽽丈夫在买尿布的同时⼜会顺⼿购买⾃⼰爱喝的啤酒。沃尔玛从数据中发现了这种关联性,因此,将这两种商品并置,从⽽⼤⼤提⾼了关联销售。
啤酒尿布主要讲的是产品之间的关联性,如果⼤量的数据表明,消费者购买A商品的同时,也会顺带着购买B产品。那么A和B之间存在关联性。在超市中,常常会看到两个商品的捆绑销售,很有可能就是关联分析的结果。
基于聚类分析的案例:零售客户细分
对客户的细分,还是⽐较常见的。细分的功能,在于能够有效的划分出客户体,使得体内部成员具有相似性,但是体之间存在差异性。其⽬的在于识别不同的客户体,然后针对不同的客户体,精准地进⾏产品设计和推送,从⽽节约营销成本,提⾼营销效率。生活中的发现
例如,针对商业银⾏中的零售客户进⾏细分,基于零售客户的特征变量(⼈⼝特征、资产特征、负债特征、结算特征),计算客户之间的距离。然后,按照距离的远近,把相似的客户聚集为⼀类,从⽽有效的细分客户。将全体客户划分为诸如,理财偏好者、基⾦偏好者、活期偏好者、国债偏好者、风险均衡者、渠道偏好者等。
基于异常值分析的案例:⽀付中的交易欺诈侦测
采⽤⽀付宝⽀付时,或者刷信⽤卡⽀付时,系统会实时判断这笔刷卡⾏为是否属于盗刷。通过判断刷卡的时间、地点、商户名称、⾦额、频率等要素进⾏判断。这⾥⾯基本的原理就是寻异常值。如果您的刷卡被判定为异常,这笔交易可能会被终⽌。
异常值的判断,应该是基于⼀个欺诈规则库的。可能包含两类规则,即事件类规则和模型类规则。第⼀,事件类规则,例如刷卡的时间是否异常(凌晨刷卡)、刷卡的地点是否异常(⾮经常所在地刷卡)、刷卡的商户是否异常(被列⼊⿊名单的套现商户)、刷卡⾦额是否异常(是否偏离正常均值的三倍标准差)、刷卡频次是否异常(⾼频密集刷卡)。第⼆,模型类规则,则是通过算法判定交易是否属于欺诈。⼀
般通过⽀付数据、卖家数据、结算数据,构建模型进⾏分类问题的判断。
基于协同过滤的案例:电商猜你喜欢和推荐引擎
电商中的猜你喜欢,应该是⼤家最为熟悉的。在京东商城或者亚马逊购物,总会有“猜你喜欢”、“根据您的浏览历史记录精⼼为您推荐”、“购买此商品的顾客同时也购买了商品”、“浏览了该商品的顾客最终购买了商品”,这些都是推荐引擎运算的结果。
这⾥⾯,确实很喜欢亚马逊的推荐,通过“购买该商品的⼈同时购买了**商品”,常常会发现⼀些质量⽐较⾼、较为受认可的书。
⼀般来说,电商的“猜你喜欢”(即推荐引擎)都是在协同过滤算法(Collaborative Filter)的基础上,搭建⼀套符合⾃⾝特点的规则库。即该算法会同时考虑其他顾客的选择和⾏为,在此基础上搭建产品相似性矩阵和⽤户相似性矩阵。基于此,出最相似的顾客或最关联的产品,从⽽完成产品的推荐。
基于社会⽹络分析的案例:电信中的种⼦客户
种⼦客户和社会⽹络,最早出现在电信领域的研究。即,通过⼈们的通话记录,就可以勾勒出⼈们的关系⽹络。电信领域的⽹络,⼀般会分析客户的影响⼒和客户流失、产品扩散的关系。
基于通话记录,可以构建客户影响⼒指标体系。采⽤的指标,⼤概包括如下,⼀度⼈脉、⼆度⼈脉、三度⼈脉、平均通话频次、平均通话量等。基于社会影响⼒,分析的结果表明,⾼影响⼒客户的流失会导致关联客户的流失。其次,在产品的扩散上,选择⾼影响⼒客户作为传播的起点,很容易推动新套餐的扩散和渗透。
此外,社会⽹络在银⾏(担保⽹络)、保险(团伙欺诈)、互联⽹(社交互动)中也都有很多的应⽤和案例。
基于⽂本分析的案例
这⾥⾯主要想介绍两个案例。⼀个是类似“扫描王”的APP,直接把纸质⽂档扫描成电⼦⽂档。相信很多⼈都⽤过,这⾥准备简单介绍下原理。另外⼀个是,江湖上总是传⾔红楼梦的前⼋⼗回和后四⼗回,好像并⾮都是出⾃曹雪芹之⼿,这⾥⾯准备从统计的⾓度聊聊。
字符识别:扫描王APP
⼿机拍照时会⾃动识别⼈脸,还有⼀些APP,例如扫描王,可以扫描书本,然后把扫描的内容⾃动转化为word。这些属于图像识别和字符识别(Optical Character Recognition)。图像识别⽐较复杂,字符识别理解起来⽐较容易些。
查了⼀些资料,字符识别的⼤概原理如下,以字符S为例。
第⼀,把字符图像缩⼩到标准像素尺⼨,例如12*16。注意,图像是由像素构成,字符图像主要包括⿊、⽩两种像素。
第⼆,提取字符的特征向量。如何提取字符的特征,采⽤⼆维直⽅图投影。就是把字符(12*16的像素图)往⽔平⽅向和垂直⽅向上投影。⽔平⽅向有12个维度,垂直⽅向有16个维度。这样分别计算⽔平⽅向上各个像素⾏中⿊⾊像素的累计数量、垂直⽅向各个像素列上的⿊⾊像素的累计数量。从⽽得到⽔平⽅向12个维度的特征向量取值,垂直⽅向上16个维度的特征向量取值。这样就构成了包含28个维度的字符特征向量。
第三,基于前⾯的字符特征向量,通过神经⽹络学习,从⽽识别字符和有效分类。
⽂学著作与统计:红楼梦归属
这是⾮常著名的⼀个争论,悬⽽未决。对于红楼梦的作者,通常认为前80回合是曹雪芹所著,后四⼗回
合为⾼鹗所写。其实主要问题,就是想确定,前80回合和后40回合是否在遣词造句⽅⾯存在显著差异。
这事让⼀统计学家⽐较兴奋了。有些学者通过统计名词、动词、形容词、副词、虚词出现的频次,以及不同词性之间的相关系做判断。有些学者通过虚词(例如之、其、或、亦、了、的、不、把、别、好),判断前后⽂风的差异。有些学者通过场景(花卉、树⽊、饮⾷、医药与诗词)频次的差异,来做统计判断。总⽽⾔之,主要通过⼀些指标量化,然后⽐较指标之间是否存在显著差异,藉此进⾏写作风格的判断。