資料探勘概念與技術 - chapter 8 - 分類:基本概念

-DP-發表於2024-03-07

分類是一種重要的資料分析形式,提取刻畫重要資料類的模型。

分類器:用預測類標號

資料分類:學習階段(構建分類模型)與分類階段(使用模型預測給定資料的類標號)

訓練集:由資料庫元組和與它們相關聯的類標號組成。元組X用n維屬性向量X=(x1,x2,...,xn)表示。分別描述元組在n個資料庫屬性A1,A2,... ,An上的度量。假定每個元組X都屬於一個預先定義的類,由一個稱為類標號屬性的資料庫確定。類標號是離散值與無序的。他是分類的。

訓練元組

監督學習:提供訓練元組的類標號

無監督學習:訓練元組類標號是未知的

如果沒有用於訓練集loan_decision資料,可以使用聚類嘗試確定相似元組的組群

如果使用訓練集來度量分類器準確率,評估可能是樂觀的;(在學習期間可能包含了訓練資料中某些特定的異常,這些異常不在一般的資料集中出現。

需要使用檢測元組和他們相關聯的類標號組成的檢驗集

分類器在給定檢測集上的準確率是分類器正確分類的檢驗元組所佔的百分比,檢驗元組的類編號與學習模型對該元組的類預測進行比較。

決策樹歸納

從有類標號的訓練元組中學習決策樹,每個內部節點表示在一個屬性上的測試,每一個分支代表測試的一個輸出,每個樹葉節點存放一個類標號。

樹的最頂層是根節點

給定一個類編號未知的元組X,在決策樹上測試該元組的屬性值,跟蹤一條由根到葉節點的路徑,該葉節點存放該元組的類預測,決策樹容易轉換成分類的規則。

決策樹分類器構造不需要任何領域知識或者引數設定,適合探測式知識發現。

在決策樹構造的時候,使用屬性選擇度量來選擇元組最好劃分成不同類的屬性,許多分支可能反應訓練資料中的噪點或者離群點。

決策樹演算法:迭代的二分器

差別:如何選擇屬性與用於剪枝的機制

對於樹的每一層建造時,需要掃描一遍D中的元組,在處理大型資料庫時可能會導致很長訓練時間與記憶體不足。

屬性選擇度量

一種分裂準則,把給定類標記的訓練元組的資料分割槽D最好地劃分為單獨類啟發式的方法。根據分裂準則輸出把D劃分成比較小的分割槽,理想情況每個分割槽應當是純的(既落在一個給定分割槽的所有元組都屬於相同的類)。從概念上看,最好的分裂準則是導致最接近這種情況的劃分,屬性選擇度量稱為分裂規則,決定給定節點上的元組如何分裂。

常用的屬性選擇度量

1、資訊增益

ID3演算法使用資訊增益作為屬性的選擇度量。該度量基於夏農在研究訊息的值或者資訊內容、資訊理論方面的先驅工作。設節點N代表或者存放分割槽D的元組,選擇具有最高資訊增益的屬性作為節點N的分裂屬性。該屬性使得結果分割槽中對於元組分類所需要的的資訊量最小,並反映這些分割槽中最小隨機性、不純性。

*計算表示式使用以2為底是因為資訊用二進位制編碼(?)

Gain(A)=Info(D)-Info a(D)

告訴我們在A上的劃分我們得到了多少,它是知道A的值而導致的資訊需求期望減少,具有最高資訊增益Gain(A)的屬性A作為結點N的分裂屬性,等價於在“能做最佳分類"的屬性A上劃分,使得 完成元祖分類還需要的資訊最小 最小化Info a(D)

偏向於多值屬性

2、增益率

偏向具有許多輸出的測試。傾向於選擇具有大量值的屬性。考慮充當唯一識別符號的屬性

C4.5 使用 克服對唯一識別符號屬性的偏倚。

使用分裂資訊值 將資訊增益規範化

特徵量分佈的熵/對應特徵與目標值關聯的熵

增益率和資訊增益是在決策樹演算法中常用的指標,用於選擇最佳的劃分屬性。它們的應用場景、區別以及優缺點如下:

  1. 應用場景:

    • 決策樹演算法:增益率和資訊增益常用於決策樹演算法中,用於選擇最佳的劃分屬性。

    • 特徵選擇:增益率和資訊增益也可以應用於特徵選擇問題,用於評估特徵對目標變數的重要性。

  2. 區別:

    • 資訊增益:資訊增益是根據劃分前後的資訊熵差異來評估劃分屬性的重要性。它偏向於選擇具有較多取值的屬性,容易導致選擇取值較多的屬性作為劃分屬性。

    • 增益率:增益率是在資訊增益的基礎上引入了對劃分屬性取值數目的懲罰項,以解決資訊增益偏向取值較多屬性的問題。增益率透過除以劃分屬性的熵來進行歸一化,可以更好地平衡屬性取值數目對劃分屬性選擇的影響。

  3. 優缺點:

    • 資訊增益:

      • 優點:簡單直觀,易於計算。

      • 缺點:偏向於選擇具有較多取值的屬性,容易導致選擇取值較多的屬性作為劃分屬性。

    • 增益率:

      • 優點:透過引入對劃分屬性取值數目的懲罰項,可以更好地平衡屬性取值數目對劃分屬性選擇的影響。

      • 缺點:在某些情況下,增益率可能會偏向於選擇取值較少的屬性。

傾向於產生不平衡的劃分

3、基尼指數(Gini)

使用於CART

度量資料分割槽或者訓練元組D的不純度

考慮二元劃分裂時,計算每一個結果分割槽的不純度與加權和,選取降低不純度最大的子集劃分方式作為分裂準則。

偏向於多值屬性但是類數量很大時有困難傾向於導致相等大小的分割槽與純度

樹剪枝

在決策樹建立的過程裡,由於資料的噪聲與離群點,許多分枝反映的是訓練資料中的異常。剪枝方法處理這種過分擬合資料的問題。

常用剪枝方法:先剪枝 後剪枝

先剪枝:提前停止樹的構建;一旦停止 結點就變成樹葉

可以選定一個閾值,當劃分時一個結點的元組導致低於預定義的閾值劃分,給定子集進一步劃分會停止。選取一個適當的閾值很困難,高閾值可能會導致過分簡化的書,低閾值可能會使得樹簡化的太少。

後剪枝:透過完全生長的樹去剪去子樹,刪除結點分支並用樹葉替換而減掉給定結點上的子樹。

CART:使用代價複雜度剪枝演算法

C4.5:使用悲觀剪枝演算法

貝葉斯分類方法

統計學分類方法,可以預測隸屬關係的機率,一個給定元組屬於一個特定類的機率。

假定 屬性值在給定的類上影響獨立其他屬性的值,假定成為類條件獨立性。

X n個屬性集的測量值描述

H 某種假設 ,如資料元組 X屬於某個特定類C

假設 H成立的機率是 P(H|X)。

P(H|X) 是後驗機率,或在條件X的情況下,H的後驗機率。如加黑色資料元組世界限於分別由屬性age與income描述的顧客,而X是一名35歲的顧客,收入為4萬美元。令H為某種假設,如顧客將購買計算機,P(H|X)為我們知道顧客年齡與收入時,顧客X將購買計算機的機率。

P(H) 是先驗機率。對於上述例子,假定任意顧客將購買計算機的機率,不管年齡、收入或者任何其他資訊。

後驗機率有比先驗機率更多的資訊,P(H)獨立於X。

由P(X)、P(H)、P(X|H)給定計算後驗機率的方法

P(H|X)=P(X|H)P(H)/P(X)

樸素貝葉斯

(1)設D是訓練元組和他們相關聯的類標號集合,通常每一個元組用n維屬性向量X={x1,x2,...,xn}表示,描述由n個屬性A1,A2,...,An對元組的n個測量。

(2)假定有m個類C1,C2,...Cm;給定元組X,分類法將預測X屬於具有最高後驗機率的類;

也就是說 樸素貝葉斯分類法 預測X類屬於類Ci,當且僅當 P(Ci|X)>P(Cj|X) 1<=j<=m,j!=i

最大化P(Ci|X),P(Ci|X)的最大類Ci稱為最大後驗假設,根據貝葉斯定理

P(Ci|X)=P(X|Ci)P(Ci)/P(X)

(3)由於P(X)對所有類為常數,只需要P(X|Ci)P(Ci)最大即可。若先驗機率未知,假定這些類是等機率的,即P(c1)=P(c2)=..=P(cm)

根據此對P(X|Ci)最大化。

(4)計算P(X|Ci)的開銷可能非常大,為了降低計算開銷,可以做類條件獨立的樸素假定。給定元組的類標號,假定屬性值有條件地相互獨立。

-a 如果Ak是分類屬性,P(xk|Ci)是D中屬性Ak的值為Xk的Ci類的元組數除以D中Ci類的元組數|Ci,D|

-b 如果是連續值屬性,需要基於高斯分佈計算平均值與標準差後帶入P(xk|Ci)進行計算。

(5)為了預測X的類標號,對於每個類Ci,計算P(X|Ci)P(Ci)該分類法預測輸入元組X的類為Ci

當且僅當 P(Ci|X)>P(Cj|X) 1<=j<=m,j!=i,被預測的類標號是使得P(X|Ci)P(Ci)最大的類ci

拉普拉斯校準:q計數+1 避免計算0機率值

基於規則的分類器:決策樹提取

順序覆蓋演算法:每學習一個規則,刪除該規則覆蓋的元組,在剩下的元組上重複該過程

結合準確率 束狀選擇規則

可以使用確定規則效果是否出於偶然性

模型評估與選擇

用於評估分類預測元組類標號的效能or準確率。

準確率accuracy、識別率

TP+TN / P+N

錯誤率error rate、誤分類率

FP+FN / P+N

敏感度sensitivity、真正例率、召回率recall:完全性的度量

TP / P

特效性specificity、真負例率

TN / N

精度precision:精確性的度量

TP / TP+FP

F F1 F分數 精度與召回率的調和均值

2 * 精度 *召回 / 精度+召回

Fβ (β是非負實數)

(1+β²)*精度召回 / β²*精度 + 召回

其中,T 、F 對應分類器的正確、錯誤標記結果 P 、N對應樣本的正、負。

混淆矩陣 一個至少m*m的表

精確率與召回率是逆關係,有可能以降低一個為代價提高另一個。

其他考慮分類器的比較:速度、魯棒性、可伸縮性、可解釋性

保持:將給定的資料隨機劃分為兩個獨立的集合 訓練集與檢驗集 一般按照2:1分配

隨機二次抽樣:保持方法的變形,將保持方法重複k次,總準確率取每一次迭代準確率的平均值。

交叉驗證

k折交叉驗證 初始資料隨機劃分為k份互不相交的子集,每一份大小大致相等,訓練迭代與檢驗 進行k次,在第i次迭代使用分割槽Di作為檢驗集,其餘分割槽一起用訓練模型。

留一法:k=1

一般建議使用10折交叉驗證

自助法

有放回抽樣訓練

最常用的方法:.632自助法 假定資料集包含d個元組,該資料集有放回地抽樣d次,產生的d個樣本自助集或者訓練集,後設資料元組中的某些元組可能在該樣本集中出現多次。沒有進入該訓練集的資料元組最終形成檢驗集,

在平均情況下,63.2%的資料元組將出現在自助樣本中,剩餘38.8%的元組將形成檢驗集。

原理:

可以重複抽樣過程k次,每次迭代中,使用當前的檢驗集得當從當前自助樣本得到的模型準確率估計。

模型總體準確率估計方法

Acc(Model) = ∑(i=1,1~k) ( 0.632 * Acc(Mi)test_set + 0.368 * Acc(Mi) train_set)

Acc(Mi)test_set 是自助樣本i得到模型用於檢驗集i的準確率

Acc(Mi)train_set是自助樣本i得到的模型用於原資料元組集的準確率

對於小資料集,自助法效果很好。

透過統計模型的平均錯誤率判定模型的好壞

ROC曲線:接收者操作特徵

比較兩個分類模型有用的視覺化工具,給定模型真正例率TPR與FPR之間的權衡。

縱軸 TPR 水平 FPR

提高分類準確率的技術

袋裝

提升

把多個學習器組合 在一起

透過返回基分類器的預測投票 往往比基分類器更準確。

袋裝 bagging

最終結果是多數表決決定的

對於d個元組集合D,袋裝:

對於迭代i(i∈1,..,k) d個元組的訓練集Di採用有放回抽樣,由原始元組集D進行抽取;每一個訓練集都是自助樣本。

由於使用有放回抽樣,D的某些元組可能不在Di中出現,其他元組可能出現很多次。由每個訓練集Di學習,得到一個分類模型Mi。

為了對一個未知元組X分類,每個分類器Mi返回它的類預測算作一票。袋裝分類器M*統計得票,將最高的票賦予X。透過給定預測平均值,也可以進行連續值的預測。

袋裝分類器準確率通常顯著高於從原訓練集D匯出的單個分類器準確率,對於噪聲資料與過分擬合的影響通常不會很差 ,並且更加魯棒。

提升 boosting

權重賦予每一個訓練元組,迭代學習k個分類器。學習得到分類器Mi之後,更新權重,使得其後的分類器Mi+1更加關注Mi誤分類的訓練元組。

最終提升的分類器M*組合每個個體分類器的表決,其中每個分類器投票的權重是其準確率的函式。

Adaboost(adaptive boosting)是一種流行的提升演算法,假設我們想提升某種學習方法的準確率,給定資料集D,包含d個類標記的元組(x1,y1),(x2,y2)..(Xd,yd)

yi是元組Xi的類標號

開始時,Adaboost對每一個訓練元組賦予相等的權重1/d,為組合分類器產生k個基分類器需要執行演算法的其餘部分k輪。

第i輪,從D元組,形成大小為d的訓練集Di。使用有放回抽樣,同一個元組可能被選中多次。每個元組被選中的機會由權重決定,從訓練集Di匯出分類器Mi,然後由D作為檢驗集計算Mi的誤差,元組的權重根據他們分類情況進行調整。如果元組不能正確分類 則權重增加 如果正確分類,則權重減少。

元組的權重反應他們分類的困難程度,權重越高說明越可能錯誤分類;然後使用這些權重為下一輪分類器產生訓練樣本。

每一輪分類,更關注上一輪錯誤分類的元組

錯誤率:加權和

如果分類器Mi效能太差錯誤率超過0.5則丟掉它,從新產生訓練集Di,由它匯出新的Mi。

如何組合預測元組X的類標號?

根據分類器的分類情況,每個分類器的表決賦予一個圈子,分類器的錯誤率越底,準確率越高,表決權重就應當越高。

分類器Mi的表決權重

log( 1-error(Mi) / error(Mi) )

分析:log 單調增, 準確率/錯誤率,準確率越高 該權重越大

對於每一個類C,將類C指派給X的分類器權重求和。具有最大權重的類是贏家,返回作為元組X的類預測。

提升與袋裝相比,提升關注錯誤分類的元組,它存在結果複合模型對資料過分擬合的危險。因此,有時候結果模型可能沒有從相同資料匯出的單一模型的準確率高。

袋裝不太受過分擬合的影響,儘管與單個模型相比,兩者都可以顯著提高準確率,提升往往有更高的準確率。

隨機森林

每個分類器是決策樹,所以分類器的集合是一個森林。

個體決策樹在每個節點使用隨機算則屬性劃分,每一棵樹依賴於獨立抽樣,與森林所有書局有限共同分佈的隨機向量的值。

分類時,每棵樹都投票並且返回得票最多的類。

隨機森林可以使用袋裝與隨機屬性選擇來構建。

對於d個元組的訓練集合D,為組合分類器產生k棵決策樹一般過程如下:

1、每次迭代使用有放回抽樣,由D產生的d個元組的訓練集Di。每個Di都是D的一個自助樣本。某些元組可能會在Di出現多次,另一些可能不出現。設F為每一個節點決定劃分的屬性數,F可能遠小於可用屬性數。

每個節點隨機選擇F屬性作為該節點劃分的候選屬性,使用CART的演算法來增長樹。(Forest-RI)

隨機森林的另一種形式使用輸入屬性的隨機線性組合,不是隨機地選擇一個屬性子集,而是用已有的線性組合建立一些新的屬性。一個屬性由指定的L個原屬性組合產生,每一個給定的節點隨機選擇L個屬性,並且從【-1,1】中隨機選取數為係數相加,產生F個線性組合,並在其中搜尋找到最佳的劃分。只有少量屬性可用的時候降低個體分類器之間的相關性,這種形式的隨機森林是有用的。

隨機森林的準確率與Adaboost可以相互媲美,對錯誤與離群點更加魯棒。

隨機森林的準確率依賴於個體分類器的實力與它們之間的依賴性。理想情況:保持個體分類器能力而不提高相關性,對每一次劃分的屬性都很敏感。

通常選用log2d+1個屬性

由於每一次劃分只考慮很少的屬性,在大型資料庫上非常有效。可能比袋裝、提升更快。

隨機森林給出變數重要性的內在估計。

傳統分類演算法旨在最小化分類的誤差。他們假定假正例與假負例的錯誤代價是相等的。由於假定類平衡分佈與相等錯誤,傳統的分類演算法並不適合不平衡的資料。

在處理不平衡問題的方法中,準確率度量假定各類的代價都相等,可以使用不同型別分類的其他評估度量。如靈敏度、召回率、特效性都有助於評估分類器正確預測類不平衡的資料標號能力。

不平衡資料分類準確率的一般方法:1、過抽樣 2、欠抽樣 3、閾值移動 4、組合技術

前三種不涉及對分類模型結構的改變,過抽樣與欠抽樣改變訓練集中的元組分佈,閾值移動影響對新資料分類時模型如何決策。組合技術則包括袋裝與提升。

過抽樣、欠抽樣都改變訓練集的分佈,使得稀有類可以很好地被代表,過抽樣對正元組重複取樣,使得結果訓練集包含相同個數的正元組與負元組。欠抽樣減少負元組的數量,隨機從多數負類中刪除元組,直到正元組與負元組的數量相等。

過抽樣與欠抽樣

假定原訓練集有100個正元組與1000個負元組。

在過抽樣中,複製稀有類元組,形成1000個正、1000個負。

欠抽樣則隨機刪除負元組,到100個正、100個負。

閾值移動:對給定輸入元組返回的連續輸出值分類器(如ROC曲線繪製),對於輸入元組X返回一個對映f(X)→[0,1]作為輸出。基於輸出值返回分類決策。如對於某一個閾值t,大於t為正、小於t為負。

分類是一種資料分析形式,提取資料類的模型,分類或者預測類別標號,數值預測是建立連續值函式模型。

決策樹歸納:ID3\C4.5\CART,使用不同的屬性進行度量。

樹剪枝:試圖減去反應資料噪聲的分支,提高準確率。

樸素貝葉斯屬於後驗機率的貝葉斯定理,假定條件獨立

基於規則的分類器 使用if then進行分類,規則可以從決策樹提取。

混淆矩陣可以用於評估分類器的質量。對於兩類問題,顯示真正例、真負例、假正例、假負例。評估分類器的預測能力度量包括準確率、靈敏度、召回率、特效性、精度、Fβ等。當感興趣的主類為少數時,過分依賴準確率可能會被騙。

分類器的構造與評估 將資料劃分為訓練集與檢驗集,保持、隨機抽樣、交叉驗證、自助法

顯著性檢驗用來評估兩個分類器準確率的差別是否處於偶然。ROC曲線用於繪製一個或者多個分類器的真正例率與假正利率。

組合方法可以透過學習與組合一系列個體基分類器模型來提高總體的準確率。袋裝、提升、隨機森林都是流行的組合方法。

類的不平衡問題 處理策略包括過抽樣、欠抽樣、閾值移動與組合技術

樸素貝葉斯

樸素貝葉斯是一種基於貝葉斯定理的分類演算法,它被稱為"樸素"是因為它做了一個"樸素"的假設,即特徵之間相互獨立。這個假設使得樸素貝葉斯演算法的計算變得簡單且高效。

樸素貝葉斯演算法的核心思想是透過已知的特徵來預測未知樣本的類別。它基於貝葉斯定理,利用已知的特徵和類別的先驗機率,計算出給定特徵情況下每個類別的後驗機率,然後選擇具有最高後驗機率的類別作為預測結果。

樸素貝葉斯演算法的優點是簡單、易於實現和高效。它對於處理大規模資料集和高維特徵空間具有較好的效能。然而,由於樸素貝葉斯演算法假設特徵之間相互獨立,因此在某些情況下可能會導致分類結果不準確。

先驗機率後驗機率

先驗機率是指在考慮任何新的證據或資訊之前,根據以往的經驗或已知的資訊對事件發生機率的估計。它是基於先前的知識和假設得出的機率。

後驗機率是在考慮了新的證據或資訊之後,根據貝葉斯定理計算得出的機率。它是在先驗機率的基礎上,結合新的證據進行修正後得到的機率。

計算先驗機率和後驗機率的方法是使用貝葉斯定理。貝葉斯定理表示為:

P(A|B) = (P(B|A) * P(A)) / P(B)

其中,P(A|B)表示在給定B發生的條件下A發生的機率,P(B|A)表示在給定A發生的條件下B發生的機率,P(A)和P(B)分別表示A和B獨立發生的機率。

具體計算步驟如下:

  1. 根據已知資訊或經驗,計算先驗機率P(A)和P(B)

  2. 根據已知資訊或經驗,計算條件機率P(B|A)

  3. 使用貝葉斯定理計算後驗機率P(A|B)

相關文章