数据挖掘 作业一
151220129 计科 吴政亿 nju_wzy@163.com
题目简述
LDA与NCA是两种常用的降维方法,请将二者与PCA对比并回答他们对数据降维的基本原理
基本原理
LDA
LDA的原理是将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。
LDA最求的目标是,给出一个标注了类别的数据集,投影到了一条直线之后,能够使得点尽量的按类别区分开。假设用来区分二分类的直线(投影函数)为:
LDA分类的一个目标是在经过转换后,类内间距小,类间间距大,所以我们需要定义几个关键的值:
类别i的原始中心点
mi
m
i
,类别i投影后的中心点
mi~
m
i
~
,衡量类别i投影后,类别点之间的分散程度(方差)
si~
s
i
~
,最终我们可以得到一个下面的公式,表示LDA投影到w后的损失函数:
定义 si=∑x∈Di(x−mi)(x−mi)T s i = ∑ x ∈ D i ( x − m i ) ( x − m i ) T ,最终将损失函数化为下式,并用拉格朗日乘子法求解,化为求特征值的问题,即最优化广义瑞利商:
其中 Sw S w 为类间散度矩阵, SB S B 为类内散度矩阵, w w 为投影方向。
PCA
主成分分析(PCA)与LDA有着非常近似的意思,LDA的输入数据是带标签的,而PCA的输入数据是不带标签的,所以PCA是一种unsupervised learning。PCA更像是一个预处理的方法,它可以将原本的数据降低维度,而使得降低了维度的数据之间的方差最大,减少信息损失。
定义方差为:
这是一个最大化问题:
应用拉格朗日乘子法求得:
这是一个标准的特征值表达式了, λ λ 对应的特征值, w w 对应的特征向量。上式的左边取得最大值的条件就是最大,也就是取得最大的特征值的时候。假设我们是要将一个 D D 维的数据空间投影到M维的数据空间中, 那我们取前 M M 个特征向量构成的投影矩阵就是能够使得方差最大的矩阵了。
NCA
NCA算法是一种简单有效的距离测度学习算法,该算法随机选择近邻,通过优化留一法(Leave-one-out,LOO)的交叉验证结果来求得马氏距离中的变换矩阵。来自于k近邻算法,其预测依赖于相邻的样本预测准确率。
限定马氏距离变换矩阵是一个对称半正定矩阵,即
Q=ATA
Q
=
A
T
A
,则有:
定义一个可微的softmax函数:
其中 Pij P i j 为样本点 xi x i 随机选择一个近邻,他最终选择另一个样本点 xj x j 作为其近邻继而继承其类标签 cj c j 的概率,因此得到一个最大化目标函数:
这是一个连续可微的矩阵函数,是无约束优化问题,可以通过共轭梯度法或者随机梯度法求出A。当A是方阵时,该算法无法降维,只有距离测度学习功能。当样本是 d×D d × D 时,该算法可以将样本降到 Rd R d 空间。
参考资料
- https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html
- https://blog.csdn.net/chlele0105/article/details/13006443
- http://cs.nju.edu.cn/lim/courses/IntroDM/IntroDM.htm (课程主页) Part 3
- http://cs.nju.edu.cn/_upload/tpl/00/ed/237/template237/teaching_PR.html (模式识别课程主页) 第四章PPT