数学建模社区-数学中国

标题: 各类机器学习算法的优缺点和适用场景汇总 [打印本页]

作者: 杨利霞    时间: 2021-4-10 11:24
标题: 各类机器学习算法的优缺点和适用场景汇总

' D1 E' ?0 Z7 P- R& @- Y9 G各类机器学习算法的优缺点和适用场景汇总
0 Z! q1 Z- w5 ?2 U8 t! }目录6 c2 _$ w3 e3 [5 m6 R
朴素贝叶斯分类器(NB:naive Bayes classifiers)
; ~% G# h1 K1 `5 l$ l半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)0 h+ u, g1 V4 @9 Q# F5 |
贝叶斯网(信念网); \7 Q& B( C" o' E$ U+ R$ j
决策树(decision tree)
# f# ^- u/ p9 e# h2 L  f& j支持向量机(SVM)" N3 k( r# Y' U; p
神经网络
( p) G' c" N% A' K词向量(word2vec)
  x9 a  @  ~) T1 ~k近邻分类(kNN)
$ e) R# o; r6 b* L" M% N5 j线性模型
" ~% K& v* S" |% u( S高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比, ?/ G* H7 r3 Y/ O. k3 A# m
关于学习算法的性能实验结果
. J* z* V2 t( c. Q. c朴素贝叶斯分类器(NB:naive Bayes classifiers)
4 Y7 l$ h8 [3 }2 t顾名思义,其适用于分类任务、并且假设每个属性独立地对分类结果发生影响,然而现实中各个因素往往并不独立,那是否就无法解决问题呢?
% c0 j) W7 _, o5 V4 h: O事实上并非如此,相反,朴素贝叶斯分类器在很多情况下都能获得相当好的性能,一种解释是:无需精准概率值即可导致正确分类结果;另一种解释是:若属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时,不会对性能产生负面影响。
: c4 [7 f6 M1 R5 Z' e% j7 f9 Q/ p3 Y  x! C' a8 h$ y$ c
优点:
) w% Y4 r0 L. }7 W, d0 j1、计算量较小1 z4 j$ E5 ?( k8 L9 A7 W
2、支持懒惰学习、增量学习) U, L3 T! A' P+ q0 |
3、对缺失数据不太敏感
; k; S0 @1 w! E, i# S7 {4、推断即查表,速度极快。
: I) F0 n7 P; Z8 S. ~, ]缺点:
8 }3 ?6 ]" }$ K$ {8 B- ~: l# h1、没有考虑属性间依赖
2 B# R" }! E% \2 [- w2、通过类先验概率产生模型0 b' E; H9 Q) i3 B) o3 R

1 c3 A" r3 j' v半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)
7 M' a! S. X: H) }6 T6 i- E相比NB的不考虑依赖,SNB则是考虑了一个(独依赖估计策略:ODE)或多个(多依赖估计策略:kDE)属性依赖1 \; R0 M1 z! i9 d- J' `& K
优点:: g) K; F& J2 t9 t" ~9 N
1、考虑了一个或多个比较强的属性依赖关系,泛化性能可能得到提升
# ^; p" x* D, [( |2、计算开销不大+ ~& I  E, T9 ^, O0 C0 N0 ]
3、同样支持懒惰学习、增量学习
2 D/ ]! ^6 s8 }5 I& k缺点:' |+ w' `! D# I6 U+ i
1、通过类先验概率产生模型
) W) [/ y1 e% W, ~4 Z4 u& {, p2 {
贝叶斯网(信念网)0 {+ l  e/ h9 m7 `; ?) V
贝叶斯网借助有向无环图刻画属性之间的依赖关系,通过吉布斯采样或者变分推断等方式来近似推断后验概率。
9 }2 {0 {  n9 }) M7 Q* k, k0 a优点:  X: Q+ Y% Y! ?" Y: z" P
1、更加完整地考虑了属性间依赖关系,泛化性能将进一步提升9 X$ P& w4 ]9 H2 c
2、近似估算后验概率3 K$ Y# o: A- C; Z$ r
3、可用于推测属性缺失的样本
8 W3 @7 o/ t8 I* G, K+ ?4、良好的可解释性2 ]2 q6 A  c% D- }% a  d
5、常用于语音识别、机器翻译等" q, A8 u. W0 l% Q) Y
缺点:
; ~! T  s, X% e% Z+ h+ k. c1、结构学习NP难,通过评分搜索方法缓解; h" _5 E- j4 |4 @
2、推断算法的收敛速度较慢6 K2 d& E' @' u+ X" ]6 m6 p1 f2 |! i

# ]2 v$ g  c+ H  T5 M8 p7 k决策树(decision tree)) o/ e; [9 M2 G$ z& u
决策树通过信息纯度(信息增益、增益率、基尼指数等)来决定结点的生成,通过剪枝来缩小决策树的尺寸以及缓解过拟合。是一种非参数学习算法。
* _# C. O3 j3 z3 J; d0 G( c优点:
# P- V, T- v& f1、计算量较小- K  X$ v% V" j6 h/ J' i( L% z
2、清晰表达属性的重要程度7 A& Y3 f' ]" I4 \" Z
3、可增量学习对模型进行部分重构! i0 S( x& n; M+ q8 g5 m
4、不需要任何领域知识和参数假设+ V% n6 n. o6 v( a; v) Q3 d
5、适合高维数据
; l8 ^6 v( V. k  x, K# b  o6 b' [6、随机森林是基于决策树的集成学习策略,随机森林鲜有短板
% w0 z) d5 ]2 @2 [! B1 ~5 e% b缺点:
, B  a+ A$ N+ V- @1、没有考虑属性间依赖
$ f( S2 ^) E( t, _2、容易过拟合,通过剪枝缓解9 h9 R1 f$ L6 M6 L7 k+ R" t
3、不可用于推测属性缺失的样本
0 y+ h" f* Y$ e& {" [
$ j) X9 M1 P7 l: S! B6 G8 [支持向量机(SVM)
# i0 ~$ Z. T  F基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,是一种针对二分类设计的算法,但稍加改造为支持向量回归即可用于回归学习。
8 H# F- g' O$ ~1 M0 W! D优点:  y: R, k' M; s5 |( v2 _' k1 G  j0 `
1、可解决小样本的机器学习任务
5 N/ {/ Z& M; F. Q' y2、可解决高维问题* P# `: Q6 h$ s  U4 m
3、可通过核方法解决非线性问题
) |- p# A" \) P/ }/ |& n( G缺点:
$ w) Q" G  \  s4 v1、对缺失数据敏感
3 R: ^4 ?1 k% y! t# U% i2、对于非线性问题,核函数方法选择一直是个未决问题! P5 w- h/ R, [1 m+ J
4 l! a- t, S+ k& z
神经网络, n: c3 r8 Y- T: [
优点:8 Q9 c* V) C8 ]4 J6 R/ ?
1、分类的准确度极高
* J- z1 h7 u( @5 u8 q# y2、可解决复杂的非线性问题; Q, e/ ^- P& [. }& Q/ y1 L
3、对噪声神经有较强的鲁棒性和容错能力+ F4 y  H* l2 x7 L0 J9 \
4、并行分布处理能力强,分布存储及学习能力强
6 n2 m. l8 P1 W6 K5、常用于图像识别
# L" g8 F) s' j8 @6、数据量越大,表现越好
' S* @+ t/ E) Y1 _6 u缺点:
4 X8 j+ r: {2 }: Y1、黑箱模型,难以解释" |, x5 c" u2 T/ g: A" x7 e
2、需要初始化以及训练大量参数,如网络结构、权值、阈值,计算复杂+ t5 j( T; A- J% A
3、误差逆传播的损失
/ b( b: C* X& j: u7 P6 `4、容易陷入局部最小+ c- Q- i, ?& Y7 f/ t& m9 Q' F
2 `$ g' @: i1 O
词向量(word2vec)# p9 B1 [7 w3 K. w. t/ W6 z
将文章的每句话当成一行,将每个词用符号隔开(如使用中文分词工具jieba),根据上下文,可以找出相似词义的词。3 K. q4 l% R3 p, w
比如:我 喜欢 你,我 爱 你,我 讨厌 你。根据上下文我和你,可以找到喜欢的相似词,有爱和讨厌。" u5 ?9 c0 c& L( s! u+ p4 J( h
再一般地如:1 2 3 X 4 5 6,1 2 3 Y 4 5 6。根据上下文1 2 3和4 5 6,可以找到X和Y相似。7 {7 a" ]) ]8 v0 a* |! ~
gensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。
8 G4 K! G( z" J, L$ O3 f% Q4 _' v) b4 `& a
k近邻分类(kNN); s5 b4 a2 d; Z& _' }8 A$ c. Q
基于某种距离度量找出训练集中与其最靠近的k个训练样本,或者指定距离e之内的训练样本,分类任务中通过投票法(以及加权投票等)将出现最多的类别标记作为预测结果,回归任务中则使用平均法(以及加权平均等)0 V4 S9 ]: M% c/ e
优点:
* u' L! Y* ^+ \8 J* }" P7 N1、思想简单,易于理解,易于实现,无需估计参数,无需训练;# q% n% m+ I. k- k! _; `
2、适合对稀有事件进行分类;7 h3 W  m4 n, b, Z+ Y6 M
3、特别适用于多分类问题, W0 ]0 g& _5 y. M. E; g" S
缺点:8 t' I; {4 T- f
1、需要计算出待测样本与所有样本的距离,计算量大+ \+ Z, U5 o4 ^4 Y0 G
2、样本不平衡时影响大8 x. _. h8 N6 t  F9 n- l
3、适用的特征维度低9 Y1 F, m9 ]$ L6 X

5 i5 M, L9 C" a3 P3 _4 t/ m线性模型
7 N1 h/ _  z' A, K$ m  v优点:) u0 y% Q' P1 G2 B1 V6 ]! C- d
1、算法简单,编程方便
8 x. z3 m8 T; Z  P$ @2、计算简单,决策速度快# D5 c! e% G5 I* c8 }, e" W
缺点:; w2 p7 U- s! k8 J7 c
1、拟合效果较差1 C" H, r6 _- p: ^2 h; D. F* ?5 d9 u

; x; S- b+ K3 @0 G5 A; F高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比3 W6 |* L: w; d" `$ q# X# h& K
k-means是高斯混合聚类在混合成分方差相等、且每个样本仅指派给一个混合成分时的特例,因此k-means计算简单,但效果不如高斯混合聚类# \- U1 A( L% h$ ~, v8 [
由于计算太过复杂,高斯混合聚类并不常用,推荐使用k-means++(与k-means随机选定不同,k-means++初始选定的几个样本距离尽量远,这样能更快得出分簇结果)等k-means变种。
. X0 U1 n; ?7 v1 D* ^- S" A% T+ l
关于学习算法的性能实验结果
  X1 A" a! W0 a0 ]# [* C1 Y$ ?点击查看原文' B' F; `  f6 [9 [/ w

' ]. H# G# i% S5 |14年的时候有人做过一个实验[1],比较在不同数据集上(121个),不同的分类器(179个)的实际效果。
% d4 I6 D  U, e% x- T论文题为:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?
6 [3 R) i) z! H- t8 u- j8 {" x没有最好的分类器,只有最合适的分类器。
# S( k/ b; o& \% A. c1、随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。
! E- k" v$ L* @2、SVM的平均水平紧随其后,在10.7%的数据集上拿到第一。8 R/ q! A3 K+ S: B2 B; f$ C* r; ?. l- ^
3、神经网络(13.2%)和boosting(~9%)表现不错。
' p  O# Y# R3 W& x' x7 F+ z, b- c4、数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM[2]。
& s$ A* Z- a- G! m- R5、数据量越大,神经网络就越强。8 Y% W  e: l! S+ `9 j
————————————————
% i  t6 W4 J2 E- u版权声明:本文为CSDN博主「路飞的纯白世界」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
) _) _( r7 M" n原文链接:https://blog.csdn.net/u010921136/article/details/90668382
) U% c* W7 F( m: l$ _/ J5 v$ F
  X5 [- Q& H7 m& c' ?( M# ~1 f2 n( ]
3 Y( ^9 y* x4 c




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5