关联度分析
理论
在数据挖掘和关联规则分析中,置信度(confidence)和提升度(lift)是两个重要的指标。
- 置信度(confidence)是指在关联规则分析中,条件A发生的情况下,事件B也发生的概率。数学上可以表示为:
置信度 = P(B|A) = P(A 交 B) / P(A)
其中,P(B|A)表示在A发生的情况下B发生的概率,P(A 交 B)表示A和B同时发生的概率,P(A)表示A发生的概率。置信度的取值范围在0到1之间,数值越接近1表示事件B在条件A发生时的概率越大,即关联性越强。 - 提升度(lift)是指在发现了关联规则A->B之后,B事件发生的概率相对于其在整体样本中发生的概率提升了多少。数学上可以表示为:提升度 = 置信度 / P(B)
3.支持度(support)代表在所有条件中AB同时发生的概率
其中,P(B)表示B事件发生的概率。提升度的取值大于1表示A的出现对B的出现有促进作用,等于1表示A对B的出现没有影响,小于1表示A的出现对B的出现有抑制作用。
在关联规则分析中,置信度和提升度可以帮助我们了解不同事件之间的关联程度和影响程度,从而进行更深入的数据挖掘和分析。
DAX公式实现
同时买AB =
VAR TABLE1=FILTER('Sales Order',RELATED('Product'[Product])=Product_ass[LEFTITEM])
VAR TABLE2=FILTER('Sales Order',RELATED('Product'[Product])=Product_ass[RIGHTITEM])
VAR TABLE3=INTERSECT(SELECTCOLUMNS(TABLE1,"salesorder",[Sales Order]),SELECTCOLUMNS(TABLE2,"salesorder",[Sales Order]))
RETURN COUNTROWS(table3)
购买A = COUNTROWS(FILTER('Sales Order',RELATED('Product'[Product])=Product_ass[LEFTITEM]))
只购买B = COUNTROWS(FILTER('Sales Order',RELATED('Product'[Product])=Product_ass[RIGHTITEM] && 'Sales Order'[ordercount]=1))
支持度 = DIVIDE(Product_ass[同时买AB],DISTINCTCOUNT('Sales Order'[Sales Order]))
置信度 = DIVIDE(Product_ass[同时买AB],Product_ass[购买A])
提升度 = DIVIDE(Product_ass[同时买AB],Product_ass[只购买B])
学习思考
1.intersect
需要指定对应的列,否则会到时数据交集错误
2.统计数据直接使用countrows
即可,不需要再用calculate进行再嵌套
评论(0)