基於數據挖掘的分類規則

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。