zoukankan      html  css  js  c++  java
  • 机器学习: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.

  • 相关阅读:
    R语言大小写字母转换
    SparkR(R on Spark)编程指南 含 dataframe操作
    SparkR(R on Spark)编程指南 含 dataframe操作
    R-table和tapply函数
    r table
    多变量频率统计——r
    R语言-查看加载包、卸除加载包及安装包与卸载包
    flask 电子邮件进阶实践-用模板发送163邮件 --
    flask 电子邮件Flask-Mail --
    数据库进阶实践-事件监听 --
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412500.html
Copyright © 2011-2022 走看看