机器学习算法优缺点改进总结[共5篇]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机器学习算法优缺点改进总结[共5篇]
第一篇:机器学习算法优缺点改进总结
Lecture 1 Introduction to Supervised Learning(1)Expectatin Maximization(EM)Algorithm(期望值最大)(2)Linear Regression Algorithm(线性回归)(3)Local Weighted Regression(局部加权回归)(4)k-Nearest Neighbor Algorithm for Regression(回归k近邻)(5)Linear Classifier(线性分类)(6)Perceptron Algorithm(线性分类)(7)Fisher Discriminant Analysis or Linear Discriminant Analysis(LDA)(8)k-NN Algorithm for Classifier(分类k近邻)(9)Bayesian Decision Method(贝叶斯决策方法)Lecture 2 Feed-forward Neural Networks and BP Algorithm (1)Multilayer Perceptron(多层感知器)(2)BP Algorithm Lecture 3 Rudiments of Support Vector Machine(1)Support Vector Machine(支持向量机)(此算法是重点,必考题)此处有一道必考题
Lecture 4 Introduction to Decision Rule Mining(1)Decision Tree Algorithm(2)ID3 Algorithm(3)C4.5 Algorithm(4)粗糙集……
Lecture 5 Classifier Assessment and Ensemble Methods(1)Bagging(2)Booting(3)Adaboosting Lecture 6 Introduction to Association Rule Mining(1)Apriori Algorithms(2)FP-tree Algorithms Lecture 7 Introduction to Custering Analysis(1)k-means Algorithms(2)fuzzy c-means Algorithms(3)k-mode Algorithms(4)DBSCAN Algorithms Lecture 8 Basics of Feature Selection(1)Relief Algorithms(2)ReliefF Algorithms(3)mRMR Algorithms最小冗余最大相关算法(4)attribute reduction Algorithms
比较了几种分类算法性质。

(以下两个表格来自两篇该领域经典论文)
Lecture 1 Introduction to Supervised Learning(1)Expectatin Maximization(EM)Algorithm(期望值最大)①算法思想:EM算法又称期望最大化算法,是对参数极大似然估计的一种迭代优化策略,它是一种可以从非完整的数据集中对参数进行极大似然估计的算法,应用于缺损数据,截尾数据,带有噪声的非完整数据。

最大期望算法经过两个步骤交替进行计算:
第一步计算期望(E):也就是将隐藏的变量对象能够观察到的一样包含在内,从而计算最大似然的期望值;
另外一步是最大化(M),也就是最大化在E步上找到的最大似然期望值,从而计算参数的似然估计。

M步上找到的参数然后用于另一个E步计算。

重复上面2步直至收敛。

②优点:1)M步仅涉及完全数据极大似然,通常计算比较简单
2)收敛是稳定的,因为每次迭代的似然函数是不断增加的。

③缺点:1)表现在对缺失数据较多或是多维高斯分布的情形下,计算量大,收敛速度较慢。

2)对于某些特殊的模型,要计算算法中的M步,即完成对似然函数的估计是比较困难的。

3)在某些情况下,要获得EM算法中E步的期望显式是非常困难的。

4)EM算法的收敛速度,非常依赖初始值的设置,设置不当,计算代价相当大。

5)EM算法中的M-Step依然是采用求导函数的方法,所以它找到的是极值点,即局
部最优解,而不一定是全局最优解。

④改进:针对1)改进:扩大参数空间来加快收敛
针对2)改进:ECM算法,该算法通过在M步构建计算比较简单的小循环对EM
算法进行了改进,从而使期望函数极大化更加容易和有效,从而解决这一问题。

针对3)改进:MCEM算法,将E步积分求期望用蒙特卡洛模拟方法来实现,使
得E步求期望更容易实现。

针对4)初始值的获取可以通过k-means算法,层次聚类算法或是数据数据进行随
机分割,然后重复EM效果进行初始点选择。

针对5)结合遗传算法的全局搜索能力,扩大EM算法的搜索空间,有效降低EM
算法对初始值的依赖度,改善局部最优值的缺陷。

(2)Linear Regression Algorithm(线性回归)①算法思想:
线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。

这种函数是一个或多个称为回归系数的模型参数的线性组合。

只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。

回归模型:
i
其中 和C是未知参数,对于每个训练样本(xi,yi)可得到h(xi),用来预测真实值y。

损失函数:
即误差值的平方。

1:对于训练集,求取θ,使得损失函数最小。

(使用最小二乘法,梯度下降法)2:对于新输入x,其预测输出为θTx ②优点:结果易于理解,实现简单,计算简单
③缺点:1)对于非线性的数据拟合效果不好(原因:因为线性回归将数据视为线性的,可能出现欠拟合现象,导致结果不能取得最好的预测效果)
2)如果训练数据如果有些数据偏差特别大,这回造成最后训练的模型可能对整体
具备很好的准确性
④改进:针对2)改进:局部加权回归
数据都不(3)Local Weighted Regression(局部加权回归)①算法思想:
给每个待预测点周围的点赋予一定的权重,越近的点权重越高,以此来选出该预测点对应的数据子集,然后在此数据子集上基于最小均方差进行普通的回归.局部加权回归实质上是对于需要预测的点,只是根据其附近的点进行训练,其他的没有改变。

对于局部线性加权算法:
1:对于输入x,找到训练集中与x邻域的训练样本
2:对于其邻域的训练样本,求取θ,使得其
∈x的邻域)最小。

其中w(i)为权重值。

3.预测输出为θTx
4.对于新输入,重复1-3过程。

其中
τ 为带宽(bandwidth)常量,距离输入越远,权重越小,反之越大。

②优点:1)局部加权回归还是对训练数据拟合的比较好
2)不太依赖特征的选择,而且只需要用线性模型就能够训练出不错的拟合模型、③缺点:1)计算量较大。

(因为局部加权回归的损失数随着预测值的不同而不同,这样θ
就无法事先确定,每次预测时都需要扫描所有的数据并重新计算θ)2)局部加权回归容易出现过拟合现象,过拟合现象很明显
3)关注局部的训练数据,忽略了全局数据,如果预测点在出现偏差的训练数据附
近,那么预测值会偏差很大。

④改进:
(4)k-Nearest Neighbor Algorithm for Regression(回归k近邻)①算法思想:
通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。

更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。

如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

KNN算法不仅可以用于分类,还可以用于回归。

通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。

更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成反比。

②优点:1)简单、有效。

2)重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的)。

3)计算时间和空间线性于训练集的规模(在一些场合不算太大)。

4)由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

5)该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

③缺点:(1)KNN在对属性较多的训练样本进行分类时,由于计算量大而使其效率大大降低,效果不是很理想。

(2)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。

(3)对数据的局部结构比较敏感。

如果查询点是位于训练集较密集的区域,那预测相对比其他稀疏集来说更准确。

(4)对k值敏感。

(5)维数灾难:临近距离可能被不相干属性主导(因此特征选择问题)④改进:
(1)分类效率:事先对样本属性进行约简,删除对分类结果影响较小的属性,快速的得出待分类样本的类别。

该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

(2)分类效果:采用权值的方法(和该样本距离小的邻居权值大)来改进,Han等人于2002年尝试利用贪心法,针对文件分类实做可调整权重的k最近邻居法WAkNN(weighted
adjusted k nearest neighbor),以促进分类效果;而Li等人于2004年提出由于不同分类的文件本身有数量上有差异,因此也应该依照训练集合中各种分类的文件数量,选取不同数目的最近邻居,来参与分类。

(3)该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。

该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。

无论怎样,数量并不能影响运行结果。

可以采用权值的方法(和该样本距离小的邻居权值大)来改进。

(4)K 值的选择会对算法的结果产生重大影响。

K值较小意味着只有与输入实例较近的训练实例才会对预测结果起作用,但容易发生过拟合;如果K 值较大,优点是可以减少学习的估计误差,但缺点是学习的近似误差增大,这时与输入实例较远的训练实例也会对预测起作用,是预测发生错误。

在实际应用中,K 值一般选择一个较小的数值,通常采用交叉验证的方法来选择最优的K 值。

随着训练实例数目趋向于无穷和 K=1 时,误差率不会超过贝叶斯误差率的2倍,如果K也趋向于无穷,则误差率趋向于贝叶斯误差率。

(5)该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。

目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。

该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

(5)Linear Classifier(线性分类器)①算法思想:线性分类器使用线性判别函数,实现线性判别函数分类的方法有感知器算法、LMSE分类算法和Fisher分类。

在分类问题中,因变量Y可以看做是数据的label,属于分类变量。

所谓分类问题,就是能够在数据的自变量X空间内找到一些决策边界,把label不同的数据分开,如果某种方法所找出的这些决策边界在自变
量X空间内是线性的,这时就说这种方法是一种线性分类器。

C1和C2是要区分的两个类别,在二维平面中它们的样本如上图所示。

中间的直线就是一个分类函数,它可以将两类样本完全分开。

线性分类器在数学上被理解为线性判别函数(Linear Discriminant Functions),在几何上可以理解为决策超平面(Decision Hyperplanes)。

②优点:算法简单
③缺点:只能处理线性问题
④改进:要处理其他非线性问题,可以向高维转化,例如用SVM 方法。

线性分类器是分类方法,不是具体算法。

(6)Perceptron Algorithm(感知器算法)①算法思想:
感知机(Perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。

感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。

②优点:
(1)感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式。

算法简单且易于实现;
(2)它提出了自组织自学习的思想。

对能够解决的问题有一个收敛的算法,并从数学上给出了严格的证明。

(3)当样本线性可分情况下,学习率合适时,算法具有收敛性。

③缺点:
(1)即感知机无法找到一个线性模型对异或问题进行划分。

(2)其实不光感知机无法处理异或问题,所有的线性分类模型都无法处理异或分类问题。

(3)收敛速度慢;当样本线性不可分情况下,算法不收敛,且无法判断样本是否线性可分。

④改进:单个感知器虽然无法解决异或问题,但却可以通过将多个感知器组合,实现复杂空间的分割。

(7)线性判别分析(LDA,Linear Discriminant Analysis)①基础概念
(1)判别分析概念
根据已知对象的某些观测指标和所属类别来判断未知对象所属类别的统计方法。

利用已知类别的样本信息求判别函数,根据判别函数对未知样本所属类别进行判别。

(2)判别分析分类
按判别组数来分,有两组判别分析和多组判别分析
按数学模型(函数形式)来分,有线性判别分析和非线性判别分析
按判别方法来分,有Fisher判别分析、Bayes判别分析和距离判别(K-NN)注:线性判别分析就是一般化的Fisher判别分析(3)Fisher判别分析与Bayes判别分析优缺点比较
Fisher判别方法对总体分布没有特殊要求,但是Fisher判别法未考虑各总体出现概率的大小,不能给出后验概率以及错判造成的损失。

Bayes判别法可以给出后验概率以及错判造成的损失。

但是要求即各种变量必须服从多元正态分布、各组协方差矩阵必须相等、各组变量均值均有显著性差异。

②LDA缺点
LDA有两个突出缺点:(1)处理高维图像时容易产生“小样本问题”, 即样本维数大大超过训练图像个数的问题;(2)由此引发的边缘类主导特征空间分解的问题。

(3)LDA的其余缺点(限制):LDA至多可生成C-1维子空间。

LDA不适合对非高斯分布的样本进行降维。

LDA在样本分类信息依赖方差而不是均值时,效果不好。

LDA可能过度拟合数据。

③针对“小样本问题”的改进方法
可以利用本文设计的改进PCA 算法与LDA 算法相结合来解决小样本问题,即将结合了基于标准差和局部均值的图像增强处理算法的PCA 算法与LDA 算法相结合。

具体的应用过程即为: 先采用改进的PCA 算法对样本进行降维处理,以便确保样本的类内离散度矩阵为非奇异的,利用改进的PCA 算法将原始样本图像往一个特征子空间中投影,从而使得样本的类内离散度矩阵是非奇异的。

再利用LDA 算法在次特征子空间中求得最优变换。

LDA与PCA的比较
两者都是为了在对原始数据降维之后进行分类。

PCA(Principal Component Analysis,主成分分析)是无监督的方式,它没有分类标签,降维之后需要采用K-Means或自组织映射网络等无监督的算法
进行分类。

LDA是有监督的方式,它先对训练数据进行降维,然后找出一个线性判别函数。

(8)k-NN(k-Nearest Neighbor for classifier,分类最近邻估计)①算法思想:(1)k-NN介绍
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

KNN算法中,所选择的邻居都是已经正确分类的对象。

该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。

(2)k-NN概念
k-NN算法通常以“欧氏距离(Euclidean Distance)”为其分类模型, 欧氏距离公式的定义如下: 设在n 维空间中有两个点X =(x1,x2,…,xn)和Y =(y1,y2,…,yn), 它们之间的欧氏距离定义为:
其中, n是维数, Xi和Yi分别是X和Y的第k个属性值。

②优点
(1)简单,易于理解,易于实现,无需估计参数,无需训练
(2)适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)
(3)特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好.③缺点
(1)计算量大,由于要逐个计算到每条记录的欧氏距离, 对于海量数据, 该算法时间效率非常低。

它在对每一个查询实例(Query Instance)进行分类时, 都需要搜索整个训练集来寻找最近邻, 所以它的运算开销巨大, 时间代价高昂, 这导致了它的运行速度非常低下。

(2)可解释性较差,无法给出决策树那样的规则。

(3)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。

该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。

无论怎样,数量并不能影响运行结果。

(4)由于所有属性均等地参与计算, 没有突出属性的重要程度, 分类结果易受单
个属性的影响;④改进
缺点1:目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。

该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

缺点4:利用信息增益来衡量属性的重要程度(即属性权重系数),将属性划分为关键属性、次要属性及无关属性, 解决属性均等用力的问题;缺点3,可考虑从K值设定回答
1、k值设定为多大?
k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。

(对距离加权,可以降低k值设定的影响)k值通常是采用交叉检验来确定(以k=1为基准)经验规则:k一般低于训练样本数的平方根
补充去年相关习题:
请阐述 kNN近邻分类算法的基本思想,并分析它的主要优缺点。

关于 k 的取值,你有什么合理的建议(至少 1 条)。

优点
(1)简单,易于理解,易于实现,无需估计参数,无需训练
(2)适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)(3)特别适合于多分类问题,例如根据基因特征来判断其功能分类,kNN比SVM的表现要好缺点
(1)懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢
(2)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数;
(3)可解释性较差,无法给出决策树那样的规则。

k值设定
k值选择过小,得到的近邻数过少,会降低分类精度,同时也会放大噪声数据的干扰;而如果k值选择过大,并且待分类样本属于训练集中包含数据数较少的类,那么在选择k个近邻的时候,实际上并不相似的数据亦被包含进来,造成噪声增加而导致分类效果的降低。

k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太
多的其它类别的点。

(对距离加权,可以降低k值设定的影响)K值设定的建议
k值通常是采用交叉检验来确定(以k=1为基准)k一般低于训练样本数的平方根
(9)贝叶斯决策方法(Bayesian Decision Method)①贝叶斯决策概念
贝叶斯决策(Bayesian Decision Theory)就是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策。

贝叶斯决策属于风险型决策,决策者虽不能控制客观因素的变化,但却掌握其变化的可能状况及各状况的分布概率,并利用期望值即未来可能出现的平均状况作为决策准则。

贝叶斯决策理论方法是统计模型决策中的一个基本方法,其基本思想是:
已知类条件概率密度参数表达式和先验概率。

利用贝叶斯公式转换成后验概率。

根据后验概率大小进行决策分类。

②贝叶斯决策方法优缺点优点:贝叶斯决策能对信息的价值或是否需要采集新的信息做出科学的判断
它能对调查结果的可能性加以数量化的评价,而不是像一般的决策方法那样,对调查结果或者是完全相信,或者是完全不相信
如果说任何调查结果都不可能完全准确,先验知识或主观概率也不是完全可以相信的,那么贝叶斯决策则巧妙地将这两种信息有机地结合起来了
它可以在决策过程中根据具体情况下不断地使用,使决策逐步完善和更加科学缺点:
它需要的数据多,分析计算比较复杂,特别在解决复杂问题时,这个矛盾就更为突出
有些数据必须使用主观概率,有些人不太相信,这也妨碍了贝叶斯决策方法的推广使用③贝叶斯决策改进方法
将决策问题转化成收益矩阵,通过对收益矩阵的分析,得出各行动方案的期望值,按照一定的准则选出最优方案。

以各状况下最大收益值或效用值为基础,求出MaxE(x),以此作为完全确定情况下的收益值,用该值减去最优方案的期望值得出完全信息价值(EVPⅠ),根据完全信息期望值判断是否需要补充信息量。

在第2步得到肯定回答后,首先在预先后验分析中从理论上把各种可能的抽样方案及结果列举出来,计算各种抽样方案的抽样信息期望值EVSI=EVPI-R(n),其中R(n)为抽样风险,其大小是样本大小的函数。

以EVSI-C(其中C为抽样成本)作为标准选取最大值对应的抽样方案为最优抽样方案。

按照理论上得出的最优抽样方案进行抽样,然后,根据贝叶斯理论公式推导出后验概率分布的数字描述,最后,以此为依据按照贝叶斯决策准则选出最优方案。

补充朴素贝叶斯
朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。

同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。

理论上,NBC模型与其他分类方法相比具有最小的误差率。

但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。

在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。

而在属性相关性较小时,NBC模型的性能最为良好。

补充朴素贝叶斯优点:
1)朴素贝叶斯算法是基于贝叶斯理论,逻辑清楚明了
2)本算法进行分类是,时间快,在内存上需要的也不大
3)本算法鲁棒性高,即使数据包含的噪声点,无关属性和缺失值的属性,分类性能不好又太大的变化,健壮性好
补充朴素贝叶斯算法缺点:
1)朴素贝叶斯算法要求样本各属性直接是独立的,而真实的数据符合这个条件很少。

2)当样本数据少时,分类器可能会无法正确分类
Lecture 2 Feed-forward Neural Networks and BP Algorithm (1)Multilayer Perceptron(多层感知器)①算法思想
多层感知器(Multilayer Perceptron,缩写MLP)是一种前向结构的人工神经网络。

MLP算法一般包括三层,分别是一个输入层,一个输出层和一个或多个隐藏层的神经网络组成。

一个“神经元”的输出就可以是另一个“神经元”的输入。

MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。

除了输入节点,每个神经元都有几个输入和输出神经元,每个神经元通过输入权重加上偏置计算输出值,并选择一种激活函数进行转换。

一种被称为反向传播算法(BP)的监督学习方法常被用来训练MLP。

MLP是感知器的推广,克服了感知器不能对线性不可分数据进行识别的弱点。

激活函数
若每个神经元的激活函数都是线性函数,那么,任意层数的MLP 都可被约简成一个等价的单层感知器。

实际上,MLP本身可以使用任何形式的激活函数,但为了使用反向传播算法进行有效学习,激活函数必须限制为可微函数。

由于具有良好可微性,很多乙形函数,尤其是双曲正切函数(Hyperbolic tangent)及逻辑乙形函数(logistic sigmoid function),被采用为激活函数。

激活函数常见的有三种,分别是恒等函数,Sigmoid函数和高斯函数。

②优点:
(1)高度的并行性
人工神经网络是由许多相同的简单处理单元并联组合而成,虽然每个单元的功能简单,但大量简单单元的并行活动,使其对信息的处理能力与效果惊人。

(2)高度的非线性全局作用
神经网络系统是由大量简单神经元构成的,每个神经元接受大量其他神经元的输入,通过非线性输入、输出关系,产生输出影响其它神经元。

网络就是这样互相制约相互影响,实现从输入状态空间到输出状态空间非线性映射的。

网络的演化遵从全局性作用原则,从输入状态演化到终态而输出。

从全局观点来看,网络整体性能不是网络局。

相关文档
最新文档