Sparse PCA: reproduction of the synthetic example
The paper:
Hui Zou, Trevor Hastie, and Robert Tibshirani,
Sparse Principal Component Analysis,
Journal of computational and Graphical Statistics, 15(2): 265-286, 2006.
Reproduction of the Synthetic Example in Section 5.2 using R programming:
library(elasticnet) ## sample version of SPCA
n =
v1 = rnorm(n,,sqrt())
v2 = rnorm(n,,sqrt())
v3 = -.*v1 + 0.925*v2 + rnorm(n)
x1 = v1 + rnorm(n)
x2 = v1 + rnorm(n)
x3 = v1 + rnorm(n)
x4 = v1 + rnorm(n) x5 = v2 + rnorm(n)
x6 = v2 + rnorm(n)
x7 = v2 + rnorm(n)
x8 = v2 + rnorm(n) x9 = v3 + rnorm(n)
x10 = v3 + rnorm(n) x = cbind(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)
x.cov = t(x) %*% x/n; head(x.cov)
a = spca(x, , type='predictor', sparse='varnum', para=c(,), lambda=)
a
## population version of SPCA
g1 = matrix(, , )
diag(g1) = g2 = matrix(, , )
diag(g2) = g3 = matrix(283.7875, , )
diag(g3) = diag(g3)+ g1g3 = matrix(-, , )
g2g3 = matrix(277.5, , ) # construct the exact covariance matrix
x.cov = matrix(, , )
x.cov[:,:] = g1
x.cov[:,:] = g2
x.cov[:,:] = g3
x.cov[:,:] = g1g3
x.cov[:,:] = t(g1g3)
x.cov[:,:] = g2g3
x.cov[:,:] = t(g2g3) b = spca(x.cov, , type='Gram', sparse='varnum', para=c(,), lambda=)
b
The results of the population version using exact covariance matrix are exactly as in the paper:
> b Call:
spca(x = x.cov, K = , para = c(, ), type = "Gram", sparse = "varnum",
lambda = ) sparse PCs
Pct. of exp. var. : 40.9 39.5
Num. of non-zero loadings :
Sparse loadings
PC1 PC2
[,] 0.0 0.5
[,] 0.0 0.5
[,] 0.0 0.5
[,] 0.0 0.5
[,] 0.5 0.0
[,] 0.5 0.0
[,] 0.5 0.0
[,] 0.5 0.0
[,] 0.0 0.0
[,] 0.0 0.0
But the sample version may randomly vary a little.
> a Call:
spca(x = x, K = , para = c(, ), type = "predictor", sparse = "varnum",
lambda = ) sparse PCs
Pct. of exp. var. : 37.9 37.6
Num. of non-zero loadings :
Sparse loadings
PC1 PC2
x1 0.000 -0.303
x2 0.000 -0.533
x3 0.000 -0.576
x4 0.000 -0.540
x5 -0.492 0.000
x6 -0.287 0.000
x7 -0.481 0.000
x8 -0.666 0.000
x9 0.000 0.000
x10 0.000 0.000
Having fun learning sparse PCA!
Sparse PCA: reproduction of the synthetic example的更多相关文章
- Deflation Methods for Sparse PCA
目录 背景 总括 Hotelling's deflation 公式 特点 Projection deflation 公式 特点 Schur complement deflation Orthogona ...
- Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
目录 概括 Sparse PCA Formulation 非常普遍的问题 Optimality Conditions Eigenvalue Bounds 算法 代码 概括 这篇论文,不像以往的那些论文 ...
- Sparse PCA 稀疏主成分分析
Sparse PCA 稀疏主成分分析 2016-12-06 16:58:38 qilin2016 阅读数 15677 文章标签: 统计学习算法 更多 分类专栏: Machine Learning ...
- A direct formulation for sparse PCA using semidefinite programming
目录 背景 Sparse eigenvectors(单个向量的稀疏化) 初始问题(low-rank的思想?) 等价问题 最小化\(\lambda\) 得到下列问题(易推) 再来一个等价问题 条件放松( ...
- 主成分分析(PCA)原理总结
主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一.在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用.一般我们提到降维最容易想到的算法就 ...
- Python机器学习笔记 使用scikit-learn工具进行PCA降维
之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-learn工具来进行PCA降维. 在数据处理中,经常会遇到特征维度比样本数量多得多 ...
- 深入学习主成分分析(PCA)算法原理(Python实现)
一:引入问题 首先看一个表格,下表是某些学生的语文,数学,物理,化学成绩统计: 首先,假设这些科目成绩不相关,也就是说某一科目考多少分与其他科目没有关系,那么如何判断三个学生的优秀程度呢?首先我们一眼 ...
- Sparse Principal Component Analysis
目录 背景: 部分符号 创新点 文章梗概 The LASSO AND THE ELASTIC NET 将PCA改造为回归问题 定理二 单个向量(无需进行SVD版本) 定理三 多个向量(无需进行SVD, ...
- Full Regularization Path for Sparse Principal Component Analysis
目录 背景 Notation Sparse PCA Semidefinite Relaxation Low Rank Optimization Sorting and Thresholding 背景 ...
随机推荐
- c编程过程中错误笔记-& 理解不深啊!
写了一个函数,删除数组里面的元素,声明如: int student_delete(int *len, struct student stu[]): 在其内部调用了另一个函数 int student_d ...
- PPT制作,数据图等画图
1. mathcad 画图简单不错 2.三维图 matlab不错 3.PPT 学术ppt,美观明了,思路清晰,数据可视化 学术PPT: http://mp.weixin.qq.com/s/TPYW ...
- [2019杭电多校第七场][hdu6655]Just Repeat
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6655 题意是说两个人都有一些带有颜色的牌,两人轮流出牌,但是不能出对面出过的颜色的牌,最后谁不能出牌谁 ...
- Python中包的定义
简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空.__init__.py 用于标识当前文件夹是一个包. 实例子 test.pypackage_dc36 ...
- let,const
- 让webstorm支持ES6语法:file-setting-languages&frameworks-javascript-右侧选择ES6 - let定义变量没有预解释且不能重复定义,在定 ...
- CCF CSP/CCSP报名费优惠的方法以及常见疑问
目录 1. 本文地址 2. 认证作用 2.1. 高校认可 2.2. 赛事认可 2.3. 企业认可 3. 报名费价格及获取优惠的方法 3.1. CCF CSP 3.2. CCF CCSP 4. 语言与I ...
- linux grep 设置高亮显示
[root@eric ~]# vi /etc/profile alias grep='grep --color=auto' [root@eric ~]# source /etc/profile
- VNware上安装虚拟机Ubuntu16.10 并安装petalinux(版本问题的坑 弃帖 另开一帖)
1.下载Ubuntu镜像文件 最新版本:https://ubuntu.com/download/desktop 老版本:http://old-releases.ubuntu.com/releases/ ...
- [CF] E. Camels
CF 2000 的dp题目还是有点难qwq 题意: 一行有\(n\)个空位,每个空位可以填\([1,4]\)的整数,要求: 1.有\(t\)个位置满足 \(ai−1<ai>ai+1(1&l ...
- 剖析 Vue.js 内部运行机制 (1)
1. new Vue() 之后. Vue 会调用 _init 函数进行初始化,也就是这里的 init 过程,它会初始化生命周 期.事件. props. methods. data. computed ...