3.2 降维

关于降维的讨论主要是来源于“维度灾难”, 这个是数学家理查德-贝尔曼提出的。

当所有参数是已知的时候,维度的增加可以让分类问题的错误率渐近为0.
当未知参数只能根据有限样本来估计时,维度的增加使错误率先降低后增加,最终收敛到0.5

维数灾难的本质原因在于数据样本的有限性。而在数据有限的条件下,去解决维度问题,自然的方法就是去降维。降维的方法有很多

1. 常用的线性降维方法:

  • PCA 主成分分析
  • IDA
  • LDA

2.非线性的方法——流形

流形
是指嵌入在高维空间中的低维子空间,它的维度是低维数据变化的自由度。(比如地球仪的球面,虽然它是在一个三维空间中,但其实是一个二维的地图卷曲而成,x^2+y^2+z^2=1,维度是2)

流形学习
就是通过挖掘数据的内在结构实现向故由维度的转化,找到对应的低维嵌入流形。其大部分是非线性的、非参的。所以相比线性方法有更强的表达能力,但是同时对噪声更加敏感。

流形学习方法

流形学习,首先需要确定低维流形的结构,然后是高维到低维的映射关系。实际中因为都未知,所以需要做一些假设。

  • 多维缩放MDS (multi dimensional scaling)

原则:让高维空间上样本之间的距离在低维空间中尽量保持一致以距离重建的误差最小为优化目标。

具体来说:

(1) 对于原始的数据X_{np},首先可以计算出任何两个样本之间的距离,从而构造出一个距离矩阵D,MDS算法的目的就是根据距离矩阵,寻找向量Z_1,Z_2...Z_k,使得||Z_i-Z_j||≈\sigma_{ij}

假设Z是经过中心化处理过的,即\sum z_i = 0 , 则有

XX^T = D≈ZZ^T

看到这个形式,应该就能明白怎么取解了。对D做特征分解D=VAV^T, V是对应的特征向量,我们选择前k个特征值比较大的作为最终的降维维度即可。

问题:高维空间的距离与低维空间距离保持一致这个假设是否合理?

以地球仪的球面为例,三维空间中两个点的距离和平面中两个点的距离显然是不一样的。三维空间中如果用欧式距离去度量那么北京与纽约的距离是连接两点的直线,而在平面上他是一条曲线。

# MDS
mds = manifold.MDS(n_components, max_iter=100, n_init=1)
Y = mds.fit_transform(X)

下面再说一些以几何性质作为同构基础的降维方法

  • 等度量映射Isomap

等度量映射,以数据所在的低维流形与欧式空间子集的等距性为基础。描述距离的是测地距离,即流形上两点的真实距离。测地距离的近似计算方法:近邻点之间的欧式距离近似为近邻点之间的测地距离。

通过对每一个近邻点建立连接,就可以让所有数据点共同构成一张带权重的近邻连接图。这样在这张图上任意两个点的测地距离就相当于是两点之间的最短路径。可以用图论中的Dijkstra算法求解。

当计算出距离后,剩下的处理方法和MDS一致。所以总的来说包括三步:
(1) 最近邻搜索
(2) 最短路径搜索
(3) 部分特征值分解

model = manifold.Isomap(n_neighbors, n_components)
Y = model.fit_transform(X)
  • 局部线性嵌入LLE(local linear embedding)

想法:待求解的低维流形在局部上是线性的,每个点可以表示成近邻点的线性组合。而局部线性嵌入就是在求解流形的过程中保持每个领域中的线性系数不变的基础上重构原数据点。

详细的推导过程https://blog.csdn.net/yukgwy60648/article/details/54578141

# 其中method可选 ['standard', 'ltsa', 'hessian', 'modified']
model = manifold.LocallyLinearEmbedding(n_neighbors, n_components, eigen_solver='auto', method=method)
Y = model.fit_transform(X)

从概率角度

  • 随机近邻嵌入 SNE

随机近邻嵌入的特点:保持数据降维前后的概率分布不变,他将高维空间中的距离首先映射到了一个服从正态分布的条件概率上。这个概率描述了不同数据点之间的相似性。

p_{j|i}=\frac{exp(-||x_j-x_i||^2/2\sigma^2_i)}{\sum_{k\ne i}exp(-||x_k-x_i||^2/2\sigma^2_i)}
映射到低维空间后,按照同样方式计算条件概率,希望连个概率分布尽量一致。这里是KL散度最小化
KL(P||Q) = -\sum P_i ln(\frac{P_i}{Q_i})=-\sum P_i(ln(P_i)- ln(Q_i))

问题:KL距离是不对称的,会导致相聚较远的点出现较大的散度差。为了是KL距离最小化,数据就会被压缩到极小的范围,产生拥挤问题。

改进

  • 将KL散度改为对称形式 p_{ij}=p_{ji}=(p_{i|j}+p_{j|i})/2
  • 令低维空间中的条件概率服从t分布,t分布有长尾效应,从而使高维中分布较远的点降维后也能区分开
tsne = manifold.TSNE(n_components=n_components, init='pca', random_state=0)
Y = tsne.fit_transform(X)

小结

  • 本章主要知识结构


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

推荐阅读更多精彩内容