機器學習 邏輯回歸2 多分類問題和過擬合問題

2021-08-20 09:35:21 字數 1594 閱讀 5960

邏輯回歸1

現實生活中常遇到很多多分類學習任務,有些二分類學習方法可以直接推廣到多分類,但在現實更多情形下,我們是基於一些策略,利用二分類學習器來解決多分類問題。

利用二分類學習器進行的多分類學習可以分為三種策略:

給定資料集d=

(x1,

y1),

(x2,

y2).

..,(

xm,y

m)d =(

x1,y

1),(

x2,y

2)..

.,(x

m,ym

), yi

=[c1

,c2,

...,

cn] yi=

[c1,

c2,.

..,c

n]。ovo將這n個類兩兩配對,從而產生n(n-1)/2個二分類任務。於是我們會得到n(n-1)/2個分類結果,最終的結果可通過投票產生:把被**得最多的類別作為最終分類結果。

一對多是將乙個類的樣例作為正例,其它類的樣例作為反例來訓練n個分類器。在測試時若僅有乙個分類器**為正類,則對應類別標記為最終分類結果。如有多個分類器**為正例,則以經過邏輯回歸的資料作為衡量標準,哪個**擇哪個。

容易看出,ovr只需訓練n個分類器,而ovo則需要訓練n(n-1)/2個分類器,因此,ovo的儲存開銷和測試時間開銷通常比ovr更大。但在訓練時,ovr的每個分類器均使用全部的訓練樣例,而ovo的每個分類器僅用到兩個類的樣例,因此,在類別很多的時候,ovo的訓練時間開銷通常比ovr更小。至於**效能,則取決於具體的資料分布,在多數情況下兩者差不多。

多對多是每次將若干類作為正例,若干其他類作為負例。mvm的正反例構造有特殊的設計,不能隨意選取。我們這裡介紹一種常用的mvm技術:糾錯輸出碼(eooc)。

在分類器f2中,將c1和c3類的樣例作為正例,c2和c4作為負例。在解碼階段各分類的測試結果聯合起來稱為測試示例的編碼,測試示例是圖中最下面一行。該編碼與各類所對應的編碼進行比較,將距離最小的編碼所對應的類別作為**結果。例如如果基於海明距離,**結果是c3。

為什麼要用糾錯輸出碼呢?因為在測試階段,ecoc編碼對分類器的錯誤有一定的容忍和修正能力。例如上圖中對測試示例正確的**編碼是(-1,1,1,-1,1),但在**時f2出錯從而導致了錯誤的編碼(-1, -1, 1, -1,1)。但是基於這個編碼仍然能產生正確的最終分類結果c3。

解決過擬合問題的方法有二:

如果我們的訓練集有1000條資料,其中正例2,負例998。那麼學習方法只需要返回乙個永遠將新樣本**為反例的學習器,就能達到99.8%的精度。但是這樣的學習演算法沒有價值,因為它不能**出任何正例。

類別不平衡問題是指分類任務中不同類別的訓練例數相差很大的情況。在現實生活中,我們經常遇到類別不平衡,例如通過拆分法解決多分類問題時,即原始問題中不同類別的訓練樣例數目相當,在使用ovr,mvm策略後,二分類任務仍然可能類別不平衡。

處理這個問題通常有3個方法

機器學習 邏輯回歸 多分類問題

from sklearn.linear model import logisticregression 1 penalty 使用指定正則化項 預設 l2 2 dual n samples n features取false 預設 3 c 正則化強度,值越小正則化強度越大 4 fit intercept...

邏輯回歸解決多分類問題

第二種方法 從演算法入手 傳統的邏輯回歸只能處理二分類問題,對於多分類任務,主要有如下兩種方案。某個分類演算法有n類,將某一類和另一模擬較作為二分類問題,總共可分為cn2 c cn 2 種不同的二分類模型,給定乙個新的樣本點,求出每種二分類對應的概率,概率最高的一類作為新樣本的 結果。某個分類演算法...

機器學習 邏輯回歸如何做多分類任務

如果乙個樣本只對應於乙個標籤,我們可以假設每個樣本屬於不同標籤的概率服從於幾何分布,使用多項邏輯回歸 softmax regression 來進行分類。因此,多項邏輯回歸實際上是二分類邏輯回歸在多標籤分類下的一種拓展 當存在樣本可能居於多個標籤的情況時,我們可以訓練 k個二分類的邏輯回歸分類器。第l...