1. 程式人生 > >機器學習中的多分類任務入門

機器學習中的多分類任務入門

摘要:

這篇文章主要是關於機器學習中多分類任務的一些基本知識。

1.我先丟擲一個問題,在LR(邏輯迴歸)中,如何進行多分類?

一般下,我們所認識的lr模型是一個二分類的模型,但是,能否用lr進行多分類任務呢?答案當然是可以的。 不過,我們需要注意的是,我們有許多種思路利用lr來進行多分類。

2.訓練多個二分類器的思想

既然天然的lr是用來做二分類,那麼我們很自然地想到把多分類劃分多個二分類的任務。 具體來說,有以下三種策略:

2.1 一對一 (OvO)

假如某個分類中有N個類別,我們將這N個類別進行兩兩配對(兩兩配對後轉化為二分類問題)。那麼我們可以得到個二分類器。(簡單解釋一下,相當於在N個類別裡面抽2個) 之後,在測試階段,我們把新樣本交給這
個二分類器。於是我們可以得到個分類結果。把預測的最多的類別作為預測的結果。 下面,我給一個具體的例子來理解一下。
上圖的意思其實很明顯,首先把類別兩兩組合(6種組合)。組合完之後,其中一個類別作為正類,另一個作為負類(這個正負只是相對而言,目的是轉化為二分類)。然後對每個二分類器進行訓練。可以得到6個二分類器。然後把測試樣本在6個二分類器上面進行預測。從結果上可以看到,類別1被預測的最多,故測試樣本屬於類別1。

2.2 一對其餘 (OvR)

一對其餘其實更加好理解,每次將一個類別作為正類,其餘類別作為負類。此時共有(N個分類器)。在測試的時候若僅有一個分類器預測為正類,則對應的類別標記為最終的分類結果。例如下面這個例子。

大概解釋一下,就是有當有4個類別的時候,每次把其中一個類別作為正類別,其餘作為負類別,共有4種組合,對於這4中組合進行分類器的訓練,我們可以得到4個分類器。對於測試樣本,放進4個分類器進行預測,僅有一個分類器預測為正類,於是取這個分類器的結果作為預測結果,分類器2預測的結果是類別2,於是這個樣本便屬於類別2。 其實,有人會有疑問,那麼預測為負類的分類器就不用管了嗎?是的,因為預測為負類的時候有多種可能,無法確定,只有預測為正類的時候才能唯一確定屬於哪一類。比如對於分類器3,分類結果是負類,但是負類有類別1,類別2,類別4三種,到底屬於哪一種?

2.3多對多(MvM)

所謂多對多其實就是把多個類別作為正類,多個類別作為負類。本文不介紹這個方法,詳細可以參考周志華西瓜書P64-P65。

3.對於上面的方法其實都是訓練多個二分類器,那麼有沒有更加直接的方法對LR來進行多分類呢?

我們知道,對於二分類的LR時,正類和負類的概率分別如下:
對於多分類,其實我只需要做簡單的修改就可以了。 假設某分類任務有K個類別,那麼對於每一個類別的概率有: 對於第K類來說
對於其餘類而言