模糊聚類分析的一般步驟為:
(1)確定分類數,指數m的值,確定迭代次數(;
(2)初始化乙個隸屬度u;
(3)根據u計算聚類中心c;
data(:,2) = rand(100,1);%隨機生成資料
cluster_n = 2;%類別數
iter = 50;%迭代次數
m = 2;%指數
num_data = size(data,1);%樣本個數
num_d = size(data,2);%樣本維度
%初始化隸屬度u,條件是每一列和為1
u = rand(cluster_n,num_data);
col_sum = sum(u);
u = u./col_sum(ones(cluster_n,1),:);
%% 迴圈規定迭代次數作為結束條件
for i = 1:iter
%更新c
for j = 1:cluster_n
u_ij_m = u(j,:).^m;
sum_u_ij = sum(u_ij_m);
sum_1d = u_ij_m./sum_u_ij;
c(j,:) = u_ij_m*data./sum_u_ij;
end%計算目標函式j
temp1 = zeros(cluster_n,num_data);
for j = 1:cluster_n
for k = 1:num_data
temp1(j,k) = u(j,k)^m*(norm(data(k,:)-c(j,:)))^2;
endend
j(i) = sum(sum(temp1));
%更新u
for j = 1:cluster_n
for k = 1:num_data
sum1 = 0;
for j1 = 1:cluster_n
temp = (norm(data(k,:)-c(j,:))/norm(data(k,:)-c(j1,:))).^(2/(m-1));
sum1 = sum1 + temp;
endu(j,k) = 1./sum1;
endend
endsubplot(1,2,1), ,plot(data(:,1),data(:,2),'*');
[~,label] = max(u); %找到所屬的類
subplot(1,2,2);
gscatter(data(:,1),data(:,2),label)
聚類分析(一) 什麼是聚類分析
將一群物理物件或者抽象物件的劃分成相似的物件類的過程。其中類簇是資料物件的集合,在類簇中所有的物件都彼此相似,而類簇與類簇之間的物件是彼此相異。聚類除了可以用於資料分割 data segmentation 也可以用於離群點檢測 outlier detection 所謂的離群點指的是與 普通 點相對應...
聚類分析(一) 什麼是聚類分析
將一群物理物件或者抽象物件的劃分成相似的物件類的過程。其中類簇是資料物件的集合,在類簇中所有的物件都彼此相似,而類簇與類簇之間的物件是彼此相異。聚類除了可以用於資料分割 data segmentation 也可以用於離群點檢測 outlier detection 所謂的離群點指的是與 普通 點相對應...
聚類分析筆記
1.什麼是聚類 定義 將無力或抽象物件的集合分組成為由類似的物件組成的多個類的過程被稱為聚類。由聚類所生成的簇是一組資料物件的集合,這些物件與同乙個簇中的物件彼此相似,與其他簇中的物件相異。與分類的區別,分類是有指導學習 類數目已知 聚類是無指導學習 類數目未知 典型應用 商務上,分析不同的客戶群,...