一种发现大量数据中事物(特征)之间有趣的关联的技术。典型应用是购物篮分析:找出顾客购买行为模式、发现交易数据库中不同商品(项)之间的联系
1.关联规则挖掘的应用:互联网、零售、交通事故成因、生物医学
2.关联规则定义:假设I=I1,I2,。。。Im)是项的集合。给定一个事务数据库D,其中每个事务(Transaction)t是I的非空子集
关联规则:不相交的非空项集X、Y,蕴含式X->Y,X->Y是一条关联规则。其中X∈I,Y∈I,且X∩Y=∅
关联规则挖掘可以分解为下列两个子问题:
(1)找出所有频繁项目集 ,这些项目集在 TDB 中的支持度不小于最小支持度 min_sup ;
(2)由频繁项目集产生强关联规则 ,这些规则必须满足最小置信度 min_conf 。
3.先看一个简单的例子,假如有下面数据集,每一组数据ti表示不同的顾客一次在商场购买的商品的集合:
t1: 牛肉、鸡肉、牛奶
t2: 牛肉、奶酪
t3: 奶酪、靴子
t4: 牛肉、鸡肉、奶酪
t5: 牛肉、鸡肉、衣服、奶酪、牛奶
t6: 鸡肉、衣服、牛奶
t7: 鸡肉、牛奶、衣服
假如有一条规则:牛肉—>鸡肉,那么同时购买牛肉和鸡肉的顾客比例是3/7,而购买牛肉的顾客当中也购买了鸡肉的顾客比例是3/4。这两个比例参数是很重要的衡量指标,它们在关联规则中称作支持度(support)和置信度(confidence)。对于规则:牛肉—>鸡肉,它的支持度为3/7,表示在所有顾客当中有3/7同时购买牛肉和鸡肉,其反应了同时购买牛肉和鸡肉的顾客在所有顾客当中的覆盖范围;它的置信度为3/4,表示在买了牛肉的顾客当中有3/4的人买了鸡肉,其反应了可预测的程度,即顾客买了牛肉的话有多大可能性买鸡肉。
1.支持度(support)
支持度的定义:support(X->Y)=|X∩Y|/N=集合X与集合Y中的项在一条记录中同时出现的次数/数据记录的个数。
例如:support(尿布->(啤酒)=啤酒和尿布同时出现的次数/数据记录数=3/5=60%。
2.置信度(confidence)
置信度:confidence(X->Y)=[X∩Y|/X|=集合X与集合Y中的项在一条记录中同时出现的次数/集合X出现的个数。
confidence((尿布->(啤酒)=啤酒和尿布同时出现的次数/尿布出现的次数=3/4=75%。
支持度和置信度越高,说明规则越强。关联规则挖掘就是要找出数据库中满足:
支持度support>=min_support
置信度:confidence>=min_confidence的所有规则
有一个简单而粗暴的方法
1.列出所有规则
2. 计算这些规则的支持度和置信度
3.留下满足支持度置信度國值的关联规则
关联规则挖掘的定义:给定一个交易数据集T,找出其中所有支持度support>=min_support、置信度confidence>=min_confidence的关联规则。关联规则分为两步:
1)找出所有频繁项集
这一阶段找出所有满足最小支持度的项集,找出的这些项集称为频繁项集。
2)由频繁项集生成满足最小信任度國值的规则
在上一步产生的频繁项集的基础上生成满足最小自信度的规则,产生的规则称为强规则。
1)为了减少频繁项集的搜索空间,应该尽早的消除一些完全不可能是频繁项集的集合,
2)频繁项集的子集必为频繁项集
性质1):如果一个集合是频繁项集,则它的所有子集都是频繁项集。
举例:假设一个集合(A,B)是频繁项集,即A、B同时出现在一条记录的次数大于等于最小支持度min_support,则它的子集(A(B)出现次数必定大于等于min_support,即它的子集都是频繁项集。
性质2):如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。
举例:假设集合(A)不是频繁项集,即A出现的次数小于min_support,则它的任何超集如(A,B)出现的次数必定小于min_support,因此其超集必定也不是频繁项集。
利用性质1通过已知的频繁项集构成长度更大的项集,并将其称为候选频繁项集。
利用性质2过滤候选频繁项集中的非频繁项集
二项频繁集由在一项频繁集的基础上产生的,三项频繁项集由二项频繁项集的基础上产生的,以此类推。
可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori 算法的两大缺点。
主要改进方向:
①減少候选集产生
②降低无效的扫描库次数
③提高候选集与原数据的比较效率
1)根据和你共同喜好的人来给你推荐(基于用户的)
2)根据你喜欢的物品找出和它相似的来给你推荐(基)于物品的
3)根据你给出的关键字来给你推荐(退化成搜索算法)
4)根据上面的几种条件组合起来给你推荐
基本思想还是寻找近邻,依据近邻进行推荐。主要差别在于计算相似度的衡量标准上,进而衍生出了各种计算相似度的算法,各种算法的优劣体现在相似度判定的准确度以及算法的计算速度和占用的计算资源:欧氏距离算法、余弦距离算法、Jaccard距离算法、皮尔逊距离算法