属性空间是什么?所有特征张成的、每个样本对应一个点的空间
属性空间(Attribute Space),也叫样本空间或输入空间,是以数据的各个属性为坐标轴所构成的空间。在这个空间中,每一个样本都可以表示为一个点。这个概念出现在周志华《机器学习》等教材的基础术语部分,是理解很多机器学习方法的基础。
一个直观的例子
假设我们用三个属性来描述西瓜:色泽、根蒂和敲声。以这三个属性为三条坐标轴,就构成了一个三维的空间。每一个西瓜,根据它在这三个属性上的取值,都可以在这个空间中找到一个对应的位置,也就是一个点。这个点的坐标就是这个西瓜的属性值组成的向量,因此每个样本也被称为一个“特征向量”。再比如用身高和体重描述人,就得到一个二维的属性空间,每个人都是平面上的一个点。
在实际的问题中,属性的数量往往很多,比如一张 28 乘 28 像素的灰度图片,每一个像素都是一个属性,那么它的属性空间就有 784 个维度。虽然我们无法直观地想象这么高维的空间,但数学上的处理方法与二维、三维是一样的。
为什么这个概念有用
把样本看作空间中的点,能让我们用几何的眼光来理解机器学习。相似的样本在空间中彼此靠近:两个各方面都很相似的西瓜,在属性空间中的距离会很近。基于这一点,K 近邻算法通过找出离新样本最近的几个已知样本,来判断它的类别;聚类算法把空间中聚在一起的点分成同一组。
分类可以理解为划分空间:一个分类模型,就是在属性空间中画出边界,把空间划分成不同的区域,每个区域对应一个类别。这条边界被称为决策边界。线性分类器画出的是直线、平面或超平面,决策树画出的是一个个与坐标轴平行的矩形区域,神经网络则能画出非常复杂的弯曲边界。支持向量机就是要在属性空间中找到一个能把两类样本分开、并且离两边的样本都尽可能远的超平面。
相关的几个空间
与属性空间对应的是标记空间或输出空间,它是所有可能的输出结果构成的集合,比如在西瓜的例子中是“好瓜”和“坏瓜”。机器学习的任务,就是学习一个从属性空间到标记空间的映射。此外还有假设空间,它是所有可能的模型或规则构成的集合,学习的过程可以看作在假设空间中搜索与训练数据最匹配的那一个。
高维带来的挑战
当属性空间的维度很高时,会出现“维度灾难”:随着维度的增加,空间的体积急剧膨胀,数据点在空间中变得非常稀疏,样本之间的距离也趋于相近,基于距离的方法会变得不太可靠,需要的训练数据量也会急剧增加。为此,人们常常使用特征选择和降维的方法,把数据映射到一个维度更低的空间中。在深度学习中,神经网络会把原始的输入映射到一个学到的“表示空间”或“嵌入空间”中,在这个新的空间里,语义相近的样本彼此靠近,比如词向量空间中意思相近的词会聚在一起,这让后续的任务变得更加容易。