西瓜書15 規則學習

2021-10-02 03:44:07 字數 1785 閱讀 1103

機器學習中的規則通常是指語義明確,能描述資料分布所隱含的客觀規律或領域概念,可寫成「若…則…」形式的邏輯規則,「規則學習」是從訓練資料中學習出一組能用於對未見示例進行判別的規則。

形式化地看,一條規則形如:

其中邏輯符號「←」右邊部分稱為「規則體」,表示該條規律的==「前提」==,左邊部分稱為「規則頭」,表示該條規則的結果,規則體是由邏輯文字fk組成的合取式,其中合取符號「^」用來表示「並且」。每個文字fk都是對示例屬性進行檢驗的布林表示式,例如「色澤=烏黑」(對是1錯是0)。l是規則體中邏輯文字的個數,稱為規則的長度,規則頭同樣是邏輯文字,一般用來表示規則所判定的目標類別或概念,例如「好瓜」,這樣的邏輯規則也被稱為「if then 規則」。(if 色澤=烏黑 then 好瓜)。

規則學習相比於svm,神經網路更具有可解釋性,能使使用者更直觀的對判別過程有所了解,另一方面,數理邏輯具有極強的表達能力絕大多數人類知識都能通過數理邏輯進行簡潔的刻畫和表達。例如「父親的父親是爺爺」,這樣的知識不易用函式式描述,而用一階邏輯則可方便地寫為「爺爺(x,y)」←父親(x,z)^父親(z,y)[y的父親是z,且z的父親是x,那麼y的爺爺是x]。

因此,規則學習能更自然地在學習過程中引入領域知識,此外,邏輯規則的抽象描述能力在處理一些高度複雜的ai任務時具有顯著的優勢,例如在問答系統中有時可能遇到非常多,甚至無窮種可能的答案,此時若能基於邏輯規則進行抽象表述或者推理,則將帶來極大的便利。此時若能基於邏輯規則進行抽象表述或者推理,則將帶來極大的便利。

假定我們從西瓜資料集學得規律集合r:

規則一的長度為2,它通過判斷兩個邏輯文字的賦值來對示例進行判別。符合該規則的樣本稱為被該規則「覆蓋」,需注意的是,被規則1覆蓋的樣本是好瓜,但沒被規則1覆蓋的未必不是好瓜(好瓜可能有其他的規則),只有被規則2這樣以-好瓜為頭的規則覆蓋的才不是好瓜。(紋理模糊的必不是好瓜)。

顯然,規則集合中的每條規則都可看作乙個子模型,規則集合是這些子模型的乙個整合。當同乙個示例被==判別結果不同的多條規則覆蓋時,稱發生了「衝突」,解決衝突的辦法稱為「衝突消解」。常用的衝突消解策略有投票法,排序法,元規則法等。

投票法是將判別相同的規則數最多的結果作為最終結果。排序法是在規則集合上定義乙個順序,在發生衝突時使用排序最前的規則;相應的規則學習過程稱為「帶序規則」學習或「優先順序規則」學習。元規則法是根據領域知識事先設定一些「元規則」,即關於規則的規則,例如,「發生衝突時使用長度最小的規則」(啟發式),然後根據元規則的指導來使用規則集合。

此外,從訓練集學得的規則集合也許不能覆蓋所有可能的未見示例,例如,前述規則集合r無法對「根蒂=蜷縮」、「臍部=稍凹」且「紋理=清晰」的示例進行判別;

這種情況在屬性數目很多時時常出現,因此,規則學習演算法通常會設定一條**「預設規則」**,由它來處理規則集合未覆蓋的樣本;例如為r增加一條預設規則:「未被規則1,2覆蓋的都不是好瓜」。

從形式語言表達能力而言,規則可分為兩類:「命題規則」和「一階規則」。

前者是由「原子命題」和邏輯連線詞「與^」「或v」「非–」和蘊含←構成的簡單陳述句;例如規則集合r就是乙個命題規則集,「根蒂=蜷縮」,「臍部=凹陷」都是原子命題,後者的基本成分是能描述事物的屬性或關係的「原子公式」,例如…後面不想寫了。

udev 規則學習

action add kernel sd a z 0 9 run bin umount l media usb k action add kernel sd a z 0 9 run bin rm fr media usb k action add kernel sd a z run bin umou...

haccess規則學習

rewriteengine on rewritecond mozilla 5 0.rewriterule index.php index.m.php rewritecond lynx.rewriterule index.php index.l.php rewriterule index.php in...

機器學習 規則學習

f1 f 2 fl 一階規則比 邏輯規則?強很多,能表達複雜的關係,稱為關係型規則,其語義層面與人類的語義層面一致。如何從訓練集學出單條規則 從空規則開始,將正例類別作為規則頭,逐個遍歷訓練集中的每個屬性及取值。在屬性和候選值較多時會存在組合 的問題。cn2 似然率統計量lrs lrs 2 m lo...