机器学习:Principal components analysis (主分量分析)

Principal components analysis
这一讲,我们简单介绍Principal Components Analysis(PCA),这个方法可以用来确定特征空间的子空间,用一种更加紧凑的方式(更少的维数)来表示原来的特征空间。假设我们有一组训练集 {x(i);i=1,...m} ,含有m个训练样本,每一个训练样本 x(i)Rn ,其中( nm ),每一个n维的训练
样本意味着有n个属性,一般来说,这n个属性里面,会有很多是存在一定相关性的,也就是很多属性是冗余的,这就为特征的降维提供了可能,关键是如何确定多余的属性以及如何进行降维。

PCA为这个问题提供了一种解决途径,在做PCA之前,我们要先对数据做如下的预处理:

1: 求出训练集的均值向量: μ=1mmi=1x(i) .

2: 用每一个训练样本减去均值向量, x(i)=x(i)μ .

3: 求出变换后的训练集的方差: σ2j=1mi(x(i)j)2 .

4: 再将训练集的样本做如下替换: x(i)j=x(i)j/σj .

上面的第1,2步确保了训练集的均值为0,第3,4步保证了训练集的方差为1,使得训练样本里的不同属性变换到同一个尺度上处理。给定一个单位向量 u 和一个点x,那么该点 x 到单位向量的投影的长度为xTu,如果 x(i) 是训练集里的一个样本,那么它在 u 上的投影长度即为xTu到原点的距离,因此,为了能够让这些投影之间的方差最大,我们希望找到满足如下表达式的单位向量 u

1mi=1m((x(i))Tu)2=1mi=1muTx(i)(x(i))Tu=uT(1mi=1mx(i)(x(i))T)u

因为 u 是单位向量,所以u2=1,上式括号中的表达式即为均值为0的协方差矩阵( Σ=1mmi=1x(i)(x(i))T ),为了使目标函数最大化,则 u 应该取Σ最大的特征值所对应的特征向量。

总之,我们应该取 Σ 的主特征向量,如果我们希望将原来的数据空间映射到一个低维的子空间,我们可以选择 Σ 的前k个特征向量作为子空间的基向量,那么这k个特征向量 u1,u2,...uk 组成了新空间的基向量。那么我们可以将原来的训练样本 x(i) 映射到新的特征空间:

y(i)=uT1x(i)uT2x(i)uTkx(i)Rk

因此,虽然 x(i) 是一个n维的向量,但是 y(i) 变成了维数更低的向量,所以PCA是一种降维算法,其中特征向量 u1,u2,...uk 称为训练集的
前k个主分量。

参考来源:

Andrew Ng, “Machine Learning”, Stanford University.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值