10大机器学习算法及应用,你知道几个?
来源:kdnuggets
作者:James Le
翻译:序媛
本文导读:本文将为大家盘点,机器学习领域都有哪些常用的算法。
毫无疑问,在过去两年中,机器学习和人工智能的普及度都得到了大幅提升。
机器学习算法可分为三个大类:有监督学习、无监督学习和强化学习。
有监督学习,对训练有标签的数据有用,但对于其他没有标签的数据,则需要预估。
无监督学习,用于对无标签的数据集(数据没有预处理)的处理,需要发掘其内在关系时使用。
强化学习,介于两者之间,虽然没有精准的标签或错误信息,但是对于每个可预测的步骤或行为,会有某种形式的反馈。
今天我们将在监督学习、无监督学习两大类机器学习算法中,挑选出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.人工神经网络(Artificial Neural Network,ANN)
神经网络全称人工神经网络,是对人类大脑结构的简单抽象。早在深度学习流行前,神经网络就已经是很著名的机器学习方法。神经网络基于网络结构,对人脑中神经系统处理复杂信息的机制进行模拟。其特点主要有非线性、很强的学习能力和自适应性。神经网络由简单的信息处理单元(又称神经元)互联而成。
现实生活中的应用例子:
通话语音识别
手写数字图像的识别分类
预测某个产品的价格变化
8. 聚类算法(Clustering Algorithms)
聚类,是把一组对象分组化的任务,使得在同一组的对象比其它组的对象,彼此间更加相似。
每种聚类算法均不同,下面是其中的一些算法:
基于图心(Centroid)的算法
基于连接的算法
基于密集度的算法
概率论
降维
神经网络 / 深度学习
9.主成分分析(Principal Component Analysis)
PCA是一种统计过程,它通过正交变换把一组可能相关联的变量观察,转换成一组线性非相关的变量值,这些非相关的变量就是主成分。
PCA的应用包括压缩、简化数据使之易于学习、可视化。需要注意的是,当决定是否用PCA的时候,领域知识特别重要。它不适用于噪音多的数据(所有成分的方差要很高才行)。
10.奇异值分解(Singular Value Decomposition)
线性代数中,SVD是对一个特别复杂的矩阵做因式分解。比如一个m*n的矩阵M,存在一个分解如M = UΣV,其中U和V是酉矩阵,Σ是一个对角矩阵。
PCA其实是种简单的SVD。在计算机图形领域,第一个脸部识别算法就用了PCA和SVD,用特征脸(eigenfaces)的线性结合表达脸部图像,然后降维,用简单的方法把脸部和人匹配起来。
原文链接:
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
【相关阅读】
▼
【近期回顾】
▼
欢迎转载~