K-Means算法(实例)

K-Means算法实例:

本文的是上一篇的实例部分

以下代码均是在Matlab中实现。

1.初始化中心点

function centroids = kMeansInitCentroids(X, K)

centroids = zeros(K, size(X, 2));% 初始化centroids为一个K by n 的矩阵
m = size(X,1);
rands = randperm(m,K);% 从1到m中随机选取K个数
centroids = X(rands,:);% 从X中,选取K个点作为初始中心点

end

randperm的用法,戳此处

2.计算最近的中心点

function idx = findClosestCentroids(X, centroids)

K = size(centroids, 1);

idx = zeros(size(X,1), 1);%idx 就是前面说到的c(i)  m by 1

m = size(X,1);

for i = 1:m;% 对所有点进行遍历,计算时采用矩阵形式比较方便
    
    subs = centroids - X(i,:);% 一个点到到三个中心点的向量
    distance2 = sum(subs.^2,2);%计算这三个向量模长的平方
    [temp,idx(i)] 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值