1. 程式人生 > >機器學習之——多類分類問題

機器學習之——多類分類問題

在之前的部落格中,我們討論了邏輯迴歸模型(Logistic Regression)解決分類問題。但是我們發現,邏輯迴歸模型解決的是二分問題,即:模型的結果只有兩個值,y=0 or y=1 。但是在現實情境下,我們的訓練集往往包含多個類(>2),我們就無法用一個二元變數(y=0|y=1)來做判斷依據了。舉個例子,我們預測天氣,天氣的情況就分為:晴天、陰天、雨天、多雲、雪天、霧天等等。

下面是一個多類分類問題(Multiclass Classification)可能的情況:


三個不同的形狀,表示三種不同的分類。

一種解決這類問題的途徑,是採用一對多(One-vs-All)方法。在一對多方法中,我們將多類分類問題轉變成二元分類問題。為了能實現這樣的轉變,我們將多個類中的一個類標記為正向類(y=1),然後將其他所有的類都標記成負向類(y=0),這個模型記作:


接著,相同的,我們選擇另外一個類標記為正向類(y=2),再將其他的類都標記為負向類,將這個模型記作:


以此類推。

最後,我們得到一系列的模型,簡記為:

其中 i = 1,2,3,...,k

步驟可以記作下圖:


最後,在我們需要做預測時,我們將所有的分類機都執行一遍,然後對於每一個輸入變數,都選擇最高可能性的輸出變數。

這便是解決多類分類問題的一對多方法。

下一次,我們討論關於訓練集資料擬合問題的歸一化問題(Regularization)