优秀的数据分析师除了具备基本的统计学、数据库、数据分析方法、思维、数据分析工具的技能外,还需要掌握一些数据挖掘的思想才能挖掘出有价值的数据。 这也是数据分析专家和一般数据分析师的差距之一。
数据挖掘主要分为分类算法、聚类算法和关联规则三种,这三种基本上涵盖了目前商业市场对算法的所有需求。 这三个类别包括许多经典算法。 市场上有很多关于数据挖掘算法的介绍都很费解,今天我们用一个简单的白话来介绍一下数据挖掘的十大经典算法原理,帮助大家迅速理解。
算法分类
连接分析: PageRank
相关分析: Apriori
分类算法: C4.5、朴素贝叶斯、SVM、KNN、Adaboost、CART
聚类算法: k均值,EM
一、PageRank证明一篇论文被引用的次数越多,该论文的影响力越大。
一个页面入口越多,进入链条越优质,页面质量越高。
原理
网页影响力=阻尼影响力+所有入链集合页面的加权影响力之和
一个页面的影响力:所有进入链条的页面的加权影响力之和。 一个网页对其他网页的影响力是自己的影响力/链数。 用户并不都像跳转链接一样连接到互联网,还有其他方法。 例如,直接输入网址进行访问。 因此有必要设定衰减因子,表示用户按照跳转链接连接互联网的概率。比喻说明
1、微博
一个人的微博粉丝数量不一定和他的实际影响力一样,还要看粉丝的质量。
如果是僵尸粉的话什么用都没有,但是如果有很多大V和明星关注的话影响力很高。
2、店铺经营
客人多的店质量很好,但要看看有没有客人点。
3、爱好
对感兴趣的人和事物相对会投入更多的时间,与之相关的人和事物也会投入一定的时间。 那个人和事情越被关注,其影响力/参与者也越大。
关于阻尼因子
1、用邻居的影响力评价你的影响力。 但是,如果不能通过邻居访问你,并不是对你没有影响力。 因为可以直接访问你,所以引入阻尼因子的概念。
2、大海里不仅有河流流动,还有雨水,但雨是随机的。
3、之所以提出衰减因子,主要是为了解决一些网站存在大量连锁效应,但影响力却非常大的情况。
出链例: hao123导航页面,出链极多,入链极少。 链接范例:百度谷歌等搜索引擎链接极多,链接极少。 二、挖掘Apriori (关联分析)关联关系,从消费者交易记录中挖掘商品与商品的关联关系。
原理
1.支持度
某商品组合出现的次数与总次数的比率。
购买了5次,买了4次牛奶。 牛奶的支持度为4/5=0.8。
购买了5次,买了3次牛奶面包。 牛奶面包的支持度为3/5=0.6。
2.置信度
购买商品a,以怎样的概率购买商品b,发生a的情况下发生b的概率是多少?
买了四次牛奶,其中两次买了啤酒。 (牛奶-啤酒)的可靠度为2/4=0.5。
我买了三次啤酒,其中买了两次牛奶。 (啤酒-牛奶)的可靠度为2/3-0.67。
3.提升度
商品a的出现,衡量对商品b的出现概率的提高程度。
提升度(A-B)=置信度(A-B)/支持度(B)。
提高程度1、有提高; 上升度=1,无变化; 上升度1,下降。
4.频繁项集
项集:可以是单一商品,也可以是商品的组合。
频繁的项目集是支持大于最小支持的项目集。
计算过程
1、从K=1中筛选频繁项集。
2、在结果中,组合K 1项集,再次筛选。
循环3、1、2步。 在没有找到结果之前,中小学项目集的结果是最终结果。
扩展:FP-Growth 算法
Apriori算法需要多次扫描数据库,导致性能下降,不适合大数据量。
FP-growth算法通过构建FP树的数据结构,将数据存储在FP树中,在构建FP树时只需扫描数据库两次,无需在后续处理中访问数据库。
比喻说明:啤酒和尿布并排出售
沃尔玛的数据分析显示,美国有宝宝的家庭一般由母亲在家照看孩子,父亲去超市买尿不湿。
父亲买奥司他韦的时候,经常会配上几瓶啤酒犒劳他。 于是,超市尝试了啤酒和奥司他韦并排的促销手段,奥司他韦和啤酒的销售额竟然大幅增长。
三. AdaBoost
原理
简单的说,多个弱分类器训练成为一个强分类器。
将一系列的弱分类器以不同的权重比组合作为最终分类选择。
计算过程
1、初始化基础权重。
2、奖权重矩阵,通过已的分类器计算错误率,选择错误率最低的为最优分类器。
3、通过分类器权重公式,减少正确样本分布,增加错误样本分布,得到新的权重矩阵和当前k轮的分类器权重。
4、将新的权重矩阵,带入上面的步骤2和3,重新计算权重矩阵。
5、迭代N轮,记录每一轮的最终分类器权重,得到强分类器。
比喻说明
1、利用错题提升学习效率
做正确的题,下次少做点,反正都会了。
做错的题,下次多做点,集中在错题上。
随着学习的深入,做错的题会越来越少。
2、合理跨界提高盈利
苹果公司,软硬结合,占据了大部分的手机市场利润,两个领域的知识结合起来产生新收益。
四、C4.5(决策树)决策就是对于一个问题,有多个答案,选择答案的过程就是决策。
C4.5算法是用于产生决策树的算法,主要用于分类。
C4.5使用信息增益率做计算(ID3算法使用信息增益做计算)。
原理
C4.5选择最有效的方式对样本集进行分裂,分裂规则是分析所有属性的信息增益率。
信息增益率越大,意味着这个特征分类的能力越强,我们就要优先选择这个特征做分类。
比喻说明:挑西瓜。
拿到一个西瓜,先判断它的纹路,如果很模糊,就认为这不是好瓜,如果它清晰,就认为它是一个好瓜,如果它稍稍模糊,就考虑它的密度,密度大于某个值,就认为它是好瓜,否则就是坏瓜。
五、CART(决策树)CART:Classification And Regression Tree,中文叫分类回归树,即可以做分类也可以做回归。
什么是分类树、回归树?
分类树:处理离散数据,也就是数据种类有限的数据,输出的是样本的类别 。
回归树:可以对连续型的数值进行预测,输出的是一个数值,数值在某个区间内都有取值的可能。
回归问题和分类问题的本质一样,都是针对一个输入做出一个输出预测,其区别在于输出变量的类型。
原理
CART分类树
与C4.5算法类似,只是属性选择的指标是基尼系数。
基尼系数反应了样本的不确定度,基尼系数越小,说明样本之间的差异性小,不确定程度低。
分类是一个不确定度降低的过程,CART在构造分类树的时候会选择基尼系数最小的属性作为属性的划分。
CART 回归树
采用均方误差或绝对值误差为标准,选取均方误差或绝对值误差最小的特征。
比喻说明
分类:预测明天是阴、晴还是雨。
回归:预测明天的气温是多少度。
六、朴素贝叶斯(条件概率)朴素贝叶斯是一种简单有效的常用分类算法,计算未知物体出现的条件下各个类别出现的概率,取概率最大的分类。
原理
假设输入的不同特征之间是独立的,基于概率论原理,通过先验概率P(A)、P(B)和条件概率推算出后概率出P(A|B)。
P(A):先验概率,即在B事件发生之前,对A事件概率的一个判断。
P(B|A):条件概率,事件 B 在另外一个事件 A 已经发生条件下的发生概率。
P(A|B):后验概率,即在B事件发生之后,对A事件概率的重新评估。
比喻说明:给病人分类。
给定一个新病人,是一个打喷嚏的建筑工人,计算他患感冒的概率。
七、SVMSVM:Support Vector Machine,中文名为支持向量机,是常见的一种分类方法,最初是为二分类问题设计的,在机器学习中,SVM 是有监督的学习模型。
什么是有监督学习和无监督学习 ?
有监督学习:即在已有类别标签的情况下,将样本数据进行分类。
无监督学习:即在无类别标签的情况下,样本数据根据一定的方法进行分类,即聚类,分类好的类别需要进一步分析后,从而得知每个类别的特点。
原理
找到具有最小间隔的样本点,然后拟合出一个到这些样本点距离和最大的线段/平面。
硬间隔:数据是线性分布的情况,直接给出分类。
软间隔:允许一定量的样本分类错误。
核函数:非线性分布的数据映射为线性分布的数据。
比喻说明
1.分隔桌上一堆红球和篮球
用一根线将桌上的红球和蓝球分成两部分。
2.分隔箱子里一堆红球和篮球
用一个平面将箱子里的红球和蓝球分成两部分。
八、KNN(聚类)机器学习算法中最基础、最简单的算法之一,既能分类也能回归,通过测量不同特征值之间的距离来进行分类。
原理
计算待分类物体与其他物体之间的距离,对于K个最近的邻居,所占数量最多的类别,预测为该分类对象的类别。
计算步骤
1、根据场景,选取距离计算方式,计算待分类物体与其他物体之间的距离。
2、统计距离最近的K个邻居。
3、对于K个最近的邻居,所占数量最多的类别,预测为该分类对象的类别。
比喻说明:近朱者赤,近墨者黑。
九、K-Means(聚类)K-means是一个聚类算法,是无监督学习,生成指定K个类,把每个对象分配给距离最近的聚类中心。
原理
1.随机选取K个点为分类中心点。
2.将每个点分配到最近的类,这样形成了K个类。
3.重新计算每个类的中心点。比如都属于同一个类别里面有10个点,那么新的中心点就是这10个点的中心点,一种简单的方式就是取平均值。
比喻说明
1.选老大
大家随机选K个老大,谁离得近,就是那个队列的人(计算距离,距离近的人聚合在一起)。
随着时间的推移,老大的位置在变化(根据算法,重新计算中心点),直到选出真正的中心老大(重复,直到准确率最高)。
2.Kmeans和Knn的区别
Kmeans开班选老大,风水轮流转,直到选出最佳中心老大。
Knn小弟加队伍,离那个班相对近,就是那个班的。
十、EM(聚类)EM 的英文是 Expectation Maximization,所以 EM 算法也叫最大期望算法,也是聚类算法的一种。
EM和K-Means的区别:
EM是计算概率,KMeans是计算距离。EM属于软聚类,同一样本可能属于多个类别;而K-Means属于硬聚类,一个样本只能属于一个类别。所以前者能够发现一些隐藏的数据。原理
先估计一个大概率的可能参数,然后再根据数据不断地进行调整,直到找到最终的确认参数。
比喻说明:菜称重。
很少有人用称对菜进行称重,再计算一半的分量进行平分。
大部分人的方法是:
1、先分一部分到碟子 A 中,再把剩余的分到碟子 B 中。
2、观察碟子 A 和 B 里的菜是否一样多,哪个多就匀一些到少的那个碟子里。
3、然后再观察碟子 A 和 B 里的是否一样多,重复下去,直到份量不发生变化为止。
10大算法都已经说完了,其实一般来说,常用算法都已经被封装到库中了,只要new出相应的模型即可。