带有约束条件的Association Rules(Association Rules in Gegenwart von Constraint)
就是字面意思,这回不要求找出全部的frequent itemsets了,而是要求找出满足特定要求的(Constraint)的frequent itemsets。除此之外,我们还希望通过加入限定条件能够缩短我们的搜索时间。举个例子,对于购物车分析,我们可以加上额外的条件,比如,我们只要分析价值大于100欧的物品。
两种不同的剪枝(Unterschiedliche Arten des Prunings)
Support-basiert:一个候选,当他的子集不满足frequent的要求是,就会被删除
Constraint-basiert:一个候选,当它不满足任何一个由给出的Constraint推导出得Constraint时,就会被删掉
Constraint的类型
一般来说有Data Constraint和Rule Constraint两种Constraint
Data Constraint
一方面指限制到具体的值上。
比如,分析具体的圣诞节那天的购物车。
另一方面也可以是限制到具体的属性。比如对于multidimensional问题只考虑部分关心的属性。
Rule Constraint
就是对想要的Association rule的结构或者属性做具体的规定。
比如规定只要大小大于3个items的itemsets
Constraint的描述
有两种应用:
1.Meta-Rule Guided Mining :
基本关系型数据库//????
2.1-var and 2-var Constraint:
基本结构:带属性的Items的集合和Aggregate值//????
Meta-Rule Guided Mining
使用Query来描述Constraint
目的:描述multidimensional frequent itemsets的Constraint
方法:用SQL-statement作为数据挖掘结果的Constraint,换句话说就是只有访问得到的结果有资格成为想要的frequent itemsets
举个例子:SQL-Query:
select nationality, age
from R
where age < 50
{nationality = French, age=40}会是个合法的frequent itemsets,但是{nationality = French, age=55}就不可能出现在结果列表上
这种方法并不好,因为他有一个明显的劣势:
就是他挖掘出来的结果必须和R的Schema相匹配(Mining-Ergebnisse müssen genau zu diesem Schema konform sein.)
而与这相反的人们更希望的是:
1.结果集的大小不会事先被设定好。//??
2.Nur ein Attribut explizit vorgeben, nicht aber beide//不懂??
Meta-Rule:
例子:
基本关系有:
student(name, sno, status, major, gpa, birth_date, birth_place, address)
course(cno, title, dept)
grading(sno, cno, instructor, semester, grade)
Data Mining Query/Constraint:
Find all Regeln:
major (s:student, x) ∧ Q(s,y) ⇒ R(s,z)
from student
where birth_place = “Canada”
in relevance to major, gpa, status, address
其中大写字母表示谓词符号,小写字母表示变量
(Constraint ist relativ rigide hinsichtlich der Stuktur der erlaubten Ergebnisse.)
下面这条rule,就是符合要求的:
major(s,”science”)&gpa(s,”Excellent”)⇒status(s,”Graduate”)
这种方法即可以用以描述Data Constraint也可以用以描述Rule Constraints
1-var, 2-var Constraints
方法:对多个或所有items使用aggregate函数
1-var Constraint:
是指这么一些Rule,他们只有一侧(或左或右)受到限制
比如sum(LHS)<100∧min(LHS)>20
2-var Constraint:
与上面相反,这回两边都受到限制
sum(LHS)<min(RSH)∧max(RHS)<5*sum(LHS)
在这里Rule用二元组(LHS,RHS)表示,
/*看不懂
Verallgemeinerung möglich:
Suche nach Tupeln mit n Komponenten (S_1,…,S_n)
z.B. Teilfolgen, deren Elemente Itemsets sind, und die frequent sind.
D.h. hier:S_1 = LHS, S_2 = RHS.
*/
例子
{
(S1,S2)|S1⊂Item & S2⊂Item &count(S1)=1 &count(S2)=1 &freq(S1) &freq(S2)
}
上面这句规定的是Rule Constraint,下面是具体的Date Constraint:
{
(S1,S2)|agg1(S1.Price)<=100 & agg2(S2.Price)>=1000
}
其中agg1,agg2是任意一个Aggregate方法
{
(S1,S2)|count(S.Type)=1 & count(S2.Type)=1 & S1.Type≠S2.Type
}
列举下面可能会用到的1-var Constraint:
1.Sθv
θ∈{=,≠,<,<=,>,>=}
S中的每个item s必须满足 sθv
举个例子:Price<=100
2.vθS
θ∈{∈,∉}
举个例子:Snack ∈ Type
3.SθV,VθS
θ∈{=,≠,⊆,⊂}
例子:
Constraint:
{Food,Drink}⊆Type
Association Rules:
Burger, Pommes ⇒ Cola
Benzin,Frostschutzmittle ⇒Schokoriegel
Relation:
当上面的Constraint是对LHS的限制时,第二个Rule是不符合的
当上面的Constraint是对RHS的限制时,第二个同样不符合
如果Constraint是Type⊆{Food, Drink}呢??????
其他1-var Constraint:
1.Class Constraints
S⊂A
比如S1⊂Item
/*不懂????
S ist Mengenvariable, A ist Attribut
S ist Menge von Werten aus dem Definitionsbereich von A
*/
2.Aggregate Constraint
agg(S)θv
agg:min,max,sum,count,avg
θ∈{=,≠,<,<=,>,>=}
挖掘带有约束条件的Association Rule(Mining von Association Rules unter Constraints)
两种方法:
Postprocessing:
相当的幼稚,就是在同过Apriori的刷选后在逐个检测是否符合Constraint的要求,符合的留下,不符合的删了
Optimierung:
(umfassend Analyse der Eigenschaften der Constraints mit dem Ziel, sie möglichst tief in den Algorithmus ‘hineinzudrücken’)
尽量深入的研究Constraint,然后尽可能使这些Constraint能融入到算法之中。
Constraint有两个比较重要的属性:
非单调性(Anti-Monotonizität):
目的是尽可能早得检测Constraint,并进行剪枝
简洁性(Succinctness):
不会生成不符合Constraint的候选
非单调性(Anti-Monotonizität)
定义:我们说一个Constraint是Anti-Monotonizität的,当且仅当存在两个集合S和S’他们满足以下条件:
S′⊆S & S满足C⇒S′满足C
//说白了就是S满足的Constraints,S的子集也都满足
//反过来如果S’不满足某C,那么对应的S也不满足该C
比如:min(S)>=v就是一个Anti-Monotonizität的Constraint。
//那么max(S)>=v,size(S)<=v,size(S)>=v是不是Anti-Monotonizität的呢??
//插图 一些常见的Anti-Monotonizität Constraint
简洁性(Succinctness)
我们说一个Constraint是succinct的,当人们能够将所有的满足该Constraint的Itemsets用简洁的方式记下来//汗一个,完全不知所云
(Constraint ist succinct, wenn man alle Itemsets, die das Constraint erfüllen, explizit ‘in kurzer Art und Weise’ hinschreiben kann.)
举个例子 S.Type ={Nonfood}
剪枝
基于Support的剪枝(Support-basiertes Pruning):
假设候选c的长度为k
那么当满足下面的条件是这个c会被扔掉:他的满足Constraint的k-1元的子集不是frequent
基于Constraint的剪枝(Constraint-basiertes Pruning):
基于Constraint的剪枝和上面的刚好相反,他会把所有不满足Constraint的候选都无情的给删掉
(Es scheint:Je selektiver Constraint R, desto besser不理解???顺带的下面的也不懂)
/*
Nicht wirklich:
Angenommen, R ist extrem selektiv(und nicht anti-monoton)
Dann funktioniert Constraint-basiertes Pruning offensichtlich gut.
Support-basiertes Pruning jedoch nicht!!???
Warum???
Support-basiserts Pruning betrachtet alle Teilstrukturen der Größe k-1 in Lk−1
Es gibt möglicherweise nur wenige solche Strukturen!!????
*/
//可以插个图-S43 S46-47
两种剪枝之间的冲突:
并不是每个Constraint都是Anti-Monotonizität的。但我们可以弱化一些Constraint,使他们成为Anti-Monotonizität。
举个例子(ab)∗明显不是Anti-Monotonizität的,但是经过弱化后的(a|b)∗确实Anti-Monotonizität的。
//那么什么时候需要进行弱化呢???要怎么进行弱化呢???
当然当Constraint不是Anti-Monotonizität时,我们还可以由其他做法:
1.Naive Postprocessing
2.Succinctness
3.//这个不懂??
(Kombination Support-basiertes und Constraint-basiertes Pruning mit ursprünglichem Constraint.
Hoffnung ist,
dass Support-basiertes Pruning besser funktionert.)
//不知为何会出现两种剪枝,基于Support剪枝的意义究竟何在???