数据挖掘中的度量方法

??在数据挖掘中,无论是对数据进行分类、聚类还是异常检测、关联性分析,都建立在数据之间相似性或相异性的度量基础上。通常使用距离作为数据之间相似性或相异性的度量方法,常用的度量方法有欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离、马氏距离、Jaccard系数、相关系数、信息熵。

欧式距离

??$n$维空间中两个样本点$x$和$y$之间的欧几里得距离定义如下:
$$d(x,y)=sqrt{Sigma_{k=1}^n (x_k-y_k)^2}$$
标准化欧式距离公式如下:
$$d(x,y)=sqrt{Sigma_{k=1}^n (dfrac{x_k-y_k}{s_k})^2}$$
式中,$s_k$为数据每一维的方差,标准化欧式距离考虑了数据各维分量的量纲和分布不一样,相当于对每维数据做了标准化处理。欧式距离适用于度量数据属性无关、值域或分布相同的数据对象。

曼哈顿距离

??曼哈顿距离也称为街区距离,计算公式如下:
$$d(x,y)=Sigma_{k=1}^n left|x_k-y_kright|$$

切比雪夫距离

$$d(x,y) = lim_{nrightarrow infty} (Sigma_{k=1}^n (left|x_k-y_kright|)^r)^dfrac{1}{r} = max_k (left|x_k-y_kright|)$$
上面两个公式是等价的。

闵可夫斯基距离

$$d(x,y)=(Sigma_{k=1}^n (left|x_k-y_kright|)^r)^dfrac{1}{r}$$
式中,r是一个可变参数,根据参数r取值的不同,闵可夫斯基距离可以表示一类距离
??r = 1时,为曼哈顿距离
??r = 2时,为欧式距离
??r →∞时,为切比雪夫距离
闵可夫斯基距离包括欧式距离、曼哈顿距离、切比雪夫距离都假设数据各维属性的量纲和分布(期望、方差)相同,因此适用于度量独立同分布的数据对象。

汉明距离

??两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数,也就是将一个字符串变换为另一个字符串所需要替换的最小字符个数,例如
$$Hamming Distance(1001001, 0101101) = 3$$
汉明距离常用于信息编码中。

余弦距离

??余弦相似度公式定义如下:
$$cos?(x,y)=dfrac{xy}{left|xright|left|yright|} = dfrac{Sigma_{k=1}^n x_k y_k}{sqrt{Sigma_{k=1}^n x_k^2} sqrt{Sigma_{k=1}^n y_k^2}}$$
余弦相似度实际上是向量$x$和$y$夹角的余弦度量,可用来衡量两个向量方向的差异。如果余弦相似度为$1$,则$x$和$y$之间夹角为$0°$,两向量除模外可认为是相同的;如果预先相似度为$0$,则$x$和$y$之间夹 大专栏  数据挖掘中的度量方法角为$90°$,则认为两向量完全不同。在计算余弦距离时,将向量均规范化成具有长度$1$,因此不用考虑两个数据对象的量值。
余弦相似度常用来度量文本之间的相似性。文档可以用向量表示,向量的每个属性代表一个特定的词或术语在文档中出现的频率,尽管文档具有大量的属性,但每个文档向量都是稀疏的,具有相对较少的非零属性值。

马氏距离

??马氏距离的计算公式如下:
$$mahalanobis(x,y)=(x-y)Sigma^{-1}(x-y)^T$$
式中,$Sigma^{-1}$是数据协方差矩阵的逆。
前面的距离度量方法大都假设样本独立同分布、数据属性之间不相关。马氏距离考虑了数据属性之间的相关性,排除了属性间相关性的干扰,而且与量纲无关。若协方差矩阵是对角阵,则马氏距离变成了标准欧式距离;若协方差矩阵是单位矩阵,各个样本向量之间独立同分布,则变成欧式距离。

Jaccard系数

??Jaccard系数定义为两个集合A和B的交集元素在其并集中所占的比例,即
$$J(A,B)=dfrac{Acap B}{Acup B}$$
对于两个数据对象$x$和$y$,均由$n$个二元属性组成,则
$$J=dfrac{f_{11}}{f_{01}+f_{10}+f_{11}}$$
式中,$f_{11}$为$x$取$1$且$y$取$1$的属性个数,$f_{01}$为$x$取$0$且$y$取$1$的属性个数,$f_{10}$为$x$取$1$且$y$取$0$的属性个数。
Jaccard系数适用于处理仅包含非对称的二元属性的对象。
广义Jaccard系数定义如下:
$$EJ(x,y)=dfrac{xy}{‖x‖^2+‖y‖^2-xy}$$
广义Jaccard系数又称为Tanimoto系数,可用于处理文档数据,并在二元属性情况下归约为Jaccard系数。

相关系数

??两个数据对象之间的相关性是对象属性之间线性关系的度量,计算公式如下
$$rho_{xy}=dfrac{s_{xy}}{s_x s_y}$$
$$s_{xy}=dfrac{1}{n-1} Sigma_{k=1}^n (x_k-overline{x})(y_k-overline{y})$$
$$s_x=sqrt{dfrac{1}{n-1} Sigma_{k=1}^n (x_k-overline{x})^2}$$
$$s_y=sqrt{dfrac{1}{n-1} Sigma_{k=1}^n (y_k-overline{y})^2}$$
$$overline{x}=dfrac{1}{n} Sigma_{k=1}^n x_k ,?overline{y}=dfrac{1}{n} Sigma_{k=1}^n y_k$$
相关系数是衡量数据对象相关程度的一种方法,取值范围为$[-1,1]$。相关系数的绝对值越大,则表明$x$和$y$相关度越高。当$x$和$y$线性相关时,相关系数取值为$1$(正线性相关)或$-1$(负线性相关);线性无关时取值为$0$。在线性回归中,使用直线拟合样本点,可利用相关系数度量其线性性。

信息熵

??信息熵描述的是整个系统内部样本之间的一个距离,是衡量分布的混乱程度或分散程度的一种度量。样本分布越分散(或者说分布越平均),信息熵越大;分布越有序(或者说分布越集中),信息熵就越小。给定样本集$X$的信息熵公式定义如下:
$$Entropy(X)=Sigma_{i=1}^n -p_i log_2?(p_i)$$
式中,$n$为样本集的分类数,$p_i$为第$i$类元素出现的概率。当$S$中$n$个分类出现的概率一样大时,信息熵取最大值$log2(n)$。当$X$只有一个分类时,信息熵取最小值$0$。信息熵用于度量不确定性,在决策树分类中,信息熵可用于计算子树划分前后的信息增益作为选择最佳划分的度量。

原文地址:https://www.cnblogs.com/wangziqiang123/p/11690915.html

时间: 2024-08-06 14:38:08

数据挖掘中的度量方法的相关文章

数据挖掘中数据清洗的方法

数据清洗一是为了解决数据质量问题,二是让数据更加适合做挖掘 一.解决数据质量问题 数据的完整性,比如人的属性中缺少性别.籍贯.年龄等 数据的唯一性,比如不同来源的数据出现重复的情况 数据的权威性,比如同一个指标出现多个来源的数据,且数值不一样 数据的合法性,比如数据与常识不符,市区内开车速度到达了400km/h 数据的一致性,比如不同来源的不同指标,实际的内涵与表示意义是一样的 数据清洗的结果是对各种脏数据进行对应标准的干净的.连续的数据,提供给数据统计.数据挖掘等使用. 1.数据完整性问题 解

关于数据挖掘中“多重共线性”的确定方法(有图有真相)

回归分析是数据挖掘中最基本的方法,其中基于普通最小二乘法的多元线性回归要求模型中的特征数据不能存在有多重共线性,否则模型的可信度将大打折扣.但是就是技术而言,如何确定模型中的各各特征之间是否有多重共线性呢? 先来看一组数据 我们能否用这组数据来建立多元线性回归模型呢?现在这组数据的问题还不十分明显,我们不妨用最简单的交叉散点图来透视一下数据可能存在的问题.于是我们在R中绘制了下图: 从散点图中我们可以看出每个解释变量都与被解释变量有较明显的线性关系,而且这也是我们所希望看到的.但是两个解释变量之

数据挖掘中分类算法小结

数据挖掘中分类算法小结 数据仓库,数据库或者其它信息库中隐藏着许多可以为商业.科研等活动的决策提供所需要的知识.分类与预测是两种数据分析形式,它们可以用来抽取能够描述重要数据集合或预测未来数据趋势的模型.分类方法(Classification)用于预测数据对象的离散类别(Categorical Label);预测方法(Prediction )用于预测数据对象的连续取值. 分类技术在很多领域都有应用,例如可以通过客户分类构造一个分类模型来对银行贷款进行风险评估;当前的市场营销中很重要的一个特点是强

数据挖掘中所需的概率论与数理统计知识

http://blog.csdn.net/v_july_v/article/details/8308762 数据挖掘中所需的概率论与数理统计知识 (关键词:微积分.概率分布.期望.方差.协方差.数理统计简史.大数定律.中心极限定理.正态分布) 导言:本文从微积分相关概念,梳理到概率论与数理统计中的相关知识,但本文之压轴戏在本文第4节(彻底颠覆以前读书时大学课本灌输给你的观念,一探正态分布之神秘芳踪,知晓其前后发明历史由来),相信,每一个学过概率论与数理统计的朋友都有必要了解数理统计学简史,因为,

机器学习与数据挖掘中的十大经典算法

背景: top10算法的前期背景是吴教授在香港做了一个关于数据挖掘top10挑战的一个报告,会后有一名内地的教授提出了一个类似的想法.吴教授觉得非常好,开始着手解决这个事情.找了一系列的大牛(都是数据挖掘的大牛),都觉得想法很好,但是都不愿自己干.原因估计有一下几种:1.确实很忙2.得罪人3.一系列工作很繁琐等等.最后和明尼苏达大学的Vipin Kumar教授一起把这件事情承担下来.先是请数据挖掘领域获过kdd和icdm大奖的十四个牛人提名候选,其中一人因为确实很忙,正从ibm转行到微软,吴教授

关于数据挖掘中的文本挖掘

文本挖掘, 顾名思义,就是挖掘本文信息中潜在的有价值的信息.文本数据与数值数据的区别有三: 第一,非结构化且数据量大: 文本数据的数据量是非常之巨大的,一百万条结构化数据可能才几十到几百兆,而一百万条文本数据就已经是GB了.当然文本数据的数据量无法与每天的log数据相比,但在基础数据中算是占比很大的数据类型了.大数据容量的数据和大数据条目的数据处理方式完全不一样,普通的机器甚至都无法按条处理:其次呢,文本数据是非结构化数据.非结构化意味着没有任何的列可供你定义和参考. 第二,它与人的语言是对接的

机器学习中的矩阵方法01:线性系统和最小二乘

机器学习中的矩阵方法01:线性系统和最小二乘 说明:Matrix Methods in Data Mining and Pattern Recognition 读书笔记 非常 nice 矩阵在线计算器,网址:http://www.bluebit.gr/matrix-calculator/. 1. LU Decomposition 假设现在要解一个线性系统: Ax = b, 其中 A 是 n×n 非奇异方阵,对于任意的向量 b 来说,都存在一个唯一的解. 回顾我们手工求解这个线性方程组的做法,首先

保证产品开发顺利实施的五个软件度量方法

开发一款高质量的软件产品属于软件工程范畴.变幻莫测的用户需求和苛刻的项目计划表很容易导致预算超支或者交付延迟.所以,项目做得越大,其功能也越复杂.正因为存在这么多因素的影响,项目质量很容易失去把控. 没有哪个工程可以离开精确的计量,而量化必须要借助一些度量方法才能实现. 因此,开发者需要一些软件度量方法来实现产品透明而又高质量的交付.因为当你在衡量你所说的话时,你需要用数字来体现你的失败或成功.你需要有一个计算公式来显示你在哪里薄弱,在哪里做得好.用Bob Parsons的话来说,"量化和监督能

如何利用数据挖掘进行分析的方法

ps:作为目前人工智能和数据库领域研究的热点问题,数据挖掘从数据库的大量数据中揭示出隐含的.先前未知的并有潜在价值的信息的非平凡过程. 数据挖掘(Data Mining,DM),又称数据库中的知识发现(Knowledge Discover in Database,KDD),是目前人工智能和数据库领域研究的热点问题,所谓数据挖掘是指从数据库的大量数据中揭示出隐含的.先前未知的并有潜在价值的信息的非平凡过程.数据挖掘是一种决策支持过程,它主要基于人工智能.机器学习.模式识别.统计学.数据库.可视化技