特征与常见的特征距离度量

本节,我们将介绍什么是特征,特征的分类以及常见的特征距离度量和它的简单实现。



什么是特征

在机器学习和模式识别中,特征是被观测对象的可测量性能或特性。在模式识别,分类和回归中,信息特征的选择,判别和独立特征的选择是有效算法的关键步骤。特征通常是数值型的,但语法模式识别可以使用结构特征(如字符串和图)。“特征”的概念与线性回归等统计技术中使用的解释变量有关。
以上内容来自于维基百科

关于特征,特征工程这块内容很广泛,在业界广泛流传这么一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
这里,我们也不会对特征做太多学术上的叙述,只是结合例子对特征做一些简单的描述。

特征,可以认为是描述事物的一个特性。比如说我们描述一个人,可以使用的特征很多,身高,体重,性别等等,这些特征往往都会有相应的值,身高(180 cm),体重(70 kg),性别(男,女)。这些特征描述了一个人的基本特性,通过身高,体重,我们想象一个人大致的轮廓。比如简历或者病历,HR可以通过简历上的内容,了解到你的经历,例如学历,实习经历,年龄等等。同样地,医生可以通过病历上面的各项指标和参数,知道你身体的大致情况,从而做出大致的判断了。

那么在机器学习里面呢,我们都会接触各种各样的数据集,不妨以西瓜数据集为例吧。

色泽 根蒂 敲声 纹理 脐部 触感 密度 含糖率 好瓜
青绿 蜷缩 浊响 清晰 凹陷 硬滑 0.697 0.46
乌黑 蜷缩 沉闷 清晰 凹陷 硬滑 0.774 0.376
乌黑 蜷缩 浊响 清晰 凹陷 硬滑 0.634 0.264
青绿 蜷缩 沉闷 清晰 凹陷 硬滑 0.608 0.318
浅白 蜷缩 浊响 清晰 凹陷 硬滑 0.556 0.215
青绿 稍蜷 浊响 清晰 稍凹 软粘 0.403 0.237
乌黑 稍蜷 浊响 稍糊 稍凹 软粘 0.481 0.149
乌黑 稍蜷 浊响 清晰 稍凹 硬滑 0.437 0.211
乌黑 稍蜷 沉闷 稍糊 稍凹 硬滑 0.666 0.091
青绿 硬挺 清脆 清晰 平坦 软粘 0.243 0.267
浅白 硬挺 清脆 模糊 平坦 硬滑 0.245 0.057
浅白 蜷缩 浊响 模糊 平坦 软粘 0.343 0.099
青绿 稍蜷 浊响 稍糊 凹陷 硬滑 0.639 0.161
浅白 稍蜷 沉闷 稍糊 凹陷 硬滑 0.657 0.198
乌黑 稍蜷 浊响 清晰 稍凹 软粘 0.36 0.37
浅白 蜷缩 浊响 模糊 平坦 硬滑 0.593 0.042
青绿 蜷缩 沉闷 稍糊 稍凹 硬滑 0.719 0.103

在这个csv数据集的第一行(除了第一个),都可以看作是一个个特征,那最后一个往往就是标签了,比如色泽就是西瓜的一个特征,色泽就会有相应的特征值,如青绿,乌黑,浅白,对于密度这个特征呢,它的取值就是连续的浮点数了。这些特征都可以描述西瓜的一部分,而好瓜作为标签,决定了瓜的种类,它的取值便是好坏与否了。

接下来我们将介绍特征的分类。

特征的分类

在简单认识了特征后,我们就可以对特征分类了,从上面的西瓜数据集可以看出,每个特征都有相应的取值,描述西瓜的一部分。而是不同特征还是有一些区别的,比如色泽和密度,区别很明显,而有些区别,却不明显,如敲声,虽然它和密度不一样,但是我们还是可以感觉出一种“程度”,混响和沉闷之间还是有“程度”上的区别的,尽管它不如密度那样直观。

现在,我们对特征做个简单的分类吧,这里我们对特征和属性不作区分,即两者的代表意思相同。

通常,我们可以将特征划分为"连续特征"和"离散特征"。
“连续特征”在定义域上有无穷多个可能的取值,比如说密度这个特征,它有无穷多个取值;而“离散特征”在定义域上是有限个取值,比如性别,只有男女之分,调查问卷中的等级之分等等。

但是呢,在距离度量时,特征上“序”的概念,或者说“程度”也是很重要的。在连续特征上,不同特征值的大小关系是很明显的,密度值的不同带来的序的关系显而易见,对于离散特征,尽管它的取值是有限个,但是序的概念依然存在。

例如,调查问卷中常见的评分标准,{"差","较差","一般","较好","好"}的离散属性与连续属性更接近一些,我们能明显感知出"好","较好"的距离比"好","一般"更近一些。这样的特征称为“有序特征”;而诸如颜色(不考虑不同颜色对应的值),交通方式这样的特征,它们的定义域也是有限的,如交通方式{"飞机","火车","轮船","汽车"},它们没有明显的序的概念,称为“无序特征”。

至此,我们可以对特征简单地分类:

image.png

特征距离度量以及实现

对于函数dist(.,.),我们首先看看距离度量需要满足的一些基本性质:

  • 非负性:dist(x_{i},x_{j}) \geq 0
  • 同一性:dist(x_{i},x_{j}) = 0 当且仅当 x_{i} = x_{j}
  • 对称性:dist(x_{i},x_{j}) = dist(x_{j},x_{i})
  • 传递性:dist(x_{i},x_{j}) \leq dist(x_{i},x_{k})+dist(x_{k},x_{j})

需注意的是,通常我们是基于某种形式的距离来定义"相似度度量",距离越大,相似度越小。然而,用于相似度度量的距离未必定要满足距离度的所有基本性质,尤其是直递性。例如在某些任务中我们可能希望有这样的相似度度量:"人","马"分别与"人马"相似,但"人"与"马"很不相似;要达到这个目的,可以令 "人","马"与"人马"之间的距离都比较小 但"人"与"马"之间的距离很大,此时该距离不再满足直递性;这样的距离称为"非度量距离"。

如图:

image.png

接下来,我们将介绍常见的特征距离度量,第一个是针对无序特征的,其他的是针对连续特征和离散特征中的有序特征的度量方式。

在介绍连续特征和离散特征中的有序特征的度量方式前,我们先简单约定一些符号。
x_{i}=(x_{i1},x_{i2},...,x_{in}) \quad x_{j}=(x_{j1},x_{j2},...,x_{jn})
x_{i},x_{j}都是n维空间上的向量。
dist(x_{i},x_{j})表示x_{i}x_{j}之间的距离。
使用matlab实现部分度量方式。

VDW

对无序属性可采用 VDM (Value Difference Metric)。令m_{u,a}表示在属性u上取值为a的样本数,m_{u,a,i}表示在第i个样本簇中在属性u上取值为a的样本数,k为样本簇数,则属性u上两个离散值ab之间的 VDM 距离为:
VDM_{p}(a,b)=\sum_{i=1}^{k}|\frac{m_{u,a,i}}{m_{u,a}} - \frac{m_{u,b,i}}{m_{u,b}}|^{p}

欧式距离

这个是我们从小到大接触的最多的距离了,其公式为:
dist(x_{i},x_{j})= \sqrt {\sum_{k=1}^{n}(x_{ik}-x_{jk})}
matlab程序:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
dist = pdist2(xi,xj,'euclidean')
% dist = 6.3246

标准化欧氏距离

标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离将各个分量都“标准化”到均值、方差相等。
假设样本集X的均值为m,标准差为sX的“标准化变量”表示为:
X^{*}=\frac{X-m}{s}
标准化欧氏距离公式:
dist(x_{i},x_{j})=\sqrt{\sum_{k=1}^{n}(\frac{x_{ik}-x_{jk}}{s_{k}})^2}
matlab程序:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
X = [xi;xj]';
xi_std = std(xi);
xj_std = std(xj);
dist = pdist(X,'seuclidean',[xi_std,xj_std])
% dist = 0.8944 1.7889 2.6833 3.5777 0.8944 1.7889 2.6833 0.8944 1.7889 0.8944

切比雪夫距离

切比雪夫距离为某一维度上的最大距离,其公式如下:
dist(x_{i},x_{j})=\max_{k}(|x_{ik}-x_{jk}|)
matlab程序:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
dist = pdist2(xi,xj,'chebychev')
% dist = 4

曼哈顿距离

曼哈顿距离也被称为“计程车距离”,或者说“城市街区距离”,它不是走两点之间的直线,而是类似于的街道这样的线段,其公式如下:
dist(x_{i},x_{j})=\sum_{k=1}^{n}|x_{ik}-x_{jk}|
matlab程序:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
dist = pdist2(xi,xj,'cityblock')
% dist = 12

闵可夫斯基距离

闵可夫斯基距离是一组距离的定义,是对多个距离度量公式概括性的表述,其公式为:
dist(x_{i},x_{j})=\sqrt[p]{\sum_{k=1}^{n}|x_{ik}-x_{jk}|^{p}}
p=1,为哈曼顿距离:
dist(x_{i},x_{j})=\sum_{k=1}^{n}|x_{ik}-x_{jk}|
p=2,为欧氏距离:
dist(x_{i},x_{j})= \sqrt {\sum_{k=1}^{n}(x_{ik}-x_{jk})}
p=\infty,为切比雪夫距离:
dist(x_{i},x_{j})=\max_{k}(|x_{ik}-x_{jk}|)
matlab程序如下:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
p = 1;
% 哈曼顿距离
dist = pdist2(xi,xj,'minkowski',p)
% dist = 12
p = 2;
% 欧氏距离
dist = pdist2(xi,xj,'minkowski',p)
% dist = 6.3246
p = inf;
% 切比雪夫距离
dist = pdist2(xi,xj,'minkowski',p)
% dist = 4

马氏距离

马氏距离是基于样本分布的一种距离,其定义如下:
m个样本向量x_{1}~x_{m},协方差矩阵为S,均值记为向量\mu,其中样本向量x\mu的马氏距离为:
dist(x,\mu)=\sqrt{(x-\mu)^{T}S^{-1}(x-\mu)}
向量x_{i}x_{j}的马氏距离为:
dist(x_{i},x_{j})=\sqrt{(x_{i}-x_{j})^{T}S^{-1}(x_{i}-x_{j})}
若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则x_{i}x_{j}之间的马氏距离等于他们的欧氏距离:
dist(x_{i},x_{j})=\sqrt{(x_{i}-x_{j})^{T}(x_{i}-x_{j})}
若协方差矩阵是对角矩阵,则就是标准化欧氏距离:
dist(x_{i},x_{j})=\sqrt{\sum_{k=1}^{n}(\frac{x_{ik}-x_{jk}}{s_{k}})^2}

特点:

  • 量纲无关,排除变量之间的相关性的干扰;
  • 马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
  • 计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。

matlab程序如下:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
X = [xi;xj]';
dist = pdist(X,'mahal')
% dist = 0.6325 1.2649 1.8974 2.5298 0.6325 1.2649 1.8974 0.6325 1.2649 0.6325

余弦距离

余弦距离可用来衡量两个向量的差异,其公式如下:
dist(x_{i},x_{j})=cos(\theta)=\frac{\sum_{k=1}^{n}x_{ik}x_{jk}}{\sqrt{\sum_{k=1}^{n}x^{2}_{ik}} \sqrt{\sum_{k=1}^{n}x^{2}_{jk}}}
夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。

matlab程序如下:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
dist = 1 - pdist2(xi,xj,'cosine')
% dist = 0.6364

汉明距离

两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。

"1011101" and "1001001" is 2. 
"2143896" and "2233796" is 3. 
"toned" and "roses" is 3.

汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,如果向量空间中的元素ab之间的汉明距离等于它们汉明重量的差a-b

应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。

matlab程序如下:

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
dist = pdist2(xi,xj,'hamming')
% dist = 0.8000

杰卡德距离

杰卡德相似系数:两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:
J(A,B)=\frac{A \bigcap B}{A \bigcup B}
杰卡德距离(Jaccard Distance):与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:
J_{\delta}(A,B)=1-J(A,B)=\frac{|A \bigcup B|-|A \bigcap B|}{|A \bigcup B|}
用公式表示:
dist(x_{i},x_{j})=\frac{|x_{i} \bigcup x_{j}|-|x_{i} \bigcap x_{j}|}{| x_{i} \bigcup x_{j} |}
matlab程序如下(matlab中将杰卡德距离定义为不同的维度的个数占“非全零维度”的比例):

xi = [1,2,3,4,5];
xj = [5,4,3,2,1];
dist = pdist2(xi,xj,'jaccard')
% dist = 0.8000

相关距离

相关系数:是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关):
\rho=\frac{Cov(X,Y)}{\sqrt{D(X)}\sqrt{D(Y)}}=\frac{E((X-EX)(Y-EY))}{\sqrt{D(X)}\sqrt{D(Y)}}
相关距离:
D_{xy}=1-\rho_{xy}
公式如下:
dist(x_{i},x_{j})=1 - \frac{E((x_{i}-Ex_{i})( x_{j}-Ey_{j}))}{\sqrt{D( x_i )}\sqrt{D( x_j )}}
matlab程序:

X=[1 2 3 4;
    3 8 7 6];
% 相关系数矩阵
c = corrcoef(X')
% c 
%     1.0000    0.4781
%     0.4781    1.0000
% 相关距离
dist = pdist(X,'correlation')
% dist = 0.5219

信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度),分散程度,混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小,公式为:
Entropy(X)=\sum_{i=1}^{n}-p_{i}\log_{2}p_{i}
其中,n是样本集X的类别数,p_{i}X中第i类元素出现的概率。

互信息

设有两个概率分布XY上,x \in Xy \in Y,则XY的互信息为:
I(X,Y)=\sum_{x \in X}\sum_{y \in Y}p(x,y)\log\frac{p(x,y)}{p(x)p(y)}

皮尔逊相关系数

XY是两个随机变量,其
皮尔逊相关系数为:
\rho_{X,Y}=\frac{Cov(X,Y)}{\sigma_{X}\sigma_{Y}}
其中,Cov(X,Y)XY的协方差,\sigma_{X}\sigma_{Y}XY的标准差。

KL散度

相对熵,P(x)Q(x)是两个概率分布,其距离为:
D_{KL}(P||Q)=\sum_{i=1}P(x)\log \frac{P(x)}{Q(x)}
它是非对称度量:
D_{KL}(P||Q) \neq D_{KL}(Q||P)

JS距离

基于KL散度发展而来,是对称度量:
JSD(P||Q)=\frac{1}{2}D_{KL}(P||M)+\frac{1}{2}D_{KL}(Q||M)
其中
M = \frac{1}{2}(P+Q)

MMD距离

量在再生希尔伯特空间中两个分布的距离,是一种核学习方法。两个随机变量的距离为:
MMD(X,Y)=||\sum_{i=1}^{n_{1}}\phi(x_{i})-\sum_{j=1}^{n_{2}}\phi(y_{j})||^{2}_{H}
其中,\phi(\cdot)是映射,用于把原变量映射到高维空间中。



以上便是一些机器学习里面常见的度量方式,其实还有很多,例如Principal angle,HSIC等,这里就不继续展开叙述了。
针对不同的特征,不同的问题,我们需要选择合适的度量方式。

本文参考了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容