数学建模社区-数学中国

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

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

6 m# l# _" r2 K4 i0 K5 ^5 P各类机器学习算法的优缺点和适用场景汇总5 v+ I8 G# @, Q& D
目录
& R5 U$ C0 h- b' x2 K4 x2 ]7 p. Z朴素贝叶斯分类器(NB:naive Bayes classifiers)2 K. O4 `9 M; z
半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)4 @/ _- W7 ?  Q% k# a# i, z( e
贝叶斯网(信念网)
7 r7 E6 R( }& v* {7 m决策树(decision tree)
' V: D) V6 m& ]/ s' G, a, D支持向量机(SVM)
# [' |# H$ @* M: ]  o' _1 Y神经网络
( y+ {. j# h& ^6 D5 }+ L词向量(word2vec)
: a4 Y& Q# E6 C9 E" {) A* y# r9 w2 ?k近邻分类(kNN). w, j! K3 N( ]
线性模型* }) x% U! E! T) d1 ~/ m1 v
高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比2 t- f. O: f6 B0 @9 @
关于学习算法的性能实验结果8 g+ ?) G. \5 }4 }
朴素贝叶斯分类器(NB:naive Bayes classifiers)
. Z$ q2 B- u6 L$ j; D: [顾名思义,其适用于分类任务、并且假设每个属性独立地对分类结果发生影响,然而现实中各个因素往往并不独立,那是否就无法解决问题呢?- s3 c$ J2 W$ I1 k3 k
事实上并非如此,相反,朴素贝叶斯分类器在很多情况下都能获得相当好的性能,一种解释是:无需精准概率值即可导致正确分类结果;另一种解释是:若属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时,不会对性能产生负面影响。
  d+ h! U& m2 n, H( Q, z; k2 s& A) L* ~# m6 L, w
优点:  p; a5 l4 D# O& A/ {7 Y3 k4 j, L
1、计算量较小
$ y" ]' Q5 Z& Z9 q' R$ ]% }$ T- t; u; P" G2、支持懒惰学习、增量学习
2 P& S+ _0 Q6 y) H: O0 F3、对缺失数据不太敏感
+ h& \3 s4 C) Q$ i. j4、推断即查表,速度极快。
( ~6 N/ S4 f1 d  p) ^# `缺点:
& O0 b; r/ L" |, {8 Q- M1、没有考虑属性间依赖
$ d; C2 B7 s; A+ P2、通过类先验概率产生模型- B8 \% h2 C1 L! e" r) ~6 N

0 W- X1 N3 R# j! z- u半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)
! I4 }) y0 b# r3 T1 X相比NB的不考虑依赖,SNB则是考虑了一个(独依赖估计策略:ODE)或多个(多依赖估计策略:kDE)属性依赖; h7 ^: @' y! j: a# `
优点:
% N! c) \* _$ E3 J- Q1、考虑了一个或多个比较强的属性依赖关系,泛化性能可能得到提升
* O; H9 G/ o+ [! G& [! \2、计算开销不大) l% \5 V& H/ G' b3 M! |* F2 S
3、同样支持懒惰学习、增量学习
  }+ {& J3 i3 i- I: P' C( _' i8 B缺点:
3 }- G& w! N! @( m  X' J1 r& X# {1、通过类先验概率产生模型/ }4 v) l0 H& x: }" ^5 F" f& D
4 }6 }! S3 R( G/ z% }3 a
贝叶斯网(信念网)9 b# J; [+ `" A$ E* {' @! B0 H
贝叶斯网借助有向无环图刻画属性之间的依赖关系,通过吉布斯采样或者变分推断等方式来近似推断后验概率。, O* l- F7 h$ @* v% |( y
优点:
0 ^4 n% {' B& o7 `# s1 D$ G; B2 F) n1、更加完整地考虑了属性间依赖关系,泛化性能将进一步提升# u3 ?+ m$ p0 M0 O' M* M: F6 T5 b
2、近似估算后验概率6 d* b/ f. _- N2 C) y9 [
3、可用于推测属性缺失的样本
& x; H1 U' ?. ?5 [* B4、良好的可解释性6 D) N& Z/ h) M; _$ `6 W& M* i
5、常用于语音识别、机器翻译等
3 v; ^" V1 g; J& ^( h缺点:6 v" l; d+ e3 n: i! n# u% M
1、结构学习NP难,通过评分搜索方法缓解
& B% l: C% M' p( f& [2、推断算法的收敛速度较慢
, C9 D. c  q0 J6 p, O' W. X+ j/ Z3 \  F* v" u% j* a; ^) r; \: r- H
决策树(decision tree)# |4 W1 M  j  L6 X# I0 a
决策树通过信息纯度(信息增益、增益率、基尼指数等)来决定结点的生成,通过剪枝来缩小决策树的尺寸以及缓解过拟合。是一种非参数学习算法。3 W* K8 C+ R% g- {+ J
优点:
! V5 C/ P. H; K4 T8 W; Q1、计算量较小, ]9 M9 [1 J* d/ {6 s$ r
2、清晰表达属性的重要程度
. v  E* g# m6 W/ H; s+ O3、可增量学习对模型进行部分重构$ b  n8 y6 i/ I( t4 W. v5 c% X6 I
4、不需要任何领域知识和参数假设
- H8 I: x6 S- ]9 S3 _( V5、适合高维数据
1 _) \- `& [) G1 Q6、随机森林是基于决策树的集成学习策略,随机森林鲜有短板
1 l+ t- e2 S  X1 {缺点:" Z% W$ ^; v8 v% J
1、没有考虑属性间依赖
2 K" `& g0 b) _% Z% @2 N1 `2、容易过拟合,通过剪枝缓解
* f" x7 q4 k. F' U, |( l9 |3、不可用于推测属性缺失的样本
) b  W/ r5 R0 [7 ^
2 m2 j; v+ h1 B! y. z支持向量机(SVM)
) u& G& E: l/ F- B2 o/ r: u- m基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,是一种针对二分类设计的算法,但稍加改造为支持向量回归即可用于回归学习。
$ V2 k. L; A, p# k优点:
( g6 t/ I# p2 u' V7 `1、可解决小样本的机器学习任务# i2 z; @8 d( H4 |! e2 W
2、可解决高维问题
. F4 e: v# O; p  K0 U1 J3、可通过核方法解决非线性问题+ o3 B( _7 k. y6 v5 u
缺点:3 Y' _+ Q! D3 H8 F6 M
1、对缺失数据敏感
  F$ X/ ^- W4 `1 ?" w2、对于非线性问题,核函数方法选择一直是个未决问题& G! c  m1 E) L& a
6 I6 v* R9 s. f! v! d
神经网络
2 D; \$ e  B3 @, g! ?优点:
, O4 Y, Q/ R" Z! F" W; Q1、分类的准确度极高
) E0 [: Z- L- Y! r- M8 `2、可解决复杂的非线性问题
+ J, z( ]: H. D2 |# Y. m3、对噪声神经有较强的鲁棒性和容错能力: L% |& d; }8 r: L: a+ p4 L
4、并行分布处理能力强,分布存储及学习能力强
7 _$ @# ~' |0 w7 _4 [$ K5、常用于图像识别5 {# f9 ~9 G% ^/ n2 a
6、数据量越大,表现越好1 p! F+ q7 O+ f2 ~* A5 E
缺点:# L# m  C, C. ]4 [! |
1、黑箱模型,难以解释
" z# [* c$ }1 R3 i! z' ^% z2、需要初始化以及训练大量参数,如网络结构、权值、阈值,计算复杂1 W: b5 Y0 a  A* m4 ?* E: K/ E# [
3、误差逆传播的损失# ~+ d% ]# _! }# V% W% n& j
4、容易陷入局部最小
) u$ d. l7 ?# R* a) b4 e- a( Z6 K8 E: s! x* l3 L
词向量(word2vec)
; r. o. N; a; k2 n" ~/ O. a: g' B将文章的每句话当成一行,将每个词用符号隔开(如使用中文分词工具jieba),根据上下文,可以找出相似词义的词。& W, b, N" x6 _
比如:我 喜欢 你,我 爱 你,我 讨厌 你。根据上下文我和你,可以找到喜欢的相似词,有爱和讨厌。
8 l+ q( f) c- q1 @) h再一般地如:1 2 3 X 4 5 6,1 2 3 Y 4 5 6。根据上下文1 2 3和4 5 6,可以找到X和Y相似。
- J1 k# n. C4 f+ h. y9 M$ agensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。9 x' ?0 U) @1 d7 Z9 W. N
0 o' y) }% S. B# L5 v9 l
k近邻分类(kNN)
, z" x4 G* j6 j$ A基于某种距离度量找出训练集中与其最靠近的k个训练样本,或者指定距离e之内的训练样本,分类任务中通过投票法(以及加权投票等)将出现最多的类别标记作为预测结果,回归任务中则使用平均法(以及加权平均等)" A. L; o% A1 O! X$ G- `
优点:
) u9 u9 |( I8 q7 H6 ]3 u1、思想简单,易于理解,易于实现,无需估计参数,无需训练;7 D6 ]$ }) h1 |( W
2、适合对稀有事件进行分类;
$ s, A+ H6 C  ~3、特别适用于多分类问题
: o; \+ {* s' [7 z7 t  x缺点:3 F0 ~, u1 g& I: U3 U
1、需要计算出待测样本与所有样本的距离,计算量大
/ ~9 E4 G4 [' f: M' I' ^2、样本不平衡时影响大
$ }3 G9 p& d8 b9 {3、适用的特征维度低
$ ^$ H4 n1 v3 x8 w$ S" o$ _8 Y; k6 O
线性模型9 X( _! r8 M$ k% n4 B! Q
优点:
0 Q/ z" c* L5 [$ W, A7 D8 V1、算法简单,编程方便# f4 ^% Q& Z/ k& u: W: D! B
2、计算简单,决策速度快
. l& e, r: d! Y$ u缺点:
% f1 y+ q4 I8 X1 r  F" C* B6 B" }$ _1、拟合效果较差# @/ G9 R: p+ K1 K- ]! K
* @3 F2 C; x7 k4 w: {' c
高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比$ E; n/ E# u% a9 {) `5 b+ o- N
k-means是高斯混合聚类在混合成分方差相等、且每个样本仅指派给一个混合成分时的特例,因此k-means计算简单,但效果不如高斯混合聚类9 b) j  p3 d" a8 O( k+ f  s5 |
由于计算太过复杂,高斯混合聚类并不常用,推荐使用k-means++(与k-means随机选定不同,k-means++初始选定的几个样本距离尽量远,这样能更快得出分簇结果)等k-means变种。
: N8 a) z8 k3 _0 r( _2 u
. o/ z0 J0 r* z# ]关于学习算法的性能实验结果: f  O; p6 J9 G- ~0 ^2 c7 j
点击查看原文
# n7 q' L/ C% M8 w# t. s) \; D5 N' W7 N" L
14年的时候有人做过一个实验[1],比较在不同数据集上(121个),不同的分类器(179个)的实际效果。: i  m1 J9 x4 f" l8 p
论文题为:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?0 z/ @* j, ?7 j
没有最好的分类器,只有最合适的分类器。" \" _: P0 ?! {+ M4 ~9 C
1、随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。
; k% q/ U$ r1 d" L* A' F4 [2、SVM的平均水平紧随其后,在10.7%的数据集上拿到第一。
: |+ }: U: W, ~/ U3、神经网络(13.2%)和boosting(~9%)表现不错。
  j4 H: W- _0 G: S! N! V4、数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM[2]。
: h. r& W  {8 ?5 X8 G2 Q/ o  G+ R1 k5、数据量越大,神经网络就越强。- D* e8 l( C: W2 O. a( B3 j
————————————————
. G) f0 ?7 G. E4 i7 k版权声明:本文为CSDN博主「路飞的纯白世界」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
" b7 c) D1 T% G( I原文链接:https://blog.csdn.net/u010921136/article/details/90668382
/ @  s) K; O9 g: I$ E9 U  h7 y, I9 d
) M7 g8 ~; @) d- Z& T/ U





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