資源簡介
簡單的有序聚類的程序編碼,編寫的是一個函數(shù),但是在處理距離的問題上,使用的方法還不夠好,希望參考著注意。
代碼片段和文件信息
function?yxjl=myyxjl1(x)????%%%%要求輸入的觀測值矩陣x:行表示各個樣品,列表示每個樣品的屬性值
a=size(x);
len1=a(1);%%%%%矩陣的樣品個數(shù)
len2=a(2);%%%%%矩陣的屬性個數(shù)
z=zeros(len1);%直徑矩陣
h=zeros(len1);%最小損失矩陣
k=zeros(len1);%分類的矩陣
for?i=1:len1
????for?j=i:len1
????????if?i==j%當(dāng)某一類為一個樣品時,類的距離為0
????????????z(ij)=0;%計算類的距離
????????else
????????????y=x(i:j);%當(dāng)某一類為幾個樣品時
???????????if?len2==1?%當(dāng)屬性個數(shù)只有一個時,計算類距離
????????????z(ij)=(j-i)*var(y);%計算類的距離
???????????else?%當(dāng)樣品屬性大于一個時,計算類距離
????????????x1=x(i:j:);
????????????x11=sum(x1)/(j-i+1);
????????????for?m=i:j
????????????z(ij)=0;
????????????z(ij)=(x(m:)-x11)*(x(m:)-x11)‘+z(ij);
?????????
評論
共有 條評論