开发者学堂课程【高校精品课-北京理工大学-数据仓库与数据挖掘(上):Data-Measuring Data Similarity and Dissimilarity】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/921/detail/15628
Data-Measuring Data Similarity and Dissimilarity
内容介绍
一、相似性和相异性的概念
二、相似性和相异性之间的转换
一、相似性和相异性的概念
首先我们了解一下相似性和相异性的概念。相似性就指的是一个数值。它是用来衡量两个对象相似的程度。两个对象越相似相似性就越高。相异性也是一个数值。
它是用来衡量两个数据的差异性。两个数据对象越不相似它的相异性就越高。两个数据对象如果相似性越高,它的相异性就越低。所以我们可以实现相似性和相异性之间的转换。
二、相似性和相异性之间的转换
在我们的 ppt 上就列出了很多方法。用来实现数据对象相似性和相异性之间的转换。其中 d 代表的是两个数据对象的相异性。
S 代表的是两个数据对象的相似性。如果我们用 x 和 y 代表两个数据对象的属性值。
那么关于两个数据对象相似性的计算公式和相异性的计算公式就总结在这样一张表中。
我们向大家介绍一下相异性矩阵。对于 n 个数据对象,如果它的维度是 p ,我们可以构建一个 n 乘 p 的数据矩阵。对于这样的一个数据矩阵,我们可以计算它的相异性矩阵。
由于数据对象之间的距离是具有对称性。所以我们的相异性矩阵是一个对称的三角矩阵。
首先来看一下有序属性它的相似性和相异性的计算。对于有序数据的相似性和相异性的计算,如果要计算有序数据的相似和相异性,我们首先要把有序数据转换成数值数据。
首先要对有序数据的属性值进行排序,然后对每一个属性值用它在这个序列中的排序来代替。
在替换了这样的一个属性值之后,我们用这样的一个公式对它进行一个规划。在进行规划之后,我们的有序数据就变成了我们的数值数据。然后我们就可以利用距离去计算它的相异性。对于标称属性数据它的相似性和相异性计算。对于标称数据有两种计算方法,一种是简单匹配法,第二种是把我们的标称属性转化成二分属性。我们首先来看一下简单匹配法,对于我们的数据对象 I 和 g 。
假设它是具有 pig 属性。这 pig 的属性都是我们的标称属性。那么这两个数据对象I和g之间的距离,也就是相异性可以用这个计算可以用这个公式来计算。其中 p 表示的是属性的个数。 M 是表示的是匹配属性的个数。那么这样的一种方法称之为叫做简单匹配法。此外,我们还可以把我们的标称属性转化成二分属性。
对于一个标称属性,如果它有 m 个取值。我们可以把这样的一个属性转化成 m 个二分属性。
看一下二分属性的相似性和相异性计算。如果数据对象都是由二分属性去描述。
那么对于我们的属相 I 和 g 可以构建这样的一个矩阵。其中我们的 q 和 t 表示的是取值相同的情况。而我们的 R和 s 表示的是取值不同的情况。对于我们的相异性来说我们就可以用它取值不同的数目占整体属性个数的一个比例。来代表它的一个相异性。那么如果我的数据是不对称的二分属性。那么就不能够考虑我的这样一个大量的这样的一个 t 的情况。一个是两者取值为0的情况。那么这个时候在计算相异性的时候,可以看到分母,就不考虑这个 t 的大小。
对于二分属性它的相似性的计算,也是分两种。
一种是叫做简单匹配系数法。这样的一种方法主要是针对二分属性是对称的。那么就是用它相似的属性个数。占他总属性个数的比率来表示。那么如果二分属性是不对称的。
那么就不能够考虑 t 的数目。所以它的相似性上面就直接只有 q 。下面也只有 q 加 r 加 s 。那么我们把这样一种对不对称的这样的一个二分属性的相似性的计算方法呢就把它称之为叫做 jaccard 系数。我们给出一个二分属性对象,计算相似度和相异度的方法。那么在我们的 ppt 中,列出的是三个患者的信息。
那么就是有没有得感冒的状态。包含了它的性别以及一些症状信息。对于这种症状信息呢,它的取值只有两种, yes 或者是 no 。我们呢,把它用1或0来代表。那么因为我们的性别对于我们去预测这个顾客他有没有换。感冒是没有是无用的。所以呢,我们把它的这样的一个性别的信息去掉。那么去掉之后呢,就得到了一个这样的数据表。
对于这样的一个数据表来说,因为患感冒的人数毕竟是少数。所以呢,它是一个非对称的二分属性的对象。那么比如说我们要计算杰克和这个 Mary ,他们的这样的一个相异性。那么我们就必须要用我们的非对称二分属性的相异性计算方法。那么也就是最后的结果呢是0.33。那么如果要计算这两个患者之间的这种相似性呢,就必须用我们刚才介绍的这样一个 jaccard 系数去计算。
这个就是关于这种二分属性相似度和相异度的计算。对于我们的数据对象的相似度和相异度而言,我们还有一种重要的计算测度,就是我们的距离。那首先我们来看一下距离他的性质。对于距离来说,它具有三大特性。
第一个就是距离的非负性。也就是任意两点之间的距离是大于等于0的。如果这两个对象是不同的对象。他们的距离是大于0。第二点呢就是对称性。指的是两个数据对象之间的距离,是 i 到 g 的距离,和 g 到 i的 距离是一样的。第三个呢就是我们的任意两边之和会大于我们的第三边。那么这个就是我们距离的三大属性。如果我们的距离测度满足这三个属性。我们就把它称之为一个叫做度量标准。
我们来看一下我们常用的距离计算方法。对于距离计算最普遍的公式就是我们的明视距离。那么它的计算公式是这样的,其中 x 和 y 分别代表两个数据对象。那么他们的这个维度是 p 的。其中呢,这里有一个参数 r 。这个 r 可以取不同的值。我们把这样的一个明示距离,又称为叫做 L-r 范数。当我们的这样的一个参数, r 取值为一的时候,那么大家可以看到距离的计算公式是这样的。就是我们的曼市距离。那么也叫做城市街区距离。
那么它指的是这个数据对象各个属性差的和。那么当我们的这样的一个参数等于2的时候。就是我们最常见的欧式距离。就指的是两点之间的极限距离。当我们的参数取无穷大的时候,我们把这样的距离称之为叫做上确界距离。上确界距离的计算公式是这样的。那么通过这个公式,大家可以看到上确界距离,其实就是数据对象每个属性中差距最大的那一个。通过这个公式大家可以看到上确界距离,就是两个数据对象差距最大的属性差值。我们这里用一个例子分别向大家介绍三种距离的计算。那么这里列出的是有4个数据对象。那么它们都是二维的,然后我们可以在我们的二维平面上把它画出来。那么对于这样的一个曼哈顿距离来说两点之间的距离,就是它的各个维度差值绝对值的累积。
那么比如说我们以这个 x2 和 x1 之间的距离为例。那么 x2 和 x1他们在第一个属性上面的差值是二。那么在第二个属性上面的差值是三。所以最后它的曼市距离就算出来是5。这个呢是我们的曼哈顿距离。那么对于我们的欧式距离来说,也就是a的取值为二的时候。就指的是这两点之间的直线距离。
比如说我们的 x1 和 x2 之间的距离,那么就直接用我们的距离公式算出来是这两者之间的直线距离。那么当我们的这样的一个参数取无穷大的时候,就是我们的这样的一个上确界距离。比如说我们依然用 x2 和 x1 之间的距离作为举例。那么上确切距离中, x2 和 x1 ,他们在第一个属性上面相差是2。
那么在第二个属性上面相差是3。那么也就是差异值最大是三。所以它这里的距离就是三。那么这个就是向大家介绍的三个距离的计算方法。最后我们来看一下对文档相似度的计算。那么前面我们也给大家讲了文档数据的表达。那么对文档数据来说,它的相似度,我们采用的是余弦相似度。这个是余弦相似度的计算公式。我们第一和第二分别表示的是两个文档向量。那么余弦相似度就是用这两个向量的累积除与这两个向量的长度。
这里给出了一个例子比如说对于两个文档,那么我们是用单词的在这个文档中出现的频率来代表。然后这个是首先计算出来是两个文档向量的它的累积然后再计算每个文档的向量长度。最后我们就可以通过向量累积除以每个向量的长度,得到我们的两个文档的余弦相似度。
我们刚才向大家介绍了,就是个类属性对象的。相异性和相似性。但是在实际中我们的数据对象他们的取值往往是混合的。也就是它既有标准属性。又有二分属性,还有数值属性等。
那么对于这样的对象,我们在计算它的相异性的时候呢,要按各个属性分别计算,最后再把它综合起来。
这里,我们通过一个例子向大家解释。
在这个 ppt 上我展示的是4个数据对象。这4个数据对象分别是由3个维度。那么第一个我们的维度呢,它是我们的标准属性。第二个维度是我们的叙述属性。第三个维度是我们的数值属性。那么我们在计算这种类型的数据对象的相似性和相异性要按他的属性分别计算。比如说像第一个矩阵,就是我计算的是4个对象的,他的第一个属性标称属性的它的相应性矩阵。那么第二个矩阵,就是我计算的是他的第二个属性,也就是我们的叙述属性的相异性。那么第三个矩阵,是做了这样的一个标准化处理之后计算的数值属性的相异性。
最后,把这三个属性加起来。按个数取平均就得到了混合属性类型数据对象的相异性矩阵。