[算法5]PCA降维
2014-05-13 17:39
225 查看
最近在做文本聚类和用kd-tree关联文档,头疼于所谓的文本处理的高维诅咒,决定写一个降维算法。
从降维算法最常见的入手,which is PCA,又叫主成分分析。PCA是利用了协方差的概念,将多维度的矩阵之间维度建立一个关系,然后拉伸原有的多维度,组合成新的低维度空间,投影原有的多维矩阵到低维空间中,尽量的保证原有的各个样本间关系损失小。
步骤:
将数据建立一个M*N矩阵,每行代表一个样本,每列代表一个维度,我们的目标是降低这个维度;
每列取均值,可以得到一个1*N的矩阵,每个值是这个维度的平均值;
将原有的M*N矩阵的每一行(样本)都减去这个平均值矩阵(1*N矩阵),得到平均值矩阵M*N,意义是将原有空间中的矩阵分布样本的中心拉到空间原点;
对这个M*N的矩阵做协方差运算,得到N*N的矩阵,这个矩阵表示了N个维度间的相关性;
从降维算法最常见的入手,which is PCA,又叫主成分分析。PCA是利用了协方差的概念,将多维度的矩阵之间维度建立一个关系,然后拉伸原有的多维度,组合成新的低维度空间,投影原有的多维矩阵到低维空间中,尽量的保证原有的各个样本间关系损失小。
步骤:
将数据建立一个M*N矩阵,每行代表一个样本,每列代表一个维度,我们的目标是降低这个维度;
每列取均值,可以得到一个1*N的矩阵,每个值是这个维度的平均值;
将原有的M*N矩阵的每一行(样本)都减去这个平均值矩阵(1*N矩阵),得到平均值矩阵M*N,意义是将原有空间中的矩阵分布样本的中心拉到空间原点;
对这个M*N的矩阵做协方差运算,得到N*N的矩阵,这个矩阵表示了N个维度间的相关性;
相关文章推荐
- 产品经理必读:了解网页设计中的分割布局
- 获取最接近八点的时间 范围 7-9
- os os.path
- secureFX中出现中文乱码
- 关于AggregationClient 除了rowCount以外的其他聚合函数抛空指针异常的解释
- 141 The Spot Game
- c++对象数组和this指针
- Linux下音乐乱码
- IEnumerable IEnumerator
- Linux下DIR,dirent,stat等结构体详解
- Linux 启动过程分析
- MVC缺点
- IEnumerable IEnumerator 分类: .NET 2014-05-13 17:38 350人阅读 评论(0) 收藏
- 委托再学习
- Form表单标签的Enctype属性的作用及应用示例介绍
- 就是在这样一个落英纷飞的四月
- makefile write
- 几个关于嵌入式C的面试问题【转】
- hdu4570 Multi-bit Trie
- arm-linux编译链接过程