永发信息网

请高手帮忙编写关于K—mediods算法的MATLAB程序用于处理Iris数据集的聚类处理,得到迭代次数图形和准确率

答案:1  悬赏:0  手机版
解决时间 2021-04-07 09:54
请高手帮忙编写关于K—mediods算法的MATLAB程序用于处理Iris数据集的聚类处理,得到迭代次数图形和准确率
最佳答案
我把K-mediods的matlab代码贴出来,你好好学习一下

function label = kmedoids( data,k,start_data )
% kmedoids k中心点算法函数
% data 待聚类的数据集,每一行是一个样本数据点
% k 聚类个数
% start_data 聚类初始中心值,每一行为一个中心点,有cluster_n行
% class_idx 聚类结果,每个样本点标记的类别
% 初始化变量
n = length(data);
dist_temp1 = zeros(n,k);
dist_temp2 = zeros(n,k);
last = zeros(n,1);
a = 0;
b = 0;

if nargin==3
centroid = start_data;
else
centroid = data(randsample(n,k),:);
end
for a = 1:k
temp1 = ones(n,1)*centroid(a,:);
dist_temp1(:,a) = sum((data-temp1).^2,2);
end
[~,label] = min(dist_temp1,[],2);
while any(label~=last)
for a = 1:k
temp2 = ones(numel(data(label==a)),1);
temp3 = data(label==a);
for b = 1:n
temp4 = temp2*data(b,:);
temp5 = sum((temp3-temp4).^2,2);
dist_temp2(b,a) = sum(temp5,1);
end
end
[~,centry_indx] = min(dist_temp2,[],1);
last = label;
centroid = data(centry_indx,:);
for a = 1:k
temp1 = ones(n,1)*centroid(a,:);
dist_temp1(:,a) = sum((data-temp1).^2,2);
end
[~,label] = min(dist_temp1,[],2);
end

end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我养的红掌这两天花和叶变黑发黄,都焉了,请
医保账户中间没有停止, 每个月钱再付,为什么
求世界赛10月1日edg战队打比赛时穿的那红色鞋
是不是所有的个人或企业都可以从事城市生活垃
国际芭蕾舞协会为什么要在中国举办RDGP?
都两天了,卖家说发货了,可是查不到。问卖家
开个汽车钣金喷漆注册公司还是个体好
1.若丨a+1丨与(b-2)互为相反数,则(a+b)的9次
交通事故赔偿分成问题:我为肇事者,车辆撞死
聊城领创盛世是什么东西啊,做了4个网站,那
蜀香老妈自助小火锅(鄢陵店)我想知道这个在什
2o13款五菱宏光是国五吗
我用暴风影音看电影为什么是这个颜色
幕墙套定额怎么套?
关于申请信用卡后没有开通的问题
推荐资讯
木通果是不是就是木瓜果?
如果卧室在厨房和卫生间之间
百度贴吧关注最多的是谁
谁告诉下影楼修片电脑配置3000多的,关键是Ph
钢铁部落碎片哪刷的快
父母离婚,父亲去世遗产都谁有继承权?
木块在水平向右加速运动的过程中,与桌面的摩
4500丰田酷路泽前桥行走有声音。有异响
最近买了一套香奈儿山茶花的补水套装,用完面
tp316l材料和12gmo材料用什么焊条焊接
殄官是什么意思
同性恋岳父爱上女婿怎外理?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?