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学习笔记 ---- 主成分分析与白化比较下,如有理解错误,万望指教,谢谢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值