整合學習-多樣性的度量和增強
多樣性度量
在整合學習中,我們希望分類器具有多樣性。多樣性度量(diversity measure)是用於度量整合個體分類器的多樣性。常規的做法是度量兩個分類器的相似性,通常有如下指標。
給定資料集
,對二分類任務,
,對於兩個分類器
和
的預測結果列聯表(contingency table)為:
(1)馬修斯相關係數(Matthews correlation coefficient)
針對二分類問題:
從公式中可以看出,值域為
當預測結果中沒有
或
時,
。
當預測結果全部正確時,正相關程度例如:
當預測結果全部錯誤時,負相關程度最大:
當預測結果一半正確,一半錯誤時,且正負類標比例相同時,此時相當於隨機猜測:
所以相關係數越小,表明兩個分類器相似度越小,差異性越大。
使用sklearn中的函式可以實現馬修斯相關係數的計算,函式中同樣也包括了多分類情況下的計算:https://scikit-learn.org/stable/modules/model_evaluation.html#matthews-correlation-coefficient
>>> from sklearn.metrics import matthews_corrcoef
>>> y_true = [+1, +1, +1, -1]
>>> y_pred = [+1, -1, +1, +1]
>>> matthews_corrcoef(y_true, y_pred)
-0.33...
(2)不合度量(disagreement measure)
值域為
。不合度量實質上衡量了分類器結果不一致的比例,值越大,表明差異性越大。
多樣性增強
在整合學習中,需要有效地生成多樣性大的個體學習器,增強多樣性的思路一般是在學習過程中引入隨機性,常見的做法是對資料樣本、輸入屬性、輸入表示,演算法引數進行擾動。
(1)資料樣本擾動
給定的初始資料集,可以產生不同的資料子集,利用不同的資料子集訓練出不同的學習器,資料樣本擾動通常基於取樣法。在bagging中使用自助取樣,Adaboost使用序列取樣,此類做法簡單高效,使用很廣,對很多基學習器。例如決策樹,神經網路等,訓練樣本稍加變化就會導致學習器有顯著變動,此時樣本擾動對不穩定基學習器很有效;有一些基學習器對樣本擾動不敏感,比如線性學習器、支援向量機、樸素貝葉斯,k近鄰學習,稱為穩定基學習器。
(2)輸入屬性擾動
不同的屬性子空間提供了觀察資料的不同視角,從不同屬性子空間中訓練出的個體學習器必然不同。對包含大量冗餘屬性的資料,使用屬性子集能訓練出的多個多樣性大的學習器,還會因為屬性數的減少而節省時間開銷,同時,由於冗餘屬性較多,減少屬性後訓練出的個體學習器不至於太差。若資料只包含少量的屬性,或者冗餘屬性很少,此時對屬性擾動會導致每個分類器可用資訊大大較少,效果較差。
(3)演算法引數擾動
對學習器的超引數進行擾動。例如,可以通過調整正則化係數來控制神經網路的不同引數;決策樹的屬性選擇機制可以替換為其他屬性選擇機制。