QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2761|回复: 0
打印 上一主题 下一主题

[其他资源] Python机器学习-多元分类的5种模型

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2022-9-5 16:26 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    3 n# h3 k; b& r- C6 P# m
    Python机器学习-多元分类的5种模型
    / C4 {1 g7 u( W+ Y" t2 e
    6 x6 X* p( t8 ^( Z2 |& W( l5 H最近上了些机器学习的课程,于是想透过Kaggle资料集来练习整个资料科学专案的流程,在模型训练阶段,虽然听过许多分类模型,但不是很了解其各别的优缺点与适合的使用时机,所以想来整理一篇文章,统整上课学习与网路资料,作为后续专案的优化方向!" w; ?$ H% s* M  y1 i

    + I* ^! R. V7 S' i2 r) C7 ?首先,机器学习主要分为「监督式学习」与「非监督式学习」,两者的差异在于资料是否有「标签」。! U1 Q2 A* h. I; m. Q
    - [! r& J+ K; B' [# e
    监督式学习(Supervised Learning):给予「有标签」的资料,举例来说:给机器一堆苹果和橘子的照片,并说明哪些是苹果、哪些是橘子,再拿一张新的照片询问机器这是苹果还是橘子,而监督式学习又可分为回归(Regression)和分类(Classification)。/ `1 g" l7 h1 h$ ?: T: D

    + w4 y( N' U  \6 n/ i/ L$ g' b, r非监督式学习(Unsupervised Learning):给予「无标签」的资料,让机器找出潜在的规则,举例来说:给予机器一堆苹果和橘子的照片,但没有告诉机器这些照片各别是哪种水果,让机器自行找到资料间的相似性,而非监督式学习又可分为分群(Clustering)和降维(Dimension Reduction)。( q4 I; c! }7 R1 X1 h2 t

    6 Q, |" c) r) ]/ d, R4 w这篇文章会以监督式学习中的分类模型为主。
    : I; x; {4 J/ F3 F/ r+ t
    3 A& M; i3 Y3 ^3 h- N一、逻辑回归(Logistic Regression)' ~+ D5 b9 C& K+ |9 G
    逻辑回归是个二元分类(Binary Classification)的模型,并有其对应的机率值,举例:明天会下雨的机率有90%。* A$ ]' N+ {" q3 ]$ d" \
    : `+ s' v1 c% K
    基本概念是利用线性回归线(Linear Regression Line),将资料分为A/B两类,再透过Sigmoid Function (or Logistic Function) 输出A类别的机率值(0~1),若机率>0.5则判断为A类别,因为是二元分类,所以当机率<0.5则被归类为B类别。6 R# P7 r* C& g5 u7 r$ y
    9 n3 j8 ?5 ]9 l8 O! U5 c  @6 E
    若需处理多元分类问题,有两种方法:
    : D5 `9 X) [. ]$ g3 h7 \1. One versus Rest (or One versus All):将每个分类与其他剩余的资料做比较,若有N个类别,就需要N个二元分类器。以下方图例来说明,若有类别1~3,每次各使用一个类别与剩余的两个类别作二元分类后,会得到三个分类器,预测时把资料放到三个分类器中,看哪个分类器的分数较高,就判断为该类别。- y3 _' s) f) b! v: y. E
    ! R- E; Y, ?$ u( k1 z4 q
    One versus Rest Example (Source from Internet)
    3 _5 Z% f) h2 e* V/ l
    * d# T8 Q1 g8 e4 ^" U2. One versus One:每次选择两个类别做分类,若有N个类别,就会有N*(N-1)/2个分类器,将每次分类的结果做投票,最后判断为票数最高的那个类别。举下方图例来说,有三个类别,会有三组分类器,最后新资料会判断为票数较高的类别1。
    8 ~$ e  k0 A( I, q0 K% R6 q6 i/ q' @- W9 b5 X) S: M
    One versus One Example (Source from Internet)
    . Y; a: F# g$ c
    & Z3 E* K4 j. c4 E# wLogistic Regression的优点:
    & j% i& L& ]3 A, W* l0 x◆ 资料线性可分(包含在高维度空间找到linear plane)3 p7 G4 W& J, _$ U
    ◆ 除了分类,也可以得到A/B两类的机率* p* B0 P, U& x  F3 j2 c+ D
    ◆ 执行速度较快
    & a4 ]' O2 T; a+ C5 g5 S/ F& v- L4 X/ D
    Logistic Regression的缺点:5 Y% ~2 W  E% D! c8 {
    ◆ 线性回归线的切法可能不够漂亮( j' v" y0 Q7 g- k) O0 |# o
    ◆ 不能很好地处理大量、多类特征
    % _1 s2 O9 D7 h* n( u1 ~. z; _" P: a( j: ^
    二、 支持向量机( 支持向量机,SVM); H. b0 j& P2 a  T5 t6 c" C
    支持向量机(Support Vector Machine)是在寻找一个超平面(Hyper-plane)来做分类,并使两个类别之间的边界距离最大化(会忽略异常点Outlier)。1 _! Y* q; J4 L1 K: a8 ~& \, g, j
    $ B/ D$ z2 d7 b) V+ T& a6 o9 Q
    SVM也可使用于非线性分类(如下图B),透过Kernels functions将低维空间转换为高维空间,让资料可以在高维空间被线性分类。想像红色球的重量比蓝色球还重,在平面上一拍,让球往上弹,重量重的红色球会较快落下,在立体空间就可以找出个平面来切分红色和蓝色球。. K# d% c# v, P% y, n2 e

    ' Y' S( m6 Y! {9 E2 z  ]  |Support Vector Machine Example (Source from Internet)
    6 u$ ?+ m! h3 `' h5 e, B8 l
    & }$ U; i$ n+ n, d2 w- u( hSVM的优点:: U6 m4 {% W9 _; R
    ◆ 切出来的线或平面很漂亮,拥有最大边界距离(margin)& L6 r6 m) [4 w
    ◆ 在高维空间可以使用(即使维度数大于样本数也有效)
    + I9 L" T9 g; a  R' R+ e◆ 在资料量较小、非线性、高维度与局部最小点等情况下有相对的优势! g* A+ ~. x  n  S1 a9 @0 z

    1 ~! q% P; x- C+ o, p  |SVM的缺点:- A9 [/ I4 @4 l
    ◆ 当资料太多时,所需的训练时间太长,而使效果不佳
    3 d: S; N1 H( T: {1 e◆ 当资料集有太多noise时(如目标类别有重叠),预测的效果也会不好+ i8 A3 B2 o6 C. z
    ◆ SVM不会直接提供机率的估计值
    - V8 t* x+ |# H# s" [+ T& r9 s' H) Z0 u* Z* V# j
    三、决策树(Decision Tree)2 v! j9 \% Q: @  f: A. S6 F
    透过模型预测可以得知某个方程式来做分类,但方程式可能很难懂或很难解释,这时需要决策树(Decision Tree),它的准确性可能没有很精准,但「解释性」高,所以决策树是一种条件式的分类器,以树状结构来处理分类问题。8 I- C9 E; X$ t! \2 ^% }2 P% |

    / N# E2 e% C! N! V% A$ V1 [1 }$ {建构决策树的方式,是将整个资料集依据某个特征分为数个子资料集,再从子资料集依据某个特征,分为更小的资料集,直到子资料集都是同一个类别的资料,而该如何分类则是透过资讯熵(Entropy)和资讯增益(Information Gain)来决定。
    1 `; I# O5 ?4 g  X
    9 Q4 [$ t, U2 `6 B1. 资讯熵(Entropy):用来衡量资料的不纯度,若资料为同一类Entropy=0,若资料「等分」成不同类别Entropy=1。
    3 \. h5 I; [5 ~" f6 P) U+ j5 O  ~, L! ?* ~8 k# J
    2. 资讯增益(Information Gain):用来衡量某个特征对于资料分类的能力,而建构决策树就是要找到具有最高资讯增益的分类法(得到纯度最高的分支)。简单来说,原本的资料集(High Entropy=E1),经过分类,得到多个资料集(Low Entropy=E2),其中的E1-E2=Information Gain。# V  c) r' z) O# T$ c% B% k) N8 U

    , m& }5 q, d& g7 o( [( V) HDecision Tree的优点:9 a9 C3 J: c. i4 m2 W7 Q
    ◆ 决策树容易理解和解释. O$ o5 M2 ~% ^9 H8 e3 W
    ◆ 资料分类不需要太多的计算
    ( n) ^6 b; s2 `& A2 d◆ 可以处理连续值和离散值
    1 A- Z* ]1 ?1 C◆ 资料准备相对比较容易
    2 O) s  D7 u! V3 H(不需要做特征标准化、可以处理合理的缺失值、不受异常值的影响)9 Y3 T( M  E8 k! d& }
    ◆ 因为解释性高,能用在决策分析中,找到一个最可能达到目标的策略  L! Z  W+ I% z8 Z" ?3 H( g+ Q' l3 f
    % _% K/ T7 A4 S9 K% M
    Decision Tree的缺点: **/ M3 @; `4 h7 I7 {, y; a! ]
    **◆ 容易过度拟合(Over-fitting)- L* Y9 r9 G, ^8 L# }9 p
    ◆ 若类别太多,但资料量太少,效果比较差* w$ e! t( I: ?

    8 l, o1 J8 w1 n; j, _" t四、随机森林(Random Forest)  G" F, f' Z9 M% t/ z8 Z
    随机森林,是取部分特征与部分资料产生决策树,每重复此步骤,会再产生一颗决策树,最后再进行多数决投票产生最终结果。( w' j- A9 a( t
    : t; [2 H3 r# \! A' k5 J
    随机森林可以降低决策树有过拟合的问题,因为最终结果是对所有的决策树结果进行投票,进而消除了单棵决策树的偏差。/ V" ?' r) g7 s; P/ j& P
    8 S& d( x3 {3 x. Y( Y0 }7 H# n
    Random Forest Example (Source from Internet)
    ) T! H  B# u* X& ~6 t6 o) {5 v' u( ]4 x- U! |! P
    Random Forest的优点:
    9 K9 o  ^& d: [◆ 随机森林的决策树够多,分类器就不会过拟合( i$ O6 j% ]+ Q! R# E8 Q8 t1 h
    ◆ 每棵树会用到的资料和特征是随机决定的
    + ~" {+ M0 r8 O" j% g◆ 训练或预测时每棵树都能平行化的运行( O* s2 r- _4 J

    ' A1 p  g3 R0 ], n% ]+ {Random Forest的缺点: **
    8 i9 t  ]9 e. c**◆ 当随机森林中的决策树个数很多时,训练时需要的空间和时间会比较大  ^+ h. _% Y1 H- Z7 F

    ) p5 U- A: d' C! s. c五、极限梯度提升(eXtreme Gradient Boosting, XGBoost)  C9 m3 I' F: H& N, ^
    其实会想写这篇文章,是因为在使用Kaggle资料做练习时,发现网站上有需多人使用XGBClassifier做分类预测,因此想进一步了解这个模型。% b( t0 d( y! _3 _8 |+ @

    , c3 S5 `+ s: hXGBoost的两个主要概念:" Z5 B9 Z* a2 ?  A

    1 [8 [) m( v: Q) f: R) \0 F1. 回归树(Classification and Regression Tree, CART)
    * I# z. a3 T. S$ h( }  O6 L回归树拥有和决策树一样的分支方式,并在各个叶端(Leaf)有一个预测分数(Prediction Score),且回归树是可以做集成的,也就是把资料丢到所有树中,把得到的预测分数加总。& Q4 z* V5 C4 I3 \5 e
    0 z1 U5 h& ^, c) X% R$ N8 ~# f
    2. 梯度提升: d2 U+ ^  Z2 ^6 M# @4 q$ K8 o: |
    先以常数作为预测,在之后每次预测时新加入一个学习参数,要找出最佳参数,是在每次迭代中,使用贪婪演算法计算Gain,并找出最佳分支做新增,并对负Gain的分支做删减(详细请参考文章1说明)。换句话说,就是「希望后面生成的树,能够修正前面一棵树犯错的地方」。. `0 @& B. d  f- C
    # c6 |7 b6 h  F; v: l; ?) z
    Random Forest 和XGBoost 差异如下图例:
    : `: H8 k7 z! P, aRandom Forest是由多个决策树所组成,但最终分类结果并未经过加权平均;而XGBoost是由连续的决策树所建构,从错误的分类中学习,并在后续的决策树中增加更高的权重。
    ; j3 c! F, u4 a
    2 L) H# O" D: X% N- ]+ y& fRandom Forest and XGBoost Difference (Reference: 參考文章3)4 m  ]; N7 ?- y# l1 g
    ) ~! s4 m( g) M. ?
    XGBoost的优点:
    ! Z/ ]: L3 `9 J4 R◆ 在损失函数中加入正则项,控制模型的复杂度,防止过拟合现象( x% B! x1 e; e* X
    ◆ 在每次迭代后,会将叶子节点的权重乘上该系数,来削弱每棵树的影响
    , u  l) L, l& o* n. ?8 ~& i! q) S7 Q7 Y4 |1 ~
    XGBoost的缺点: **# ~5 L% i( v. x$ ^& N2 [8 i
    **◆ 空间复杂度过高,需要储存特征值和特征对应样本的梯度统计值7 x3 N+ X1 M  H
    ————————————————# t; x+ p6 b, K8 y5 `) G& `4 L
    版权声明:本文为CSDN博主「wuxiaopengnihao1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。/ |! K/ q1 D6 w( \) j' E# K4 q# N
    原文链接:https://blog.csdn.net/wuxiaopengnihao1/article/details/126686410
    " s; _) g3 j- o5 F$ m, y1 o& `
    ; a+ ~8 s2 m1 K3 y5 m
    5 |4 N' R( m1 Z( e# |/ p
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-14 18:21 , Processed in 0.412726 second(s), 51 queries .

    回顶部