资源简介
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
相关资源
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
- 操作系统作业 (pv,作业管理,等5个
- 基于C/S架构考试系统(Java)
- java access 仓库管理系统 源码
- 一元多项式相加 java实现
- java软件工程师简历模板——应届生
评论
共有 条评论