【机器学习】4. 相似性比较(二值化数据)与相关度(correlation)

SMC

Simple Matching Coefficient 评估两组二进制数组相似性的参数

SMC = (f11 + f00) / (f01+f10+f11+f00)

其中,f11表示两组都为1的组合个数,f10表示第一组为1,第二组为0的组合个数。

这样做会有一个缺点,假设是比较稀疏的数据,如今天去哪一个地区,地区有成千上万个,但是去的只有一个地区。那么就会导致f00非常的大,如此计算的结果SMC必然很大,但是能够代表两组数据高度相关吗?这并不合理。

Jaccard

由于SMC不适配某些场景,Jaccard应运而生。

Jaccard剔除了f00,从而避免了f00过大导致的数值偏差。

J = f11 / (f01 + f10 + f11)

Cosine

  • 适用于二值化数据,也适用于非二值化数据。
  • 广泛用于文档的分类
    c o s ( A , B ) = A ∗ B ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ cos(A,B) = \frac{A * B}{||A|| ||B||} cos(A,B)=∣∣A∣∣∣∣B∣∣A∗B
    ||A|| L2范式,即上一节讲的欧氏距离

A = [1 , 2, 3]

B = [4, 5, 6]

A*B = 1 * 4 + 2 * 5 + 3 * 6

||A|| = sqrt (1 * 1 + 2 * 2 + 3 * 3)

||B|| = sqrt (4 * 4 + 5 * 5 + 6 * 6)

0°相关

90°不相关

离的远则不相似,贴得近则相似

Correlation

c o r r ( X , Y ) = c o v a r ( x , y ) s t d ( x ) s t d ( y ) corr(X,Y) = \frac{covar(x,y)}{std(x)std(y)} corr(X,Y)=std(x)std(y)covar(x,y)
c o v a r ( x , y ) = 1 n − 1 ∑ k = 1 n ( x k − m e a n ( x ) ) ( y k − m e a n ( y ) ) covar(x,y) = \frac{1}{n-1}\sum^n_{k=1}(x_k - mean(x))(y_k - mean(y)) covar(x,y)=n−11k=1∑n(xk−mean(x))(yk−mean(y))
s t d ( x ) = ∑ k = 1 n ( x k − m e a n ( x ) ) 2 n − 1 std(x) = \sqrt{\frac{\sum^n_{k=1}(x_k - mean(x))^2}{n-1}} std(x)=n−1∑k=1n(xk−mean(x))2

  • mean: 均值
  • 范围[-1,1] -1是负相关, 0 是不相关, 1 是正相关
相关推荐
张较瘦_几秒前
[论文阅读] 人工智能 + 软件开发 | 本地 LLM 编程能力 “大摸底”:8 个模型挑战 3589 道 Kattis 题,差距竟这么大!
论文阅读·人工智能
张较瘦_几秒前
[论文阅读] AI + 软件工程 | 告别意图丢失!基于算法的LLM代码翻译新范式来了
论文阅读·人工智能·软件工程
hongjianMa1 分钟前
【论文阅读】Structured Spectral Reasoning for Frequency-Adaptive Multimodal Recommendation
论文阅读·python·深度学习·推荐系统·多模态推荐
千桐科技6 分钟前
qKnow 智能体构建平台知识图谱能力优化:围绕图谱探索、知识库、数据源、知识推理、知识融合与概念属性的完善升级
人工智能·大模型·知识图谱·agent·rag·qknow·智能体构建平台
kexnjdcncnxjs9 分钟前
如何用SQL统计每组的平均值同时显示原行_OVER子句
jvm·数据库·python
CLX050511 分钟前
Redis如何防范脑裂导致的数据丢失_配置min-replicas-to-write强制要求可用从节点数
jvm·数据库·python
tzc_fly13 分钟前
LLaDA2.0:块扩散语言模型
人工智能·语言模型·自然语言处理
Forrit18 分钟前
DPO 完整评估指标体系
人工智能
程序员cxuan23 分钟前
看了一下姚顺宇的访谈,确实太顶了。
人工智能·后端·程序员
心疼你的一切24 分钟前
PyTorch实战:手写数字识别神经网络
人工智能·pytorch·深度学习·神经网络·机器学习