数据说明:
选用的数据是自己生成的随机的二维的点集,两千行数据,格式为"x,y":
最后的结果是将这些点聚集为了三类,前面是每一个点的类号。
思路很简单:
1.初始化
1.1先把数据集中的点的坐标读入到一个二维数组中
1.2并选择前面的三个点作为初始的中心点。
2.迭代部分
2.1 对每个点分别计算到三个中心点的距离,并根据最小的距离给点分类
2.2 对每一类的所有点的横纵坐标计算均值生成新的中心点保存。
代码:
import java.io.*;
import org.apache.hadoop.conf.Configuration;
public class kmeans1
{
static double [][] cluster={
{1,1},{2,2},{3,3}};
static double [][] point =new double[2000][2];
static int []kind=new int[2000];
static int count=0;
static int []Count=new int[