基本概念
規則學習概念:機器學習中的規則(rule)通常是指語義明確、能描述數據分布所隱含的客觀規律或領域概念、可寫成"若…則…"形式的邏輯規則。規則學習(rulelearning)是從訓練數據中學習出一組能用於對未見示例進行判別的規則。
形式化定義規則
- 左側稱為規則頭
- 右側稱為規則體
- L為規則的長度
- 又叫if-then規則
規則沖突
沖突定義:一個示例被判別結果不同的多條規則覆蓋;
解決方法:
- 投票法:判別相同的規則數最多的結果作為最終結果
- 排序法:在規則集合上定義一個順序->帶序規則學習/優先級規則學習
- 元規則法:定義關於規則的規則(元規則)來指導使用規則集
規則分類
- 命題規則:原子命題+邏輯連接詞
- 一階規則:原子公式,謂詞、量詞
一階規則比(邏輯規則)強很多,能表達復雜的關系,稱為關系型規則,其語義層面與人類的語義層面一致。
序貫覆蓋
規則學習的目標:參數一個能覆蓋盡可能多的樣例的規則集,最直接的方法“序貫覆蓋”(逐條歸納):在訓練集上每學到一條規則,就將該規則覆蓋的訓練樣例去除,然后以剩下的訓練樣例組成訓練集重復上述過程。由於每次只處理一部分數據,因此也稱為分治(separate-and-conquer)策略。
關鍵:如何從訓練集學出單條規則
學習規則的方法
- 基於窮盡搜索的方法
- 從空規則開始,將正例類別作為規則頭,逐個遍歷訓練集中的每個屬性及取值。
- 在屬性和候選值較多時會存在組合爆炸的問題。
- 自頂向下
- 從比較一般的規則開始,逐條添加新文字以縮小規則覆蓋范圍
- 生成-測試法
- 規則逐漸特化
- 覆蓋范圍從大到小
- 對噪聲的魯棒性較強,適用於命題規則學習
- 先考慮規則的准確性,然后考慮覆蓋的樣本數,然后考慮屬性次序等等
- 自底向上
- 從比較特殊的規則開始,逐漸刪除文字以擴大規則覆蓋范圍
- 數據驅動法
- 規則逐漸泛化
- 適合於訓練樣本較少
- 適用於假設空間較復雜的任務,如一階規則學習
評價規則優劣的標准(根據具體任務情況設計適當的標准):
- 先考慮規則准確率(准確率=n/m。n:規則覆蓋的正例數,m:覆蓋的樣例總數)
准確率相同時,考慮覆蓋樣例數,
准確率、覆蓋樣例數都相同時考慮屬性次序。
剪枝優化
規則生成本質上是一個貪心搜索過程,需要一定的機制來緩解過擬合的風險,最常見的做法是剪枝(pruning)。
預剪枝:剪枝可發生在規則生長過程中;
后剪枝:也可發生在規則產生后;
通常是基於某種性能度量指標來評估增/刪邏輯文字前后的規則性能,或增/刪規則前后的規則集性能,從而判斷是否要進行剪枝。
統計顯著性檢驗
- CN2——似然率統計量LRS,采用集束搜索,最早考慮過擬合的規則學習方法。
-
- LRS越大,采用規則集進行預測與直接使用訓練集正、反例比例進行猜測的差別越大。
- LRS越小,規則集的效果越可能是偶然現象。
后剪枝
- 減錯剪枝REP
- 一次訓練集學習規則集R
- 多輪剪枝:每輪窮舉所有可能的簡直操作,然后用驗證集對剪枝產生的所有候選規則集進行評估,保留最好者
- 循環多次
- 設訓練樣本數為m,時間復雜度O(m4)
- IREP(Incremental REP)
- 在REP上改進
- 每次生成一條規則立即在驗證集上進行剪枝得到規則,並將覆蓋樣例去除
- 時間復雜度O(mlog2m)
- RIPPER(預剪枝+后處理優化)
一階規則學習
命題規則學習的缺陷:難以處理對象之間的關系。
引入領域知識
- 屬性重構:在現有屬性基礎上構造新的屬性
- 函數約束:基於領域知識設計某種函數機制約束假設空間
First-Order Inductive Learner(FOIL)
- 遵循序貫覆蓋,采用自頂向下(泛化到特化的過程)的規則歸納策略;
- FOIL增益
- 和分別表示增加候選文字后新規則所覆蓋的正負樣本數
- 和分別表示原本規則所覆蓋的正負樣本數
- 因為關系數據中的不平衡性,僅考慮正例的信息量
- FOIL可以被看做是命題規則學習和歸納邏輯程序設計之間的過渡,但其自頂向下的規則生成過程不支持嵌套,所以表達能力仍有不足。
參考自:https://blog.csdn.net/Julialove102123/article/details/80104962