机器学习----降维与度量学习(k邻近学习)

来源:互联网 发布:arp 添加网关mac 编辑:程序博客网 时间:2024/05/22 02:43

kNN

k邻近,k-Nearest Neighbor,kNN;是懒惰学习(lazy learning)的代表。所谓懒惰学习就是没有没有显式训练过程,只是把训练数据保存起来,用的时候直接再算出结果就行了。具体算法如下:
给定测试样本,基于某种距离度量找出训练集中与最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测;若是分类问题就可以用投票法确定最后的结果,若是回归问题就可以用平局法。但是最后结果跟k选取有关系:
这里写图片描述
可以看出k=1的时候,判定为+,为3的时候判定为-,为5的时候判定又为+。
给定测试样本x,若其最近邻样本为z,则最近邻分类器的出错概率为:

P(err)=1cYP(c|x)P(c|z)

假设样本独立同分布,且对任意x和任意小的正数δ,在x附近δ距离范围内总能找到一个训练样本。令c=argmaxcYP(c|x)表示贝叶斯最优分类器的结果,有
P(err)=1cYP(c|x)P(c|z)1cYP2(c|x)1P2(c|x)=(1+P(c|x))(1P(c|x))2×(1P(c|x))

怎么样是不是有点惊讶,最近邻分类器虽然简单,但是它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍。

低维嵌入

我们讨论错误率的时候有个假设,在样本x附近δ内总能找到一个训练样本。这就要求训练样本的采样密度足够大。若δ=0.001则单个属性就要1000个样本啦。若是20个属性则要(1000)20个样本。天了噜,这怎么算,你需要降维(姜维,雾)!
这里写图片描述
如图所示我们把三维空间中的点降维成了两维。可以直观的感受到,我们这样的降维对分类任务来说没有一丝影响反而更加好算了。即人们观察到数据虽是高位的,但是与学习任务密切相关的也许仅是一个低维分布,即高维空间中的一个低维“嵌入”。我们下一讲说说降维最经典,我最喜欢的算法PCA(Principal Component Analysis)。

0 0