3

我在java中使用'k-means'对我的数据集进行了聚类,下面是我的聚类算法的输出。

List<Cluster<T>>  finalClusters = doClustering();

public <T> Cluster(){
   public T centroid;
   public List<T> classifiedPoints
   public int classification ;   
 }

任何类型的 T 类型如下

  T {
 double[] attributes;
  }

现在我想像下面这样绘制这个输出,是否有任何 Java 绘图库为此,或者我必须将此输出写入文件并使用 R 绘制它。

k-均值输出

4

2 回答 2

1

您可以使用rJava. 它相对简单。我在下面展示了一个我会使用的场景。

首先,我编写了一个 R 代码来聚类数据并仅使用 R 函数绘制它们。例如,您可以这样做:

x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
           matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
colnames(x) <- c("x", "y")
(cl <- kmeans(x, 2))  ## you replace kmeans by your call to java function
plot(x, col = cl$cluster)
points(cl$centers, col = 1:2, pch = 8, cex = 2)

kmeans然后你通过调用你的java函数替换调用:

 library(rJava)
.jinit(PATH-TO_YOUR_CLASS_BIN_OR_JAR) # this starts the JVM
 ## I call a the Cluster constructor giving  it the imput data 
 ## Obvsiouly you should create this constructor
 javaCluster <- .jnew("Cluster",.jarray(x,dispatch=TRUE))
 ## call th clustering function which returns a vector of integers
 cl <- .jcall(javaCluster ,"[I",method="doClustering")
于 2013-10-12T08:49:28.593 回答
0

http://www.jfree.org/jfreechart/

  • 或者完全在R...... :)
  • 或使用具有 Java 客户端的RServeJava连接。您还可以在 SO 中找到大量标记为 so的问题R
于 2013-10-12T08:34:34.607 回答