各大机器学习算法的总结

本文主要用凝练的总结描述各个机器学习算法的特性,优缺点,使用的数学原理和技术,以及应用场景。这些总结整理一方面提供给大家对机器学习更全局的观察和了解,也能一定程度上帮助大家在面试时思路更清晰。

主要梳理的算法有KNN,贝叶斯,决策树,PCA,LDA,K-MEANS,DBSCAN,SVM,随机森林, AdaBoost, GBDT, XGBoost,LightGBM,EM,GMM,HMM。

 

KNN(有监督,分类/回归,判别算法)

一句话总结:是一种懒惰学习,没有显式的学习训练过程。基本思路是通过距离判别,如欧氏距离来判别一个样本在特征空间中的K个最邻近的大多数样本所属的类别,就划分为那个类。算法主要确定K值得选择,距离度量的选择还有分类决策的规则。K值一般由人工选择,距离度量有多种,欧氏距离,曼哈顿距离,马氏距离和巴氏距离。

算法思想:模板匹配+投票

算法策略:分类决策规则就是最小化经验风险,经验风险就是统计误分类的数量。

实现细节:可以构造kd树提高计算速度。K值选择奇数,偏小则模型复杂容易过拟合,偏大则模型简单容易欠拟合。

优点:实现简单,对异常值不敏感,可以用来填充缺失值。

缺点:训练集大时耗时耗空间。样本不均衡效果不好,无法给出数据内在含义。

知识点:距离度量,树结构。

使用场景:手写字体识别,约会对象分类

 

贝叶斯分类(有监督,分类,生成算法)

一句话总结:使用利用贝叶斯全概率公式,由训练数据学习联合概率分布P(X,Y),然后得到后验概率。即根据先验概率和条件概率计算后验概率,再根据贝叶斯估计求得最大后验概率的类,即为预测的分类。

算法思想:经验概率

算法策略:0-1损失函数期望风险最小化准则得到后验概率最大化准则

实现细节:朴素贝叶斯要保证用于分类的特征在类确定的条件下都是条件独立的。贝叶斯估计利用拉普拉斯平滑可以解决某些特征没有对应的样本出现导致估计的概率值为0。

优点:过程简单速度快,分布独立时效果较好,略胜于逻辑回归,适用于小规模数据

缺点:概率结果作为比较类的应用还凑合,做不到准确分类,特征条件不独立情况下效果不好

知识点:贝叶斯定理

使用场景:文本分类,垃圾邮件过滤,情感判别,推荐系统

 

决策树(有监督,分类/回归,判别算法)

一句话总结:利用信息增益(ID3),或者信息增益比(C4.5)或者基尼指数(CART)作为特征选择的划分标准,利用贪婪算法思想,依次选择可能重要的特征,if-then规则造成树状形状。分类树就像是多维空间的分段线性划分(超平面划分);回归树就像映射成分段常数函数。具有非线性的建模能力。

算法思想:贪婪算法,自动化选择特征

算法策略:根据特征选择算法构造决策树,然后通过剪枝算法剪枝后挑选出平方误差或基尼指数最小的决策树。

实现细节:剪枝算法可以由一种动态规划的算法实现,决策树生成学习局部的模型,而决策树剪枝学习整体的模型。回归树的划分标准是平方误差,使用启发式方法选出切分变量和切分点。树的深度达到一定程度或者分类误差降低到某个阈值停止划分。 

优点:计算量小,速度快,易于理解,可以处理连续和种类字段

缺点:容易过拟合,容易偏向更多数值的特征,忽略属性之间的相关性

知识点:信息论,熵,树结构。

使用场景:集成学习各种Boost,企业分析如风险决策。

 

PCA(无监督,降维算法)

一句话总结:根据最大方差或者最小重构误差理论,将n维特征降维映射到k维上,并尽可能保留特征信息。

算法思想:方差最大化或重构误差最小化

算法策略:依据最大方差理论或最小重构误差理论,根据特征值依次从大到小排列组成的特征向量矩阵即为映射矩阵

实现细节:计算原始数据的协方差矩阵的特征向量和特征值,将特征值从大到小排列,取前K个特征向量组成的矩阵就是映射矩阵

优点:无参数不需人为干预,计算简单,可消除原始数据成分间的相互影响

缺点:无法利用先验知识,对存在非线性依赖关系的情况不理想,非高斯分布会放生尺度缩放与旋转

知识点:协方差,特征值分解,SVD分解

使用场景:数据量大时,人脸识别做LDA前由于不可逆先做PCA,维数灾难,需节省计算空间
 

LDA(有监督,降维算法)

一句话总结:依据类内差距最小,类间差距最大的理论,利用标签数据将n维特征降维映射到k维上,并尽可能保留特征信息。

算法思想:类内差距最小,类间差距最大

算法策略:依据类内差距最小,类间差距最大的选择分类

实现细节:类的均值和总样本均值之差作为类间散布,样本值与该类均值之差的和作为类内散布,求解类间散布矩阵的逆矩阵和类内散布矩阵的乘积的特征向量和特征值,按照特征值从大到校排列,取前K个特征向量组成的矩阵就是映射矩阵

优点:可以利用先验知识进行降维

缺点:不适合非高斯分布,样本依赖方差而不是均值时效果不好,可能过度拟合数据

知识点:协方差,特征值分解,SVD分解

使用场景:维数灾难,人脸识别做LDA降维,需节省计算空间

 

K-MEANS(非监督,聚类算法)

一句话总结:一种基于质心的聚类方法,根据平方误差最小目标,人为确定聚类的类数量K值,然后随机初始化各个簇的均值,按照欧氏距离聚类样本,然后重新更新聚类后的均值,再往复循环进行(1)重新聚类样本和(2)更新聚类均值两个动作直至均值更新差值小于某个阈值收敛

算法思想:如果求解公式循环引用,可以随机初始化然后迭代更新打破死循环

算法策略:依据最小化样本聚类后的平方误差,随机赋予初始值打破公式循环依赖的关系

实现细节:K值得确定一般按经验,或者需要解决的任务决定

优点:简单快速,当簇接近高斯分布(如球状)时效果较好,对于不规则形状效果不佳

缺点:K值事先给出(ISODATA),常常难以估计,初始值的选择影响最后的聚类结果,对噪声和孤立点数据敏感

知识点:

使用场景:数据挖掘,无监督分类如新闻分类,降维如SVM对维度太高的数据使用

 

DBSCAN(非监督,聚类算法)

一句话总结:一种基于密度的聚类方法,不断根据核心点、边界点等密度可达的判断准则概念不断往外延伸遍历所有的样本进行聚类的一种算法

算法思想:样本紧密程度决定

算法策略:根据人工选择密度距离和密度数

实现细节:根据人工选择密度距离和密度数,然后根据密度公式判断依次遍历各个样本从而实现聚类,调参:L1,L2正则化选择,正则化惩罚因子选择

优点:速度快,有效处理噪声点和任意形状的空间聚类,不需要人工确定划分的聚类个数

缺点:需要手动指定密度距离和密度数,不适用与高维数据,数据量大时内存消耗大,样本集的密度不均匀、聚类间距差相差很大时聚类效果差

知识点:

使用场景:非均匀数据集的聚类,如颜色分类RGB空间

 

LR(有监督,分类,判别算法)

一句话总结:利用logistic函数构造的对数似然函数,是一个凸优化问题,有全局最优解。求解对数极大似然估计,采用梯度下降法或拟牛顿法求解

算法思想:设计好的损失函数

算法策略:logistic函数为目标函数,梯度下降法或拟牛顿法求解

实现细节:logistic函数性质较好,一阶导数为自身*(1-自身),L1,L2正则化都是凸优化问题,正负值可以设为0,1或-1,+1。liblinear参数-s:求解器类型(L1,L2逻辑回归...),-C:惩罚因子。使用softmax扩展成多分类问题。

优点:针对大数据多维度的问题有优势,算法简单速度快

缺点:分类准确性不够高

知识点:最大似然估计,凸优化,logistic,梯度下降法,拟牛顿法

使用场景:各种分类

 

SVM(有监督,分类,判别算法)

一句话总结:利用几何间隔最大化学习一个超平面做成一个线性可分的支持向量,然后通过引入松弛变量和惩罚因子允许一定的错分把线性可分支持向量机拓展为线性不可分支持向量机,再使用核函数变化把低维空间向量映射到高维空间成为非线性支持向量机。

算法思想:找到边界

算法策略:间隔最大化,求解凸二次规划问题

实现细节:SMO迭代求解SVM最优化结果。先设计出目标函数,因为是凸二次优化问题使用拉格朗日乘子,又由于符合slater条件符合强对偶,转换为对偶问题,再迭代更新求出a值,再根据a值求出w和b,得到最好的模型。核函数有线性,多项式和高斯核函数,维数较高时线性和高斯效果差不多,但计算性能线性更好。

优点:少量支持向量的关键数据起作用,数据量少时有优势,对数据集有较好的鲁棒性,避免维数灾难

缺点:不好确定核函数,

知识点:凸优化问题,求极值问题,拉格朗日,对偶问题,KKT,合页函数,核技巧,启发式序列最小最优化

使用场景:各种分类方法效果都不错,次于神经网络

 

随机森林(有监督,集成,分类,判别算法)

一句话总结:集成学习的一种,以决策树为基分类器,使用bootstrap样本有放回抽样训练多个基分类器,训练多棵树集合成森林,使用bagging投票决策产生分类结果。

算法思想:集思广益

算法策略:利用多个模型取平均来减少方差,方差为原方差的1/n。

实现细节:随机有放回的抽样,

优点:有抗过拟合能力,

缺点:比决策树复杂,计算成本更高,训练时间长

知识点:bootstrap抽样,决策树,包外误差

使用场景:和决策树一样分类回归问题

 

AdaBoost,GBDT,XGBoost,LightGBM(有监督,集成,分类,判别算法)

一句话总结:集成学习的一种,利用加法模型和指数损失函数模型来构造算法。以决策树为基分类器,使用非bootstrap样本无放回抽样不断训练分类器,不断更新样本的权重值和计算下一个训练分类器的权重值,使用权重加权决策产生分类结果。

算法思想:反省进化系统

算法策略:利用前一次弱分类器的错误残差,来训练下一个弱分类器来不断减少偏差,使用了指数损失函数做为目标函数

实现细节:变体GBDT利用一次梯度信息和残差信息加快收敛速度,XGBoost利用二次梯度信息加快收敛速度,LightGBM轻量级boost稍微削减精度加快运算

优点:具有很好的识别能力,能与神经网络媲美,考虑了集成思想

缺点:比决策树复杂,计算成本更高,训练时间长

知识点:决策树,加法模型,指数损失函数,梯度,先有算法再有算法解释思想

使用场景:Kaggle各种分类预测大赛

 

EM,GMM(有/无监督,聚类,标注算法)

一句话总结:一种迭代算法,用来求解带有隐变量的极大似然估计问题。

算法思想:曲线救国,替代法

算法策略:迭代求解极大似然估计。

实现细节:第一步E步,基于当前求得的模型参数求下一次猜测的期望值;第二步M步,求使得Q函数极大化的模型参数,作为下一次的估计参数。然后不断迭代E和M步。利用了Jensen不等式证明转为为求容易求的下界函数问题。

优点:解决无法直接求极大似然估计的问题

缺点:初始值的好坏决定最后收敛结果的速度和好坏

知识点:Jensen不等式,期望,转换为求下界

使用场景:求解极大似然估计,GMM前景检测
 

HMM(标注算法)

一句话总结:根据显式的数据推测隐藏的状态,按照任务的不同,根据初始状态概率矩阵,状态转移矩阵,观测概率矩阵计算对应的结果。概率计算用前向或后向公式递推求解,学习问题用EM算法求解,预测问题可以用近似算法或维特比算法递推求解。

算法思想:引入状态变量,找出本质变化

算法策略:问题分为概率计算问题(知道\lambda和O,求P(O|\lambda)),学习问题(知道O,求\lambda使得P(O|\lambda)最大)和预测问题(知道\lambda和O,求最大P(I|O)的I状态序列),主要就是概率计算公式和EM算法

实现细节:两个基本假设,齐次马尔科夫假设,任意时刻t状态只依赖于t-1时刻的状态;观测独立性假设,任意时刻的观测只依赖与该时刻的状态。

优点:数学框架好

缺点:概率模型,只解决依赖前一时刻状态的问题,忽略更久远的时间关联,还有观察独立性限制。

知识点:概率论,EM算法,近似算法,维特比动态规划算法

使用场景:股票预测,语音识别,NLP
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值