资源简介
针对当前聚类算法存在的由于初始聚类中心随机选取造成最终聚类结果不佳,运用一种启发式的Canopy算法去优化聚类中心的算法,程序用Java编写,希望对大家有用
代码片段和文件信息
package buju;
import java.util.ArrayList;
import java.util.List;
/**
* Canopy算法 借助canopy算法计算对应的Kmeans中的K值大小
* 其中对于计算K值来说, 我们这里将T2设置为平均距离
* 获取T1内圈的数据向量,k和簇的中心
*/
public class Canopy {
private List points = new ArrayList(); // 进行聚类的点
private List> clusters = new ArrayList>(); // 存储簇
private double T2 = -1; // 阈值
private double T1 = 0;
public Canopy(List points) {
for (Point point : points)
// 进行深拷贝
this.points.add(point);
}
//进行聚类,按照Canopy算法进行计算,将所有点进行聚类
public void cluster() {
//T2 = getAverageDistance(points);
T2=getAverageDistance(points);
T1=2*T2;
while (points.size() != 0) {
List clust
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2014-08-07 09:46 CanopyExm\.classpath
文件 385 2014-11-20 19:57 CanopyExm\.project
文件 629 2014-08-07 09:46 CanopyExm\.settings\org.eclipse.jdt.core.prefs
文件 6274 2014-11-20 20:06 CanopyExm\bin\buju\Canopy.class
文件 5724 2014-11-20 21:27 CanopyExm\bin\buju\canopy2.class
文件 256 2014-11-20 19:57 CanopyExm\bin\buju\members.class
文件 665 2014-11-20 19:57 CanopyExm\bin\buju\Point.class
文件 7207 2014-11-20 20:06 CanopyExm\src\buju\Canopy.java
文件 6129 2014-11-20 21:27 CanopyExm\src\buju\canopy2.java
文件 360 2014-11-06 17:08 CanopyExm\src\buju\members.java
目录 0 2014-11-21 16:52 CanopyExm\bin\buju
目录 0 2014-11-21 16:52 CanopyExm\src\buju
目录 0 2014-11-21 16:52 CanopyExm\.settings
目录 0 2014-11-21 16:52 CanopyExm\bin
目录 0 2014-11-21 16:52 CanopyExm\src
目录 0 2014-11-21 16:52 CanopyExm
----------- --------- ---------- ----- ----
27930 16
- 上一篇:网上书店html加jsp代码
- 下一篇:学生学籍管理系统--数据库课程设计java
评论
共有 条评论