91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-22
  • 語言: Matlab
  • 標簽:

資源簡介

k-means自適應聚類算法的matlab程序,根據文獻中描述的算法編的,歡迎高手指教

資源截圖

代碼片段和文件信息

%?---------------------first?step---------------------
%?--initialize?找到距離最大的兩個樣本x1x2作為初始中心
%function?K_means(example?centerNum)
clear
clc
example?=?[0?0?1;
????0?1?2;
????9?10?8;
????10?9?11;
????10?10?10;
????20?20?19;
????19?17?18;
????20?18?19;
????40?41?40;
????39?40?38];
centerNum?=?2;
[exampleNum?exampleDimension]?=?size(example);
centerNumMax?=exampleNum*(exampleNum-1)/2;
distance=zeros(1centerNumMax);
maxdice=0;
x1=0;
x2=0;
m=0;
for?i=1:exampleNum
????for?j=i+1:exampleNum
????????m=m+1;
????????distance(m)?=?sqrt(sum((example(i?:)-example(j?:)).^2));
????????if?distance(m)>maxdice;
????????????maxdice=distance(m);
????????????x1=i;
????????????x2=j;
????????end
????end????????????
end
?
%?-------------------second?step-----------------------
%?--assign?by?the?Euclidean?distance
%將數據集剩下的數據對象分別計算到xl,x2?的距離,將其劃分
%到距離小的那個中心的類中,標記,同時記下最小的距離。
center?=?[];
center?=?[center;example(x1:);example(x2:)];????
elementNum?=?zeros(1?centerNum);%?--record?the?number?of?elements?in?each?cluster
clusterElement?=?[];
distance?=?zeros(exampleNum?centerNum);
for?i?=?1:(exampleNum)
????for?j?=?1:centerNum
????????%%%?--distance?is?a?matrix?that?indicate?the?Euclidean?distance?between?the?example?i?and?the?center?j
????????distance(i?j)?=?sqrt(sum((example(i?:)-center(j?:)).^2));
????end
end

for?i?=?1:exampleNum
????[value?posi]?=?min(distance(i?:));
????%?--record?the?elements?of?each?clusterElement
????elementNum(posi)?=?elementNum(posi)?+?1;????????????
????clusterElement(elementNum(posi):posi)?=?example(i?:);
end
%?---------------------third?step------------------------
%?--calculate?the?new?center?of?each?cluster/平均值法求新的聚類中心

newcenter?=?zeros(centerNum?exampleDimension);
for?i?=?1:centerNum
????for?j?=?1:elementNum(i)
????????newcenter(i?:)?=?newcenter(i?:)?+?clusterElement(?j?:i);
????end
????newcenter(i?:)?=?newcenter(i?:)./elementNum(i);
end
center=newcenter;
%------------------------計算DB-------------------------------

S=zeros(1centerNum);
M=[];
R=[];
for?i?=1:centerNum
????s=0;
????for?j?=1:elementNum(i)
????????s=s+sum((clusterElement(j:i)-center(i:)).^2);
????end
????S(i)=sqrt(s/elementNum(i));
end
?????????
?
D=zeros(1centerNum);
for?i?=1:centerNum
????for?j=i+1:centerNum
????????M(ij)=sqrt(sum((center(i?:)-center(j?:)).^2));
????????R(ij)=(S(i)+S(j))/M(ij);
????????if?(D(i)????????????D(i)=R(ij);
????????end
????end
??????
end
DB=(sum(D))/centerNum;

%newCenter?=?[newCenter;example(x1:);example(x2:)];?
%------------------forth?step-------------------------------
%-------借鑒最大、最小距離max{min(d(c1,j),d(c2,j))},查找到的xj-----------
while??1
????distance?=?zeros(exampleNum?centerNum);
????for?i?=?1:(exampleNum)
????????for?j?=?1:centerNum
????????%%%?

評論

共有 條評論

相關資源