《西瓜书》笔记10:降维与度量学习(一)

来源:互联网 发布:js数组的length方法 编辑:程序博客网 时间:2024/05/22 14:07

1.kNN学习

1.1 kNN概述

给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,基于k个邻居的信息进行预测。

分类:投票法。
回归:均值法。
加权:基于距离远近做加权平均或投票,距离越近权重越大。

明显不足:没有显式的训练过程。属于懒惰学习。而在训练阶段就学习处理的方法为急切学习。

k是一个重要参数,不同值导致不同分类结果。另外,采用不同的距离计算方式,找出的近邻或不同,也会导致不同结果。

1.2 最近邻分类器的性能讨论

k=1时,在二分类问题上的性能做一个简单讨论。

给定测试样本x,若最近邻样本为z,则最近邻分类器出错的概率就是x与z类别标注不同的概率,即:
这里写图片描述

假设样本独立同分布,且对任意x和任意小正数δ,在x附近δ距离范围内总能找到一个训练样本。

c=argmaxP(c|x)表示贝叶斯最优分类器的结果。则有

这里写图片描述

结论:最近邻分类器虽然简单,但其泛化错误率不超过贝叶斯最优分类器的错误率的两倍!


2. 低维嵌入

2.1 维数灾难

上节讨论基于重要假设:任意测试样本附近任意小的距离内总可找到一个训练样本,即训练样本的采样密度足够大。

现实很难满足。满足密采样所需的样本数目是无法达到的天文数字。此外,很多学习方法涉及距离计算,高维空间给距离计算带来麻烦。当维数很高时连计算内积都不再容易。

事实上高维空间下出现的数据样本稀疏(满足不了密采样)、距离计算等困难的问题,是所有ML方法面临的共同障碍,被称为“维数灾难”

缓解维数灾难的一个重要途径是降维。通过某种数学变换将原始高维空间转变为一个低维的子空间。在子空间中样本密度大幅度提高,距离计算容易。

为什么可以降维?
答:人们收集到的样本虽是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维嵌入。

2.2 多维缩放

如果要求原始空间中样本之间的距离在低维空间中能够保持,即可得到“多维缩放”降维法。

其原理是根据降维前后的欧式距离相等,由保持不变的距离矩阵求出内积矩阵,对该矩阵进行特征值分解,求出降维后的空间表示。

具体过程待填坑。

2.3 降维:线性变换

一般的,欲获得低维子空间,最简单的对原始高维空间进行线性变换,给定d维空间中的样本X=(x1,x2,...,xm)Rdm,变换之后得到d<<d维空间中的样本。

Z=WTX

WRdd是变换矩阵,Z=Rdm是样本在新空间的表达。原来是m个样本,每个d维。降维后是m个样本,d`维。

W可看作d-个d维基向量。Zi就是第i个样本与这d-个基向量分别做内积而得到的d-维属性向量。Zi是原属性向量Xi在新坐标系{w1,w2,...,wd}中的坐标向量。若wi,wj正交,则新坐标系是正交坐标系,W为正交变换。

分析:原来是100维向量,现在搞了10个100维基向量,每个做内积,得到10个值,组成一个新的10维向量,代表原向量降维结果。

显然,新空间中的属性是原空间属性的线性组合。

基于线性变换来进行降维的方法:线性降维法。均符合Z=WTX的形式。不同在于:对低维子空间的性质要求不同,即对W施加不同约束。

对降维效果评估:比较降维前后学习期的性能。性能若提升说明有效果。若降维至2-3维,则可通过可视化直观看效果。

阅读全文
0 0
原创粉丝点击