我在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绘制它。
答案 0 :(得分:1)
您可以使用rJava
将java连接到R.它相对简单。我将在下面展示一个我将使用的场景。
首先,我将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)
然后通过调用java函数替换对kmeans
的调用:
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")
答案 1 :(得分:0)