日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

Sklearn中的二分類模型可以進行多分類的原理

作者:taotaoiit 更新時間: 2022-10-14 編程語言

Sklearn中的二分類模型可以進行多分類的原理

二分類擴展到多分類的方法

從sklearn的源碼中可以找到sklearn將二分類模型推廣到多分類模型的具體做法:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-DwAxDETg-1665481227020)(C:\Users\WJT\AppData\Roaming\Typora\typora-user-images\image-20221011153257983.png)]

即比較常用的:

  • one-vs-rest(一對多)
  • one-vs-one(一對一)
  • error correcting output codes(糾錯輸出編碼,多對多)

其中,Sklearn中默認的方法是one-vs-rest

接下來將逐個介紹這三個方法的原理及優(yōu)缺點

one-vs-rest

原理

one-vs-rest的原理很好理解,就是對于多類別數(shù)據(jù)(假設 N N N個類, N > 2 N>2 N>2),每次將一個類作為正類,其余類作為負類,進行訓練,得到一個分類器,這樣最后總共能得到 N N N個分類器,在進行預測時:

  • 若只有一個分類器預測為正類,則分類結(jié)果即為對應的類別
  • 若出現(xiàn)多個分類器預測為正類,則根據(jù)每個分類器的置信度,選擇置信度大的類別作為最終預測結(jié)果

優(yōu)缺點

優(yōu)點

  1. 易于理解,方便實行,速度快
  2. 只需要訓練 N N N個分類器

缺點

  1. 在進行預測時,可能會出現(xiàn)沒有分類器預測為正類的問題。
  2. 由于每次訓練分類器時,數(shù)據(jù)是一類對多類,正反兩類的數(shù)據(jù)量偏差過大容易導致數(shù)據(jù)偏斜問題,影響準確率。

one-vs-one

原理

為了避免one-vs-rest的數(shù)據(jù)傾斜問題,one-vs-one的策略是每個分類器只負責兩個類別的分類,比如對于三分類問題(類A、B、C),其分類器的構(gòu)造如下:

  • 分類器1負責二分類A、B
  • 分類器2負責二分類A、C
  • 分類器3負責二分類B、C

因此,對于 N N N個類別的分類問題,需要訓練 N ( N ? 1 ) 2 \frac{N(N-1)}{2} 2N(N?1)?個分類器,之后,在進行預測時,將預測數(shù)據(jù)帶入每個分類器中,最后通過投票原則,選擇預測結(jié)果多的類作為最終預測的類別

優(yōu)缺點

優(yōu)點
  1. 避免了一對多中的數(shù)據(jù)傾斜問題

缺點

  1. 需要訓練的分類器以二次速度隨類別遞增,增加了模型的時間復雜度
  2. 預測時會出現(xiàn)多個類別作為正類出現(xiàn)的次數(shù)相同的情況

Error correcting output codes(ECOC)

原理

ECOC可以看作是one-vs-one跟one-vs-rest的一般形式,它每次將若干個類作為正類,其余若干個類作為負類,進行訓練,因此也叫多對多,為了方便解釋,以一個類別數(shù)為4的數(shù)據(jù)集作為例子進行解釋:

假設有一個數(shù)據(jù)集,類別為A、B、C、D,現(xiàn)根據(jù)ECOC方法利用二分類模型對其進行分類。

  1. 對數(shù)據(jù)集進行劃分,劃分的流程是將一部分類別數(shù)據(jù)劃分為正類,其余劃分為負類,如圖所示:

    劃分的個數(shù)沒有明確的限制,例如上圖劃分了4個數(shù)據(jù)集,但盡量要避免第四種劃分格式,以免遭成數(shù)據(jù)偏斜。(個人認為)

  2. 對于每一個劃分的數(shù)據(jù)集,帶入分類器進行訓練,得到對應于每一個劃分數(shù)據(jù)集的訓練器,以上圖數(shù)據(jù)集劃分為例,則能得到4個訓練器: f 1 ( x ) , f 2 ( x ) , f 3 ( x ) , f 4 ( x ) f_1(x),f_2(x),f_3(x),f_4(x) f1?(x),f2?(x),f3?(x),f4?(x),其中 f i ( x ) ∈ { + 1 , ? 1 } , f_i(x) \in \{+1,-1\}, fi?(x){+1,?1}, i = 1 , 2 , 3 , 4 i=1,2,3,4 i=1,2,3,4.

  3. 對于每一個訓練器我們可以得知器對應于A、B、C、D四個類的輸出(即+1,-1),因此可以產(chǎn)生一個編碼表如下:

    在這里插入圖片描述

  4. 現(xiàn)在可以對數(shù)據(jù)進行預測,選取一個樣本 x ′ x' x,依次帶入分類器 f 1 ( x ) , f 2 ( x ) , f 3 ( x ) , f 4 ( x ) f_1(x),f_2(x),f_3(x),f_4(x) f1?(x),f2?(x),f3?(x),f4?(x)中,將每個分類器的輸出結(jié)果組合,則可以得到一個編碼列,為 ( f 1 ( x ′ ) , f 2 ( x ′ ) , f 3 ( x ′ ) , f 4 ( x ′ ) ) (f_1(x'),f_2(x'),f_3(x'),f_4(x')) (f1?(x),f2?(x),f3?(x),f4?(x)),而由上圖可以看到,類別A對應的編碼列為 ( + 1 , + 1 , + 1 , + 1 ) (+1,+1,+1,+1) (+1,+1,+1,+1),B對應的編碼列為 ( + 1 , ? 1 , ? 1 , ? 1 ) (+1,-1,-1,-1) (+1,?1,?1,?1),C對應的編碼列為 ( ? 1 , + 1 , ? 1 , ? 1 ) (-1,+1,-1,-1) (?1,+1,?1,?1),D對應的編碼列為 ( ? 1 , ? 1 , + 1 , ? 1 ) (-1,-1,+1,-1) (?1,?1,+1,?1).為了判斷樣本 x ′ x' x更匹配哪個類別,分別計算樣本 x x x的編碼列到各個類別的編碼列的數(shù)據(jù)歐氏距離,選擇距離最短的作為該樣本的預測類別。

筆者關于數(shù)據(jù)集劃分個數(shù)問題的思考:

從該流程中可以看出,當劃分數(shù)據(jù)集的個數(shù)較少時,樣本編碼到各個類編碼的歐氏距離很容易出現(xiàn)相同,導致無法分類,因此,劃分的數(shù)據(jù)集的個數(shù)要適量多,由于隨著劃分數(shù)據(jù)集的個數(shù)變多,最后無法避免劃分出正負兩類數(shù)據(jù)量偏差過大的問題,影響預測的準確性,總之,劃分數(shù)據(jù)集的個數(shù)不能太少,也不能太多,需要根據(jù)實際情況權(quán)衡。

優(yōu)缺點

優(yōu)點

  1. 糾錯能力強,準確率高。

缺點

  1. 時間復雜度高,需要訓練大量分類器以達到效果。

原文鏈接:https://blog.csdn.net/weixin_45804601/article/details/127268199

欄目分類
最近更新