数学建模社区-数学中国
标题:
各类机器学习算法的优缺点和适用场景汇总
[打印本页]
作者:
杨利霞
时间:
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 {: A
3、对缺失数据不太敏感
1 V& A. Y G$ h+ n, j( \; O6 s
4、推断即查表,速度极快。
! 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 J
1、考虑了一个或多个比较强的属性依赖关系,泛化性能可能得到提升
" R+ I; K9 [ S
2、计算开销不大
2 s( S4 C' X2 Q5 T" J$ o
3、同样支持懒惰学习、增量学习
: `6 B) v9 E _" K& l/ B
缺点:
& R5 ]. k3 X, j% C5 W
1、通过类先验概率产生模型
% 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 C
3、可用于推测属性缺失的样本
+ X, g+ T4 {3 g7 ]
4、良好的可解释性
( B' A# c, _/ E- c% N! @
5、常用于语音识别、机器翻译等
' ]) I3 p; M+ u. W: B# E
缺点:
& K, |- ] P: u% Q$ H
1、结构学习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" i
5、适合高维数据
# j5 J8 W' ^$ K
6、随机森林是基于决策树的集成学习策略,随机森林鲜有短板
' 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/ M
7 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 P
3、可通过核方法解决非线性问题
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 t
1、分类的准确度极高
v& ^6 B, ~" L) f& F
2、可解决复杂的非线性问题
+ ?6 B+ @9 i! r) J
3、对噪声神经有较强的鲁棒性和容错能力
( V" L% D- Y! q. r# O9 d
4、并行分布处理能力强,分布存储及学习能力强
) B2 e; D4 S: W P T5 b6 x9 \7 Q
5、常用于图像识别
/ y, Q5 H& G4 `: N& w& c! L
6、数据量越大,表现越好
; q% V V+ s6 N8 t/ ]0 [3 H
缺点:
, l8 ~5 n$ z* G- O" U$ T
1、黑箱模型,难以解释
: q) C% G7 ^; s. I3 g
2、需要初始化以及训练大量参数,如网络结构、权值、阈值,计算复杂
" i1 j7 V2 ]$ z+ ^' { Y' k
3、误差逆传播的损失
* 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 w
1、需要计算出待测样本与所有样本的距离,计算量大
2 f8 q" t) }* J; k2 |
2、样本不平衡时影响大
. m# h, e6 W& S2 n: ~# ]3 n
3、适用的特征维度低
; 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: ? T
1、算法简单,编程方便
( \: @( Q2 Y7 @/ V. F! Y
2、计算简单,决策速度快
( C4 u7 o7 u2 i
缺点:
9 @" M0 j5 d+ X# U) E5 T* h
1、拟合效果较差
" 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/ d
k-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/ l
14年的时候有人做过一个实验[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 ^, Y
1、随机森林平均来说最强,但也只在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" c
5、数据量越大,神经网络就越强。
! 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