没有合适的资源?快使用搜索试试~ 我知道了~
动态聚类方法是一中普遍被采用的方法,具有以下三个要素:1)选定某种距离度量作为样本间的相似性度量;2)确定某种可以评价聚类结果质量的准则函数;3)给定某个初始分类,然后用迭代算法找出使得准则函数取极值的最好聚类结果。
资源推荐
资源详情
资源评论
for i=1:100
x1(i) = rand()*5; %人为保证差异性
y1(i) = rand()*5;
x2(i) = rand()*5 + 3; %人为保证差异性
y2(i) = rand()*5 + 3;
end
x = [x1,x2];
y = [y1,y2];
cities = [x;y];
% plot(cities(1,:),cities(2,:),'*'); %画出来
%%
%------------随机把其中两个点作为初始的聚类中心
num = size(cities,2); %样本个数
m1 = round(rand()*num); %随机选取两个当做初始聚类中心
m2 = round(rand()*num);
while m1==m2 %不能相同
m2 = round(rand()*num);
end
u1 = cities(:,m1);
u2 = cities(:,m2);
u_old = [u1,u2];
u_new = [u2,u1];
%%
while u_old ~= u_new %聚类中心没有变化时退出循环
u_old = u_new ; %更新聚类中心坐标
for j=1:num %对与每一个样本,找到对应的类
dis1 = norm(cities(:,j)-u1); %求距离,范数
dis2 = norm(cities(:,j)-u2);
if dis1>=dis2 c(j) = 2; %比较距离,划分类
else c(j) = 1;
x1(i) = rand()*5; %人为保证差异性
y1(i) = rand()*5;
x2(i) = rand()*5 + 3; %人为保证差异性
y2(i) = rand()*5 + 3;
end
x = [x1,x2];
y = [y1,y2];
cities = [x;y];
% plot(cities(1,:),cities(2,:),'*'); %画出来
%%
%------------随机把其中两个点作为初始的聚类中心
num = size(cities,2); %样本个数
m1 = round(rand()*num); %随机选取两个当做初始聚类中心
m2 = round(rand()*num);
while m1==m2 %不能相同
m2 = round(rand()*num);
end
u1 = cities(:,m1);
u2 = cities(:,m2);
u_old = [u1,u2];
u_new = [u2,u1];
%%
while u_old ~= u_new %聚类中心没有变化时退出循环
u_old = u_new ; %更新聚类中心坐标
for j=1:num %对与每一个样本,找到对应的类
dis1 = norm(cities(:,j)-u1); %求距离,范数
dis2 = norm(cities(:,j)-u2);
if dis1>=dis2 c(j) = 2; %比较距离,划分类
else c(j) = 1;
资源评论
Zhaowiu
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功