; _/ G; t, n& k& ?% D首先,机器学习主要分为「监督式学习」与「非监督式学习」,两者的差异在于资料是否有「标签」。5 ?( O/ e5 ^1 X/ u/ W8 P
; M7 M. \8 j7 q+ K. f0 ?
监督式学习(Supervised Learning):给予「有标签」的资料,举例来说:给机器一堆苹果和橘子的照片,并说明哪些是苹果、哪些是橘子,再拿一张新的照片询问机器这是苹果还是橘子,而监督式学习又可分为回归(Regression)和分类(Classification)。 $ p' I5 z2 ]3 L4 {/ y5 L2 Z/ {9 ~! ]( R' h! d3 C. ^) _" }
非监督式学习(Unsupervised Learning):给予「无标签」的资料,让机器找出潜在的规则,举例来说:给予机器一堆苹果和橘子的照片,但没有告诉机器这些照片各别是哪种水果,让机器自行找到资料间的相似性,而非监督式学习又可分为分群(Clustering)和降维(Dimension Reduction)。 + B. P% V5 f& `! [ 3 x1 `! K, y. {这篇文章会以监督式学习中的分类模型为主。 + g8 S* b( s: {7 f! ~! ]( A* e5 U* x% L- u6 b* o2 n' T
一、逻辑回归(Logistic Regression); N. w M. R$ O+ s c
逻辑回归是个二元分类(Binary Classification)的模型,并有其对应的机率值,举例:明天会下雨的机率有90%。 9 S m4 h/ M! M, @; \9 `4 a6 B- e' U6 e* f; y. f O$ P5 a0 i
基本概念是利用线性回归线(Linear Regression Line),将资料分为A/B两类,再透过Sigmoid Function (or Logistic Function) 输出A类别的机率值(0~1),若机率>0.5则判断为A类别,因为是二元分类,所以当机率<0.5则被归类为B类别。% i; S, j9 F( r
: G/ O# W4 M. A6 P' f) O% p
若需处理多元分类问题,有两种方法: , a4 \6 B/ o1 C" m1. One versus Rest (or One versus All):将每个分类与其他剩余的资料做比较,若有N个类别,就需要N个二元分类器。以下方图例来说明,若有类别1~3,每次各使用一个类别与剩余的两个类别作二元分类后,会得到三个分类器,预测时把资料放到三个分类器中,看哪个分类器的分数较高,就判断为该类别。3 o: t) k A: k1 ?/ E5 O* v
0 B& t1 T3 {* _, e3 e, ?# n! S C2 z/ JOne versus Rest Example (Source from Internet) ! O! j7 \% ?8 a; z; {- \ + m! V& v- R$ P) c2. One versus One:每次选择两个类别做分类,若有N个类别,就会有N*(N-1)/2个分类器,将每次分类的结果做投票,最后判断为票数最高的那个类别。举下方图例来说,有三个类别,会有三组分类器,最后新资料会判断为票数较高的类别1。 - d4 T- A2 [9 o: q3 v* |) T9 @. a7 h" l" C' P0 N3 X
One versus One Example (Source from Internet)4 m E e' e( f- }) b
/ X) G4 b. P# Z6 E. F1 U$ O, W9 sLogistic Regression的优点:4 x/ k1 r6 ^. m4 c
◆ 资料线性可分(包含在高维度空间找到linear plane)2 s2 h9 k; L; V2 }, }
◆ 除了分类,也可以得到A/B两类的机率$ _: T" y( @7 c* p( j% H- V
◆ 执行速度较快 , s2 P" L3 l4 b, k# H8 |( W ! w$ Q1 C) x8 a2 w: z: E$ BLogistic Regression的缺点:! n% ]4 \8 C! j3 H! K1 v
◆ 线性回归线的切法可能不够漂亮) J s9 g! N3 w
◆ 不能很好地处理大量、多类特征/ D, {$ y6 [" K2 N/ F0 M
/ h! ^/ [' h! v; e; t
二、 支持向量机( 支持向量机,SVM) 2 n7 w1 S. A' D9 Z% Z$ v6 \支持向量机(Support Vector Machine)是在寻找一个超平面(Hyper-plane)来做分类,并使两个类别之间的边界距离最大化(会忽略异常点Outlier)。 + n! ?- W& X8 _' S3 J0 d4 z$ x7 o) ^- F; H Z* P/ G6 P3 R; a
SVM也可使用于非线性分类(如下图B),透过Kernels functions将低维空间转换为高维空间,让资料可以在高维空间被线性分类。想像红色球的重量比蓝色球还重,在平面上一拍,让球往上弹,重量重的红色球会较快落下,在立体空间就可以找出个平面来切分红色和蓝色球。1 G) A' F( F2 g! p. g
! `% f& J2 F' t' y1 Q1 m* H" T- b. FSupport Vector Machine Example (Source from Internet)! A9 S' v# S# e( |