R 您所在的位置:网站首页 excel相似度分析 R

R

2024-06-13 17:54| 来源: 网络整理| 查看: 265

目录

一、聚类的基本数据结构

二、不同数据类型的相异度计算方法

(一)区间标度变量

(二)二元变量

(三)标称变量

(四)顺序变量

(五)比例标度型变量

(六)混合类型

三、R相异(似)度计算总结

  一、聚类的基本数据结构

假设要聚类的数据集合包含 n 个数据对象,这些数据对象可能表示人,房子,文档,国家等。许多基于内存的聚类算法选择如下两种有代表性的数据结构:

(1)数据矩阵(Data matrix,或称对象-属性结构)

用 p 个变量(也称为属性)来表现 n 个对象,例如用年龄,身高,性别,种族等属性来表现对象“人”。这种数据结构是关系表的形式,或者看为 n*p 维( n 个对象*p 个属性)的矩阵。

(2)相异度矩阵(dissimilarity matrix 或称对象-对象结构)

存储 n 个对象两两之间的近似性,表现形式是一个 n*n 维的矩阵。在这里 d(i,j)是对象 i 和对象 j 之间相异性的量化表示,通常它是一个非负的数值,当对象 i 和j 越相似,其值越接近 0;两个对象越不同,其值越大。既然 d(i,j) = d(j,i),而且 d(i,i)=0,我们可以得到如下的矩阵。

数据矩阵经常被称为二模( two-mode)矩阵,而相异度矩阵被称为单模( one-mode)矩阵。这是因为前者的行和列代表不同的实体,而后者的行和列代表相同的实体。许多聚类算法以相异度矩阵为基础。如果数据是用数据矩阵的形式表现的,在使用该类算法之前要将其转化为相异度矩阵。

 

二、不同数据类型的相异度计算方法

聚类算法的基本出发点在于根据对象间相似度将对象划分为不同的类。对于n个数据对象,其可能具有m个属性变量,其中,属性变量可能是区间标度变量、二元变量、 标称变量、序数型变量、比例标度变量等等,对于不同类型的属性变量以及由各种类型变量组成的混合类型变量的相似度计算,需要采用特定的方法。

(一)区间标度变量

基本呈直线比例的连续变量。典型的例子包括重量和高度、大气温度等。对于这类变量。通常度量标准有两种:距离和相似性系数。

1、距离法

距离是指:把一个观测看做M维空间中的一个点,并在空间中定义距离。基于距离的聚类算法是把距离较近的点可以归入同一类,距离远的点归入不同的类。常见的距离度量方法有欧几里得距离、切比雪夫距离、曼哈顿距离、兰氏距离等方法。

(1)欧几里得距离

其意义就是两个元素在欧氏空间中的集合距离,因为其直观易懂且可解释性强,被广泛用于标识两个标量元素的相异度。

二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:

三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量):

用R语言计算距离主要是dist函数。若X是一个M×N的矩阵,则dist(X)将X矩阵M行的每一行作为一个N维向量,然后计算这M个向量两两间的距离。

a=matrix(rnorm(15,0,1),c(3,5)) a [,1] [,2] [,3] [,4] [,5] [1,] -1.3687632 -0.1256902 1.831776 0.04040039 0.7215346 [2,] -0.9527400 0.1411766 1.869298 0.48506072 -0.4510057 [3,] -0.5019286 -0.5775474 -0.266830 -1.25701475 0.6687304 dist(a,p=2) 1 2 2 1.348434 3 2.654392 3.093780

第一个行与第二行的距离为1.348434;第二行与第三行的距离为3.093780;第一行与第三行的距离为2.654392。

(2)标准化的欧几里得距离

引入标准化欧式距离的原因是各个维度之间的尺度不一样。例如如果向量中第一维元素的数量级是100,第二维的数量级是10,比如v1=(100,10,30),v2 = (500,40),则计算欧式距离:

欧式距离会给第一维度100权重,这会压制第二维度的影响力,影响聚类效果。因此需要对所有维度分别进行处理,而标准化欧式距离即是将集合X={xi} 先进行归一化,映射到正太分布N(0,1)的区间。两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标准化欧氏距离的公式为:

其中Sk是分量的标准差。

(3)切比雪夫距离

国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。

二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离:

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的切比雪夫距离:

R语言实现

a=matrix(rnorm(15,0,1),c(3,5)) a [,1] [,2] [,3] [,4] [,5] [1,] 0.4862698 1.60416329 2.1782714 -0.0482251 0.07532716 [2,] -0.9037107 -0.02123885 1.2375462 0.5486704 1.05818544 [3,] 2.2151023 0.46779567 -0.8486798 -0.1302249 1.10995354 dist(aa,"maximum") 1 2 2 1.172540 3 2.098606 2.136128

(4)曼哈顿距离

顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。

二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:

R语言实现

aa=matrix(rnorm(15,0,1),c(3,5)) aa [,1] [,2] [,3] [,4] [,5] [1,] 1.70799453 -0.04141924 0.07297395 0.9798695 -1.216628 [2,] 0.03756585 -1.19296077 -0.92721255 0.3491397 -1.747676 [3,] 0.81945921 1.77140128 0.03894016 0.4126954 1.983640 dist(aa,"manhattan") 1 2 2 4.983935 3 6.502832 8.507280

(5)兰氏距离

兰氏距离对数据的量纲不敏感。不过兰氏距离假定变量之间相互独立,没有考虑变量之间的相关性。

R语言实现

aa=matrix(rnorm(15,0,1),c(3,5)) aa [,1] [,2] [,3] [,4] [,5] [1,] 1.6333474 -0.5834216 -0.9462516 0.2086602 -0.3769740 [2,] 0.9626742 -0.1751355 -0.5063374 0.8873260 -0.3339518 [3,] -0.6620339 1.1891228 0.7396146 1.3988866 -0.5574114 dist(aa, method = "canberra") 1 2 2 1.779179 3 14.381702 12.565129

(6)闵科夫斯基距离(明氏距离)

闵可夫斯基距离不是一种距离,而是一组距离的定义。两个n维变量a(a1;a2;...;an)与b(b1;b2;...;bn)间的闵可夫斯基距离的定义为:

其中p为一个变参数

- 当p=1时,就是曼哈顿距离;

- 当p=2时,就是欧式距离;

- 当p→∞时,就是切比雪夫距离;

R语言实现

aa=matrix(rnorm(15,0,1),c(3,5)) aa [,1] [,2] [,3] [,4] [,5] [1,] -0.04438065 -0.2507179 -0.8686347 0.33079315 0.1945877 [2,] -2.75157088 0.3174601 0.2447662 0.15134978 0.4980498 [3,] -0.38604912 -0.3735566 -0.3158024 0.02866034 -0.9828699 dist(aa,"minkowski",p=2) 1 2 2 3.002608 3 1.383886 2.931827

(7)马氏距离

马氏距离表示数据的协方差距离,优点是量纲无关,考虑到变量(特性)之间的相关性,缺点是:不同的特征不能差别对待,可能夸大弱特征。

马氏距离最典型的应用是根据距离做判别,假设有n个总体,计算某个样品X归属于哪一类。此时虽然样品X离某个总体的欧氏距离最近,但是未必归属它,比如该总体的方差很小,说明需要非常近才能归为该类。对于这种情况,马氏距离比欧氏距离更适合作判别。

R语言实现

mashi


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有