请帮我代码。我在二维矩阵上应用k均值聚类算法。我想使用该算法制作4个簇。
double cluster1[][] = new double[40][15];
double cluster1[][] = new double[40][15];
double cluster1[][] = new double[40][15];
double cluster1[][] = new double[40][15];
我的矩阵看起来像:
String Matrix[][] = new String[40][15];
row 1 [algeria,480,291,327. . . . ]
row 2 [angola,432,4901,4302. . . . ]
row 3 [oman,132,421,302. . . . ]
. . . . . . . . upto . . . . . .
row 40[yemen,191,20,345,6758. . . . ]
每行代表一个国家/地区,列是该特定国家/地区的指标。第1列包含国家/地区名称,其他14列包含值。算法需要/计算4个随机值,称为Mean。我使用随机函数从矩阵[] []中选择4个国家,并将值解析为单独的双数组,如:
double mCity1[] = new double[14];
double mCity2[] = new double[14];
double mCity3[] = new double[14];
double mCity4[] = new double[14];
Random rand = new Random();
int randomNo;
for(int i = 0; i < size ; i++)
{
randomNo = rand.nextInt(39) + 1;
System.out.println("Random NO : "+randomNo);
for(int j = 0 ; j < 14 ; j++)
{
if(i == 0)
{
mCity1[j] = Double.parseDouble(Matrix[randomNo][j+1]);
}
else if(i == 1)
{
mCity2[j] = Double.parseDouble(Matrix[randomNo][j+1]);
}
else if(i == 2)
{
mCity3[j] = Double.parseDouble(Matrix[randomNo][j+1]);
}
else if(i == 3)
{
mCity4[j] = Double.parseDouble(Matrix[randomNo][j+1]);
}
}
}
这里我有点困惑,实际上应该是什么意思,因为我只是选择4个随机国家并将其指标复制到mCity1,mCity2,mCity3和mCity4。 如何计算这些随机选择的国家的“均值”。
因为在算法中,一旦聚类被赋值,我必须再次计算均值以验证是否已经重复均值以停止循环。 有人请帮助我,但是我仍然坚持计算平均值,我知道如何计算它但在这里有点困惑。在此先感谢。