数学建模社区-数学中国

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

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

5 x1 S7 f3 D* |" |$ U; @) s$ T各类机器学习算法的优缺点和适用场景汇总
% K* I( {5 M8 V: d+ Q4 e目录
, u6 i+ D, E9 N朴素贝叶斯分类器(NB:naive Bayes classifiers)
% B/ P; A( A" R/ K0 [3 S. Y半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)
9 u2 P; O- Q9 l4 k* B. X7 I' S3 E贝叶斯网(信念网)& d+ i( T+ K5 p" r! i. Z2 G2 ?
决策树(decision tree)  v, w( \  w/ B3 w$ s. W
支持向量机(SVM)
. b& U; P" I: Z/ a0 x神经网络- I- m' I! T* _( [) ]& a
词向量(word2vec)
7 u* w! }9 M- qk近邻分类(kNN)1 z8 V& b$ g) w
线性模型
0 Q5 u$ j3 ]  K6 @8 G; y高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比
/ R$ N4 _" b! m; @关于学习算法的性能实验结果
2 i* l! q, Y: {朴素贝叶斯分类器(NB:naive Bayes classifiers)
1 X" S8 B9 E  H顾名思义,其适用于分类任务、并且假设每个属性独立地对分类结果发生影响,然而现实中各个因素往往并不独立,那是否就无法解决问题呢?
; [1 ]+ q$ m# ?3 K! y" b事实上并非如此,相反,朴素贝叶斯分类器在很多情况下都能获得相当好的性能,一种解释是:无需精准概率值即可导致正确分类结果;另一种解释是:若属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时,不会对性能产生负面影响。) T9 D6 E8 s1 Z+ L0 ]. n) B2 q

3 U7 n2 K, ]. a' O优点:, o6 `" N' ?9 L# B5 ]
1、计算量较小
) C6 D3 a+ C3 ?0 a  d2、支持懒惰学习、增量学习
! R5 n( {0 S; i" G3、对缺失数据不太敏感8 d' ]3 A+ C9 u7 M4 n/ R
4、推断即查表,速度极快。
! y" t) w' n& W& O缺点:
# I3 `2 ?# n; c9 H, G, x: s9 P1、没有考虑属性间依赖
! f, e# Z2 n+ x6 l7 t. \1 Q# @$ P$ A2、通过类先验概率产生模型
6 k7 A; n7 Q; ?2 u! y# N$ H6 ^; h7 b6 v5 j# h3 b2 I3 Y8 [9 ?5 E( A) V
半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)' |, i' x0 A5 _2 n- U
相比NB的不考虑依赖,SNB则是考虑了一个(独依赖估计策略:ODE)或多个(多依赖估计策略:kDE)属性依赖+ @, t5 n# _5 @( W/ c
优点:
5 J, @$ D& Z) V8 O1、考虑了一个或多个比较强的属性依赖关系,泛化性能可能得到提升
/ U5 {) B& C: a+ i2 s2、计算开销不大
  l- q& Z# N; W! t* M* D( S3、同样支持懒惰学习、增量学习
- a( w2 b* x1 B7 u  Q& P- S9 T缺点:* f( o# J/ }9 }  y1 y7 ~
1、通过类先验概率产生模型
; D0 W  M" a: z/ b9 K) N' _$ m- ~- o
贝叶斯网(信念网)
1 D; t! S) p9 b: G贝叶斯网借助有向无环图刻画属性之间的依赖关系,通过吉布斯采样或者变分推断等方式来近似推断后验概率。( t% N- T# V! j) |8 f. \& l
优点:  B( l: [" H' S" Q
1、更加完整地考虑了属性间依赖关系,泛化性能将进一步提升( _0 W" b# D5 X! i) B' e9 _
2、近似估算后验概率
# _3 K/ D- T: g2 O* F% \( w3、可用于推测属性缺失的样本$ |1 N' z+ N5 l9 K. p" M8 U
4、良好的可解释性9 q/ q7 z) |, N
5、常用于语音识别、机器翻译等
. f* e4 D8 J' K1 X5 b6 i8 [8 A$ R缺点:
8 c# F% @2 F5 z1、结构学习NP难,通过评分搜索方法缓解$ D! f* K- y8 |* |+ U6 C( h4 T
2、推断算法的收敛速度较慢' ~# D0 @0 u& J9 d" [9 I9 I

0 R; S7 ]% W) T决策树(decision tree)' J2 J& x* D# O5 b5 {
决策树通过信息纯度(信息增益、增益率、基尼指数等)来决定结点的生成,通过剪枝来缩小决策树的尺寸以及缓解过拟合。是一种非参数学习算法。/ L2 m4 i2 c/ c! {7 j& L2 z
优点:; S# }6 B( _% O$ `
1、计算量较小7 k9 M6 g0 z6 t$ C8 t- w# n
2、清晰表达属性的重要程度5 G2 c5 `% f% w# b0 x3 K
3、可增量学习对模型进行部分重构
9 R/ k. j# z& g  U9 p) r8 E( N4、不需要任何领域知识和参数假设4 G: k' C! }0 ]0 {
5、适合高维数据) @% L# y2 F  y0 d* {2 b0 K
6、随机森林是基于决策树的集成学习策略,随机森林鲜有短板6 `& @2 `8 v2 h1 A2 Z) p' U
缺点:
# p4 V' i0 U4 f6 U4 U! G, e1、没有考虑属性间依赖
! O$ g) |5 c- t2 ?! e# q- f2、容易过拟合,通过剪枝缓解4 f) j& d0 y7 L  Q  E. ]: p
3、不可用于推测属性缺失的样本1 V/ }0 ^5 V) w! u( D5 o
  m" K7 U3 v$ V- R  u( U
支持向量机(SVM)7 @' W3 z4 v7 V. v
基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,是一种针对二分类设计的算法,但稍加改造为支持向量回归即可用于回归学习。
7 ]3 i0 q) p8 q) E  l优点:, B7 }) A# V0 d( R" \$ |
1、可解决小样本的机器学习任务6 g( ]* Z: ~6 \6 R+ T2 b
2、可解决高维问题  d6 U# C/ K% t: L* i: t( O
3、可通过核方法解决非线性问题
1 u& u+ }( I6 B6 ^缺点:  S" @! F$ g; \, m) B( z
1、对缺失数据敏感( W- l, S, h# K) ?5 M1 t
2、对于非线性问题,核函数方法选择一直是个未决问题
. ?! N! l& Z2 v- D) r# E9 h$ ^) M. a/ Y9 ]7 y4 q
神经网络
' U$ P7 E& r/ M优点:4 B! w4 X1 Q! C- W) @: u
1、分类的准确度极高
% [8 @! Q- s6 W  q9 Q8 u: w+ W2、可解决复杂的非线性问题% Y$ D- B8 g/ b1 f
3、对噪声神经有较强的鲁棒性和容错能力* i. G% X& A7 Z! ^5 t
4、并行分布处理能力强,分布存储及学习能力强
2 n4 y+ E# H: s5、常用于图像识别  s7 P' s3 `2 g4 I1 l- l
6、数据量越大,表现越好
0 r; w* c8 m# L. i' a$ [+ ~缺点:. J% w! Z& @1 z" |" ?
1、黑箱模型,难以解释
/ x% r: @" h( z2、需要初始化以及训练大量参数,如网络结构、权值、阈值,计算复杂
+ Z8 k8 U. d* E  u7 I; Q6 I3、误差逆传播的损失; i# D! _" W5 c8 N
4、容易陷入局部最小
, M, R- D, W8 R. ^: M- [, R- Z/ B' k. Y. z! V! c# r& C. s' V
词向量(word2vec)! W& N! d# v+ \7 ~# s+ q
将文章的每句话当成一行,将每个词用符号隔开(如使用中文分词工具jieba),根据上下文,可以找出相似词义的词。
: Y* N' c' |5 O( ^比如:我 喜欢 你,我 爱 你,我 讨厌 你。根据上下文我和你,可以找到喜欢的相似词,有爱和讨厌。
1 h( l. s- L" C& ~! D再一般地如:1 2 3 X 4 5 6,1 2 3 Y 4 5 6。根据上下文1 2 3和4 5 6,可以找到X和Y相似。
9 z+ N: q9 r& Ygensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。
/ ~: _7 P9 [% o" ^# }. |; W+ c* p" Y' u( [. ~  x
k近邻分类(kNN)
# U9 c5 e1 @% ^3 d! S0 \, S- v4 H基于某种距离度量找出训练集中与其最靠近的k个训练样本,或者指定距离e之内的训练样本,分类任务中通过投票法(以及加权投票等)将出现最多的类别标记作为预测结果,回归任务中则使用平均法(以及加权平均等)7 Q- Y( z  _3 l) ]2 j. d9 \3 k# n
优点:
  r& G5 P( N$ A$ {) M1、思想简单,易于理解,易于实现,无需估计参数,无需训练;: t4 B+ m! p5 B( r- x
2、适合对稀有事件进行分类;8 W% D9 s9 I6 k8 u& ]+ a
3、特别适用于多分类问题' y7 a# S4 k) |( D6 ]  b
缺点:
2 r, p5 c- R$ l  O1、需要计算出待测样本与所有样本的距离,计算量大
3 ], f) W4 w# B7 k7 }" X) G' Z2、样本不平衡时影响大
" Y5 ]! {- P' {6 v7 ?" @9 ?  j$ \3、适用的特征维度低
6 V: p9 G% l+ l3 @6 [' F0 X8 f% z8 U$ y/ q4 B
线性模型$ D/ l7 y6 P) R' U3 B0 D
优点:- A/ m; |. ?+ `. S0 k" V* P( q5 h
1、算法简单,编程方便
9 X4 m" d( [; `3 n7 [1 j2、计算简单,决策速度快: [) n/ Y, _8 r
缺点:
# O4 S; @4 E2 A) s; B8 i8 D; A1、拟合效果较差
+ D! g5 k) I% D0 Z9 S' {$ {0 B6 H: F& e0 G
高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比3 I" W) A- z: o8 H% {
k-means是高斯混合聚类在混合成分方差相等、且每个样本仅指派给一个混合成分时的特例,因此k-means计算简单,但效果不如高斯混合聚类) s7 A4 ~, G2 \- z3 ?
由于计算太过复杂,高斯混合聚类并不常用,推荐使用k-means++(与k-means随机选定不同,k-means++初始选定的几个样本距离尽量远,这样能更快得出分簇结果)等k-means变种。! m1 S9 y1 P! ?5 I1 c& v0 n) j
6 q  N' l% S0 `+ x
关于学习算法的性能实验结果
) }1 m4 s9 A8 l8 `" n. u点击查看原文
* N7 T9 G6 z! i& F: @% Y+ s& I  T* p
14年的时候有人做过一个实验[1],比较在不同数据集上(121个),不同的分类器(179个)的实际效果。1 d  J9 g  o9 m
论文题为:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?9 ^- h( V: ], y0 y* h9 _
没有最好的分类器,只有最合适的分类器。
$ a+ h& A1 M& i2 g1、随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。
0 U  H) ^# z% d. }2、SVM的平均水平紧随其后,在10.7%的数据集上拿到第一。- m+ X9 X6 G% I% K1 i# C
3、神经网络(13.2%)和boosting(~9%)表现不错。
4 G' S! Q) w& h2 L* k, q8 K. g4、数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM[2]。
* |6 C1 z4 a1 m# e; j5、数据量越大,神经网络就越强。4 k" y( Z' i. b( R5 v! p
————————————————
  a6 `/ z: [: c  _) r0 W# G. V' O5 T版权声明:本文为CSDN博主「路飞的纯白世界」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
: V* q0 N  o% z# N0 R原文链接:https://blog.csdn.net/u010921136/article/details/90668382& [$ `; i3 S& b

7 i  P. r- t7 L1 _4 ]! T1 y5 |- ^" j# l* W, D+ l: r





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