数据相似性的度量方法总结

现实中,我们需要处理的数据具有着不同的形式和特征。而对数据相似性的度量又是数据挖掘分析中非常重要的环节。针对这些不同形式的数据,不可能找到一种具备普遍意义的相似性度量算法,甚至可以说,每种类型的数据都有它对应的相似度度量标准。这些标准很多,也比较杂乱,有必要作以总结。

废话不多说了,直接进入正题。

数据属性分类

现实世界,任何事物其实都可以描述成一个对象。这个概念其实跟面向对象编程中对象的含义是一致的。对象有很多属性,属性的类型当然也有所不同。打个比方说,如果把我看做一个对象,那我就基本拥有“姓名”、“性别”、“年龄”、“籍贯”等等,这些都是我的属性,和起来就是一条数据,也就是户籍部门拿到的关于我这个对象的数据。同理,如果把一张图片看做一个对象,那么“像素值”,“亮度”、“对比度”,“饱和度”等等就是图片的属性。处理图像数据,当然要从这些属性入手。

所以,看到这里,我们大概能总结出来2点:
1. 一般情况下的数据挖掘工作,其实就是针对1个或多个对象及其属性做的运算,而数据一般就被表示为:object: attributes的形式。
2. 不同对象(甚至相同对象在不同的应用场景下)的属性类型不同。需要分类讨论。

标称属性

属性值一般是一些符号或事物的名称。比如说,对相亲网站的注册用户,系统可会记录如下信息:性别,年龄,职业,地点,学历等等。这些数据都是通过名称来描述的。

二元属性

这个好理解了,所有属性都可以通过最简单的0,1描述。一般常用来表示存在性。比如说,一个感冒患者一般会用是否存在“发烧”、“流涕”、“咽痛”等症状来做记录,存在这些状况,记录为1,不存在,记录为0。当一个患者来看病时,当然就可以通过这些属性值是否为1来做出诊断的结果。

序数属性

属性值是由有意义的排序数决定的。例如,对一部电影评价,可以分为“剧情”、“演员”、“音乐”、“特技”等几个方面评价,而每个方面都有“好”、“中”、“差”3个选项供选择。而这些有排序意义的选择之间我们是无法说明具体差距的。也就是说,是定性,而非定量。

到此为止,上面的3种属性都是定性的,而非定量的。

数值属性

那么对于属性可以定量的这种属性类型,只怕也是我们生活中遇到情况最多的了,这种属性,就叫“数值属性”,有关于这些属性值的分析可以说是最多的,常见的平均数,众数、中位数等等,就是处理这些属性的。后面我们还可以看到,对于拥有数值属性的对象相似度的度量,也有着相应的方法。

相似性度量

我们分别就刚才所说的4种属性,看看当一个对象拥有不同类型的属性时,应该用什么方法度量。其实,我个人认为,没有人能告诉你一种对象到底该用什么样的方法度量其相似性,因为现实中,可能很多情况下你所需要测量的数据是非常复杂的,所以这里也只是给出一些常见的处理方法,具体问题还要具体分析。

另外,说一下,我本文的工作大多参考了韩家炜先生的大作《数据挖掘》,韩先生是此道大师,希望大家有空了多去看看他的文章。

标称属性相似度度量

很简单,拿两个对象 O1,O2 举例,直接看这两个对象每种属性的属性值的匹配数。

假设这一类对象一共有 n 个属性(每个对象都有这 n 个属性),两个对象 O1,O2 匹配的属性数为 m ,那么相似度为匹配数占总属性数的总数。

sim(O1,O2)=mn

二元属性相似度度量

总的来说,和标称属性是类似的,但是情况稍微复杂一点。要分成对称和非对称2种形式。

(1)对称二元属性

先看对称的情况,所谓对称,是说对象的所有属性都是一样重要的。这就和标称属性类似了,用所有具有相同属性值的属性个数除总的属性数。公式和标称属性一致:

sim(O1,O2)=m1+m2n

需要注意的是,这里的 m1 代表对象 O1,O2 的所有属性中,全都是1的属性数, m2 代表全都是0的属性数。 m1+m2 就是2个对象所有属性值相同的属性的数量了。可见,基本与标称属性的度量算法是一致的。

(2)非对称二元属性

所谓非对称,是说我们只关心“正匹配”的情况,也就是只关心两个对象属性中,都是1的情况。公式如下:

sim(O1,O
  • 36
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: KNN(K近邻)方法是一种基于实例的学习算法,它的基本思想是:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN方法可以用于数据回归预测,它的原理是:先找出距离待预测点最近的K个点,然后根据这K个点的输出值,计算待预测点的输出值。 ### 回答2: KNN(K-Nearest Neighbors)方法是一种基本的非参数化监督学习算法,用于解决回归问题。它的原理如下: 1. 数据准备:首先,需要准备训练集,其中包含已知的输入特征和对应的输出标签。 2. 距离计算:对于给定的一个未知样本,计算它与训练集中每个样本的距离。通常使用欧式距离或曼哈顿距离度量方法来进行距离计算。 3. 邻居选择:根据距离值,选择与未知样本最近的K个训练样本作为邻居。 4. 输出预测:对于回归问题,K个邻居的输出标签可以看作是该未知样本的预测输出。通常采用平均值或加权平均值来确定最终的预测值。 5. 评估模型:使用训练集来训练KNN回归模型后,可以使用测试集或交叉验证方法来评估模型的性能。常见的评估指标包括均方误差(MSE)和决定系数(R^2)等。 KNN方法的原理简单直观,它基于“近朱者赤、近墨者黑”的思想,认为离未知样本越近的样本越有可能具有相似的输出标签。通过比较样本之间的距离,找到最近的若干邻居,从而进行预测。它没有对数据做任何假设,因此适用于各种类型的数据和问题。然而,KNN方法处理大规模数据会面临计算复杂度高、存储空间大的问题,同对于数据的特征选择和归一化也具有一定的要求。 ### 回答3: K最近邻(KNN)方法是一种常用的机器学习方法,可以用于数据回归预测。其原理如下: 1. 训练集:首先,我们需要有一个已经标记好的训练集,其中包含了输入变量和对应的输出值。这些输入变量可以是多维的,也可以是连续或离散的。 2. 距离度量:接下来,我们需要定义一个距离度量方法,用来度量输入变量之间的相似性。常见的距离度量方法包括欧氏距离、曼哈顿距离等。 3. 邻居选择:对于每一个要预测的输入变量,KNN方法会计算它与训练集中每个输入变量之间的距离,并选择与其最近的K个邻居。这里的K是一个预先设定的正整数。 4. 输出预测:对于每个要预测的输入变量,KNN方法会取其K个最近邻居的输出值的平均值作为预测输出。如果输出值是连续的,则直接取平均值;如果输出值是离散的,则可以取众数作为预测输出。 总结起来,KNN方法数据回归预测原理是基于训练集中输入变量之间的距离度量,选择与要预测变量最近的K个邻居,并根据邻居的输出值进行预测。其核心思想是相似的输入变量对应的输出值也应该相似。使用KNN方法进行数据回归预测,需要选择合适的K值和距离度量方法,以获得较好的预测效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值