1 ^3 C; |% w( [3 w7 a; x Python机器学习-多元分类的5种模型 : c E5 t8 W2 ^" f: n& n2 B8 n : T& u9 U; I3 \" V! R$ u* w0 h6 }最近上了些机器学习的课程,于是想透过Kaggle资料集来练习整个资料科学专案的流程,在模型训练阶段,虽然听过许多分类模型,但不是很了解其各别的优缺点与适合的使用时机,所以想来整理一篇文章,统整上课学习与网路资料,作为后续专案的优化方向! - j. Y3 O( f0 o& }, S. s ( d ^/ }% d/ q5 ~3 H; z首先,机器学习主要分为「监督式学习」与「非监督式学习」,两者的差异在于资料是否有「标签」。3 v+ Z# p G O
' p6 f/ \; x( c& r0 X
监督式学习(Supervised Learning):给予「有标签」的资料,举例来说:给机器一堆苹果和橘子的照片,并说明哪些是苹果、哪些是橘子,再拿一张新的照片询问机器这是苹果还是橘子,而监督式学习又可分为回归(Regression)和分类(Classification)。 3 P& b; `& \' Z" h( h' n5 c1 l7 V+ n: z8 _1 t+ u6 i7 P
非监督式学习(Unsupervised Learning):给予「无标签」的资料,让机器找出潜在的规则,举例来说:给予机器一堆苹果和橘子的照片,但没有告诉机器这些照片各别是哪种水果,让机器自行找到资料间的相似性,而非监督式学习又可分为分群(Clustering)和降维(Dimension Reduction)。 8 M ?* H& R. K( `4 d6 U: G) E: i+ ]3 I/ o q* v
这篇文章会以监督式学习中的分类模型为主。# ^& `$ P& ~' z/ q2 j
, m- i( k3 G4 w: K! B, x2 }
一、逻辑回归(Logistic Regression) / u+ R/ K- ?0 t- {$ @5 |逻辑回归是个二元分类(Binary Classification)的模型,并有其对应的机率值,举例:明天会下雨的机率有90%。 ) e5 U. g. W d- |/ H) B) [, E1 q* y1 \% B6 F) h( B: h
基本概念是利用线性回归线(Linear Regression Line),将资料分为A/B两类,再透过Sigmoid Function (or Logistic Function) 输出A类别的机率值(0~1),若机率>0.5则判断为A类别,因为是二元分类,所以当机率<0.5则被归类为B类别。 4 b& {) w, y* Z" y$ \1 Z" n7 r7 r3 V! w1 p
若需处理多元分类问题,有两种方法: 4 x$ Z0 J. f7 q. X/ X/ W1 v* i9 J1. One versus Rest (or One versus All):将每个分类与其他剩余的资料做比较,若有N个类别,就需要N个二元分类器。以下方图例来说明,若有类别1~3,每次各使用一个类别与剩余的两个类别作二元分类后,会得到三个分类器,预测时把资料放到三个分类器中,看哪个分类器的分数较高,就判断为该类别。7 U, n. q" P& l+ X
7 u$ J" b; r, NOne versus Rest Example (Source from Internet) 5 v1 B) M- P! c+ d# W5 [2 w% O( Z. b5 y$ M r) ^! R
2. One versus One:每次选择两个类别做分类,若有N个类别,就会有N*(N-1)/2个分类器,将每次分类的结果做投票,最后判断为票数最高的那个类别。举下方图例来说,有三个类别,会有三组分类器,最后新资料会判断为票数较高的类别1。 3 s% k( y9 c% U5 E! g: D ' X. T2 X+ b" c/ F: WOne versus One Example (Source from Internet): X4 B ]# O! k, e/ e7 H