数学建模社区-数学中国
标题:
各类机器学习算法的优缺点和适用场景汇总
[打印本页]
作者:
杨利霞
时间:
2021-4-10 11:24
标题:
各类机器学习算法的优缺点和适用场景汇总
; V- d# Z X7 l' r% O* a- m* ?
各类机器学习算法的优缺点和适用场景汇总
5 P% w( W! k4 ]: W, R Z
目录
4 i+ X+ s) E' l) d$ ]
朴素贝叶斯分类器(NB:naive Bayes classifiers)
- [) Q! i( `4 c3 `1 l, T) x2 J' g
半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)
* c5 n E; b$ w0 y3 m) i
贝叶斯网(信念网)
8 K, ]4 E6 G4 f% d1 Q
决策树(decision tree)
7 d2 _$ S4 g( a* X' L
支持向量机(SVM)
9 [5 T; C1 G0 @. d# P$ P8 P* L
神经网络
# A8 L8 {# f& o+ [) ^, C
词向量(word2vec)
: @/ B4 A4 u: S8 e/ h$ G
k近邻分类(kNN)
3 C1 d: ?- o2 T2 Z( b5 S
线性模型
! A" s$ P& y9 O5 s7 z' V
高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比
, j/ N. b$ i+ D! j; r4 [
关于学习算法的性能实验结果
/ Z' H ^+ \% e* O8 [
朴素贝叶斯分类器(NB:naive Bayes classifiers)
5 a% `5 E h0 G" Z
顾名思义,其适用于分类任务、并且假设每个属性独立地对分类结果发生影响,然而现实中各个因素往往并不独立,那是否就无法解决问题呢?
+ r; y) M3 E% |+ n. }
事实上并非如此,相反,朴素贝叶斯分类器在很多情况下都能获得相当好的性能,一种解释是:无需精准概率值即可导致正确分类结果;另一种解释是:若属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时,不会对性能产生负面影响。
' u5 ?4 c! X* h6 g" c
; l2 O6 \- x" A- p7 h; v
优点:
7 W/ q+ t* O% e) n* K B8 i
1、计算量较小
( l0 o x+ z E$ B& H
2、支持懒惰学习、增量学习
: U& |) l7 Q q0 U( u! i8 U
3、对缺失数据不太敏感
7 E& Q7 M6 e# V. D$ n p& h
4、推断即查表,速度极快。
5 ^ S6 e' s$ B' H3 L1 L2 y# Y6 H* {
缺点:
; }' l& {7 P$ ?# C# [- V
1、没有考虑属性间依赖
1 Z% i( R% S& @9 K
2、通过类先验概率产生模型
- J4 `* t2 X& \5 `% H9 J% w
( Q# b( G4 G( I3 @5 E
半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)
+ J0 |3 ~- b3 o! G
相比NB的不考虑依赖,SNB则是考虑了一个(独依赖估计策略:ODE)或多个(多依赖估计策略:kDE)属性依赖
; E& h$ L' v. W4 j2 s
优点:
+ A5 y: m( s: l" A* [$ b7 f
1、考虑了一个或多个比较强的属性依赖关系,泛化性能可能得到提升
& d o$ F7 I$ ^
2、计算开销不大
& L; X e! ^% w/ H0 X9 Z
3、同样支持懒惰学习、增量学习
* s1 K, v. b' e+ }; |
缺点:
7 U6 x$ y9 X) K+ F
1、通过类先验概率产生模型
$ r$ e# b: s0 a6 ^ {
: L/ E/ [& c! V6 q( g- Y
贝叶斯网(信念网)
/ Q1 N8 S0 r1 f2 x$ \
贝叶斯网借助有向无环图刻画属性之间的依赖关系,通过吉布斯采样或者变分推断等方式来近似推断后验概率。
% F2 g7 }' A' S: V; i
优点:
3 |& w7 X4 y* P2 X9 i8 i/ {
1、更加完整地考虑了属性间依赖关系,泛化性能将进一步提升
: J. F+ R1 y! E, A7 x
2、近似估算后验概率
& n w; Z+ T% d) M
3、可用于推测属性缺失的样本
% P4 g( L0 @6 v3 b ]% A6 j5 Q! |% p y
4、良好的可解释性
9 {% L& v. N& P
5、常用于语音识别、机器翻译等
* g9 ?' |% c& W2 |2 B
缺点:
' K4 c9 n' B0 E7 K
1、结构学习NP难,通过评分搜索方法缓解
" m* v3 s L& }2 r s4 x. m# O: g$ f
2、推断算法的收敛速度较慢
; T4 V; B. l" O6 i1 @+ _
1 i7 ]3 \3 w: ~; c% \) O
决策树(decision tree)
4 g h* z- M+ g' c. Q
决策树通过信息纯度(信息增益、增益率、基尼指数等)来决定结点的生成,通过剪枝来缩小决策树的尺寸以及缓解过拟合。是一种非参数学习算法。
" X! h& v. K" \/ L# D
优点:
* F, |% q& C# D+ {
1、计算量较小
+ Q9 p% W X2 s! p+ J: [ q
2、清晰表达属性的重要程度
9 _. W0 f! ?$ Z+ n: P2 `' ]+ d( ^
3、可增量学习对模型进行部分重构
+ Y& ^/ M- [2 g# S# K( Z+ _
4、不需要任何领域知识和参数假设
, r' t& T; z& b! K
5、适合高维数据
7 d' B0 \2 h) l
6、随机森林是基于决策树的集成学习策略,随机森林鲜有短板
% W0 B9 O4 G2 `) C
缺点:
5 {% W3 o+ a1 ~3 P$ C6 B5 N
1、没有考虑属性间依赖
/ k7 x6 D$ S- N4 P) h. E! G
2、容易过拟合,通过剪枝缓解
R1 F+ j4 f) t* B5 Z
3、不可用于推测属性缺失的样本
+ X7 \- u1 i, v! Y6 {
( P. i( `/ _, P2 N- M8 Z6 n' s6 A
支持向量机(SVM)
/ S, B2 t4 L. o5 W
基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,是一种针对二分类设计的算法,但稍加改造为支持向量回归即可用于回归学习。
* h; y6 \& U$ K4 O- G6 ^) k% a/ }
优点:
5 y% `( J' @/ \0 k
1、可解决小样本的机器学习任务
o, M$ j3 y- H! o. E
2、可解决高维问题
& M) x9 k' X6 H3 b- f: F$ T/ c" p
3、可通过核方法解决非线性问题
7 O1 h( ~' v4 m `3 P9 S9 C
缺点:
) I& d3 B6 z1 D! V. o
1、对缺失数据敏感
# z: z( ^0 N. e; A8 T+ b" K! z
2、对于非线性问题,核函数方法选择一直是个未决问题
* D7 s, o+ N# x1 k# Q6 |
' A5 \' X- H( S# O
神经网络
8 K4 Z$ Z3 G0 d5 j
优点:
0 [/ R5 E9 U) s1 g. n
1、分类的准确度极高
7 g. Q4 Z: y& W! U, |* E8 I( X6 l
2、可解决复杂的非线性问题
7 k) ^$ k, L6 R J$ Z
3、对噪声神经有较强的鲁棒性和容错能力
8 j$ g% D" L# A: B5 |1 [
4、并行分布处理能力强,分布存储及学习能力强
$ @ |7 h% x6 [. b$ V4 w o x% ~
5、常用于图像识别
, Y+ S8 ^: K! i1 ~
6、数据量越大,表现越好
3 n u& ^0 }( l
缺点:
' N% v$ T9 [: U9 b8 v8 `( x! Y
1、黑箱模型,难以解释
7 @* f( {, \- _* g/ I
2、需要初始化以及训练大量参数,如网络结构、权值、阈值,计算复杂
. Z3 b6 @- y) F
3、误差逆传播的损失
) `# W3 n' B! |. i2 [9 m
4、容易陷入局部最小
2 S" w! x+ D; |$ c
* \+ W) a6 Q' v3 k* w3 }
词向量(word2vec)
" X& h d, l* J! ?- p
将文章的每句话当成一行,将每个词用符号隔开(如使用中文分词工具jieba),根据上下文,可以找出相似词义的词。
# ~+ E3 ?2 m% U2 z4 Y5 K
比如:我 喜欢 你,我 爱 你,我 讨厌 你。根据上下文我和你,可以找到喜欢的相似词,有爱和讨厌。
: `& O9 H; H5 v) A p( G1 v% Y; Z
再一般地如:1 2 3 X 4 5 6,1 2 3 Y 4 5 6。根据上下文1 2 3和4 5 6,可以找到X和Y相似。
: q- M4 T8 s6 v( M( K1 M: {# I& B/ w
gensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。
/ ^* ^( M* [9 b& q0 J
- o7 j5 l- b$ h9 m$ O- o1 \* O
k近邻分类(kNN)
! A. m2 Z/ C0 C( {9 S c) k4 O+ t
基于某种距离度量找出训练集中与其最靠近的k个训练样本,或者指定距离e之内的训练样本,分类任务中通过投票法(以及加权投票等)将出现最多的类别标记作为预测结果,回归任务中则使用平均法(以及加权平均等)
& Z7 I/ c" d4 T- E% ^) W
优点:
; y1 R' H$ D) o, E+ q3 Q5 R
1、思想简单,易于理解,易于实现,无需估计参数,无需训练;
- y5 @2 _% ~: p' y5 }
2、适合对稀有事件进行分类;
+ s9 ~& y, Z+ k" }: J
3、特别适用于多分类问题
8 r7 d& U+ x& i( A# B
缺点:
H5 H( V8 z( E3 b$ [" V
1、需要计算出待测样本与所有样本的距离,计算量大
' a" s9 U3 h2 B* Y8 u! }' O
2、样本不平衡时影响大
. a, B1 C% J6 k! e6 B/ s
3、适用的特征维度低
) o# A1 b" m: F: u$ n9 _
L0 c# E `" e) w& u
线性模型
: o& W: t4 A9 q' W
优点:
) m ?* C' J. J9 \/ ^
1、算法简单,编程方便
3 Q9 ^" h& _2 \& c7 h b
2、计算简单,决策速度快
6 w4 V% H. q, E- y6 T8 i ^" Q
缺点:
% [" Q5 x8 ]9 Q9 r# G+ t' C
1、拟合效果较差
# |& D% a! N a: K% ^
W1 B- e) N6 C
高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比
& j: R( T0 `0 b+ |" C# G# s' M; t# M
k-means是高斯混合聚类在混合成分方差相等、且每个样本仅指派给一个混合成分时的特例,因此k-means计算简单,但效果不如高斯混合聚类
- C7 J8 ~& p5 M
由于计算太过复杂,高斯混合聚类并不常用,推荐使用k-means++(与k-means随机选定不同,k-means++初始选定的几个样本距离尽量远,这样能更快得出分簇结果)等k-means变种。
( f) s/ g, x2 @, R/ M; W* D
: g0 }3 n- h5 }. T# v
关于学习算法的性能实验结果
( e2 l5 N- B f
点击查看原文
8 b Q. V7 V+ r3 b- k. q; n
6 O p1 a' R m) z
14年的时候有人做过一个实验[1],比较在不同数据集上(121个),不同的分类器(179个)的实际效果。
. k }* L' [6 o$ Z8 X. `8 F- ^
论文题为:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?
( [7 d+ }. x9 S t0 J V3 E) m
没有最好的分类器,只有最合适的分类器。
% M& S, o& N. f ?# }
1、随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。
" y% T8 Z9 B6 d r+ A
2、SVM的平均水平紧随其后,在10.7%的数据集上拿到第一。
8 F& B. `% B/ n$ C7 f: }
3、神经网络(13.2%)和boosting(~9%)表现不错。
- ?5 t" s4 N' b8 p( [. |, i2 L( T
4、数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM[2]。
1 z+ s, f; h" d7 i ~
5、数据量越大,神经网络就越强。
+ t, O/ k. h0 u& V- @
————————————————
% o5 G0 }" |5 t; t/ q
版权声明:本文为CSDN博主「路飞的纯白世界」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
9 B0 m0 Y3 ~9 _7 C1 y9 i5 v: f
原文链接:https://blog.csdn.net/u010921136/article/details/90668382
* V8 B% v0 ~( H- Y
" v8 R- a. o. A8 i: [8 @7 h: d
; i+ E8 o9 k3 O# E0 t; G2 L
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5