【新智元导读】 机器学习领域都有哪些常用算法?本文带来盘点。
毫无疑问,过去两年中,机器学习和人工智能的普及度得到了大幅提升。
如果你想学习机器算法,要从何下手呢?以我为例,我是在哥本哈根留学期间,学习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
那么集成方法如何工作的?为什么它们比单独的模型更好?
无监督学习
7. 聚类算法(Clustering Algorithms)
聚类就是把一组对象分组化的任务,使得在同一组的对象比起其它组的对象,它们彼此更加相似。
每种聚类算法都不同,下面是其中一些:
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
责编:XJ