十大机器学习算法及其应用 体验成重中之重
毫无疑问,过去两年中,机器学习和人工智能的普及度得到了大幅提升。
如果你想学习机器算法,要从何下手呢?以我为例,我是在哥本哈根留学期间,学习AI课程入门的。我们用的教科书是一本AI经典:《Peter Norvig’s Artificial Intelligence?—?A Modern Approach》。最近我在继续学习这些,包括在旧金山听了几个关于深度学习的技术演讲,参加机器学习大会上。六月份,我注册了Udacity的Intro to Machine Learning的在线课程,近期已经完成了。这篇文章,我想分享一些我所学到的、最常见的机器学习算法。
我从这个课程中学到了很多,并决定继续学习这一专业内容。不久前,我在旧金山听了几个关于深度学习、神经网络、数据架构方面的技术演讲,包括在一个机器学习大会上和很多领域知名专家一起。最重要的是,我六月份注册了Udacity的机器学习入门的在线课程,近期已经完成了。这篇文章,我想分享一些我所学到的、最常见的机器学习算法。
机器学习算法可以分为三个大类——有监督学习、无监督学习和强化学习。
有监督学习,对训练有标签的数据有用,但是对于其他没有标签的数据,则需要预估。
无监督学习,用于对无标签的数据集(数据没有预处理)的处理,需要发掘其内在关系的时候。
强化学习,介于两者之间,虽然没有精准的标签或者错误信息,但是对于每个可预测的步骤或者行为,会有某种形式的反溃
由于我上的是入门课程,我并没有学习强化学习,但是下面10个有监督和无监督学习算法已经足以让你对机器学习产生兴趣。
监督学习
1.决策树 (Decision Trees)
决策树是一个决策支持工具,它用树形的图或者模型表示决策及其可能的后果,包括随机事件的影响、资源消耗、以及用途。请看下图,随意感受一下决策树长这样的:
从商业角度看,决策树就是用最少的Yes/No问题,尽可能地做出一个正确的决策。它让我们通过一种结构化、系统化的方式解决问题,得到一个有逻辑的结论。
2.朴素贝叶斯分类(Naive Bayes Classification)
朴素贝叶斯分类器是一类简单概率分类器,它基于把贝叶斯定理运用在特征之间关系的强独立性假设上。下图是贝叶斯公式——P(A|B)表示后验概率,P(B|A)表示似然度,P(A)表示类别的先验概率(class prior probability),P(B)表示做出预测的先验概率(predictor prior probability)。
现实生活中的应用例子:
一封电子邮件是否是垃圾邮件
一篇文章应该分到科技、政治,还是体育类
一段文字表达的是积极的情绪还是消极的情绪?
人脸识别
3.普通最小二乘回归(Ordinary Least Squares Regression)
如果你学过统计学,你可能听过线性回归。至少最小二乘是一种进行线性回归的方法。你可以认为线性回归就是让一条直线用最适合的姿势穿过一组点。有很多方法可以这样做,普通最小二乘法就像这样——你可以画一条线,测量每个点到这条线的距离,然后加起来。最好的线应该是所有距离加起来最小的那根。
线性法表示你去建模线性模型,而最小二乘法可以最小化该线性模型的误差。
4.逻辑回归(Logistic Regression)
逻辑回归是一种非常强大的统计方法,可以把有一个或者多个解释变量的数据,建立为二项式类型的模型,通过用累积逻辑分布的逻辑函数估计概率,测量分类因变量和一个或多个独立变量之间的关系。
通常,回归在现实生活中的用途如下:
信用评估
测量市场营销的成功度
预测某个产品的收益
特定的某天是否会发生地震
5.支持向量机(Support Vector Machines)
SVM是一种二分算法。假设在N维空间,有一组点,包含两种类型,SVM生成a(N-1) 维的超平面,把这些点分成两组。比如你有一些点在纸上面,这些点是线性分离的。SVM会找到一个直线,把这些点分成两类,并且会尽可能远离这些点。
从规模看来,SVM(包括适当调整过的)解决的一些特大的问题有:广告、人类基因剪接位点识别、基于图片的性别检测、大规模图片分类…
6.集成方法(Ensemble Methods)
集成方法吸纳了很多算法,构建一个分类器集合,然后给它们的预测带权重的进行投票,从而进行分类。最初的集成方法是贝叶斯平均法(Bayesian averaging),但是最近的算法集还包括了纠错输出编码(error-correcting output coding) ,bagging和boosting
那么集成方法如何工作的?为什么它们比单独的模型更好?
它们均衡了偏差:就像如果你均衡了大量的倾向*党的投票和大量倾向共和党的投票,你总会得到一个不那么偏颇的结果。
它们降低了方差:集合大量模型的参考结果,噪音会小于单个模型的单个结果。在金融上,这叫投资分散原则(diversification)——一个混搭很多种股票的投资组合,比单独的股票更少变故。
它们不太可能过度拟合:如果你有单独的模型不是完全拟合,你结合每个简单方法建模,就不会发生过度拟合(over-fitting)
无监督学习
7. 聚类算法(Clustering Algorithms)
聚类就是把一组对象分组化的任务,使得在同一组的对象比起其它组的对象,它们彼此更加相似。
每种聚类算法都不同,下面是其中一些:
基于图心(Centroid)的算法
基于连接的算法
基于密集度的算法
概率论
降维
神经网络 / 深度学习
8.主成分分析(Principal Component Analysis)
PCA是一种统计过程,它通过正交变换把一组可能相关联的变量观察,转换成一组线性非相关的变量的值,这些非相关的变量就是主成分。
PCA的应用包括压缩、简化数据使之易于学习,可视化。需要注意的是,当决定是否用PCA的时候,领域知识特别重要。它不适用于噪音多的数据(所有成分的方差要很高才行)
9.奇异值分解(Singular Value Decomposition)
线性代数中,SVD是对一个特别复杂的矩阵做因式分解。比如一个m*n的矩阵M,存在一个分解如M = UΣV,其中U和V是酉矩阵,Σ是一个对角矩阵。
PCA其实是种简单的SVD。在计算机图形领域,第一个脸部识别算法就用了PCA和SVD,用特征脸(eigenfaces)的线性结合表达脸部图像,然后降维,用简单的方法把脸部和人匹配起来。尽管如今的方法更加复杂,依然有很多是依靠类似这样的技术。
10.独立成分分析(Independent Component Analysis)
ICA是一种统计技术。它发掘随机变量、测量数据或者信号的集合中隐含的因素。ICA定义了一种通用模型,用于观测到的多变量数据,通常是一个巨大的样本数据库。在这一模型中,假设数据变量是一些未知的、潜在的变量的线性组合,而组合方式也是未知的。同时假设,潜在的变量是非高斯分布且相互独立的,我们称之为观测数据的独立成分(Independent components)。
ICA与PCA有一定关联,但是一种更加有用的技术,在经典方法完全失效的时候,可以发现数据源中的潜在因素。它的应用包括数字图片,文件数据库,经济指数和心理测量。
现在可以开始用你对这些算法的理解,去创建机器学习应用,给大家带来更好的体验。
原文链接:
http://www.kdnuggets.com/2016/08/10-algorithms-machine-learning-engineers.html
相关资料链接:
Peter Norvig’s Artificial Intelligence?—?A Modern Approach
Intro to Machine Learning:
https://www.udacity.com/course/intro-to-machine-learning--ud120
上一篇: 夫妻小日子,过的真幽默
下一篇: 机器学习能够分析说话方式 诊疗精神疾病