第5章 常见的算法和分类 5-2 机器学习常见算法和分类(2)
C4.5和CART都属于决策树算法。决策树算法它既可以解决分类问题,也可以解决回归问题。C4.5和CART属于有监督的学习算法。
K-Means属于无监督的学习算法,因为它训练数据集里面是没有每一个样本的分类信息的。这个分类信息只能说我们聚好了类之后我们自己去往里面添。
SVM是一个分类算法,当然它也可以解决回归问题。SVM主要被用来解决分类问题。SVM曾经被认为是分类效果最好的一种算法。某个算法好不好经常被拿来和SVM相提并论。SVM背后有着一套非常完备、深厚的数学理论的支撑。AdaBoost分类算法效果会比较好,但是效果为什么好大家又解释不清楚。SVM它既效果好,而且它又有深厚的理论去解释为什么这么好。所以它一度是备受推崇的一种算法。只不过这些年它被深度学习给盖过去了,深度学习是这些年非常火的一种学习算法,一个机器学习的方向。深度学习的光芒盖过了SVM支持向量机,但是SVM支持向量机它相对来说有一定的数学门槛,所以这个东西是机器学习面试必考的一个问题。有的人会让你推一下SVM的过程。
关联分析的Apriori是一个已经淘汰的算法,因为这个算法的代价非常高,就是它得多次访问你的数据库的记录。你在大数据的环境下,你访问一次都受不了了还多次去访问。但是Apriori它最早解决了频繁相机挖掘这个问题,所以这个算法也是曾经很重要的。
Apriori后来居上的一个算法,FP-Growth算法。FP-Growth也是要解决关联规则的问题。FP-Growth算法是我们华人发明的,但这是一个美籍华人教授韩家炜发明的。FP-Growth算法解决了Apriori算法的性能问题。FP-Growth算法只需要对数据库做两次扫描就可以完成频繁相机的挖掘,这个就比较牛逼了,之前的Apriori算法得对数据库做N次扫描,这个性能代价太大了。各大电商网站的推荐系统实际上解决的就是关联规则的买了又买的问题,现在也不大用FP-Growth算法了,我们有更多的推荐算法了。
理解EM算法有难度,因为它并不是为了解决某个特定问题的,例如C4.5就是为了解决一个分类问题的,K-Means算法就是为了解决一个聚类问题,SVM就是为解决分类问题,Apriori就是为了解决频繁相机的问题。EM算法并不是为了解决哪一类具体的应用问题。EM算法是一个总的算法框架,然后在很多很著名的算法中都能看到这个EM算法的这个身影。比如说K-Means算法其实在本质就是属于一个EM算法。由于它相对来说比较抽象,所以理解起来会有一定的难度。
那么基本上大部分的人脸识别都是基于AdaBoost来做出来的。那这个呢其实本质上就是一个决策树。它只不过是一个决策树的一个感性版,所以它也是本质上是要解决分类问题的。
kNN跟K-Means比较像,但是它俩解决的问题不一样。一个是解决分类问题,一个是解决聚类问题。kNN属于有监督的学习,K-Means属于无监督的学习。AdaBoost也属于有监督的学习。
做垃圾邮件识别都是用的朴素贝叶斯算法。
C4.5和CART应该算是一个现在不大在用的算法了。
FP-Growth算法是华人发明出来的。华人在计算机届或者数学届其实对于这个领域贡献并不是那么很多,并没有什么原创性的发明出来。FP-Growth算法是华人发明出来的,这是很牛叉的一件事。
百度谷歌的推荐,搜索结果的排序,其实用的就是逻辑回归的算法。
RF(随机森林)、GBDT这两个都是跟那个AdaBoost是差不多的。它们都属于对于一个决策树算法的一个改进。
各大电商网站的标配,推荐算法。
LDA,用作文本分析的,或者说自然语言处理一种算法。
谷歌提出World2Vector,基本上现在做文本挖掘的都会用这么个东西。World2Vector其实它最终是一个结果,然后它里面会用到一系列的算法。