24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1495  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xdolphin

新虫 (初入文坛)

[交流] 【求助】k-medoids聚类算法关于中心替换的问题

想用经典的PAM算法来做,看了几个介绍,看了一些文献,基本都是提到这么实现:

算法如下:
  输入:包含n个对象的数据库和簇数目k;
  输出:k个簇
  (1)随机选择k个代表对象作为初始的中心点
  (2)指派每个剩余对象给离它最近的中心点所代表的簇
  (3)随机地选择一个非中心点对象y
  (4)计算用y代替中心点x的总代价s
  (5)如果s为负,则用可用y代替x,形成新的中心点
  (6) 重复(2)(3)(4)(5),直到k个中心点不再发生变化.

想请问大家:
这里第3步,是随机选一个非中心对象y, 来替换一个随机选的一个中心点吗?之后第4步,是不是对所有对象重新分配,然后计算总代价?
谢谢大家。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xdolphin

新虫 (初入文坛)

恩,不过看到一些外国文献这么写

Swap each medoid with every non-medoid as
long as the objective function improves.

所以没明白这种方式又是怎么做呢?
引用回帖:
Originally posted by absoluty at 2010-09-28 14:22:24:
medoid其实类似于mean,从类内找到一个对象,使得类内其他对象到它的距离总和是最小的,用它来替代原先的类中心

5楼2010-09-29 01:56:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

mze04532

金虫 (著名写手)

第3步通常来说是计算每个簇新的中心对象(代价最少),这里随机选择一个代价更少的就可以进行循环。
第4步是用第3步得到的新的中心对象对各个簇计算代价,重新分配对象到各个簇。
2楼2010-09-24 19:14:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xdolphin

新虫 (初入文坛)

恩。
但我没明白的是,怎么来替换?

比如我们有3个类,对应三个中心 a, b, c,假设我随机取一个非中心对象x, 那么x是随机替换 a, b, c其中之一吗? 这样替换之后,计算各个类的代价,然后决定x 是否 我们选择的 中心?
引用回帖:
Originally posted by mze04532 at 2010-09-24 19:14:17:
第3步通常来说是计算每个簇新的中心对象(代价最少),这里随机选择一个代价更少的就可以进行循环。
第4步是用第3步得到的新的中心对象对各个簇计算代价,重新分配对象到各个簇。

3楼2010-09-25 01:59:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

absoluty

金虫 (正式写手)

medoid其实类似于mean,从类内找到一个对象,使得类内其他对象到它的距离总和是最小的,用它来替代原先的类中心
4楼2010-09-28 14:22:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见