python 余弦相似性_数据挖掘:度量数据的相似性和相异性

本文详细介绍了如何使用Python计算数据挖掘中的各种属性相似性和相异性,包括标称属性、二元属性、数值属性、序数属性和混合属性的距离计算,重点讲解了余弦相似性的应用和计算实例。
摘要由CSDN通过智能技术生成

本文亮点:使用python实现了书中涉及的标称属性,二元属性,数值属性,序数属性和混合属性的距离计算。talk is cheap, this is my code ,请在我们公众号"数据臭皮匠"后台回复"第二章3"获取本文涉及的代码、思维导图、数据集等资料

在诸如聚类、离群点分析和最近邻分类等数据挖掘应用中,我们需要评估对象之间的相似程度或不相似程度。典型的,相似性值介于0到1之间,如果两个对象i,j完全相同,相似性为1;完全不同,相似性为0,相异性则反之。

由于书中使用的名词相对拗口, 本文使用的名词会与书中有所不同, 比如使用相似性代替临近性, 距离代替相异性等。

9d97e989230c8c566ec44c2217764b5f.png

1.数据矩阵和相异性矩阵

假设我们有n个对象,被p个属性(又称维或特征,如年龄、身高、体重或性别)刻画。这些对象是

equation?tex=x1%3D%28x11%2Cx12%2C...%2Cx1p%29
equation?tex=x2+%3D+%28x21%2Cx22%2C...%2Cx2p%29 等等,其中
equation?tex=x_%7Bij%7D 是对象i的第j个属性的值。下文我们称
equation?tex=x_%7Bi%7D 为对象i。

数据矩阵

具有n个对象p个属性的数据矩阵

053535d3543a814884ec35fbfc93b44d.png

相异性矩阵

其中d(i,j) 是对象i和对象j之间的距离(distance) 或称为相异性度量, 一般而言, d(i,j) 是一个非负值, 对象i,j 高度相似时, d(i,j) 接近于0 , 即距离接近于0 且d(i,j) = d(j,i) , 所以下面相异性矩阵只显示对角线左下部分。

3ef046e0adb6adeb064082dae5d0ca2b.png

对象i,j的相似性度量sim(i,j)可以表示成相异性度量d(i,j)的函数, 即:

sim(i,j) = 1- d(i,j)

2. 标称属性的相似性度量

在之前的文章(见文末链接第二章2)中,我们讲到了标称属性的定义, 简单讲, 标称属性是枚举型类别变量, 类别间无先后顺序, 如颜色: 红橙黄绿青蓝紫

如何计算标称属性所刻画的对象之间的相异性?

距离:

equation?tex=d%28i%2Cj%29%3D%5Cfrac%7Bp-m%7D%7Bp%7D

其中m为对象i,j相同的属性数, p为对象的属性总数(即对象i有p个属性)
计算标称属性距离举例

00e70d048e6e728a26981f11b241a615.png

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值