数学建模社区-数学中国
标题:
各类机器学习算法的优缺点和适用场景汇总
[打印本页]
作者:
杨利霞
时间:
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- q
k近邻分类(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 d
2、支持懒惰学习、增量学习
! R5 n( {0 S; i" G
3、对缺失数据不太敏感
8 d' ]3 A+ C9 u7 M4 n/ R
4、推断即查表,速度极快。
! y" t) w' n& W& O
缺点:
# I3 `2 ?# n; c9 H, G, x: s9 P
1、没有考虑属性间依赖
! f, e# Z2 n+ x6 l7 t. \1 Q# @$ P$ A
2、通过类先验概率产生模型
6 k7 A; n7 Q; ?2 u! y# N$ H6 ^; h7 b
6 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 O
1、考虑了一个或多个比较强的属性依赖关系,泛化性能可能得到提升
/ U5 {) B& C: a+ i2 s
2、计算开销不大
l- q& Z# N; W! t* M* D( S
3、同样支持懒惰学习、增量学习
- 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% \( w
3、可用于推测属性缺失的样本
$ |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 z
1、结构学习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( N
4、不需要任何领域知识和参数假设
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, e
1、没有考虑属性间依赖
! O$ g) |5 c- t2 ?! e# q- f
2、容易过拟合,通过剪枝缓解
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+ W
2、可解决复杂的非线性问题
% Y$ D- B8 g/ b1 f
3、对噪声神经有较强的鲁棒性和容错能力
* i. G% X& A7 Z! ^5 t
4、并行分布处理能力强,分布存储及学习能力强
2 n4 y+ E# H: s
5、常用于图像识别
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( z
2、需要初始化以及训练大量参数,如网络结构、权值、阈值,计算复杂
+ Z8 k8 U. d* E u7 I; Q6 I
3、误差逆传播的损失
; 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& Y
gensim是一个很好用的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$ {) M
1、思想简单,易于理解,易于实现,无需估计参数,无需训练;
: 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 O
1、需要计算出待测样本与所有样本的距离,计算量大
3 ], f) W4 w# B7 k7 }" X) G' Z
2、样本不平衡时影响大
" Y5 ]! {- P' {6 v7 ?" @9 ? j$ \
3、适用的特征维度低
6 V: p9 G% l+ l3 @6 [' F0 X
8 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 j
2、计算简单,决策速度快
: [) n/ Y, _8 r
缺点:
# O4 S; @4 E2 A) s; B8 i8 D; A
1、拟合效果较差
+ 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 g
1、随机森林平均来说最强,但也只在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. g
4、数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM[2]。
* |6 C1 z4 a1 m# e; j
5、数据量越大,神经网络就越强。
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 L
1 _4 ]! T1 y5 |- ^" j# l* W, D+ l: r
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5