机器学习之多种算法优缺点总结及优化⽅法
⽂章⽬录
算法思维导图:
⼀、⽆监督算法:
1、聚类算法:Kmeans
Kmeans中⼼思想:事先确定常数K,常数K意味着最终的聚类类别数,⾸先随机选定初始点为质⼼,并通过计算每⼀个样本与质⼼之间的相似度(这⾥为欧式距离),将样本点归到最相似的类中,接着,重新计算每个类的质⼼(即为类中⼼),重复这样的过程,直到质⼼不再改变,最终就确定了每个样本所属的类别以及每个类的质⼼。
优点:
1、算法原理简单、处理速度较快
2、当聚类是密集的,且类与类之间区别明显时,效果较好
1、在K-means算法中,K是事先给定的,⽐较难确定
2、对孤⽴点⽐较敏感,噪声敏感(中⼼点易偏移)
3、结果不稳定,初始值的选定对结果有⼀些影响,结果不⼀定全局最优,只能保证局部最优(与k的个数及初选值有关)
4、空间复杂度o(N),时间复杂度o(I K N #N-样本点个数;K-中⼼点个数;I-迭代次数)。
优化算法:
K-means++
⼆分K-means
ISODATA
Kernel K-means
mini bath K-Means
K均值算法的调优⼀般可以从以下⼏个⾓度出发。
(1) 数据归⼀化和离点处理。
K均值聚类本质上是⼀种基于欧⽒距离度量的数据划分⽅法,均值和⽅差⼤的维度将对数据的聚类结果产⽣决定性的影响,所以未做归⼀化处理和统⼀单位的数据是⽆法直接参与运算和⽐较的。同时,离点或者少量噪声数据就会对均值产⽣较⼤的影响,导致中⼼偏移,因此使⽤K均值聚类算法之前通常
需要对数据做预处理。
(2)合理选择K值。
K值的选择是K均值聚类最⼤的问题之⼀,这也是K均值聚类算法的主要缺点。K值的选择⼀般基于经验或者多次实验结果。例如⼿肘法,就是尝试不同的K值,并将不同K值所对应的损失函数画成折线,横轴为K的取值,纵轴为误差平⽅和定义的损失函数。⼿肘法认为拐点就是K 的最优值。
⼿肘法是⼀个经验⽅法,缺点是不能够⾃动化,因此研究员⼜提出来更先进的⽅法,其中包括⽐较有名的Gap Statistics⽅法,Gap Statistics⽅法的优点是不需要⾁眼判断,只需要到最⼤的Gap Statistics所对应的K即可,因此该⽅法也适⽤于批量优化作业。
(3)采⽤核函数。
采⽤核函数是另⼀种可以尝试的改进⽅向。传统的欧⽒距离度量⽅式,使得K均值算法本质上假设了各个数据簇的数据具有⼀样的先验嫌疑,并呈现球形或者⾼维球形分布,这种分布在实际⽣活中并不常见。⾯对⾮凸的数据分布数据时,可能需要引⼊核函数来优化,这时算法⼜是通过⼀个⾮线性映射,将输⼊空间中的数据点映射到⾼位的特征空间中,并在新的特征空间中进⾏聚类。⾮线性映射增加了数据点线性可分的概率,从⽽在经典的聚类算法失效的情况下,通过引⼊核函数可以达到更为准确的聚类结果。
应⽤场景:
1、⽤户画像、⼴告推荐 / Data Segmentation / 搜索引擎的流量推荐 / 恶意流量识别
2、基于位置信息的商业推送 / 新闻聚类 / 筛选排序
3、图像分割,降维,识别 / 离点检测,信⽤卡异常消费 / 发掘相同功能的基因⽚段
2、关联规则算法:Apriori
Apriori算法:算法是⼀种挖掘关联规则的算法,⽤于挖掘其内含的、未知的却⼜实际存在的数据关系,其核⼼是基于两阶段频集思想的递推算法
优点:
1、使⽤先验性质,⼤⼤提⾼了频繁项集逐层产⽣的效率
2、简单易理解,数据集要求低
缺点:
1、计算量很⼤,当商品数据量⼤时更显著,基本是不可计算的
2、在验证候选频繁K项集的时候,需要对整个数据库进⾏扫描,⾮常耗时
3、商品并不是全部平等销售的, 仅使⽤⽀持度衡量,容易导致出现假性关联
1、交叉销售
2、捆绑销售
3、买了还买、看了还看、买了还同时买……
4、基于兴趣的实时新闻推荐
3、关联算法:FP–growth
FP(FP-growth)关联算法:将数据存储在⼀种称为FP树的紧凑数据结构中。FP代表频繁模式(Frequent Pattern)。⼀棵FP树看上去与计算机科学中的其他树结构类似,但是它通过链接(link)来连接相似元素,被连起来的元素项可以看成⼀个链表。
⽀持度:指某频繁项集在整个数据集中的⽐例。假设数据集有 10 条记录,包含{‘鸡蛋’, ‘⾯包’}的有 5 条记录,那么{‘鸡蛋’, ‘⾯包’}的⽀持度就是 5/10 = 0.5。
置信度:是针对某个关联规则定义的。有关联规则如{‘鸡蛋’, ‘⾯包’} -> {‘⽜奶’},它的置信度计算公式为{‘鸡蛋’, ‘⾯包’, ‘⽜奶’}的⽀持度/{‘鸡蛋’, ‘⾯包’}的⽀持度。假设{‘鸡蛋’, ‘⾯包’, ‘⽜奶’}的⽀持度为 0.45,{‘鸡蛋’, ‘⾯包’}的⽀持度为0.5,则{‘鸡蛋’, ‘⾯包’} -> {‘⽜奶’}的置信度为 0.45 / 0.5 = 0.9。
停⽌条件:⽀持度或者置信度⼩于某个阈值
⼆、有监督算法
1、分类算法
决策树(Decision Tree)
决策树是⼀个基本的分类回归算法
决策树:是⼀种树形结构,其中每个内部节点表⽰⼀个属性上的判断,每个分⽀代表⼀个判断结果的输出,最后每个叶节点代表⼀种分类结果,本质是⼀颗由多个判断节点组成的树。
经典决策树算法:
ID3:只能对离散型属性的数据集构造决策树,信息增益作为节点特征选择
C4.5:ID3的扩展、可以处理连续型变量、可以处理缺失值、剪枝,信息增益⽐作为节点特征选择
CART:可以处理离散型或连续型变量、并可以分类/回归,使⽤gini系数作为节点特征选择
优点:
1、⽣成的决策树结果很直观
2、基本不需要预处理,不需要提前归⼀化,处理缺失值
3、既可以处理离散值也可以处理连续值
4、可以很容易处理分类问题
5、相⽐于神经⽹络之类的⿊盒分类模型,决策树的可解释性很好
6、可以⽤交叉验证的剪枝来选择模型,从⽽提⾼泛化能⼒
7、对于异常值的容错能⼒号,健壮性⾼
缺点:
1、决策树算法容易过拟合
2、决策树会因为样本发⽣⼀点点的改动⽽导致结果变化
3、寻最优的决策树是⼀个NP难的问题,容易陷⼊局部最优
4、有些复杂的关系,决策树很难学习到,例如异或关系
5、没有在线学习
适⽤情景:
因为它能够⽣成清晰的基于特征(feature)选择不同预测结果的树状结构,数据分析师希望更好的理解⼿上的数据的时候往往可以使⽤决策树。
同时它也是相对容易被攻击的分类器[3]。这⾥的攻击是指⼈为的改变⼀些特征,使得分类器判断错误。常见于垃圾邮件躲避检测中。因为决策树最终在底层判断是基于单个条件的,攻击者往往只需要改变很少的特征就可以逃过监测。
应⽤场景:
1、熵的例⼦:论坛流失性跟性别还是和活跃度有关
bootstrapped2、基尼的列⼦:拖⽋贷款和是否有房、婚姻状况、收⼊的关联性
3、贷款风险评估
4、保险推⼴预测
优化算法:
C4.5 预剪枝和后剪枝
CART 预剪枝和后剪枝
⽀持向量机(SVM)
SVM:寻到⼀个超平⾯使样本分成两类,并且间隔最⼤。
SVM分为:
线性可分⽀持向量机、线性近似可分⽀持向量机、⾮线性⽀持向量机
优点:
1、解决⼩样本下机器学习问题。
2、解决⾮线性问题。
3、⽆局部极⼩值问题。(相对于神经⽹络等算法)
4、可以很好的处理⾼维数据集。
5、泛化能⼒⽐较强。
缺点:
1、对于核函数的⾼维映射解释⼒不强,尤其是径向基函数。
2、对缺失数据敏感。
3、⼤规模数据计算复杂度⼤
应⽤场景:
机器视觉:
1、⾏⼈检测及⽬标识别
2、病理诊断
数据挖掘:
1、基因序列检测
2、⽣物蛋⽩质检测
⾃然语⾔处理: ⽂本分类
K近邻(kNN,k-NearestNeighbor)
K近邻法实际上利⽤训练集对特征向量空间进⾏划分,并作为其分类模型(分类回归)
三个基本要素:K值的选择(交叉验证),距离度量(欧⽒距离),分类决策函数(多数表决)
实现⽅法:kd树
具体⽅法:给定⼀个训练集,对新的输⼊实例,在训练数据集中到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该输⼊实例分为这个类。
流程:
1) 计算已知类别数据集中的点与当前点之间的距离
2) 按距离递增次序排序
3) 选取与当前点距离最⼩的k个点
4) 统计前k个点所在的类别出现的频率
5) 返回前k个点出现频率最⾼的类别作为当前点的预测分类
k近邻既可以分类⼜可以回归
k近邻算法的实现:kd树
kd树:是⼆叉树,是⼀种对k维空间中的实例点进⾏存储以便对其进⾏快速检索的树形数据结构
构造⽅法:通常依次选择坐标轴对空间切分,选择训练实例点在选定坐标轴上的中位数为切分点,这样得到的kd树是平衡的,但未必是最优的
优点:
1、思想简单、易于理解,易于实现
2、⽆需估计参数,⽆须训练
3、算法复杂度低
4、适合类域交叉样本
5、适⽤⼤样本⾃动分类
缺点:
1、惰性学习
2、类别分类不标准化
3、输出可解释性不强
4、不均衡性
5、进⾏分类时计算量⼤(要扫描全部训练样本计算距离)
应⽤场景:
1、约会⽹站的匹配
2、⼿写数字识别
优化算法: KD树
朴素贝叶斯
朴素贝叶斯是基于概率论的分类算法,属于⽣成模型
朴素贝叶斯的基本⽅法::通过已知样本求得先验概率P(Y)和条件概率P(X|Y),对于给定的实例,计算联合概率,进⽽求出后验概率。
也就是说,它尝试去到底这个数据是怎么⽣成的(产⽣的),然后再进⾏分类。哪个类别最有可能产⽣这个信号,就属于那个类别。
基于贝叶斯定理与特征条件独⽴假设分类⽅法(多分类)
⽣成⽅法:由训练数据集学习联合概率分布P(X,Y),然后求得后验概率分布P(Y|X)
具体⽅法:利⽤训练数据学习P(X|Y)和P(Y)的估计,得到联合概率分布 P(X,Y) = P(Y)P(X|Y)
优点:
1, 算法逻辑简单,易于实现( 算法思路很简单, 只要使⽤贝叶斯公式转化即可! )
2, 分类过程中时空开销⼩( 假设特征相互独⽴, 只会涉及到⼆维存储)
3,适⽤于数据集少的情景
缺点:
理论上, 朴素贝叶斯模型与其他分类⽅法相⽐具有最⼩的误差率。 但是实际上并⾮总是如此, 这是因为朴素贝叶斯模型假设属性之间相互独⽴,这个假设在实际应⽤中往往是不成⽴的,在属性个数⽐较多或者属性之间相关性较⼤时, 分类效果不好。
应⽤场景:
病⼈分类
社区账号分类
性别分类
逻辑回归
逻辑回归(LR):逻辑回归假设数据服从伯努利分布,通过极⼤化似然函数的⽅法,运⽤梯度下降来求解参数,来达到将数据⼆分类的⽬的。
是由输⼊的线性函数表⽰的输出的对数⼏率模型
优点:
实现简单,⼴泛的应⽤于⼯业问题上;
简单易于理解,直接看到各个特征的权重
能容易地更新模型吸收新的数据
对逻辑回归⽽⾔,多重共线性并不是问题,它可以结合L2正则化来解决该问题;
适⽤于⼤规模数据集
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论