数学建模社区-数学中国

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

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

! f* a- Z1 E) X' C# A8 e* o7 f+ m, p各类机器学习算法的优缺点和适用场景汇总
. Y/ J2 u- \5 r! [" h目录
( C  H6 s# j  L: J+ q; c朴素贝叶斯分类器(NB:naive Bayes classifiers)
) M+ @) D, y, r  j: q半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)
; N- i2 U% c8 a贝叶斯网(信念网)4 [3 T1 j0 U; M5 k
决策树(decision tree)
0 _# _  q4 O7 Z- Z, r支持向量机(SVM)  d& ^. d. N0 [0 w
神经网络
# ^* ], Q9 M  Z3 g) J7 H词向量(word2vec)8 k' v4 X: b/ n. C5 d
k近邻分类(kNN)
, v3 A* @$ Y4 W$ |0 M5 y线性模型
2 N( g6 C6 ^% W高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比
2 t4 u, h6 z. c1 o8 X( M7 o关于学习算法的性能实验结果4 A8 g% k% N  Z4 W0 o
朴素贝叶斯分类器(NB:naive Bayes classifiers)
! x3 f4 \9 j7 V) j/ j3 f. d9 d顾名思义,其适用于分类任务、并且假设每个属性独立地对分类结果发生影响,然而现实中各个因素往往并不独立,那是否就无法解决问题呢?7 M$ Y# _6 Q- }$ S
事实上并非如此,相反,朴素贝叶斯分类器在很多情况下都能获得相当好的性能,一种解释是:无需精准概率值即可导致正确分类结果;另一种解释是:若属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时,不会对性能产生负面影响。
+ u" j6 b, s2 v* h2 H, G' I* J  l& \  |; ^# Y
优点:" _" U4 D3 j4 `- K
1、计算量较小$ v7 h! r7 e4 `1 ?$ O$ X; A# }7 B  h
2、支持懒惰学习、增量学习
. M* \  b6 D9 e  P/ c3 {: A3、对缺失数据不太敏感
1 V& A. Y  G$ h+ n, j( \; O6 s4、推断即查表,速度极快。! h- K: A: s2 Q, Z: y
缺点:9 E2 m5 X6 m9 y; L
1、没有考虑属性间依赖  w$ u( h2 n0 K9 G- P
2、通过类先验概率产生模型) \" z9 _/ [1 \
. Z0 d! K/ ~. Z: w5 S; t  l+ w
半朴素贝叶斯分类器(SNB:semi-naive Bayes classifiers)
# N% s5 ?$ l5 h- a& p相比NB的不考虑依赖,SNB则是考虑了一个(独依赖估计策略:ODE)或多个(多依赖估计策略:kDE)属性依赖
* G1 ]6 n* }4 Y* a& M优点:
- n# `1 `4 y1 l/ I" w: ?4 J1、考虑了一个或多个比较强的属性依赖关系,泛化性能可能得到提升
" R+ I; K9 [  S2、计算开销不大2 s( S4 C' X2 Q5 T" J$ o
3、同样支持懒惰学习、增量学习: `6 B) v9 E  _" K& l/ B
缺点:
& R5 ]. k3 X, j% C5 W1、通过类先验概率产生模型
% O2 W4 b% @, ?: D
7 q$ _4 P) \! t. n贝叶斯网(信念网)
/ A/ {- ^! t# r" i$ \贝叶斯网借助有向无环图刻画属性之间的依赖关系,通过吉布斯采样或者变分推断等方式来近似推断后验概率。* w2 a& ~# L* t3 p$ ~
优点:; j) H: \& j2 R) _
1、更加完整地考虑了属性间依赖关系,泛化性能将进一步提升
3 m$ c9 `, o/ {) s: `2、近似估算后验概率
  S% N0 @  v/ L4 C3、可用于推测属性缺失的样本
+ X, g+ T4 {3 g7 ]4、良好的可解释性( B' A# c, _/ E- c% N! @
5、常用于语音识别、机器翻译等
' ]) I3 p; M+ u. W: B# E缺点:
& K, |- ]  P: u% Q$ H1、结构学习NP难,通过评分搜索方法缓解" n* X9 w3 B" Z! \
2、推断算法的收敛速度较慢
, v, ^. U# L* ?4 P: v  t9 f
6 A- v7 i, Z( i2 Y决策树(decision tree)
/ \- J' j+ S3 y* Y+ [决策树通过信息纯度(信息增益、增益率、基尼指数等)来决定结点的生成,通过剪枝来缩小决策树的尺寸以及缓解过拟合。是一种非参数学习算法。
* D0 \3 [7 Z6 Q  E6 A: _3 @优点:4 d# a, S9 Z/ I' u: N
1、计算量较小  q: |6 G' T5 E0 G
2、清晰表达属性的重要程度
) K$ P6 @" R6 Y! W; d' y- {% O1 |3、可增量学习对模型进行部分重构' R3 u" N+ k  y$ ~  j+ E
4、不需要任何领域知识和参数假设
; o, S+ B2 c- @7 T/ d; u" i5、适合高维数据
# j5 J8 W' ^$ K6、随机森林是基于决策树的集成学习策略,随机森林鲜有短板' k* X7 Q; n! O
缺点:- c  Y2 A4 k$ E1 l5 N/ K
1、没有考虑属性间依赖% ^5 U! O5 {  N+ C; I$ f* B& f
2、容易过拟合,通过剪枝缓解* e0 |4 a, y( e; w/ r/ [
3、不可用于推测属性缺失的样本
0 ]/ b0 d* c: R  U4 w/ F- V/ M7 U+ g) y# K+ e/ m* J0 u% ?
支持向量机(SVM)
! Z* Y" z) u4 s# C基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,是一种针对二分类设计的算法,但稍加改造为支持向量回归即可用于回归学习。  Q6 D$ ~4 D' [
优点:5 B/ P+ j; X; x* d/ V9 v
1、可解决小样本的机器学习任务
; ?6 o* G0 B" \2、可解决高维问题
5 o: B: x; T1 a3 g/ E2 P3、可通过核方法解决非线性问题0 [- g( H% M3 {6 [
缺点:" L7 e, L; [+ ?/ u" ]* F% x8 L
1、对缺失数据敏感. K2 Y) B2 f9 n) s+ y9 e4 y
2、对于非线性问题,核函数方法选择一直是个未决问题; h$ v( L6 w9 R6 e) c0 X2 Q
1 a( S8 L) h/ q, X$ a5 g# l
神经网络  l6 F7 H4 a: \5 ?0 T
优点:
, K5 I, F4 Z! @+ j9 [6 H6 t1、分类的准确度极高
  v& ^6 B, ~" L) f& F2、可解决复杂的非线性问题+ ?6 B+ @9 i! r) J
3、对噪声神经有较强的鲁棒性和容错能力
( V" L% D- Y! q. r# O9 d4、并行分布处理能力强,分布存储及学习能力强) B2 e; D4 S: W  P  T5 b6 x9 \7 Q
5、常用于图像识别
/ y, Q5 H& G4 `: N& w& c! L6、数据量越大,表现越好
; q% V  V+ s6 N8 t/ ]0 [3 H缺点:
, l8 ~5 n$ z* G- O" U$ T1、黑箱模型,难以解释
: q) C% G7 ^; s. I3 g2、需要初始化以及训练大量参数,如网络结构、权值、阈值,计算复杂
" i1 j7 V2 ]$ z+ ^' {  Y' k3、误差逆传播的损失* C5 F. X4 p' h5 W- Z2 E
4、容易陷入局部最小. K2 p" c& W) ~2 l0 ^: G5 q5 @

. z' U& @* C" p" [' p8 e: g词向量(word2vec)( s* q5 c! |3 q) P6 ^: }/ F
将文章的每句话当成一行,将每个词用符号隔开(如使用中文分词工具jieba),根据上下文,可以找出相似词义的词。
/ i  O; X* N( O! R& @* }比如:我 喜欢 你,我 爱 你,我 讨厌 你。根据上下文我和你,可以找到喜欢的相似词,有爱和讨厌。
9 m/ j- p. C7 u+ x再一般地如:1 2 3 X 4 5 6,1 2 3 Y 4 5 6。根据上下文1 2 3和4 5 6,可以找到X和Y相似。" U7 s9 E: P) t; O, B! y; ]# b
gensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。
" T+ M1 R2 f4 K& o) a8 b# E- g0 O: ^/ n/ M7 `$ l
k近邻分类(kNN). C5 T5 }$ \. n; e5 h5 Z0 a* z4 w
基于某种距离度量找出训练集中与其最靠近的k个训练样本,或者指定距离e之内的训练样本,分类任务中通过投票法(以及加权投票等)将出现最多的类别标记作为预测结果,回归任务中则使用平均法(以及加权平均等)- Z& s4 \: c/ L. A  B
优点:3 ^" q) o, D& ^. x% B! K; b  ]
1、思想简单,易于理解,易于实现,无需估计参数,无需训练;( S; x; a, X7 ?5 D7 p& K; f2 J
2、适合对稀有事件进行分类;$ E2 ], I" D3 w8 S  O" n
3、特别适用于多分类问题5 Y, G* j; ]% ?% |  W
缺点:
2 P9 E  n' |% s3 g% l2 w1、需要计算出待测样本与所有样本的距离,计算量大
2 f8 q" t) }* J; k2 |2、样本不平衡时影响大
. m# h, e6 W& S2 n: ~# ]3 n3、适用的特征维度低
; a9 J# Q  _+ L2 G
5 L( m5 R8 R5 m+ V线性模型9 k4 Y0 @3 w& D* I9 L" w% o
优点:
- |- q6 z' u- w2 }2 A: ?  T1、算法简单,编程方便( \: @( Q2 Y7 @/ V. F! Y
2、计算简单,决策速度快
( C4 u7 o7 u2 i缺点:
9 @" M0 j5 d+ X# U) E5 T* h1、拟合效果较差" M. v3 l4 Y7 Y7 C, _3 I

- N  q' x% D7 e- z/ d3 A0 }: I# t& ~高斯混合聚类与k均值(k-means)及其变种(k-means++、ISODATA、Kernel K-means)的对比
( |- n  Z- i# B/ dk-means是高斯混合聚类在混合成分方差相等、且每个样本仅指派给一个混合成分时的特例,因此k-means计算简单,但效果不如高斯混合聚类
9 ~8 H$ F4 O7 ]9 p* W/ w3 d由于计算太过复杂,高斯混合聚类并不常用,推荐使用k-means++(与k-means随机选定不同,k-means++初始选定的几个样本距离尽量远,这样能更快得出分簇结果)等k-means变种。" u0 m, n! t9 H" n, o2 U
+ N* t9 T/ e; X( E; c- `6 ^
关于学习算法的性能实验结果+ Q+ V$ h5 h( l: a& f! S" p1 R
点击查看原文7 H, W: G5 I' N

/ f, o0 ?5 N+ k/ l14年的时候有人做过一个实验[1],比较在不同数据集上(121个),不同的分类器(179个)的实际效果。
( y$ ~( N* H: s& L" `- I论文题为:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?* s% @1 X7 G% E* o! X4 {, h
没有最好的分类器,只有最合适的分类器。
6 \# {) J4 ]# p6 }5 P! z8 ^, Y1、随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。
4 g5 z8 g" e6 t) O9 v7 @2、SVM的平均水平紧随其后,在10.7%的数据集上拿到第一。
3 T: x# d( T& ~; ?3、神经网络(13.2%)和boosting(~9%)表现不错。& E7 {. j1 R, s7 D+ f8 J3 Q8 I
4、数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM[2]。
8 f  e. I4 ?% W' C" c5、数据量越大,神经网络就越强。! S& {8 D! k: n9 [5 i, r
————————————————! }. S2 T' q1 k% o  j, u3 d' \& O7 x
版权声明:本文为CSDN博主「路飞的纯白世界」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
9 d- l3 V" c$ V: e原文链接:https://blog.csdn.net/u010921136/article/details/90668382
& @( Z7 }, G5 j4 D6 k4 b8 a$ i
6 m  s& S8 e" K- f6 ]8 Y: u/ ^5 Z- S/ W





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