java kmeans 成熟 库_Java版kmeans实现(jar包下载及使用+算法介绍+源码简介)

数据挖掘作业要做聚类,用OpenCV的kmeans函数,出的结果各种随机。听别人说kmeans自己写起来思路很简单,于是自己写了个kmeans的jar包,可以随机或者按顺序取初始聚类中心,可以输出参数信息及各个点的所属聚类,以及各个聚类的中心坐标。参数结构有点类似OpenCV的kmeans,自己觉得架构得还不错,贴出来分享了。

一、kmeans.jar下载及使用

下载地址:https://sourceforge.net/projects/yuanboshekmeans/files/

kmeans.jar为应用包,kmeans_src.jar为对应的源码包,kmeans_full.jar两者都包含。

新建java工程,引入kmeans.jar包(不会引包的参考),添加带有main函数的class,然后在main函数内加入测试代码

1 import kmeans.*;2

3 public classjmain {4 public static voidmain(String[] args) {5 double[][] points = {{0, 0}, {4, 10}, {1, 1}, {5, 8}}; //测试数据,四个二维的点

6 kmeans_data data = new kmeans_data(points, 4, 2); //初始化数据结构

7 kmeans_param param = new kmeans_param(); //初始化参数结构

8 param.initCenterMehtod = kmeans_param.CENTER_RANDOM; //设置聚类中心点的初始化模式为随机模式9

10 //做kmeans计算,分两类

11 kmeans.doKmeans(2, data, param);12

13 //查看每个点的所属聚类标号

14 System.out.print("The labels of points is: ");15 for (intlable : data.labels) {16 System.out.print(lable + " ");17 }18 }19 }

运行结果为:

k=2

attempts=2

criteriaBreakCondition=0.0

The number of each classes are:

2 2

The labels of points is: 0 1 0 1

表示分两类,进行了两次迭代,两个聚类内各包含2个点,最后一行表示第一个和第3个点为0号聚类,第二和第四个点为1号聚类。

想获取更多信息和使用方法请查看源码部分。

二、kmeans算法

(待续)

三、源码简介

(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值