如何衡量嵌套列表中元素的关联度?相关数学指标咨询
元素关联度指标相关问题解答
你的输入数据
[ ["Apple","Banana","Carrot"], ["Banana","Carrot","Dates"], ["Apple", "Banana"], ]
你当前衡量的是什么指标?
你现在用的是条件概率,具体是「给定元素A出现的前提下,元素B出现的概率」,记作P(B|A)。
- 比如Apple出现的子列表共2个,这2个里Banana都存在,所以
P(Banana|Apple)=2/2=100% - Banana出现的子列表共3个,其中只有2个包含Apple,所以
P(Apple|Banana)=2/3≈66.7% - Dates和Apple没有共同出现的子列表,所以两者的条件概率为0,无关联。
是否有更优的关联度衡量方法?
在关联规则挖掘领域,有几个更系统的指标可以参考:
- 支持度(Support):直接衡量A和B共同出现的普遍程度,计算公式为
Support(A,B) = 包含A和B的子列表数 / 总子列表数。比如Apple和Banana的支持度是2/3≈66.7%,能直观反映两者共同出现的频率。 - 置信度(Confidence):其实就是你当前用的条件概率
P(B|A),它能体现A出现时B跟着出现的可靠性,但缺点是不具备对称性。 - 提升度(Lift):用于判断A和B的关联是否强于随机情况,计算公式为
Lift(A,B) = Support(A,B) / (Support(A)*Support(B))。若Lift>1,说明两者正相关;等于1则无额外关联;小于1则负相关。
是否存在具备对称性的关联度衡量指标?
有不少对称型指标可以满足需求,常用的包括:
- Jaccard系数:计算两个元素共同出现的子列表数,除以至少出现其中一个的子列表数,公式为
Jaccard(A,B) = |A∩B| / |A∪B|。比如Apple和Banana的Jaccard系数是2/3≈66.7%,Dates和Apple的系数为0。 - 余弦相似度:将每个元素转化为二进制向量(子列表中出现记1,不出现记0),计算两个向量的余弦值。比如Apple的向量是[1,0,1],Banana的向量是[1,1,1],两者余弦相似度约为0.816,值越接近1说明关联越强。
- 互信息(Mutual Information):衡量两个元素的相互依赖程度,取值越大说明关联越紧密,且完全对称,计算公式为
MI(A,B) = Σ P(A,B) log(P(A,B)/(P(A)P(B)))。
内容的提问来源于stack exchange,提问作者Baron McDonald
相关产品推荐
相关产品推荐

