SPMF源码学习与总结——k-means算法

  • 算法源代码下载地址
    Algorithm.rar
    是用Eclipse调试过的,直接用Eclipse打开工程文件即可运行。主方法在ca.pfv.spmf.test包内的MainTestKMeans_saveTiFile.java中,工程文件内还包括所有Spmf实现的聚类、分类、关联规则等相关算法。

  • 算法步骤
    (1)选择聚类的数量k,及决定生成类别的数量k
    (2)随机产生k个类,并指定每个类的中心center
    (3)分别计算每个点到这k个类的center的距离,把该点分配到离它最近的类
    (4)重新计算每个类的的中心点
    (5)重复(3)、(4)步,直到没有点被重新分类

  • 算法分析
    (1) spmf实现的kmeans算法,关键在与实现数据的存储上。输入数据格式如下:

1 2 3 4
1 6 8 8
1 2 3 3
2 4 5 5
4 7 8 7
7 6 8 9
4 4 3 3
2 2 5 5
7 5 5 5
5 6 8 9

即每一行数据代表一个点,每一个点含有4个值,是一个典型的高维数据。算法实现的目标是将这10个4维点分成3(k=3)个类型,每一个类型定义变量cluster存储,类集合用定义的clusters变量存储。每个点用vector代表,而所有的点存储在List中,用私有变量vectors代表。而vector是spmf自定义的doubleAllary数据结构,该结构实质是一个double型的4维数组。

  • 源码解读:
List<ClusterWithMean> applyKMeans(int k, DistanceFunction distanceFunction,
            List<DoubleArray> vectors, double minValue, double maxValue,
            int vectorsSize) {
        List<ClusterWithMean> newClus
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值