# P6 T2 P7 A) |' @0 G4 Z Python机器学习-多元分类的5种模型 % W& ]+ v# M, A: H& R# Y* Z! e" X! n5 U. _
最近上了些机器学习的课程,于是想透过Kaggle资料集来练习整个资料科学专案的流程,在模型训练阶段,虽然听过许多分类模型,但不是很了解其各别的优缺点与适合的使用时机,所以想来整理一篇文章,统整上课学习与网路资料,作为后续专案的优化方向!6 ]; D1 }. q' I+ q z2 l5 N$ H* I
0 z7 D8 v% N' k) I+ ~$ `' N首先,机器学习主要分为「监督式学习」与「非监督式学习」,两者的差异在于资料是否有「标签」。+ f. c, }6 B1 e+ {# c
& u! u3 p, Y+ ~- Y6 B
监督式学习(Supervised Learning):给予「有标签」的资料,举例来说:给机器一堆苹果和橘子的照片,并说明哪些是苹果、哪些是橘子,再拿一张新的照片询问机器这是苹果还是橘子,而监督式学习又可分为回归(Regression)和分类(Classification)。$ ] V5 U$ v4 h) U. m" c
- L: |, t3 a8 a1 L. C+ Z8 V非监督式学习(Unsupervised Learning):给予「无标签」的资料,让机器找出潜在的规则,举例来说:给予机器一堆苹果和橘子的照片,但没有告诉机器这些照片各别是哪种水果,让机器自行找到资料间的相似性,而非监督式学习又可分为分群(Clustering)和降维(Dimension Reduction)。 3 i) Q0 t+ z8 q1 \8 K/ Z d+ g1 d0 q7 n M: {8 J
这篇文章会以监督式学习中的分类模型为主。 , h1 X F0 g6 U5 ^2 O) V A * s; k! V( E4 v) \: ]$ a一、逻辑回归(Logistic Regression) ) H; V: `8 Y9 s8 `# S* k/ }逻辑回归是个二元分类(Binary Classification)的模型,并有其对应的机率值,举例:明天会下雨的机率有90%。; o; H+ \# m" r% x% {0 C# _# k" ]
H4 E5 w% o) F; v2 F
基本概念是利用线性回归线(Linear Regression Line),将资料分为A/B两类,再透过Sigmoid Function (or Logistic Function) 输出A类别的机率值(0~1),若机率>0.5则判断为A类别,因为是二元分类,所以当机率<0.5则被归类为B类别。$ F' S2 o b7 Z$ J+ W# l5 i# P% Q# h ^
4 i+ q4 e* Q: `2 ~" i# G若需处理多元分类问题,有两种方法: . s% }7 a8 I) h, |9 Z+ ^$ W9 T$ v1. One versus Rest (or One versus All):将每个分类与其他剩余的资料做比较,若有N个类别,就需要N个二元分类器。以下方图例来说明,若有类别1~3,每次各使用一个类别与剩余的两个类别作二元分类后,会得到三个分类器,预测时把资料放到三个分类器中,看哪个分类器的分数较高,就判断为该类别。 $ T! O, Z$ ]" a1 } * k8 n6 f" B: m5 @$ n) p+ `One versus Rest Example (Source from Internet) 2 I/ y& ]2 h" }1 o$ Z 3 ~" [+ e* H; ]# h" h* p2. One versus One:每次选择两个类别做分类,若有N个类别,就会有N*(N-1)/2个分类器,将每次分类的结果做投票,最后判断为票数最高的那个类别。举下方图例来说,有三个类别,会有三组分类器,最后新资料会判断为票数较高的类别1。0 u# I9 B5 b q9 N
; |9 _4 }3 y' o v& @( r: wOne versus One Example (Source from Internet)* H+ u6 X. K8 O' m# [
8 M; X- r3 r) z5 A. \; a
Logistic Regression的优点:7 ~% j$ J2 K6 A5 `; T! Y! r z
◆ 资料线性可分(包含在高维度空间找到linear plane) - U/ ^: T+ |5 u◆ 除了分类,也可以得到A/B两类的机率. u( `1 D& C8 R/ k
◆ 执行速度较快5 D, N1 W2 B2 k: {+ f4 M. v _2 Z