资源简介

针对当前聚类算法存在的由于初始聚类中心随机选取造成最终聚类结果不佳,运用一种启发式的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


评论

共有 条评论

相关资源