2016-08-18 28 views
0

我一直在matlab上工作,我已经设法用两个数据集绘制kmean聚类,现在我想要做同样的事情,但有三个数据集。我需要三个数据集创建3D绘图还是确定只绘制它通常 这就是我一直工作在三个数据集我如何绘制三个数据集聚类

Array=csvread('test.csv'); 
     dataset = Array(:,[1:3]); 
     col1 = Array(:, 1); 
     col2 = Array(:, 2); 
     col3 = Array(:, 3); 
    %dataset [mean+std.deviation *column]; 
     data1 = [3721.17+3872.307*col1]; 
     data2 = [3218.28+4754.122*col2]; 
     data3 = [1541.93+3783.942*col3]; 
     mydata = [data1, data2 ,data3]; 



    [idx,C] = kmeans(data,3,'Distance','cityblock',... 
     'Options',optns); 

我不知道什么是最好的方式来绘制三个数据集kmean集群我可以只使用'阴谋'或将是更好,如果我代表它在三维图 和如何可以创建三个数据集的3d图

回答

0

我用下面的代码来近似你的情况。请注意,拨号方式使用mydata,而不是您的代码中使用的data,因为没有称为data的变量。

Array=rand(100,3); 
dataset = Array(:,[1:3]); 
col1 = Array(:, 1); 
col2 = Array(:, 2); 
col3 = Array(:, 3); 
%dataset [mean+std.deviation *column]; 
data1 = [3721.17+3872.307*col1]; 
data2 = [3218.28+4754.122*col2]; 
data3 = [1541.93+3783.942*col3]; 
mydata = [data1, data2 ,data3]; 

[idx,C] = kmeans(mydata,3,'Distance','cityblock'); 

然后在3D图和颜色代码通过k均值分离,使用scatter3功能。

scatter3(data1,data2,data3,[],idx,'filled'); 

scatter3(mydata(:,1),mydata(:,2),mydata(:,3),[],idx,'filled'); 

在第五输入参数使用IDX将根据他们是如何从k均值的输出分组颜色代码散射点。