Data-mining-dm-rbc
データマイニング-ルールベースの分類
IF-THENルール
ルールベースの分類子は、分類に一連のIF-THENルールを使用します。 私たちは次のルールを次のように表現できます-
IF条件THEN結論
ルールR1を考えてみましょう。
R1: IF age = youth AND student = yes
THEN buy_computer = yes
覚えておくべきポイント-
- ルールのIF部分は、 rule antecedent または precondition と呼ばれます。
- ルールのTHEN部分は、 rule consequent と呼ばれます。
- 条件の前件部分は1つ以上の属性テストで構成され、これらのテストは論理的にANDされます。
- 結果部分はクラス予測で構成されます。
注-ルールR1を次のように書くこともできます-
R1: (age = youth) ^ (student = yes))(buys computer = yes)
条件が特定のタプルに当てはまる場合、前件は満たされます。
ルール抽出
ここでは、意思決定ツリーからIF-THENルールを抽出して、ルールベースの分類子を構築する方法を学びます。
覚えておくべきポイント-
決定木からルールを抽出するには-
- ルートからリーフノードへのパスごとに1つのルールが作成されます。
- ルールの前件を形成するために、各分割基準は論理的にANDされます。
- リーフノードはクラス予測を保持し、結果としてルールを形成します。
シーケンシャルカバリングアルゴリズムを使用したルール誘導
シーケンシャルカバリングアルゴリズムを使用して、トレーニングデータからIF-THENルールを抽出できます。 最初に決定木を生成する必要はありません。 このアルゴリズムでは、特定のクラスの各ルールが、そのクラスの多くのタプルをカバーします。
シーケンシャルカバリングアルゴリズムには、AQ、CN2、およびRIPPERがあります。 一般的な戦略に従って、ルールは一度に1つずつ学習されます。 ルールが学習されるたびに、ルールの対象となっているタプルが削除され、残りのタプルについてプロセスが続行されます。 これは、決定木の各葉へのパスがルールに対応しているためです。
注-ディシジョンツリーの帰納は、一連のルールを同時に学習すると見なすことができます。
以下は、一度に1つのクラスのルールを学習する逐次学習アルゴリズムです。 クラスCiからルールを学習するとき、ルールはクラス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は、ルールプルーニングのためのシンプルで効果的な方法の1つです。 与えられたルールRに対して、
FOIL_Prune = pos-neg/pos + neg
ここで、posおよびnegは、それぞれRでカバーされる正のタプルの数です。
注意-この値は、プルーニングセットのRの精度とともに増加します。 したがって、FOIL_Prune値がRの枝刈り済みバージョンの方が高い場合、Rを剪定します。