for 实习之图像类

机器学习常见算法分类汇总:

1. 学习方式:

分类介绍应用场景常见算法
监督式学习输入数据被称为训练数据,每组训练数据有一个明确的标识或结果,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。常见应用场景如分类问题和回归问题常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)
非监督式学习数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法以及k-Means算法。
半监督式学习在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM)等。
强化学习在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning以及时间差学习(Temporal difference learning)

2. 根据算法的功能和形式的类似性:

分类介绍应用场景常见算法
回归算法试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器常见的回归算法包括:最小二乘法、逻辑回归、 逐步式回归、 多元自适应回归样条、 以及本地散点平滑估计
基于实例的算法常用来对决策问题建立模型,这样的模型常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization,LVQ)以及自组织映射算法(self-organizing map,SOM)
正则化方法是其它算法(通常回归算法)的延伸,根据算法的复杂度对算法进行调整。对于简单模型予以奖励,对复杂算法予以惩罚Ridge Regression,least absolute shrinkage and selection operator(LASSO),弹性网络(elastic net)
决策树学习决策树算法根据数据的属性采用树状结构建立决策模型,决策树模型常常用来解决分类和回归问题常见的算法包括:分类及回归树,ID3(Iterative Dichotomiser 3),C4.5,随机森林,多元自适应回归样条,梯度推进机,Decision Stum
贝叶斯方法贝叶斯方法算法是基于贝叶斯定理的一类算法主要用来解决分类和回归问题常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)
基于核的算法基于核的算法把输入数据映射到一个高阶的向量空间,在这些高阶向量空间里,有些分类或者回归问题能够更容易的解决常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等
聚类算法聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。
关联规则学习关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。
人工神经网络人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ)
深度学习深度学习算法是对人工神经网络的发展。 在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。 很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集常见的深度学习算法包括:受限波尔兹曼机(RBN),Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)
降低维度算法降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(Projection Pursuit)等
集成算法集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。

3.部分算法简介

算法优点缺点
Logistic回归用来分类的,是一种线性分类器,主要是用最大似然估计来学习的。1、实现简单;2、分类时计算量非常小,速度很快,存储资源低;1、容易欠拟合,一般准确度不太高;2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;
决策树很重要的一点就是选择一个属性进行分枝,因此要注意信息增益的计算公式。 以信息增益为原则,把所有的属性都测试一遍,选择一个使增益最大的属性作为本次分枝属性。剪枝是决策树停止分支的方法之一; 机器学习中,决策树是一个预测模型;计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;缺点: 容易过拟合(后续出现了随机森林,减小了过拟合现象);
线性回归才是真正用于回归的,而不像logistic回归是用于分类,其基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化,实现简单,计算简单;不能拟合非线性数据;
KNN算法(kNN,k-Nearest Neighbor)主要过程:1、计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);2. 对上面所有的距离值进行排序;3. 选前k个最小距离的样本;4. 根据这K个样本的标签进行投票,得到最后的分类类别。一般情况下,在分类时较大的K值能够减小噪声的影响。但会使类别之间的界限变得模糊。一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。思想简单,理论成熟,既可以用来做分类也可以用来做回归;可用于非线性分类;训练时间复杂度为O(n);准确度高,对数据没有假设,对outlier(异常值)不敏感;计算量大;样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);需要大量的内存;
SVMsvm中的最优分类面是对所有样本的几何裕量最大可用于线性/非线性分类,也可以用于回归;低泛化误差;计算复杂度较低;对参数和核函数的选择比较敏感;原始的SVM只比较擅长处理二分类问题;
GDBT(Gradient Boosting Decision Tree)又叫 MART ,它是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的输出结果累加起来就是最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。GBDT是回归树,不是分类树。其核心就在于,每一棵树是从之前所有树的残差(预测值+残差=实际值)中来学习的。为了防止过拟合,和Adaboosting一样,也加入了boosting这一项。 决策树分为两大类,回归树和分类树。前者用于预测实数值,如明天的温度、用户的年龄、网页的相关程度;后者用于分类标签值,如晴天/阴天/雾/雨、用户性别、网页是否是垃圾页面。
可以估计样本的密度函数,对于新样本直接计算其密度,如果密度值小于某一阈值,则表示该样本异常。而密度函数一般采用多维的高斯分布。如果样本有n维,则每一维的特征都可以看作是符合高斯分布的,
Boosting算法(例:Adaboost)由不同权重的样本训练得到多个弱分类器,通过一个弱分类器,得到样本的分类预测标签。与给出的样本真实标签对比,就可能出现误差。利用误差计算弱分类器的权重,弱分类器通过加权平均输出最终分类结果低泛化误差;容易实现,分类准确率较高,没有太多参数可以调;对异常值敏感

机器学习中常见的几种最优化方法

最优化方法
梯度下降法用当前位置负梯度方向作为搜索方向, 越接近目标值,步长越小,前进越慢。 在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。 批量梯度下降—最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下。随机梯度下降—最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于大规模训练样本情况。
牛顿法使用函数的泰勒级数的前面几项来寻找方程的根。牛顿法最大的特点就在于它的收敛速度很快,二阶收敛。牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。
拟牛顿法拟牛顿法是求解非线性优化问题最有效的方法之一, 拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。 常用的拟牛顿法有DFP算法和BFGS算法( BFGS算法被认为是数值效果最好的拟牛顿法,并且具有全局收敛性和超线性收敛速度)
共轭梯度法共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。 其优点是所需存储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。
启发式优化方法包括经典的模拟退火方法、遗传算法、蚁群算法以及粒子群算法等等。

机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在深度学习很火热,神经网络也是一个不错的选择。假如你在乎精度(accuracy)的话,最好的方法就是通过交叉验证(cross-validation)对各个算法一个个地进行测试,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个。

交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值