特征与常见的特征距离度量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特征与常见的特征距离度量相关的知识,希望对你有一定的参考价值。
参考技术A 本节,我们将介绍什么是特征,特征的分类以及常见的特征距离度量和它的简单实现。在机器学习和模式识别中,特征是被观测对象的可测量性能或特性。在模式识别,分类和回归中,信息特征的选择,判别和独立特征的选择是有效算法的关键步骤。特征通常是数值型的,但语法模式识别可以使用结构特征(如字符串和图)。“特征”的概念与线性回归等统计技术中使用的解释变量有关。
以上内容来自于 维基百科 。
关于特征,特征工程这块内容很广泛,在业界广泛流传这么一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
这里,我们也不会对特征做太多学术上的叙述,只是结合例子对特征做一些简单的描述。
特征,可以认为是描述事物的一个特性。比如说我们描述一个人,可以使用的特征很多,身高,体重,性别等等,这些特征往往都会有相应的值,身高(180 cm),体重(70 kg),性别(男,女)。这些特征描述了一个人的基本特性,通过身高,体重,我们想象一个人大致的轮廓。比如简历或者病历,HR可以通过简历上的内容,了解到你的经历,例如学历,实习经历,年龄等等。同样地,医生可以通过病历上面的各项指标和参数,知道你身体的大致情况,从而做出大致的判断了。
那么在机器学习里面呢,我们都会接触各种各样的数据集,不妨以西瓜数据集为例吧。
在这个csv数据集的第一行(除了第一个),都可以看作是一个个特征,那最后一个往往就是标签了,比如色泽就是西瓜的一个特征,色泽就会有相应的特征值,如青绿,乌黑,浅白,对于密度这个特征呢,它的取值就是连续的浮点数了。这些特征都可以描述西瓜的一部分,而好瓜作为标签,决定了瓜的种类,它的取值便是好坏与否了。
接下来我们将介绍特征的分类。
在简单认识了特征后,我们就可以对特征分类了,从上面的西瓜数据集可以看出,每个特征都有相应的取值,描述西瓜的一部分。而是不同特征还是有一些区别的,比如色泽和密度,区别很明显,而有些区别,却不明显,如敲声,虽然它和密度不一样,但是我们还是可以感觉出一种“程度”,混响和沉闷之间还是有“程度”上的区别的,尽管它不如密度那样直观。
现在,我们对特征做个简单的分类吧,这里我们对特征和属性不作区分,即两者的代表意思相同。
通常,我们可以将特征划分为"连续特征"和"离散特征"。
“连续特征”在定义域上有无穷多个可能的取值,比如说密度这个特征,它有无穷多个取值;而“离散特征”在定义域上是有限个取值,比如性别,只有男女之分,调查问卷中的等级之分等等。
但是呢,在距离度量时,特征上“序”的概念,或者说“程度”也是很重要的。在连续特征上,不同特征值的大小关系是很明显的,密度值的不同带来的序的关系显而易见,对于离散特征,尽管它的取值是有限个,但是序的概念依然存在。
例如,调查问卷中常见的评分标准,"差","较差","一般","较好","好"的离散属性与连续属性更接近一些,我们能明显感知出"好","较好"的距离比"好","一般"更近一些。这样的特征称为“有序特征”;而诸如颜色(不考虑不同颜色对应的值),交通方式这样的特征,它们的定义域也是有限的,如交通方式"飞机","火车","轮船","汽车",它们没有明显的序的概念,称为“无序特征”。
至此,我们可以对特征简单地分类:
对于函数 ,我们首先看看距离度量需要满足的一些基本性质:
需注意的是,通常我们是基于某种形式的距离来定义"相似度度量",距离越大,相似度越小。然而,用于相似度度量的距离未必定要满足距离度的所有基本性质,尤其是直递性。例如在某些任务中我们可能希望有这样的相似度度量:"人","马"分别与"人马"相似,但"人"与"马"很不相似;要达到这个目的,可以令 "人","马"与"人马"之间的距离都比较小 但"人"与"马"之间的距离很大,此时该距离不再满足直递性;这样的距离称为"非度量距离"。
如图:
接下来,我们将介绍常见的特征距离度量,第一个是针对无序特征的,其他的是针对连续特征和离散特征中的有序特征的度量方式。
在介绍连续特征和离散特征中的有序特征的度量方式前,我们先简单约定一些符号。
都是 维空间上的向量。
表示 和 之间的距离。
使用matlab实现部分度量方式。
对无序属性可采用 VDM (Value Difference Metric)。令 表示在属性 上取值为 的样本数, 表示在第 个样本簇中在属性 上取值为 的样本数, 为样本簇数,则属性 上两个离散值 与 之间的 VDM 距离为:
这个是我们从小到大接触的最多的距离了,其公式为:
matlab程序:
标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离将各个分量都“标准化”到均值、方差相等。
假设样本集X的均值为 ,标准差为 , 的“标准化变量”表示为:
标准化欧氏距离公式:
matlab程序:
切比雪夫距离为某一维度上的最大距离,其公式如下:
matlab程序:
曼哈顿距离也被称为“计程车距离”,或者说“城市街区距离”,它不是走两点之间的直线,而是类似于的街道这样的线段,其公式如下:
matlab程序:
闵可夫斯基距离是一组距离的定义,是对多个距离度量公式概括性的表述,其公式为:
当 ,为哈曼顿距离:
当 ,为欧氏距离:
当 ,为切比雪夫距离:
matlab程序如下:
马氏距离是基于样本分布的一种距离,其定义如下:
有 个样本向量 ,协方差矩阵为 ,均值记为向量 ,其中样本向量 到 的马氏距离为:
向量 与 的马氏距离为:
若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则 与 之间的马氏距离等于他们的欧氏距离:
若协方差矩阵是对角矩阵,则就是标准化欧氏距离:
特点:
matlab程序如下:
余弦距离可用来衡量两个向量的差异,其公式如下:
夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。
matlab程序如下:
两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。
汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,如果向量空间中的元素 和 之间的汉明距离等于它们汉明重量的差 。
应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。
matlab程序如下:
杰卡德相似系数:两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:
杰卡德距离(Jaccard Distance):与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:
用公式表示:
matlab程序如下(matlab中将杰卡德距离定义为不同的维度的个数占“非全零维度”的比例):
相关系数:是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关):
相关距离:
公式如下:
matlab程序:
信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度),分散程度,混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小,公式为:
其中, 是样本集 的类别数, 是 中第 类元素出现的概率。
设有两个概率分布 , 上, , ,则 和 的互信息为:
设 , 是两个随机变量,其
皮尔逊相关系数为:
其中, 是 , 的协方差, , 是 , 的标准差。
相对熵, , 是两个概率分布,其距离为:
它是非对称度量:
基于KL散度发展而来,是对称度量:
其中
量在再生 希尔伯特空间 中两个分布的距离,是一种核学习方法。两个随机变量的距离为:
其中, 是映射,用于把原变量映射到高维空间中。
以上便是一些机器学习里面常见的度量方式,其实还有很多,例如Principal angle,HSIC等,这里就不继续展开叙述了。
针对不同的特征,不同的问题,我们需要选择合适的度量方式。
本文参考了
机器学习方法距离度量K_Means
特征向量
1.特征向量:以人为例,每个元素可能就对应这人的某些方面,这就是特征,例如:身高、年龄、性别、国际....
2.特征工程:目的就是将现有数据中可作为信号的特征与那些仅是噪声的特征区分开来;当数据的维度(即特征的数量)相对于样本量来说比较大时,特征工程就具有较高的失败风险。
机器学习方法
1.机器学习方法一般都具有以下几部分:
1》模型的表示;
2》用于评估模型优度的目标函数;
3》一种优化方法,可以通过学习找出一个模型,使目标函数值最小化或最大化。
2.机器学习一般分为监督式学习和无监督学习
1》监督式学习,我们先从一组成对的特征向量和值开始;目标是从这些特征向量和值中推导出某种规则,以预测与未知的特征向量所对应的值。回归模型为每个特征向量关联一个实数,分类模型为每个特征向量关联一组数量有限的标签。
2》非监督式学习,我们被给定一个没有任何标注的特征向量集合;非监督式学习目标就是发现特征向量集合中隐含模式。举例来说,给定总统的向量集合,非监督式学习会将总统分为高个和矮个,也可能分为美国人和法国人。一般来说,非监督式机器学习方法可以分为两种,一种是聚类方法(将实例集合划分为多个自己,使得同一子集中的实例之间的相似度大于其他子集中的实例的相似度),另一种是隐变量模型学习方法(隐变量得值不能直接观测到,但可以通过其他可观测的变量的值推测出来)。
距离度量
1. 欧式距离:空间中的距离
2.曼哈顿距离:在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”,也称为“城市街区距离”。
3.切比雪夫距离:国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个,国王从(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。
4.闵可夫斯基距离:闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。
因此,根据参数的不同,闵氏距离可以表示某一类/种距离.闵氏距离,包括曼哈顿距离、欧式距离、切比雪夫距离都存在明显的缺点;eg:二维样本(身高:CM,体重:KG ),a(180,50),b(190,50),c(180,60),那么a与b的闵氏距离(无论死曼哈顿距离、欧式距离或切比雪夫距离)等于a与c的闵氏距离,但实际上身高10CM和体重10kg不能划等号。闵氏距离的缺点:将各个分量的量纲也就是单位相同看待了未考虑各个分量的分布(期望、方差...)可能是不同的5.标准化欧氏距离:标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。假设样本集X的均值为m,标准差为s,X的“标准化变量“表示为
6.马氏距离:是基于样本分布的一种距离,物理意义就是规范化的主成分空间中的欧式距离,所谓规范化得主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化,形成新的坐标轴。由这些坐标轴张成的空间就是规范化的主成分空间。
马氏距离的特点:量纲无关,排除变量之间的相关性的干扰;马氏距离的计算是建立在总体样本的基础上,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;计算马氏距离过程中,要求总体样本大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。7.余弦距离:几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中借用这一概念来衡量样本向量之间的差异。
夹角余弦取值范围[-1,1],余弦越大表示两个向量夹角越小,余弦越小表示两向量夹角越大。当两个向量的方向重合时余弦最大值1,当两个向量的方向完全相反余弦取最小值-1。8.汉明距离
定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。例如:The Hamming distance between "1011101" and "1001001" is 2.The Hamming distance between "2143896" and "2233796" is 3.The Hamming distance between "toned" and "roses" is 3.汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。9.杰卡德距离:杰卡德相似系数,两个集合A和B的交集元素在A、B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)
杰卡德距离:与杰卡德系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:
10.相关距离相关系数:是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1],相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关):
11.信息熵:以上的距离度量方法度量的都是两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。
其中n:样本集X的分类数,pi:X中第i类元素出现的概率信息熵越大表明样本集X的分布越分散(分布均匀),信息熵越小则表明样本集X的分布越集中(分布不均匀)。当X中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n),当X中只有一个分类时,信息熵取最小值0。
K_Means聚类
1.K_Means聚类可能是使用最广泛的聚类方法,它的目标是将一个实列集合划分为K个簇,使得:
对于簇中的每个实列,这个簇的质心都离这个实列最近;
由这K个簇组成的簇集合的相异度最小。
方法:随机选择k个实例作为初始的簇质心一直重复以下步骤:(1) 将每个实例都分配给距离最近的质心,建立k个簇;(2) 对每个簇中的所有实例取均值,计算出k个新质心;(3) 如果所有质心都与上一次迭代时相同,则返回当前的簇集合。
以上是关于特征与常见的特征距离度量的主要内容,如果未能解决你的问题,请参考以下文章