1. 程式人生 > >Yesterday You Said Tomorrow.

Yesterday You Said Tomorrow.

Q型聚類是聚類分析的一種,一般是對樣本進行分類。

寫點東西方便自己。

下面以銷售員業績表舉例,對5個銷售員進行分類:

銷售員 v1銷售量 v2回收款項
1 1 0
2 1 1
3 3 2
4 4 3
5 2 5
程式碼:
clc,clear;
a=[1,0;1,1;3,2;4,3;2,5;]; %處理資料矩陣,可變化,拿以上資料舉例 
a=zscore(a);              %資料標準化處理
y=pdist(a,'cityblock');   %求a的行向量之間的絕對距離,關於pdist函式下面有介紹
yc=squareform(y);         %變換成距離方陣
z=linkage(y);             %產生等級聚類圖
[h,t]=dendrogram(z);      %畫聚類圖
T=cluster(z,'maxclust',3);%把物件分成3份,引數可自行修改成2,4,5等,記得將下一行i值修改
for i=1:3;
    tm=find(T==i);        %求第i類的物件
    tm=reshape(tm,1,length(tm));%變成行向量
    fprintf('第%d類的有%s\n',i,int2str(tm));%顯示分類結果
end

聚類結果: 第1類的有1  2
第2類的有3  4
第3類的有5 在這5個推銷員中,5號工作成績最佳,3號和4號較好,1號和2號較差。
—————————————————————————————————————————————————————————————————————— pdist函式介紹: Y=pdist(X)計算矩陣X中兩兩物件的歐氏距離,Y=pdist(X,'metric')中用metric指定的方法計算矩陣X中物件間的距離,有絕對值距離‘cityblock',標準歐氏距離’seuclidean‘等。