博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分K均值(bisecting k-means)算法
阅读量:6430 次
发布时间:2019-06-23

本文共 1370 字,大约阅读时间需要 4 分钟。

hot3.png

--good

 

 

 

 

算法主要分为以下步骤,一开始是把所有数据初始化为一个cluster,第二步从所有cluster 中选其中一个出来用基本k-means算法(k设为2)再划分成两个cluster(初始时只有一个cluster).然后是一直重复第二步的划分(选一个cluster划成两个)直到得到k个cluster算法停止。

   从算法可以知道每次划分都是用k-means划分,可是问题是从已有的cluster中应该选哪个cluster出来进行划分呢。从网上较多人转载Michael Steinbach的文章“A Comparison of Document Clustering Techniques”摘抄以下算法:

Basic Bisecting K-means Algorithm for finding K clusters.

1. Pick a cluster to split.
2. Find 2 sub-clusters using the basic K-means algorithm. (Bisecting step)
3. Repeat step 2, the bisecting step, for ITER times and take the split that produces the
clustering with the highest overall similarity.
4. Repeat steps 1, 2 and 3 until the desired number of clusters is reached.

 

在这篇文章中,作者说到了选取cluster有两种策略,第一种就是每次选的时候,都对已有的cluster计算误差和(),然后选一个SSE最大的一个cluster来进行划分。第二种是每次都挑数据最多的那个cluster来进行划分。一般都是采取第一种策略。除此以外,每次不只用一次k-means来划分,而是预先设置一个ITER 值,然后对这个cluster进行Iter次循环执行k-means算法。因为k-means每次一开始都是随机选k个质心来执行,所以一般来说 ITER次执行k-means,每次都会得到不同的两个cluster。那么应该选哪对cluster来作为划分以后的cluster呢?答案就是在每次循环中,每次都计算通过当次k-means划分出来的两个cluster的SSE和,那么最后就选SSE和最少的那对cluster作为划分以后的cluster。

算法如下:

1. 把所有数据作为一个cluster加入cluster list

2. Repeat

3.        从cluster list中挑选一个SSE[最大]的cluster出来

4.        for i=1 to 预设的循环次数

5.                 用k-means算法把挑出来的cluster划分成两个子cluster

6.                 计算两个子cluster的SSE和

7.         end for

8.         把for循环中 [sse和最小的] 那两个子cluster加入cluster list

9. until   cluster list 拥有k 个cluster

转载于:https://my.oschina.net/u/347386/blog/499125

你可能感兴趣的文章
[WebGL入门]十九,遮挡剔除和深度測试
查看>>
jquery封装常用方法
查看>>
什么是ICE (Internet Communications Engine)
查看>>
移动web开发之屏幕三要素
查看>>
求按小时统计的语句,该怎么处理
查看>>
TRUNCATE,DORP,DELETE
查看>>
Chrome的开发必备小技巧
查看>>
can-i-win(好)
查看>>
Centos6.5下安装protobuf及简单使用
查看>>
[SharePoint] SharePoint 错误集 3
查看>>
高压光耦
查看>>
[转]DPM2012系列之六:在Win7上安装DPM远程管理控制台
查看>>
postgres函数
查看>>
Microsoft AJAX Library Cheat Sheet(5): Number和Error类型的扩展
查看>>
AfxGetMainWnd函数
查看>>
WebView增加一个水平Progress,位置、长相随意
查看>>
easyui messager alert 三秒后自动关闭提示
查看>>
带你Python入门,踏进人工智能领域
查看>>
core data 基础操作
查看>>
手机共享电脑网络
查看>>