资源简介
java版的kmeans实现,可以直接运行,一个是kmeans实现类,一个是运行主类
代码片段和文件信息
package TextAnalysis.nyh.cluster.kmeans;
/*
* k平均聚类算法
*/
public class Kmeans {
public int[] cluster(double data[][]int k) {
// 获得数组长度
// 取k值,作为分类数
int dn = data.length;
int dw = data[0].length;
// 标记数组
int clas[] = new int[dn];
// 聚类中心数组
double center[][] = new double[k][dw];
// 挑选随机初始聚类中心
for (int i= 0; i < k; i++) {
int rand = (int)(Math.random()*dn);
for (int j = 0; j < dw; j++) {
center[i][j] = data[rand][j];
}
}
int iter = 0;
while (iter < 1000) {
// 判断每一个数据点属于那一类
for (int i = 0; i < dn; i++) {
double dmin[] = new double[k];
int w1 = 0;
for (int j = 0; j < k; j++) {
double d1 = 0;
for (int ii = 0; ii < dw; ii++) {
d1 = d1 + (data[i][ii] - center[j][ii])
* (data[i][ii] - center[j][ii]);
// System.out.println(data[i][ii]+“ “+center[j][ii]+“ “+d1);
}
dmin[j] = d1;
}
double min = dmin[0];
for(int j =0;j if(min>dmin[j]){
min = dmin[j];
w1 = j;
}
}
clas[i] = w1;// 改变类标记
}
// 重新计算聚类中心
double knum[] = new double[k]; //每类的数量
double kd[][] = new double[k][dw];//每类距离和
for (int i = 0; i < k; i++) {
for (int j = 0; j < dn; j++) {
if (clas[j] == i) {
knum[i] = knum[i] + 1;
for (int ii = 0; ii < dw; ii++) {
kd[i][ii] = kd[i][ii] + data[j][ii];
}
}
}
}
for (int i = 0; i < k; i++){
for (int j = 0; j < dw; j++) {
center[i][j] = kd[i][j] / (knum[i]+1);
}
}
iter++;
}
return clas;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1247 2015-04-17 19:14 Main.java
文件 1756 2015-04-17 18:17 Kmeans.java
----------- --------- ---------- ----- ----
3003 2
相关资源
- 学生社团管理系统40644
- java图形界面猜数游戏
- java+mysql小型学生成绩管理系统 控制台
- JAVA SWING可折叠菜单
- 数据结构 各种排序算法 java图形界面
- 数据结构 图(邻接矩阵) java图形界
- 使用JAVA实现HTTP多线程
- 微信扫码支付模式二功能实现完整J
- 计算机图形学全部源码JAVA版by中南民
- Java2D之Text实现艺术字编码
- java网络聊天室课程设计报告代码和文
- Java 模拟进程调度算法
- [测试通过]JAVA调用第三方DLL的简单方
- javax.servlet.jsp包
- 基于java使用DDA、Bresenham算法、中点画
- mysql-connector-java-5.1.18-bin.jar
- 目标代码生成 java版
- PageOffice Java 动态填充Word模版
- PageOffice Java中动态填充Word模版生成正
- 决策树ID3算法Java实现
- 会员管理系统代码java编写
- 彩色图转灰度图加权,最大值,平均
- java编写的简单通讯录使用容器类,未
- java3d设置视点的初始位置
- java里提取word里的图片
- kmeans中文文本聚类java源码包括对文本
- luajava-1.1-win32-lua51.zip
- java编写的食堂售饭系统
- 手机游戏 涂鸦跳跃 Java版
- java班级管理系统
评论
共有 条评论