Machine Learning學習日記 — Coursera篇 (Week 3.3):Multiclass Classification:One-vs-all
3 min readMay 31, 2016
Multiclass Classification
Multiclass Classification:One-vs-all
若今天我們要分類的不只是個二元問題,而是很多個不同類別的問題時,要怎麼處理呢?
做法是將除了目前處理的類別之外的類別都視為同個群體
看起來可能有點抽象,所以來舉個例子吧:
很久很久以前,有三個類別....
我們要區分出綠色三角形時,要把藍色正方形跟紅色叉叉視為是一個群體來劃分(得到一個hypothsis):
然後分辨出藍色正方形(再得到一個hypothsis):
分辨紅色叉叉(又得到一個hypothsis):
最後我們可以得到三條可以清楚劃分不同類別的線(Decision Boundary)
也就是三種不同的hypothesis
而今天若是新增一組資料,我們要怎麼分類呢?
做法:將這組資料帶入不同的hypothesis,以上例而言,我們應該會有3個不同的hypothesis:三角形、正方形、叉叉
然後會得到這組資料是三角形、正方形、叉叉的三種不同機率
最後再根據最大的機率來分類出其最有可能的圖形
x = new data;p1 = triangle(x); //將x代入三角形的hθ(x)
p2 = rectangle(x); //將x代入正方形的hθ(x)
p3 = cross(x); //將x代入叉叉的hθ(x)// 上述算出的p1-p3都是個介於0至1的浮點數which class should x belongs to = max(p1,p2,p3);/*
* 若是p1最大,代表x最有可能是三角形
* 若是p2最大,代表x最有可能是正方形
* 若是p2最大,代表x最有可能是叉叉
*/
隨堂練習
Ans: