数据的相似性和相异性我们可以怎么分析
在数据挖掘中,在确定适用的算法模型之后,应该让我们的数据也能适用我们的算法。例如聚类,最近邻分类等算法,在这些算法中我们往往需要给我们的数据分类,相似的分为一类,不相似的分为不同类。 比如为了精准营销,商店需要建立顾客画像,得出具有类似特征(例如类似的收入,居住区域和年龄,职业等)的顾客组。也就是我们需要一个评判标准,评估对象之间比较的相似或不相似程度的标准,也就是数据的相似性和相异性。
数据矩阵和相异性矩阵
说到相似性和相异性,我们要先说说数据矩阵和相异性矩阵。
数据矩阵,上个图先看下。
也叫对象-属性结构:这种数据结构用关系表的形式或 n*p ( n 个对象 p 个属)矩阵存放 n 个数据对象,每行对应一个对象 。
相异性矩阵,如图
也叫对象-对象结构:存放 n 个对象两两之间的邻近度。 d(i,j)是对象i和对象j之间的相异性的度量。一般来说,d(i,j是个非负数)。当i和j高度相似或‘接近’时,它的值接近于0,越不同,这个值越大。
那么我们也可以由相异性度量推出相似性。例如,对于标称属性来说。
我们了解完数据矩阵和相异性矩阵后,接下来讲讲不同数据属性的度量相异性的方法。我们在这里详细得讲了数据属性,每种属性的相异性度量是不一样的。
标称属性的临近性度量
标称属性可以取两个或多个状态。例如color是一个标称属性它可以有5种状态:黄,红,绿,粉红,蓝。两个对象i和j之间的相异性可以根据不匹配率来计算。如下图所示
其中,i,j 是对象,m 是匹配的数目(就是 i 和 j 取值相同状态的属性数),而 p 是刻画对象的属性总数
数据属性的相异性
度量数据属性数据的相异性,有很多种方法。被广泛应用得有欧几里得距离,曼哈顿距离,闵柯夫斯基距。
计算前提是:我们应该让数据规范化。比如高度有可能是米或者寸,我们应该先统一它们的单位。规范化方法我们在数据预处理的时候会讲。这里我们知道什么是规范化就可以了。
最流行的距离度量是欧几里得距离公式,如下所示
其中Xi1,Xi2分别是i对象的属性们,Xj1,Xj2分别是j对象的属性们。 另一个著名的度量方法是曼哈顿距离,如下
二元属性的邻近性度量
我们先来讲讲对称和非对称二元属性刻画的对象间的相异性和相似度度量。那么我们怎么计算两个二元属性之间的相异性呢。
前文我们说到二元属性只有两种状态:0 或 1.例如患者的属性smoker,1表示抽烟,0表示不抽烟。假如所有的二元属性都看做具有相同的权重,则我们可以得到一个行列表 如图
上图中, q 是对象 i 和 j 都取 1 的属性数,r 是在对象 i 中取 1,在对象 j 中取 0 的属性数,s 是在对象 i 中取 0,在对象 j 中取 1 的属性数,而 t 是对象 i 和对象 j 中都取 0 的属性数。属性的总数 p,
其中 p=q+r+s+t。
对称的二元属性,每个状态都同样重要,因此基于二元属性的相异性称作对称的二元相异性。如果对象i和j的相异性都用对称的二元属性刻画,则i和j的相异性为,如图所示
那么对于不对称的二元属性,,两个状态不是一样重要的。取值为0 的意义很小,我们可以忽略不计,我们称作非对称的二元相似性。所以i和j的相异性为,如图所示
这个也叫 Jaccard系数,它是比较常用的一个系数。
接下来我们来看看如何利用我们上面所说的度量方法来度量患者之间的相异性
下面是一张患者记录关系表,如图
假如一个患者的记录表包含属性name(姓名),gender(性别),fever(发烧),cough(咳嗽),test-1,test-2,test-3,test-4。其中name是对象标识符,gender是对称属性。其它的属性都是非对称二元。
对于非对称属性,值 Y (yes)和 P (positive)被设置为 1,值 N (no)被设置为 0.假设三个对象之间的距离只基于非对称属性来计算。那么三个患者 Jack,Mary,Jim 两两之间的距离 d(Jack,Jim) = ?
分析:
Jack和Jim之间的非对称属性fever(1,1),cough(0,1),test-1(1,0),test-2(0,0),test-3(0,0),test-4(0,0),根据非对称属性相异性的算法,我们不把(0,0)列入参考, q(1,1)的个数为 1, r(1,0)的个数为1,s(0,1)的个数为 1,根据非对称属性
d(i,j)=(r+s)/(q+r+s) 得出
d(Jack,Jim) = (1 + 1)/(1 + 1 + 1) = 0.67
同理我们能得出:
d(Jack,Mary)=(0 + 1)/(2 + 0 + 1) = 0.33
d(Jim,Mary)= (1 + 2)/(1 + 1 + 2) = 0.75
最后比较得出
因此这些度量显示 Jim 和 Mary不大可能患类似的疾病,因此他们具有最高的相异性以及Jcak和Mary最有可能患类似的疾病。
相信通过上面的介绍,我们基本对如何度量数据的相异性和相似性有一个基本的概念,这是聚类的一个基础算法,有着广泛的应用,后面我们讲聚类的时候会在提及。
推荐阅读 :
从分治算法到 MapReduce
Actor并发编程模型浅析
大数据存储的进化史 --从 RAID 到 Hadoop Hdfs
一个故事告诉你什么才是好的程序员
- 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的
- 用户行为分析之数据采集【怎么在不影响网站访问效率的基础上,记录用户的历史行为】
- YSlow是yahoo美国开发的一个页面评分插件,非常的棒,从中我们可以看出我们页面上的很多不足,并且可以知道我们改怎么却改进和优化。
- Python股市数据分析教程——学会它,或可以实现半“智能”炒股
- 一起来学大数据|最流行的框架Spring,怎么可以这么优秀
- 数据分析遇到PDF文本,怎么用Python批量提取内容
- Fiddler怎么对IPhone手机的数据进行抓包分析
- 怎么设置可以把dropdown设成可以输入数据
- 超市通:分析中心的销售数据与卖场中心的不一致,怎么回事?
- android 中怎么让ListView可以无限循环加载 Adapter中的数据
- 【数据】相似性和相异性的度量
- 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )
- 数据分析遇到PDF文本,怎么用Python批量提取内容
- CRM客户管理软件可以分析什么客户数据?
- 淘宝装修提高转化率数据分析,你的店铺怎么装修的?
- Python股市数据分析教程——学会它,或可以实现半“智能”炒股 (Part 1)
- Atitit 怎么阅读一本书 消化 分析 检索 attilax总结 1. 读书的本质 是数据的处理,大量的数据,处理能力有限的大脑 2 2. ETL数据清洗转换 摘要,缩小数据规模 2 2.1
- 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )
- 在Z-stack中,我们调用数据发送函数,可以发送的最大字节数即ASDU最大是多少呢?