基於規則的分類做出一套分級IF-THEN規則的使用。我們可以表達的規則,在以下選項:
讓我們考慮一個規則,R1,
R1: IF age=youth AND student=yes THEN buy_computer=yes
要記住的要點:
規則的IF部分稱為規則先決條件或前提。
規則的THEN部分稱為規則的結論。
前事件部分的條件包括一個或多個屬性的測試和這些測試邏輯與。
隨之而來的部分包括類的預測。
註:
我們也可以寫規則R1如下:R1: (age = youth) ^ (student = yes))(buys computer = yes)
如果該條件成立的真正對於一個給定的元組,那麼前提是滿意的。
在這裡,我們將學習如何建立一個基於規則的分類器通過提取IF-THEN規則的決策樹。要記住的要點從決策樹提取規則:
一個規則是從根到葉節點的每條路徑建立。
從規則的前提每個分裂標準邏輯AND運算。
葉節點包含類預測,形成規則的結論。
連續的覆蓋演算法可以用來提取IF-THEN規則形成訓練資料。我們不要求首先生成一個決策樹。在該演算法中每條規則對於一個給定的類包含了很多該類的元組。
一些連續覆蓋演算法是AQ,CN2和RIPPER。按照一般的策略規則都學會了一次。對於每個時間規則了解到,包括的規則的元組將被刪除,該過程繼續進行的元組的其餘部分。這是因為路徑在決策樹每個葉子對應的規則。
註:決策樹歸納可以被看作是同時學習一組規則。
以下是排序學習演算法,其中規則是在同一時間學會了一課。當學習從一類詞的規則,我們希望規則涵蓋了從C級只有所有元組和元組沒有任何形式的其他類。
Algorithm: Sequential Covering Input: D, a data set class-labeled tuples, Att_vals, the set of all attributes and their possible values. Output: A Set of IF-THEN rules. Method: Rule_set={ }; // initial set of rules learned is empty for each class c do repeat Rule = Learn_One_Rule(D, Att_valls, c); remove tuples covered by Rule form D; until termination condition; Rule_set=Rule_set+Rule; // add a new rule to rule-set end for return Rule_Set;
被修剪的原則是由於以下原因:
品質的評估是對原訓練資料集進行。該規則可在訓練資料,但不那麼後續資料表現良好。這就是為什麼該規則的修剪是必要的。
該規則是通過消除相合修剪。規則R被修剪,如果R的修剪版本有什麼比被評估在一個獨立的元組集更高的品質。
FOIL是規則修剪的簡單有效的方法之一。對於給定的規則R,
pos和neg是由R覆蓋,分別為正元組數。
註: 此值將增加與R對修剪集的準確性。因此,如果FOIL_Prune值是對R的修剪版本高,那麼我們修剪R。