Association Rules

Association Ruleモデルは、あるアイテム集合を他のアイテム集合へと結び付けて考える際の規則をあらわしています。たとえば、ある製品が、他の製品の集合と組み合わせて購入されるようなことを表\現できます。

Association Ruleモデルの属性定義は、値が、同じタイプの要素の集合(同一のXMLドキュメントに含まれる)の中で一意でなければならないという意味論的制約を表\現するために、エンティティELEMENT-IDを使います。


<!ENTITY 		%ELEMENT-ID 		"CDATA">

Association Ruleモデルは4つの大きな部分から成ります:


<!ELEMENT AssociationModel (Extension*, MiningSchema,
	Item+, Itemset+, AssociationRule+, Extension*)>

<!ATTLIST AssociationModel
	modelName 		CDATA 			#IMPLIED
	functionName 		%MINING-FUNCTION; 	#REQUIRED
	algorithmName 		CDATA 			#IMPLIED
	numberOfTransactions 	%INT-NUMBER; 		#REQUIRED
	maxNumberOfItemsPerTA 	%INT-NUMBER; 		#IMPLIED
	avgNumberOfItemsPerTA 	%REAL-NUMBER; 		#IMPLIED
	minimumSupport 		%PROB-NUMBER; 		#REQUIRED
	minimumConfidence 	%PROB-NUMBER; 		#REQUIRED
	lengthLimit 		%INT-NUMBER; 		#IMPLIED
	numberOfItems 		%INT-NUMBER; 		#REQUIRED
	numberOfItemsets 	%INT-NUMBER; 		#REQUIRED
	numberOfRules 		%INT-NUMBER; 		#REQUIRED
>

属性記述(Attribute description):

numberOfTransactions:入力データに含まれていたトランザクション(アイテムのかご)の数。

maxNumberOfItemsPerTA:最大のトランザクションに含まれていたアイテムの数。

avgNumberOfItemsPerTA:トランザクションに含まれていたアイテムの平均数。

minimumSupport:すべての規則によって満たされた最小の相対的サポート値(#supporting transactions / #total transactions)。

minimumConfidence:すべての規則によって満たされた最小の信頼度(confidence value)。確信は(support (rule) / support(antecedent))として計算されます。

lengthLimit:規則の数を制限するために使われる規則に含まれていたアイテムの最大の数。

numberOfItems:入力データに含まれていた異なるアイテムの数。

numberOfItemsets:モデルに含まれていたアイテム集合(itemsets)の数。

numberOfRules:モデルに含まれていた規則の数。

アイテム集合(itemsets)に含まれていたアイテム:


<!ELEMENT Item EMPTY>

<!ATTLIST Item
	id 			%ELEMENT-ID; 		#REQUIRED
	value 			CDATA 			#REQUIRED
	mappedValue 		CDATA 			#IMPLIED
	weight 			%REAL-NUMBER; 		#IMPLIED
>

属性記述(Attribute description):

id:アイテムを一意に識別する識別子(identification)。

value:入力データに入るようなアイテムの値。

mappedValue:オプション、オリジナルのアイテム値が写像される値。
○例えば、オリジナルの値がEANまたはSKUのコードなら、これは製品名が相当します。

weight:アイテムの重さ。例えばアイテムの価格や値。


規則に含まれているItemsets


<!ELEMENT Itemset (Extension*, ItemRef+)>
<!ATTLIST Itemset
	id 			%ELEMENT-ID; 		#REQUIRED
	support 		%PROB-NUMBER; 		#IMPLIED
	numberOfItems 		%INT-NUMBER; 		#IMPLIED
>

属性記述(Attribute description):

id:itemsetを一意に識別する識別子(identification)。

support:itemsetの相対的なサポート

numberOfItems:このitemsetに含まれていたアイテムの数

Subelements:タイプ・アイテムの要素への点へのアイテム参照。


<!ELEMENT ItemRef EMPTY>

<!ATTLIST ItemRef
	itemRef 		%ELEMENT-ID; 		#REQUIRED
>

属性記述(Attribute description):

itemRef:アイテム要素のid値

Rules:formの要素
<antecedent itemset> => <consequent itemset>


<!ELEMENT AssociationRule ( Extension* )>

<!ATTLIST AssociationRule
	support 	%PROB-NUMBER; 		#REQUIRED
	confidence 	%PROB-NUMBER; 		#REQUIRED
	antecedent 	%ELEMENT-ID; 		#REQUIRED
	consequent 	%ELEMENT-ID; 		#REQUIRED
>

属性定義(Attribute definitions):

support:規則の相対的なサポート
confidence : 規則の信頼度
antecedent : 規則の前提(antecedent)であるitemsetのid値
consequent : 規則の結果(consequent)であるitemsetのid値

:

私たちが次のデータをもつ4つのトランザクションを行っていると仮定しましょう:
t1: クラッカー、コーラ、水
t2: クラッカー、水
t3: クラッカー、水
t4: クラッカー、コーラ、水


<?xml version="1.0" ?>
<PMML version="2.0" >
<Header copyright="www.dmg.org"
	description="example model for association rules"/>
<DataDictionary numberOfFields="2" >
<DataField name="transaction" optype="categorical" />
<DataField name="item" optype="categorical" />
</DataDictionary>
<AssociationModel
	functionName="associationRules"
	numberOfTransactions="4" numberOfItems="3"
	minimumSupport="0.6" minimumConfidence="0.5"
	numberOfItemsets="3" numberOfRules="2">
	<MiningSchema>
		<MiningField name="transaction"/>
		<MiningField name="item"/>
	</MiningSchema>

<!-- We have three items in our input data -->
<Item id="1" value="Cracker" />
<Item id="2" value="Coke" />
<Item id="3" value="Water" />

<!-- and two frequent itemsets with a single item -->

<Itemset id="1" support="1.0" numberOfItems="1">
   <ItemRef itemRef="1" />
</Itemset>

<Itemset id="2" support="1.0" numberOfItems="1">
   <ItemRef itemRef="3" />
</Itemset>

<!-- and one frequent itemset with two items. -->

<Itemset id="3" support="1.0" numberOfItems="2">
   <ItemRef itemRef="1" />
   <ItemRef itemRef="3" />
</Itemset>


<!-- Two rules satisfy the requirements -->

<AssociationRule support="1.0" confidence="1.0"
                 antecedent="1" consequent="2" />

<AssociationRule support="1.0" confidence="1.0"
                 antecedent="2" consequent="1" />

</AssociationModel>
</PMML>