Clara算法的总结
2014-11-17 19:37
288 查看
总结
一、步骤:
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从数据集中抽取多个样本集,对每个样本集使用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个总总代价,将他们累加,得出此此次抽样的总代价。完成后,与上一次抽样的总代价比较,本次的总代价小于上次则使用本次代表点(什么代表点?样本还是整体数据的最优,如果是整体数据最优那么被选中的代表点应该使用总代价差大的那个还是小的那个?)
五. 算法流程
相关文章推荐
- JAVA与C++::关于JNI中文字符串操作问题总结
- SCI软件使用方法总结-定位测量篇
- XP方法学习总结及对小组开发的思考
- JDBC与字符集总结
- VC常见入门问题总结(一)
- GeoTiff探索成果总结
- 侯捷专栏:长吁一口气(三年大陆经验总结)
- 程序设计和调试中的几点总结
- MASM宏使用总结
- JIURL PE 格式学习总结(一)-- PE文件概述
- 一年工作的总结
- JIURL PE 格式学习总结(二)-- PE文件中的输出函数
- JIURL PE 格式学习总结(三)-- PE文件中的输入函数
- JIURL PE 格式学习总结(四)-- PE文件中的资源
- 总结:在一个工程中添加别的工程的中已创建好的对话框资源。(或是。。。)
- .NET环境下水晶报表使用总结
- 精彩总结:★加密网页破解大法★
- duwamish7的一些代码分析总结
- 没头没尾--项目开发笔记:项目问题的阶段性总结,下一步…………
- DW属性设置的总结