pca虽然看了好多遍,但是到实际应用的时候还是觉得,没那么顺手,主要是输入数据的格式,输出的结果到底是什么东西,搞不清楚。
COEF=PCA(X)
x是输入的数据,解释说,rows of x correspond to observations and comlums to variables,啥意思呢?我的理解是一行代表一个观测,打个比方,我们在统计摩托车的属性信息,这些属性包括很多,比如,价格,重量,加速情况,耗油量等等,那么每一行代表我们采样的一辆摩托车的这些属性值,假如我们采样了20台车,那么行数就是20,这些属性值假设有100个,那么x就是100列。这个是解释x的数据意义。我觉得是个andrew ng 机器学习里用的表示方法不一样,一般用一列表示一个obervation,行数代表属性值个数,matlab 里的表示刚好相反。这是输入数据的意义。
下面看输出数据的意义,COEF,each column of coef contains coeffients for one principal component, chef里的每一列,代表一个主成分系数,输入数据是 20*100,即变量的维数是100,假设我们要降到1维,那么我们就用 x 乘以 coef 里的第一列 就得到原始数据的第一主成分,是20*1的结果。
还有个专业名词叫loadings,也是coef 矩阵,其实这个COEF 对应于x协方差矩阵里的右奇异矩阵,具体见
这个里面收藏的博文。
未完待续。。。