没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论












基于 Hadoop 的 Kmeans 算法实现
任务概述
先从 条数据中随机选取 条数据作为初始聚类中心;然后对剩余的每条
数据测量其到每个聚类中心的距离,并将其归到最近的中心的类;再重新计算
已经得到的各个类的聚类中心;最后迭代 步,直到新的聚类中心与原聚类
中心相等或小于指定的阈值,算法结束。
原理阐述
Kmeans 算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标。
即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的
因此把得到紧凑且独立的簇作为最终目标。
过程详述
第一步,从 条数据中随机选取 条数据作为初始聚类中心,这个可以利用抽样来接近等
概率的抽取 条数据。
第二步,由于第一步随机选取的 条聚类中心的数据相比于整体数据来说所占比例是很
小的,因此在 设计中,将这 条数据用 去读取并存放在内存中。在 的
中需要初始化聚类个数 ,分隔符 ,以及读取初始聚类的数据。然后在 中
去计算传进来的每条数据与这 个聚类中心的距离,并得出最短距离以及其所属的类别用
聚类中心的下标表示。然后将类别以及这条数据传给 端。
在第 步中,判断新的聚类中心与上次聚类中心之间的距离是否满足我们初始化时设
置的阈值,如果满足则停止,然后对所有数据分类保存。如果不满足则迭代计算直到满足
阈值或者迭代次数达到设定的次数。
在第 步是否分类中,为了将数据按照不同的类别分开保存数据,因此又写了一个 ,
并在其中添加了 来进行分类保存。在新的 中,基本与上述 类似,只是少了
计算新的聚类中心而已,直接将数据输出即可。
publicclassKmeansPartionalextendsPartitioner<IntWritable,Text>{
@Override
publicintgetPartition(IntWritablekey,Textvalue,intarg2){
if(key.get()==0){
return0;
}elseif(key.get()==1){
return1;
}else{
return2;
}
资源评论

- ChengXuxiao2020-07-07不是用pyhton实现的,是java实现,虚假标签,骗人的

personalperson
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
