James Le 在 KDnuggets 上发布了一篇文章,介绍了他是如何入门机器学习的。此外,他在其中摸索出十大常用的机器学习算法,并逐一进行介绍。AI科技评论编译如下,未经许可不得转载。
如果你想学机器学习,那怎么入门呢?对于我来说,我是这样开始我的机器学习的,首先,我选修了一门人工智能课程。教我课程的老师是Technical University of Denmark的大学教授,他的研究方向就是逻辑与人工智能。我们用的教材是人工智能的经典教材: Peter Norvig's Artificial Intelligence?—?A Modern Approach。这本书主要讲了智能主体、对抗搜索、概率论、多智能系统、AI哲学等等。这门课程我上了三个学期,最后我做了一个简单的基于搜索的智能系统,这个系统可以完成虚拟环境下的传输任务。
通过这门课程我学到了很多知识,在将来我还要继续学习。最近几周,我有幸在旧金山的举办的机器学习大会上与众多机器学习大牛交谈,我和他们聊了很多关于深度学习、神经网络、数据结构的内容。此外,我还在网上选修了一门机器学习入门课程,正巧刚刚修完。在接下来内容中,我将和大家分享我在这门课程中所学到的机器学习常用算法。
机器学习算法分为三类:有监督学习、无监督学习、增强学习。有监督学习需要标识数据(用于训练,即有正例又有负例),无监督学习不需要标识数据,增强学习介于两者之间(有部分标识数据)。下面我将向大家具体介绍机器学习中10大算法(只介绍有监督、无监督两类,暂不介绍增强学习)。
一、有监督学习
算法一:决策树
决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答yes和no问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择yes还是no),直到所有选择都进行完毕,最终给出正确答案。
算法二:朴素贝叶斯分类器
朴素贝叶斯分类器基于贝叶斯理论及其假设(即特征之间是独立的,是不相互影响的)
P(A|B) 是后验概率, P(B|A) 是似然,P(A)为先验概率,P(B) 为我们要预测的值。
具体应用有:垃圾邮件检测、文章分类、情感分类、人脸识别等。
算法三:最小二乘法
如果你对统计学有所了解,那么你必定听说过线性回归。最小均方就是用来求线性回归的。如下图所示,平面内会有一系列点,然后我们求取一条线,使得这条线尽可能拟合这些点分布,这就是线性回归。这条线有多种找法,最小二乘法就是其中一种。最小二乘法其原理如下,找到一条线使得平面内的所有点到这条线的欧式距离和最小。这条线就是我们要求取得线。
线性指的是用一条线对数据进行拟合,距离代表的是数据误差,最小二乘法可以看做是误差最小化。
算法四:逻辑回归
逻辑回归模型是一个二分类模型,它选取不同的特征与权重来对样本进行概率分类,用一各log函数计算样本属于某一类的概率。即一个样本会有一定的概率属于一个类,会有一定的概率属于另一类,概率大的类即为样本所属类。
具体应用有:信用评级、营销活动成功概率、产品销售预测、某天是否将会地震发生。
算法五:支持向量机(SVM)
支持向量机是一个二分类算法,它可以在N维空间找到一个(N-1)维的超平面,这个超平面可以将这些点分为两类。也就是说,平面内如果存在线性可分的两类点,SVM可以找到一条最优的直线将这些点分开。SVM应用范围很广。
具体应用有:广告展示、性别检测、大规模图像识别等。
算法六:集成学习
集成学习就是将很多分类器集成在一起,每个分类器有不同的权重,将这些分类器的分类结果合并在一起,作为最终的分类结果。最初集成方法为贝叶斯决策,现在多采用error-correcting output coding, bagging, and boosting等方法进行集成。
那么为什集成分类器要比单个分类器效果好呢?
1.偏差均匀化:如果你将民主党与共和党的投票数算一下均值,可定会得到你原先没有发现的结果,集成学习与这个也类似,它可以学到其它任何一种方式都学不到的东西。
2.减少方差:总体的结果要比单一模型的结果好,因为其从多个角度考虑问题。类似于股票市场,综合考虑多只股票可以要比只考虑一只股票好,这就是为什么多数据比少数据效果好原因,因为其考虑的因素更多。
3.不容易过拟合。如果的一个模型不过拟合,那么综合考虑多种因素的多模型就更不容易过拟合了。
二、无监督学习
算法七:聚类算法
聚类算法就是将一堆数据进行处理,根据它们的相似性对数据进行聚类。
聚类算法有很多种,具体如下:中心聚类、关联聚类、密度聚类、概率聚类、降维、神经网络/深度学习。
算法八:主成分分析(PCA)
主成分分析是利用正交变换将一些列可能相关数据转换为线性无关数据,从而找到主成分。
PCA主要用于简单学习与可视化中数据压缩、简化。但是PCA有一定的局限性,它需要你拥有特定领域的相关知识。对噪音比较多的数据并不适用。
算法九:SVD矩阵分解
SVD矩阵是一个复杂的实复负数矩阵,给定一个m 行、n列的矩阵M,那么M矩阵可以分解为M = UΣV。U和V是酉矩阵,Σ为对角阵。
PCA实际上就是一个简化版本的SVD分解。在计算机视觉领域,第一个脸部识别算法就是基于PCA与SVD的,用特征对脸部进行特征表示,然后降维、最后进行面部匹配。尽管现在面部识别方法复杂,但是基本原理还是类似的。
算法十:独立成分分析(ICA)
ICA是一门统计技术,用于发现存在于随机变量下的隐性因素。ICA为给观测数据定义了一个生成模型。在这个模型中,其认为数据变量是由隐性变量,经一个混合系统线性混合而成,这个混合系统未知。并且假设潜在因素属于非高斯分布、并且相互独立,称之为可观测数据的独立成分。
ICA与PCA相关,但它在发现潜在因素方面效果良好。它可以应用在数字图像、档文数据库、经济指标、心里测量等。
以上就是我对机器学习算法的一些简单介绍,现在你可以通过我的介绍与你自己的理解,好好思考机器学还可以在我们的日常生活中有哪些应用。
AI科技评论总结:实际上这些机器学习算法并不是全都像想象中一样复杂,有些还和高中数学紧密相关。不过如何学以致用举一反三,不仅是机器学习的核心,也同样是每个人学习的核心要义。
CIO之家 www.ciozj.com 公众号:imciow