public class BasicKMeans {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] p = { 1, 2, 3, 5, 6, 7, 9, 10, 11, 100, 150, 200, 1000 };
int k = 5;
double[][] g;
g = cluster(p, k);
for (int i = 0; i
for (int j = 0; j
System.out.print(g[i][j]);
System.out.print("\t");
}
System.out.println();
}
}
/*
* 聚类函数主体。
* 针对一维 double 数组。指定聚类数目 k。
* 将数据聚成 k 类。
*/
public static double[][] cluster(double[] p, int k) {
// 存放聚类旧的聚类中心
double[] c = new double[k];
// 存放新计算的聚类中心
double[] nc = new double[k];
// 存放放回结果
double[][] g;
// 初始化聚类中心
// 经典方法是随机选取 k 个
// 本例中采用前 k 个作