最近在学习UFLDL Tutorial,这是一套关于无监督学习的教程。在此感觉Andrew Ng做的真的是非常认真。下面把我的代码贴出来,方便大家学习调试。所有代码已经过matlab调试通过。
PCA是一种用来降维的方法。个人推荐看Pattern Recognition And Machine Learning的第十二章作为辅助。该书写的极为详细。UFLDL上有两个练习。建议先做pca_2d.m,然后的pca_gen.m只需要把代码稍稍改动就可以了。这两个练习都只需要修改一个.m文件,相比上一节稀疏编码要容易一些。以下贴出了我自己的代码和运行结果。
一、pca_2d.m中的代码
Step 1a,获得正交变换的基,代码:
[dim,sampleN] = size(x); %维数与样本数
x = x - mea