java kmeans

作者:原创时间:2022-04-02
文档

java kmeans是什么,让我们一起了解一下?

k-means是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。

K-means算法是怎样的?

1、选取K个点作为初始质心。

2、对每个样本分别计算到K个质心的相似度或距离,将该样本划分到相似度最高或距离最短的质心所在类。

3、对该轮聚类结果,计算每一个类别的质心,新的质心作为下一轮的质心。

4、判断算法是否满足终止条件,满足终止条件结束,否则继续第2、3、4步。

java如何实现kmeans?

初始化:

1、先把数据集中的点的坐标读入到一个二维数组中。

2、并选择前面的三个点作为初始的中心点。

迭代部分:

1、对每个点分别计算到三个中心点的距离,并根据最小的距离给点分类。

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[3];
public static void readfile() throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("/usr/local/hadoop/data.txt"),"GBK"));
String str = null;
while ((str = in.readLine()) != null) {
     //System.out.println(str);
        //写入相关文件
        //out.write(str);
        //out.newLine();
  double point_x=Double.valueOf(str.split(",")[0]);
    double point_y=Double.valueOf(str.split(",")[1]);
    point[count][0]=point_x;
    point[count][1]=point_y;
    if(count<3)
    {
    cluster[count][0]=point_x;
    cluster[count][1]=point_y;
    }
    count++;
    }
    //清楚缓存
    //out.flush();
    //关闭流
    in.close();
    //out.close();
}
public static void iter()
{
for(int i=0;i<20;i++)
{
for(int j=0;j<2000;j++)
{
double distance=1000000000.0;
for(int k=0;k<3;k++)
{
double temp=Math.pow(point[j][0]-cluster[k][0], 2)+Math.pow(point[j][1]-cluster[k][1], 2);
if(temp

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java kudu java lamada java leveldb java linklist java linq java list.add java list.contains java locale java localtime java logging java logstash java main java malloc java mapping java math.ceil java matlab java matrix java memcpy java merge java method java keystore java kafka java jxl java jvm java jtextfield java jtable java jta java jstat java jstack java jsonp java jsonfield java jquery java jps java joptionpane java jndi java jmh java jmeter java jit java jetty java jep