機器學習筆記 多分類學習,類別不平衡,決策樹

2021-07-26 14:55:48 字數 2473 閱讀 3502

讀書筆記

多分類學習

基本思想:拆解法;將多分類任務拆解為若干個二分類任務求解,先對這些問題經拆分,為拆分出的每個二分類任務訓練乙個分類器,測試時,對這些分類器的**結果進行整合以獲得最終的多分類結果,

拆分策略:one vs one,一對一,將n個類別兩兩配對,產生,即n(n-1)/2個分類結果,最終結果通過投票產生,投票是把被**的最多的類別作為最終分類結果。

one vs rest,一對其餘,每次將乙個類的樣例作為正樣本,其他的作為負樣本,訓練n個分類器。選擇**置信度最大的標記類別作為分類結果。。

manyvsmany 多對多,每次將若干個類作為正樣本,若干個類作為負樣本,,mvm的正負樣本設計必須有特殊的設計,最常用的是ecoc(error correcting output codes)。

分編碼和解碼兩步走,編碼:對n個類別做m次拆分,每次拆分將一部分做正樣本,一部分做負樣本,形成乙個二分類訓練集,如此可產生m個訓練集,訓練m個分類器。

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

如下是二元ecoc碼

一些約束:ecoc對分離器具有一定的容錯和糾錯能力,這是說如果f2分類出錯,從而導致-1,-1,+1,-1,+1的錯誤編碼,基於這個仍然能產生正確的編碼。一般。編碼越長糾錯能力越強,但同時計算量和開銷也越大。對於同等長度的編碼,任意兩個類別之間的編碼距離越遠,糾錯能力越強,可根據此原則來選出最優編碼。

類別不平衡

基本概念:分類任務中不同類別的訓練樣本差別很大,比如正樣本10000,負樣本2

基本策略:再縮放(rescaling或者rebalance)。

對於二分類問題,y表示**值,正樣本可能性y,負樣本可能性為1-y,分類決策規則為:

,則為正樣本,

然,當訓練集中正,負樣本數目不同時,令m+為正樣本數,m-為負樣本數,則

觀測機率是m+/m-,在訓練樣本是真實樣本總體的無偏取樣的基礎上,觀測機率就代表了真是機率。於是,只要分類器的**機率高於觀測機率應判定為正樣本,即:

進行調整,                         

決策樹

根節點-藍色表示全體樣本,內部節點紅色,葉節點綠色對應於決策結果。

決策樹學習的關鍵在於如何選擇最優劃分屬性。隨著劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能的屬於同一類別,即「純度」越來越高。

度量樣本集合純度的指標:

1.  資訊熵(information entropy),定義:已知樣本集合d,第k類樣本所佔的比例為pk,則資訊熵的定

資訊增益:某屬性對樣本集進行劃分所獲得的資訊增益,越大,說明使用此屬性劃分所獲得的純度提公升越大,例如id3演算法。就是決策樹在進行屬性選擇劃分前和劃分後的資訊差值。

資訊增益可對取值數目較多的屬性有所偏好,為減少這個影響,c4.5決策樹演算法不直接使用資訊增益,使用增益率來選擇最優劃分屬性:先從候選屬性中找出資訊增益高於平均水平的屬性,再從中選擇增益率最高的。

c4.5

機器學習

演算法中的另乙個分類決策樹演算法,它是基於id3演算法進行改進後的一種重要演算法,相比於id3演算法,改進有如下幾個要點:

o用資訊增益率來選擇屬性。id3選擇屬性用的是子樹的資訊增益,這裡可以用很多方法來定義資訊,id3使用的是熵(entropy, 熵是一種不純度度量準則),也就是熵的變化值,而c4.5用的是資訊增益率。

o在決策樹構造過程中進行剪枝,因為某些具有很少元素的結點可能會使構造的決策樹過適應(overfitting),如果不考慮這些結點可能會更好。

o對非離散資料也能處理。 o

能夠對不完整資料進行處理。

c4.5

演算法的優點是:產生的分類規則易於理解,準確率較高。

c4.5演算法的缺點是:在構造樹的過程中,需要對資料集進行多次的順序掃瞄和排序,因而導致演算法的低效。

基尼指數是另外一種資料的不純度的度量方法,

cart決策樹使用gini來選擇劃分屬性,其定義如下:

其中的m然表示資料集d中類別c的個數,pi表示d中任意乙個記錄屬於類別ci的概率,計算時pi=(d中屬於ci類的集合的記錄個數/|d|)。如果所有的記錄都屬於同乙個類中,則p1=1,gini(d)=0,此時不純度最低。直觀的說,gini(d)反應了從資料集d中隨機抽取兩個樣本,其類別標記不一致的概率。

在cart(classification and regression tree)演算法中利用基尼指數構造二叉決策樹,對每個屬性都會列舉其屬性的非空真子集,以屬性r**後的基尼係數為:

d1為d的乙個非空真子集,d2為d1在d的補集,即d1+d2=d,對於屬性r來說,有多個真子集,即ginir(d)有多個值,但我們選取最小的那麼值作為r的基尼指數。最後:

我們轉gini(r)增量最大的屬性作為最佳**屬性。

多分類學習 類別不平衡

最經典的拆分策略有三種 一對一 ovo 一對其餘 ovr 多對多 mvm ovo 將n個類別兩兩匹配,從而產生n n 1 2個二分類器。將新樣本提交給所有的分類器,得到了n n 1 2個結果,最終結果通過投票產生。n比較大的時候,代價還是挺高。ovr 每次將乙個類作為樣例的正例,其他所有均作為反例,...

多分類學習

多分類學習的基本思路是拆解法,即將多個二分類任務拆為若干個二分類任務求解。具體地就是,先對問題進行拆分,然後為每個拆分的二分類任務訓練乙個分類器 在測試時,對這些分類器的 結果進行整合以獲得最終的多分類結果。關鍵 多分類任務如何拆分。經典的為 一對一 one vs one,ovo 一對多 one v...

softmax多分類學習

softmax回歸從零開始實現 import torch import torchvision import numpy as np import sys import d2lzh pytorch as d2l 獲取資料 batch size 256 train iter,test iter d2l...