数据挖掘(八)相似性

本文探讨了数据挖掘中的相似性测量,包括基于文本的度量如Jaccard系数、余弦相似性和Dice系数,以及概率模型如BM25。还介绍了基于链接的相似性度量,如Co-citation、SimRank及其变体,以及混合的相似性度量方法。这些度量广泛应用于商品推荐、网页搜索、客户分类和科学论文匹配等领域。

相似性

对于许多不同的问题,我们需要知道两个对象的相似度(similar)
比如:
查找与客户购买的商品相似的商品;
搜索相似的网页或文档以进行查询;
将相似的客户划分为不同的类别;
查找与目标论文相似的科学论文;
在图中查找相似的节点

相似性测量

  • 计算对象之间的相似性
  • 将对象对映射为实数值的函数
  • 提供相似性的数学定义
  • 设p和q为两个对象,𝑆(𝑝,𝑞)为相似度分数有:
    𝑆(𝑝,𝑞)> = 0;
    𝑆(𝑝,𝑞)=1 ,仅当 𝑝=𝑞 (恒等)
    𝑆(𝑝,𝑞)=𝑆 (对称)
    存在非对称相似性度量(例如Pearson Correlation);一些相似性度量提供负分数
  • 所应用的相似性度量取决于对象类型
  • 对象属性(即特征,属性)用于衡量两个对象之间的相似性,比如:
    网页或文档中的单词;
    网页或图形中的链接;
    科学论文中的引文;
    图像像素;
    视频中的帧
  • 有多种类型的相似性度量,例如
    Text based
    矢量模型: Jaccard coefficient, Cosine, Dice Coefficient
    概率模型: Kullback Leibler Distance (KLD ),BM25
    Link based
    Co citation, Bibliographic coupling, Amsler;
    SimRank, rvs-SimRank, PRank;
    SimRank *, JacSim , MatchSim
    Hybrid
    SimCC

基于文本的相似性度量

基本概念

  • 用于计算文本对象之间的相似度
    网页;
    新闻文章;
    学术论文
  • 对象中出现的单词作为特征
    相似度计算之前需要预处理

预处理

  • 删除停止词:
    删除非描述性(non descriptive)文档的单词:an, be, too, the, to, few, many, much,…

  • 提取:
    例如,波特和兰开斯特·塞默斯
    彼此的小语法变体词映射到其词根,称为词干
    “production” and “product” 都映射 到 produc

向量模型

Jaccard coefficient

  • 适用于binary vector模型
    文档表示为术语(即单词)的向量
    每个维度对应一个术语
    维度的内容指示其相应术语的存在(即1)或不存在(即0)。

  • 易于理解

  • 公式整洁

  • 两个向量𝑉1和𝑉2的相似性分数计算如下:
    在这里插入图片描述

  • 考虑如下两个文件:
    D1 : “That is a cookie, a delicious
    D2 : “This cookie is so sweet”

  • 预处理以后(删除停止词并提取):
    D1 : {cooki , delici } = <1,1,0>
    D2 : {cooki , sweet} = <1,0,1>

  • D1和D2的Jaccard相似度计算如下:
    在这里插入图片描述

Cosine

  • 适用于向量空间模型
    文档表示为术语的向量
    每个维度对应一个术语
    每个维度的值是其相应术语的权重
    允许多次出现相同的术语

  • 向量空间模型
    假设三个文档包含三个具有下列

### 关于数据挖掘中属性相似性的探讨 #### 属性相似性的重要性 在数据挖掘过程中,属性相似性用于衡量两个对象之间的接近程度。这种度量对于许多数据分析任务至关重要,包括但不限于聚类、分类以及推荐系统的设计。 #### 常见的属性相似性计算方法 为了评估不同实体间的相似关系,通常会采用多种距离函数或系数来进行量化: - **欧几里得距离**:这是最直观的距离测量方式之一,适用于数值型特征空间,在多维向量间求解直线长度作为两者差异的表现形式。 - **曼哈顿距离**:又称为城市街区距离,表示两点之间沿坐标轴方向上的绝对差之和,特别适合处理具有网格状结构的数据集[^2]。 - **余弦相似度**:当关注的是角度而非实际位置时,可以通过计算两向量夹角的余弦值来反映其线性关联强度;此方法广泛应用于文本分析等领域,因为文档往往被转换成高维度稀疏矩阵的形式[^3]。 - **Jaccard指数**:专门针对集合类型的特性而设计的一种测度手段,定义为交集中元素数量除以并集中元素总数的比例,非常适合用来比较二元变量或者存在/不存在性质的对象群组[^1]。 #### 特定应用场景下的实现案例 根据不同业务需求选取合适的相似性评价标准是至关重要的。例如,在客户细分项目中可能更倾向于利用欧式距离快速定位目标群体;而在社交网络好友推荐环节,则可能会优先考虑基于共同兴趣爱好的Jaccard相似度指标。另外,像搜索引擎这样的平台也会综合运用上述提到的各种技术方案优化查询结果的相关性和精准度。 ```python from sklearn.metrics.pairwise import cosine_similarity, euclidean_distances, manhattan_distances import numpy as np # 创建样本数据 data = np.array([[0, 1], [1, 0]]) # 计算三种不同的相似性得分 cosine_sim = cosine_similarity(data) euclid_dist = euclidean_distances(data) manhat_dist = manhattan_distances(data) print(f"Cosine Similarity:\n{cosine_sim}") print(f"Euclidean Distance:\n{euclid_dist}") print(f"Manhattan Distance:\n{manhat_dist}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kxwang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值