QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2757|回复: 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
    * B# T0 d! H( Y# q4 g
    Python机器学习-多元分类的5种模型
    . G! O3 @% [; R- d3 S
    8 o5 @6 \& V7 n# U4 X最近上了些机器学习的课程,于是想透过Kaggle资料集来练习整个资料科学专案的流程,在模型训练阶段,虽然听过许多分类模型,但不是很了解其各别的优缺点与适合的使用时机,所以想来整理一篇文章,统整上课学习与网路资料,作为后续专案的优化方向!& h7 G6 E- \6 a( I
    . I0 [3 _7 y) Q: B) @/ e1 S/ s
    首先,机器学习主要分为「监督式学习」与「非监督式学习」,两者的差异在于资料是否有「标签」。
    , T/ k: L2 ]' B$ {% V
    # u( k2 L$ U$ w监督式学习(Supervised Learning):给予「有标签」的资料,举例来说:给机器一堆苹果和橘子的照片,并说明哪些是苹果、哪些是橘子,再拿一张新的照片询问机器这是苹果还是橘子,而监督式学习又可分为回归(Regression)和分类(Classification)。, \7 x9 _. q8 T4 w6 n) ]+ W1 f
    1 D0 Q6 V4 M2 L/ e( y! c* K
    非监督式学习(Unsupervised Learning):给予「无标签」的资料,让机器找出潜在的规则,举例来说:给予机器一堆苹果和橘子的照片,但没有告诉机器这些照片各别是哪种水果,让机器自行找到资料间的相似性,而非监督式学习又可分为分群(Clustering)和降维(Dimension Reduction)。
    8 I2 m3 s7 _& T) D( R) N2 h" q8 B( n) b6 v5 s' b7 N
    这篇文章会以监督式学习中的分类模型为主。& C( k% n7 y$ R0 [7 E- Z( B
    % j7 I3 R0 x; F
    一、逻辑回归(Logistic Regression)
    2 b0 S$ V  u3 ]" ~; {0 y+ M! u逻辑回归是个二元分类(Binary Classification)的模型,并有其对应的机率值,举例:明天会下雨的机率有90%。! {! z+ F& ?! P+ @

      b* u6 v5 d; h" d. v基本概念是利用线性回归线(Linear Regression Line),将资料分为A/B两类,再透过Sigmoid Function (or Logistic Function) 输出A类别的机率值(0~1),若机率>0.5则判断为A类别,因为是二元分类,所以当机率<0.5则被归类为B类别。
    % ?3 [- e- W3 X; F8 z+ @1 `+ u! ?& o7 N! i
    若需处理多元分类问题,有两种方法:
      g" ^; l* U+ C. z. [, f1. One versus Rest (or One versus All):将每个分类与其他剩余的资料做比较,若有N个类别,就需要N个二元分类器。以下方图例来说明,若有类别1~3,每次各使用一个类别与剩余的两个类别作二元分类后,会得到三个分类器,预测时把资料放到三个分类器中,看哪个分类器的分数较高,就判断为该类别。1 H+ f9 D8 c; ^8 j

    - e7 l- E  `/ I& j3 A6 b/ ?One versus Rest Example (Source from Internet)* p* O1 U; A0 y
    2 Y8 ^- K9 Y7 @
    2. One versus One:每次选择两个类别做分类,若有N个类别,就会有N*(N-1)/2个分类器,将每次分类的结果做投票,最后判断为票数最高的那个类别。举下方图例来说,有三个类别,会有三组分类器,最后新资料会判断为票数较高的类别1。5 i/ H2 R7 B" c/ u% U

    0 h* B* T( W/ k  fOne versus One Example (Source from Internet)
    , Q% H' b2 J& \- _* Y
    ; v. P' z; T0 j3 w8 o* k0 KLogistic Regression的优点:1 b  ~0 X1 M' y; F
    ◆ 资料线性可分(包含在高维度空间找到linear plane)8 L7 T+ r" A/ s) X$ V$ b4 M0 k: w
    ◆ 除了分类,也可以得到A/B两类的机率2 u: _3 A0 A2 R3 A. g8 I9 F
    ◆ 执行速度较快
    / M8 ~" @. M& `& c0 s( P' F5 M3 N# b! z# K1 R4 U
    Logistic Regression的缺点:
    ; h8 R* `5 n# R/ B4 P$ V◆ 线性回归线的切法可能不够漂亮4 y# o6 d6 t8 U; ?1 V7 U
    ◆ 不能很好地处理大量、多类特征
    7 k# W# S, {# q7 e" x
    , w+ \/ g- e6 f1 \# R8 r9 k8 a二、 支持向量机( 支持向量机,SVM)
    ! R- p* M4 m3 @支持向量机(Support Vector Machine)是在寻找一个超平面(Hyper-plane)来做分类,并使两个类别之间的边界距离最大化(会忽略异常点Outlier)。
    + h4 u5 K9 o2 [% W( l- S) v- E$ [( J& R* B1 ]1 I
    SVM也可使用于非线性分类(如下图B),透过Kernels functions将低维空间转换为高维空间,让资料可以在高维空间被线性分类。想像红色球的重量比蓝色球还重,在平面上一拍,让球往上弹,重量重的红色球会较快落下,在立体空间就可以找出个平面来切分红色和蓝色球。; H! L2 J$ v$ F; N+ w; O6 @/ ?) `
    6 {% F* X7 V2 G, Y
    Support Vector Machine Example (Source from Internet)
    8 z( I$ J+ q2 s, m! N$ u7 Y) T; `6 ?8 C) r6 Y
    SVM的优点:
    ; ]; A% w, M9 ?9 N◆ 切出来的线或平面很漂亮,拥有最大边界距离(margin)
    7 ]2 G& e2 P: ]# S! \4 O◆ 在高维空间可以使用(即使维度数大于样本数也有效); k# N3 Z) f7 q" |
    ◆ 在资料量较小、非线性、高维度与局部最小点等情况下有相对的优势0 D$ u. O0 F% O) P1 ]0 k1 U+ H" ^
    ; R$ F3 X; Z- J
    SVM的缺点:
    0 Z1 f* M" l: Y* G+ M& A5 Z2 @; V◆ 当资料太多时,所需的训练时间太长,而使效果不佳0 r3 n& e& B: O% C( x, G
    ◆ 当资料集有太多noise时(如目标类别有重叠),预测的效果也会不好
    3 A; P' g. w% X  v8 `◆ SVM不会直接提供机率的估计值3 ]" Y! @. D) q. f

    " N9 i+ E  t! x! a" }三、决策树(Decision Tree)
    ; B7 c: E& A! ~, F5 v5 B透过模型预测可以得知某个方程式来做分类,但方程式可能很难懂或很难解释,这时需要决策树(Decision Tree),它的准确性可能没有很精准,但「解释性」高,所以决策树是一种条件式的分类器,以树状结构来处理分类问题。. W$ f0 B* u0 h
    " ]/ }9 x& q" S  E# e! a
    建构决策树的方式,是将整个资料集依据某个特征分为数个子资料集,再从子资料集依据某个特征,分为更小的资料集,直到子资料集都是同一个类别的资料,而该如何分类则是透过资讯熵(Entropy)和资讯增益(Information Gain)来决定。8 M+ ^5 n- L! Y

    . J1 M' ]$ |7 j* p/ h1. 资讯熵(Entropy):用来衡量资料的不纯度,若资料为同一类Entropy=0,若资料「等分」成不同类别Entropy=1。: q8 L/ F% c" j2 r  S

    8 W4 d% S6 Y* A" q- S% {2. 资讯增益(Information Gain):用来衡量某个特征对于资料分类的能力,而建构决策树就是要找到具有最高资讯增益的分类法(得到纯度最高的分支)。简单来说,原本的资料集(High Entropy=E1),经过分类,得到多个资料集(Low Entropy=E2),其中的E1-E2=Information Gain。
    9 J  s3 D! y& m! r& ]& r9 \, p9 R: }& P0 G4 e7 \2 `6 y
    Decision Tree的优点:
    5 D: m' |: s% k' }8 x◆ 决策树容易理解和解释; I+ E# y& [8 C& k" V: I8 S
    ◆ 资料分类不需要太多的计算
    8 {2 C7 Z: z) J4 t◆ 可以处理连续值和离散值; t# A  O$ Y  e3 n
    ◆ 资料准备相对比较容易* g5 d- X; M  I0 N- R* v- S" J
    (不需要做特征标准化、可以处理合理的缺失值、不受异常值的影响)
    # X6 ?7 _" f( J  M( Z# s+ ^◆ 因为解释性高,能用在决策分析中,找到一个最可能达到目标的策略
    , i' w: R& X+ h$ I
    # }) |7 o; w: c) L( L, x9 ZDecision Tree的缺点: **
    # c* |, c* g/ F( h**◆ 容易过度拟合(Over-fitting)
    ( a. S9 w9 S& u) c& d0 k, L/ ?◆ 若类别太多,但资料量太少,效果比较差' K" G8 k5 I- A6 N( |& t% A/ u& @7 i

    4 g1 \$ k9 j$ _2 y- ~  @: X8 S0 }  b四、随机森林(Random Forest)
    $ t: t% b  J3 c  G1 }8 M随机森林,是取部分特征与部分资料产生决策树,每重复此步骤,会再产生一颗决策树,最后再进行多数决投票产生最终结果。% G; q! k6 p1 c3 j0 M4 u
    5 N" ]6 }; d5 K) Y& t  X' `5 X+ S2 `# v
    随机森林可以降低决策树有过拟合的问题,因为最终结果是对所有的决策树结果进行投票,进而消除了单棵决策树的偏差。
      c( V2 n5 A/ Y( ~" Y
    + r5 [( B! L, N1 S) L- f& VRandom Forest Example (Source from Internet)2 U  |# i( T  W2 w$ n
    0 K/ z4 Y* ~7 A5 W
    Random Forest的优点:
      [; x3 L# N# ]7 h( i◆ 随机森林的决策树够多,分类器就不会过拟合: {% {- [4 A1 `8 U- d4 J
    ◆ 每棵树会用到的资料和特征是随机决定的
    8 C( H* O  r( t8 m+ C◆ 训练或预测时每棵树都能平行化的运行
    5 s  m4 X  Q" ^8 ~* u+ R5 q; U$ M5 {6 G  F
    Random Forest的缺点: **
    0 a) l+ B- |; o4 q) X/ o" q**◆ 当随机森林中的决策树个数很多时,训练时需要的空间和时间会比较大
    / u; m& |* t: H# u. E$ |- _
    0 h' W. }# b7 [" j五、极限梯度提升(eXtreme Gradient Boosting, XGBoost)
    2 O1 u+ {: a0 S$ x6 T其实会想写这篇文章,是因为在使用Kaggle资料做练习时,发现网站上有需多人使用XGBClassifier做分类预测,因此想进一步了解这个模型。* j. K( o8 A2 k4 _; Z! p# B

    & P0 |4 m+ a. P7 OXGBoost的两个主要概念:
    1 r0 e- x" L4 U, j' L, z4 \( M, i' k( H/ ~$ `& t$ A
    1. 回归树(Classification and Regression Tree, CART)
    ( O& V: ^7 F6 c7 T回归树拥有和决策树一样的分支方式,并在各个叶端(Leaf)有一个预测分数(Prediction Score),且回归树是可以做集成的,也就是把资料丢到所有树中,把得到的预测分数加总。
    + z$ o( W$ n8 b: T& z+ {$ O6 V
    9 Y7 t: g. }1 G2 `4 b) J; w2. 梯度提升
    ; i) w* Z* Y/ U7 E. {9 t先以常数作为预测,在之后每次预测时新加入一个学习参数,要找出最佳参数,是在每次迭代中,使用贪婪演算法计算Gain,并找出最佳分支做新增,并对负Gain的分支做删减(详细请参考文章1说明)。换句话说,就是「希望后面生成的树,能够修正前面一棵树犯错的地方」。
    0 q* Q) Q# V3 ]* `- o) w4 P+ ?* ~5 m9 Q+ V
    Random Forest 和XGBoost 差异如下图例:
    2 Y0 J" g: S; {4 b) hRandom Forest是由多个决策树所组成,但最终分类结果并未经过加权平均;而XGBoost是由连续的决策树所建构,从错误的分类中学习,并在后续的决策树中增加更高的权重。  M3 |2 U; D/ Z3 r* V
    # ~; p# R* G( X3 `
    Random Forest and XGBoost Difference (Reference: 參考文章3)4 v, N. A1 w- I' @0 A+ x2 o
    4 o# q: i; q/ H, D: E5 B
    XGBoost的优点:
    5 Y8 T! Y4 H/ k7 D8 E◆ 在损失函数中加入正则项,控制模型的复杂度,防止过拟合现象, G# Q8 r+ L8 \4 C
    ◆ 在每次迭代后,会将叶子节点的权重乘上该系数,来削弱每棵树的影响; f4 f3 j* Y( D$ e) \) j
    ! D/ r' u7 @- |2 \) ]6 J9 k* [+ e
    XGBoost的缺点: **8 ~0 W/ h4 C" p; l
    **◆ 空间复杂度过高,需要储存特征值和特征对应样本的梯度统计值
    4 X5 ^. D- z  Z1 B9 c9 c2 N. L————————————————; {+ y& K! W! T! \1 w
    版权声明:本文为CSDN博主「wuxiaopengnihao1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。* L  [; o+ n3 q. {! [: n% Z
    原文链接:https://blog.csdn.net/wuxiaopengnihao1/article/details/126686410
    * `( A, J; X* [& n% Z" d& b0 W2 J+ C& P% o" }

    ) i% F3 c/ J" F" v' I$ X0 V
    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-11 06:53 , Processed in 0.358414 second(s), 50 queries .

    回顶部