Java版kmeans实现(jar包下载及使⽤+算法介绍+源码简介)数据挖掘作业要做聚类,⽤OpenCV的kmeans函数,出的结果各种随机。听别⼈说kmeans⾃⼰写起来思路很简单,于是⾃⼰写了个kmeans的jar包,可以随机或者按顺序取初始聚类中⼼,可以输出参数信息及各个点的所属聚类,以及各个聚类的中⼼坐标。参数结构有点类似OpenCV的kmeans,⾃⼰觉得架构得还不错,贴出来分享了。
⼀、kmeans.jar下载及使⽤
下载地址:
kmeans.jar为应⽤包,kmeans_src.jar为对应的源码包,kmeans_full.jar两者都包含。
新建java⼯程,引⼊kmeans.jar包(),添加带有main函数的class,然后在main函数内加⼊测试代码
1import kmeans.*;
2
3public class jmain {
4public static void main(String[] args) {
5double[][] 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: ");
15for (int lable : 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算法
(待续)
公司介绍源码三、源码简介
(待续)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论