MachineLearning Exercise 7 : K-means Clustering and Principle Component Analysis

findClosestCentroids.m

m = size(X,1);

for i=1:m
    [value index] = min(sum((repmat(X(i,:),K,1)-centroids).^2,2));
    idx(i) = index;
end

computeCentroids.m

temp = [X idx];
// pdf说能向量化实现更高效,本人对matlab实在不熟,勉强实现了下循环的,若有大神,敬请赐教。
for i=1:K
    [index_row index_column]= find(temp(:,end) == i);
    centroids(i,:) = mean(X(index_row,:));
end

pca.m

sigma = X'*X.*(1/size(X,1));
[U S V] = svd(sigma);

projectData.m

Z = X*U(:,1:K);

recoverData.m

temp = zeros(size(Z,1),size(U,1)-K);
X_rec = [Z temp]*U';

这里关于PCA的练习相对比较简单,UFLDL上面的内容比较多,有兴趣的同学可以在做完UFLDL练习后,到UFLDL学习笔记 ---- 主成分分析与白化比较下,如有理解错误,万望指教,谢谢。

 

posted @ 2015-07-07 00:12  苹果妖  阅读(534)  评论(0编辑  收藏  举报