《數據挖掘概念與技術》第九章 分類:高級方法

本章繼上一章中介紹的基本分類方法後,又介紹了分類的高級方法:

貝葉斯網絡

在貝葉斯網絡中,不強調變量之間的獨立性。承認變量或屬性間的依賴關係。
在給定的網絡拓撲圖中,給定概念。
一條弧由節點Y到Z,則Y是Z的雙親或直接前驅,而Z是Y的後代。
給定其雙親,每個變量條件獨立於圖中它的非後代。
這也說明對於每個變量,應考慮她的雙親節點的所有可能取值的組合情況下,變量取值的概率。
P(YParents(Y))P(Y|Parents(Y))
由此給出,每個變量或屬性對應的條件概率表CPT。

家族患病歷史
肺癌
吸菸情況
肺氣腫
X光片異常
呼吸困難

以上爲肺癌患者屬性的關係圖。
其中以肺癌爲例,該變量的CPT爲:

- A,E A,-E -A,E -A,-E
B 0.8 0.5 0.7 0.1
-B 0.2 0.5 0.3 0.9

則可以得出:
P(B=yesA=yes,E=yes)=0.8P(B=yes|A=yes,E=yes)=0.8
P(B=noA=no,E=no)=0.9P(B=no|A=no,E=no)=0.9
使用貝葉斯網絡進行分類時,並不是返回單個類標號,而是返回概率分佈,給出每個類的概率。
用以上例子,我們還可以用來回答實證式查詢的概率(倘若給定一個人X光片有問題和呼吸困難,他患肺癌的概率有多大)和最可能的查詢解釋(哪些人羣最有可能X光片有問題和呼吸困難)。
訓練貝葉斯網絡
步驟:

  1. 計算梯度
  2. 沿梯度方向前進一小步
  3. 重新規格化權重

後向傳播

後向傳播是神經網絡的入門知識,包括前饋神經網絡和後向傳播更新權重和偏差。
而將後向傳播應用於分類,則包括二分類和多分類,取決於輸出層的函數(softmax或者relu)
優點
在缺乏屬性與類之間的聯繫的知識時可以使用該方法,並且非常適合連續值的輸入和輸出
缺點
得到局部極小值。

SVM支持向量機

具體的解釋和推導都應該在機器學習中學習。
在分類中,SVM是一種對線性和非線性數據進行分類的方法。
SVM最初對於線性可分的數據,是爲了尋找一條“最好”的分離線。多維即最佳分離平面。
而何爲最佳?即具有最大邊緣的超平面。
引入了支持向量的概念,即他們離最大邊緣超平面的距離是一樣的。
那麼問題即轉換成了如何求解支持向量和MNH
由於將低維數據變換到高維數據求解時,會遇到很多的點積計算,所需計算量很大,開銷很大。於是提出了核函數
SVM的訓練會產生全局解

使用頻繁模式分類

  • Apriori CBA
  • FP-Growth CMAR
  • DDPMIne 直接從頻繁模式樹中挖掘具有高度區別能力的頻繁模式的集合。

惰性學習法

K近鄰分類

結果取決於距離的計算。

基於案例的推理

其他分類方法

遺傳算法

在遺傳算法中,每個規則使用二進位串表示,假設給定樣本具有兩個布爾屬性A1,A2,並且有兩個類C1和C2。即
ifA1andNOTA2=>thenC2if A_1 and NOTA_2 => then C_2
可用二進位串“100”來編碼。
接着規則總體通過交叉和變異操作“進化”,直到總體中所有的規則都滿足指定的閾值。
關於遺傳算法中的交叉、變異、進化、擬合度度量的概念,可以參考下文:
https://zhuanlan.zhihu.com/p/33042667
遺傳算法同樣可以用於評估其他算法的擬合度。

粗糙集方法

粗糙集理論可用於分類來發現不準確數據或噪聲數據內的結構聯繫。它用於離散值屬性,故連續值屬性在使用前必須離散化。
同樣可以用於屬性子集選擇(特徵規約,識別和刪除無助於給定訓練數據分類的屬性)
相關分析(評估每個屬性的貢獻或顯著性)。
用來近似定義類,這些類基於可以用的屬性是不可區分的。

模糊集方法

模糊集理論對於一些數值型屬性很受用,對於分類和關聯規則挖掘中,允許同一個樣本屬於多個分類,從分類結果的概率值進行後續挖掘。
用隸屬度函數替換連續值屬性的“脆弱的”閾值。

分類問題

多分類問題

在SVM中,我們知道是主要針對二分類問題,如果針對多分類問題。
SVM可以使用一對多和多對多的策略。

  1. 一對多,在所有的樣本中,每次只分類出一種類別,標記爲正樣本,其餘均爲負樣本。依此循環,直到全爲正樣本。
  2. 多對多,對於M個分類的樣本集,構造M(M-1)/2個SVM分類器,額,這個對錯誤的敏感度較高,而且開銷較大。

半監督分類

  • 自我訓練
    自我將未標記分類的樣本進行分類,容易造成強化錯誤。
  • 協同訓練
    通過不同特徵訓練的分類器來進行協同參考訓練,但很難將特徵劃分爲互斥的、類條件獨立的集合。

主動學習

主動學習是一種迭代的監督學習,它可能有目的地向用戶詢問類標號,以此進行模型的訓練。
主動學習中大部分的研究在於如何選擇被詢問的元組

遷移學習

從一個或多個源任務提取知識,並把這些知識運用於目標任務。TrAdaBoost是基於實例的遷移學習方法,它對來自源任務的某些元組進行重新加權,並使用它們學習目標任務,因此只需要很少有標號的目標任務元組。
遷移學習後續將進行jupyter資源的學習。
https://github.com/jindongwang/transferlearning#0latest
https://github.com/dipanjanS/hands-on-transfer-learning-with-python/tree/master/notebooks

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