基於資料挖掘的分類規則


IF-THEN 規則

基於規則的分類做出一套分級IF-THEN規則的使用。我們可以表達的規則,在以下選項:

 

IF condition THEN conclusion

 

讓我們考慮一個規則,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,

 

FOIL_Prune = pos-neg/ pos+neg

 

pos和neg是由R覆蓋,分別為正元組數。

註:  此值將增加與R對修剪集的準確性。因此,如果FOIL_Prune值是對R的修剪版本高,那麼我們修剪R。