kmeans++

k-means算法

k-means初始簇中心的位置会严重影响到聚类算法的最终结果。k-means++算法仅仅只是在初始化簇中心的方式上做了改进,其它地方同聚类算法一样

 k-means++算法

function [K_center,seed]=kmeansjia(data,K,LOOP)
%该算法是对kmeans的改进,性能优于kmeans
% data是待分类的数据,尺寸为 (dim*N),dim代表每个样本的维数,N代表样本个数
% K 是设定的聚类数量,即把N个样本分成K类,每一类内部的差别小,各类之间的差别大

%首先,确定K个初始聚类中心,这些聚类中心均来源于原始的N个样本
[dim,N]=size(data);
K_center=zeros(dim,K);

seed=[];
str=round(rand(1,1)*N);
seed=[seed,data(:,str)];  %随机选择的第一个聚类中心
for k=2:1:K
    num_seed=size(seed,2);
    Dis_temp=zeros(k,N);
    d_min=zeros(1,N);
    for i=1:1:N
        d_min(1,i)=(seed(:,1)-data(:,i))'*(seed(:,1)-data(:,i));
        for

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值