在机器学习和模式识别中,特征是被观测对象的可测量性能或特性。在模式识别,分类和回归中,信息特征的选择,判别和独立特征的选择是有效算法的关键步骤。特征通常是数值型的,但语法模式识别可以使用结构特征(如字符串和图)。“特征”的概念与线性回归等统计技术中使用的解释变量有关。
以上内容来自于 维基百科 。
关于特征,特征工程这块内容很广泛,在业界广泛流传这么一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
这里,我们也不会对特征做太多学术上的叙述,只是结合例子对特征做一些简单的描述。
特征,可以认为是描述事物的一个特性。比如说我们描述一个人,可以使用的特征很多,身高,体重,性别等等,这些特征往往都会有相应的值,身高(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等,这里就不继续展开叙述了。
针对不同的特征,不同的问题,我们需要选择合适的度量方式。
本文参考了
群落按照物种相似形组成进行聚类分析,可以用树状图较好的表现物种的组成关系。受到很多植被学家的重视。这里以R软件实现聚类分析为例。如果按照物种组成的相似性做聚类分析,那么可以用Jaccard指数(经过转换的)。Jaccard指数只考虑物种在两个样方间是否重复出现,盖度在分析的过程中并不起什么作用。但是如果对乔木和灌木进行分析,就可以考虑个体的数量,计算样方物种组成的相似性的时候用Bray-Curtis指数。Jaccard指数和Bray-Curtis指数在众多生态学相关的程序包中都是可以计算的。下面说一下在R软件中,结合vegan程序包,对草本样方的物种组成进行聚类分析。下面是在R中的具体 *** 作过程:#第一步#是矩阵的整理,建议先整理一下各样地的名录,成如下格式,再用R整理成物种矩阵。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)