摘要
-> 傳統的分類方法(C4.5,FOIL,RIPPER):速度更快,但大多數情況下準確度不高
-> 關聯分類(更高的分類精度),然而也存在著兩個問題:
- 會生成大量的關聯規則(高額的時間開銷)
- 基于置信度的規則評估,可能會導致過擬合
-> CPAR:結合了以上兩種的優勢
- 采用貪心算法從訓練數據中直接生成規則
- 相比于傳統的分類方法,CPAR生成和測試更多的規則。(防漏掉一些重要的規則)
- 為避免過擬合,CPAR使用 預期精度 來評估每條規則,并在預測中使用最佳k條規則。
1.介紹
近年來,出現了一種新的方法——關聯分類,整合了關聯挖掘算法和分類。它使用了關聯規則挖掘算法(eg:Apriori、FP growth)來生成關聯規則的完整集。然后選擇出一個高質量規則的小集合,用這一個集合來預測。這種方法已被具體的實例證明:比傳統的分類方法(C4.5)有著更高的準確度。
然而,關聯分類在挖掘階段生成的規則較多、挑選出高質量的規則開銷較大,導致起效率上存在一定的劣勢。
基于此,我們推出CPAR算法。CPAR算法繼承了FOIL在規則生成方面的基本思想、整合了關聯分類在預測規則分析方面的特性。
相比于關聯分類,CPAR有以下優勢:
- 直接從數據集中,生成更小的高質量預測規則集。
- 為避免生成冗余的規則,CPAR生成新規則時會考慮已經生成的規則集合。
- 預測時,CPAR使用與該預測樣本匹配的最好k條規則。
同時,CPAR采用了以下的措施來提高準確度和效率:
- 在規則生成中,使用得到動態規劃來避免重復的計算。
- 生成規則時,所有close-to-the-best鍵值對都將被選中。(之前只選最好的一個)
2.基于規則的分類
2.1 一些基本的定義:
Each tuple t in T(a set) follows the scheme (A1, A2, . . . , Ak).Ak is the k-th attribute.
A literal p = an attribute and a value, such as p = (Ai, v).
The form of a rule: p1 ∧ p2 ∧ · · · ∧ pl → c. c is the class label.
注: If a rule contains zero literal, its body is satisfied by any tuple.
2.2 兩個重要的分類器:CBA、CMAR
CBA:
- 根據某支持度、置信度閾生成一些候選規則。
- 從中選取一小部分規則,用來形成一個分類器。
- 預測時,選取與規則主體匹配的最好規則。(有著最高的置信度)
CMAR:
CMAR生成和評價規則與CBA類似,但使用了一個更高效的結構——FPtree。同時,一個最主要的不同是:在預測時,采用了多重規則(using weighted χ2.)CMAR的準確度更高。
當遇到比較大的數據集時,兩種算法的開銷都比較大。
3.規則的生成(Step-by-step)
3.1 FOIL算法
一種貪心的算法(分辨正樣本和負樣本)。基本的思路:不斷生成當前最好的規則(通過Gain參數【基于一條規則中新鍵值對的加入】判斷),剔除掉已經包含的正樣本,最后所有的規則合成一個集合。
對于多分類問題,解決辦法:1 vs rest
時間復雜度:O(nkm|R|)
缺點:FOIL沒有達到很高的準確度,其原因是:生成的規則比較少。
3.2 PRM:Predictive Rule Mining
相比于FOIL中剔除掉已經包含的正樣本,PRM采取降低權重的方法(乘以一個因子),以此生成更多的規則,從而提高準確度。同時,通過PNArray來存儲一些信息,來減少時間的開銷。
PNArray所存儲的信息:
- 與當前規則r匹配的正樣本、負樣本數量。
- 加入一個新的鍵值對literal p后,正樣本、負樣本的數量。
時間復雜度:O(nk|R|),效率較高但準確度還是較低(相比于關聯分類)。
3.3 CPAR的規則生成
生成規則時,所有close-to-the-best鍵值對都將被選中。同時,采用DFS來生成規則,一個示例如下圖:
[圖片上傳失敗...(image-d04dc5-1532249941409)]
時間復雜度:O(nk|R|)
4.使用規則進行預測
4.1 規則評估
預測準確度:Prob(t ∈ c|t satisfies r's body)(采用拉普拉斯預期誤差估計)
4.2 分類
選取每個類的最好k條作預測,步驟如下:
- 選取該樣本所有與主體匹配的規則。
- 對于每一個類,選取最好k條。
- 比較每個類的平均預測準確度,選擇最高的類。
5.參考文獻:
CPAR: Classification based on Predictive Association Rules,Xiaoxin Yin