機器學習中多分類問題處理成二分類問題的四種拆分策略

2021-10-07 14:49:56 字數 1250 閱讀 3126

在機器學習中經常將多分類問題處理成二分類問題,給出三種以上的拆分策略

1) 一對一(one vs. one, 簡稱ovo)

ovo將n個類別兩兩配對,從而產生n(n-1)/2個二分類任務。在測試階段,新樣本將同時提交給所有分類器,得到n(n-1)/2個分類結果,最終結果可由投票產生,或根據各分類器的**置信度等資訊進行整合。

2) 一對其餘(one vs. rest, 簡稱ovr)

ovr每次將乙個類的樣例作為正例、所有其他類的樣例作為反例來訓練n個分類器。在測試時若只有乙個分類器**為正類,則對應的類別標記作為最終分類結果。若有多個分類器**為正類,則通常考慮各分類器的**置信度,選擇置信度最大的類別標記作為分類結果。

3) 多對多(many vs. many, 簡稱mvm)

mvm是每次將若干個類作為正類,若干個其他類作為反類。ovo和ovr是mvm的特例。mvm的正、反類構造最常用的mvm技術:「糾錯輸出碼」(error correcting output codes,簡稱ecoc)。

ecoc過程主要分為兩步:

1.編碼:對n個類別做m次劃分,每次劃分將一部分類別劃為正類,一部分劃為反類,從而形成乙個二分類訓練集;這樣一共產生m個訓練集,可訓練出m個分類器。

2.解碼:m個分類器分別對測試樣本進行**,這些**標記組成乙個編碼。將這個**編碼與每個類別各自的編碼進行比較,返回其中距離最小的類別作為最終**結果。

4) 層次分類法

層次分類器的定義包括類別層次和分類器兩部分,類別層次決定多類問題的分解,層次分類器在類別層次的基礎上進行組織。類別層次一般使用「樹(tree)」或「有向無環圖(directed acyclic graph, dag)」結構儲存,將類別劃分表達成樹形結構,每個結點對應於乙個二分類分類器。

1.ovr訓練的是n個分類器,而ovo訓練的是n(n-1)/2個分類器。因此ovr的儲存開銷和測試時間都比ovo小。2.從訓練時每個學習器使用的樣本數來看:ovr每個學習器使用了所有的樣本,而ovo的每個學習器只用到兩個類別的樣本。因此在類別很多時,ovo的訓練時間往往會比ovr小。3. 多對多mvm,對於同乙個學習任務,ecoc編碼越長,糾錯能力越強。但是,這意味著所需要的分類器就越多,開銷就越大;另一方面,對有限類別數,可能的組合數目是有限的,碼長超過一定的範圍後就失去了意義。4. 層次分類法對於分類問題的規模越來越大,樣本數目、特徵維數和類別數量大的分類問題的分類效果較好。

二分類 多分類

怎麼樣把兩類的分類的模型推廣到多類上?答 a.一對多法 one versus rest,簡稱ovr svms 訓練時依次把某個類別的樣本歸為一類,其他剩餘的樣本歸為另一類,這樣k個類別的樣本就構造出了k個svm。分類時將未知樣本分類為具有最大分類函式值的那類。b.一對一法 one versus on...

機器學習 傳統二分類器實現多分類理論

機器學習常見的分類器演算法有 邏輯回歸lr 支援向量機svm 決策樹dt 隨機深林rf 貝葉斯演算法bayes 起初設計的目的多是針對二分類問題,而我們在實際應用中總會遇到多分類問題,應該如何實現.常見的幾種方法 1 直接法,直接在目標函式上進行修改,將多個分類面的引數求解合併到乙個最優化問題中,通...

二分類實現多分類

很多分類器在數學解釋時都是以二分類為例,其數學推導不適用於多分類,模型本身也只能用於二分類,如svm,adaboost 但是現實中很多問題是多分類的,那這些模型還能用嗎 改變這些模型的原理,重新推導數學公式,然後 實現。這種方法一般不可取,難度大,而且很麻煩 也叫一對其餘法 假設有n個類,每次把乙個...