代價敏感學習

代價敏感的學習方法是機器學習領域中的一種新方法,它主要考慮在分類中,當不同的分類錯誤會導致不同的懲罰力度時如何訓練分類器。例如在醫療中,“將病人誤診爲健康人的代價”與“將健康人誤診爲病人的代價”不同;在金融信用卡盜用檢測中,“將盜用誤認爲正常使用的代價”與將“正常使用誤認爲盜用的代價”也不同。通常,不同的代價被表示成爲一個N×N的矩陣Cost中,其中N 是類別的個數。Cost[i, j]表示將一個i 類的對象錯分到j 類中的代價。代價敏感分類就是爲不同類型的錯誤分配不同的代價,使得在分類時,高代價錯誤產生的數量和錯誤分類的代價總和最小。常用的方法有如下幾種。

  1. 調整樣本分佈(Stratification)。這是一種傳統的方法,它根據錯誤分類的代價,按照比例變換訓練集中類別的頻率。其缺點是改變了樣本的分佈情況,有時會影響算法的性能。
  2. 元代價(MetaCost)。這是一種將一般分類模型轉換成代價敏感模型的方法。它通過一個“元學習”過程,根據最小期望代價修改訓練樣本的類標記,並使用修改過的訓練集重新學習新的模型。
  3. 代價敏感決策。首先在訓練集中多次採樣,生成多個模型;再根據多個模型,得到測試樣本屬於每個類別的概率;然後計算測試樣本的所有錯誤分類代價,並根據最小代價得到類標記。一種典型的做法是利用集成學習技術。

其中 按照對問題的解決方法的不同,代價敏感學習的算法研究又可以分成三類。
第一類代價敏感的學習方法關注於如何直接構造一個代價敏感的學習模型,對不同的分類器模型研究者們提出了不同的解決辦法,它們包括
(1)決策樹:Knoll 等和Bradford 等爲決策樹提出了代價敏感的剪枝方法,Bradford 等研究了在代價敏感的條件下如何對決策樹進行剪枝使得損失達到最小,研究表明基於拉普拉斯方法的剪枝方法能夠取得最好的
效果,Drummond 和Holte 研究了代價敏感學習的決策樹的節點分裂
方法。
(2) Boosting:Fan 等研究着提出了代價敏感的Boosting 算法Ada-Cost
(3)神經網絡:Geibel 和Wysotzki 提出了基於Perceptron 分類算法的代價敏感的學習方法,在文章中作者對不可分的類提出了代價敏感的參數更新規則。例如Kukar和Kononenko爲神經網絡提出了新的後向傳播算法,使之能夠滿足代價敏感學習的要求。
(4) Fumera 和Roli[37]以及Bradford 等從結構風險最小的角度來看代價敏感問題,提出了代價敏感的支持向量機分類算法。
第二類代價敏感的學習方法基於對分類結果的後處理,即按照傳統的學習方法學習一個分類模型,然後對其分類結果按照貝葉斯風險理論對結果進行調整,以達到最小的損失。和第一類代價敏感學習方法相比,這種方法的優點在於其不依賴於所使用的具體的分類器。Domingos 提出了一種叫做MetaCost 的過程,它把底層的分類器看成一個黑箱子,不對分類器做任何的假設和改變,MetaCost可以應用到任何個數的基分類器和任何形式的代價矩陣上。給定一個樣例x,基分類器得出它屬於第j個類的概率爲Pr(j|x),這樣,認爲x 屬於第i個類的貝葉斯最優預測的風險爲:R(i|x) = ΣP(j|x)C(i,j)(C(i,j)是把屬於類別j的分爲類別i的代價)。
第三種代價敏感的學習方法基於傳統的學習模型,通過改變原始訓練數據的分佈來訓練得到代價敏感的模型。Chan 和Stolfo 提出了層次化模型(Stratification),把分佈不均勻的訓練數據調整爲正負例均勻分佈的數據。Zadrozny等研究者基於cost-proportionate 的思想,對訓練數據調節權值,在實際應用中,其類似於Boosting 算法,可以通過爲分類模型調節權值來進行實現,又可以通過採樣(subsampleing)來實現。Abe 等提出了對多類分類問題中如何實現代價敏感的學習進行了探討,提出了一種新的迭代學習方法。

本文內容部分轉自http://blog.csdn.net/memray/article/details/8306438
代價敏感分類算法的實驗比較。閆明鬆,周志華。模式識別與人工智能。Vol.18 No.5。Oct 2005

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章