Clara算法的总结
来源:互联网 发布:极限挑战网络几点更新 编辑:程序博客网 时间:2024/06/05 17:44
总结
一、步骤:
CLARA从数据集中抽取多个样本集,对每个样本集使用PAM,并以最好的聚类作为输出。
具体步骤:
1) for i = 1 to v (选样的次数),重复执行下列步骤( (2) ~ (4) ) ;
2) 随机地从整个数据库中抽取一个 N (例如:(40 + 2 k))个对象的样本,调用PAM 方法从样本中找出样本的k 个最优的中心点。
3) 将这 k个中心点应用到整个数据库上,对于每一个非代表对象Oj,判断它与从样本中选出的哪个代表对象距离最近。
4) 计算(3)中得到的聚类的总代价。若该值小于当前的最小值,用该值替换当前的最小值,保留在这次选样中得到的k 个代表对象作为到目前为止得到的最好的代表对象的集合。
5) 返回到步骤(1) ,开始下一个循环。
算法结束后,输出最好的聚类结果。
二、代价计算
1. 找出样本中k个最优的中心点:
PAM 算法首先随机地选择了 k 个对象,然后用一个非选中对象0h 替换一个选中对象0i,然后为每一个非选中对象0j 计算代价Cjih ,将所有Cjih累加,得到用0h 替换0i的总代价TCjih。接下来用所有非代表点替换0i并计算出(n – k)个总代价。如果(n – k)个总代价中有小于零且绝对值最大则发生替换,如果(n – k)个总代价都大于零则不发生替换。继续对余下的代表点重复以上操作,最后得出此样本下的k个最优代表点。完成后,进行下一次抽样,并选出k个最有点。
注:根据0j 属于不同情况,Cji1 用不同的公式定义。
2. 如何计算整体数据中得到的聚类的总代价?
累加类中代表点与非代表点的距离,得到一个代表点的总代价,再累加k个代表点的总代价得到整体数据总代价。
三、时间复杂度:
一次抽样及其计算的时间复杂度:O(k * (n – k - 1) * (n – k)) (k是代表点个数,(n – k – 1)是替换中一直是非代表点的个数,(n – k)是非代表点的个数)。
四、其他想法:
将k个样本最优代表点放入整个数据中通过找出整个数据中的k个最优的中心点得出此次抽样所得的k个最优代表点的总代价:
首先用一个非选中对象 0h 替换一个选中对象0i,然后为每一个非选中对象0j 计算代价Cjih ,将所有Cjih累加,得到用0h 替换0i的总代价TCjih。接下来用所有非代表点替换0i并计算出(n – k)个总代价。继续对余下的代表点重复以上操作,最后找出整体数据下的k个最优代表点并得出k个总总代价,将他们累加,得出此此次抽样的总代价。完成后,与上一次抽样的总代价比较,本次的总代价小于上次则使用本次代表点(什么代表点?样本还是整体数据的最优,如果是整体数据最优那么被选中的代表点应该使用总代价差大的那个还是小的那个?)
五. 算法流程
- Clara算法的总结
- CLARA & CLARANS
- 文本挖掘之聚类算法之CLARA聚类算法
- 数据挖掘之clara算法原理及实例(代码中有bug)
- 规则引擎 clara-rules
- 一些算法的总结
- 总结的算法
- 算法策略的总结
- 查找算法的总结
- 算法策略的总结
- 排序算法的总结
- 算法策略的总结
- 字符串的算法总结
- 算法策略的总结
- 算法策略的总结
- 算法策略的总结
- 算法策略的总结
- Floyd算法的总结
- 可望不可及的开源:Google是如何逐步牢牢控制开源系统Android的?
- 计算机经典书籍汇总
- 数据集
- linux常用命令
- iOS 尺寸
- Clara算法的总结
- hdu 4786 Fibonacci Tree
- leetcode-Linked List
- Windows DBUS
- Android之Fragment多个页面切换实现
- 第12周项目5之输出对应的二进制
- Eclipse运行错误Failed to create the Java Virtual Machine解决方法
- ubuntu12.04安装翻译软件stardict及卸载
- ext中getCmp的意思