K表示二项分布的聚类

时间:2019-11-29 00:41:40

标签: k-means bernoulli-probability

我正在尝试使用kmeans聚类来检测由bernoulli过程生成的二维网格中的雷区和自由区。。。但是,质心分配不正确。

请帮忙吗?

 rng default; % For reproducibility

p_b=0.5; 
p_a=0.1;  
B=binornd(1,p_b*ones([50 50]));             % mine area
A=binornd(1,p_a*ones([50 150]));            % mine free area/"
M=binornd(1,p_a*ones([150 200]));           % mine free area

X = [B A ; M];


opts=statset('Display','final');
[idx,C]=kmeans(X,2,'Distance','cityblock','Replicates',5,'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12);
hold on;
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12);

plot(C(:,1),C(:,2),'Kx','MarkerSize',15,'LineWidth',3);
legend('Cluster 1','Cluster 2','Centroids', 'Location','NW');
title('Cluster Assignments and centroids');
hold off;

0 个答案:

没有答案