K-Means聚类算法java实现

对于K-Means算法想必做机器学习和数据挖掘的广大同胞们已经不再陌生,做为数据挖据的十大经典算法之一,k-Means做聚类分析上有得天独厚的优势。对于其原理进行简单的描述:k-Means算法是典型的基于距离的聚类算法,采用的是距离作为相似性指标。经过n次迭代后,当中心的位置不在发生变换的时候即是收敛完成。算法:           1. 从n个文档中随机的选择出k个文档作为质心 
摘要由CSDN通过智能技术生成

对于K-Means算法想必做机器学习和数据挖掘的广大同胞们已经不再陌生,做为数据挖据的十大经典算法之一,k-Means做聚类分析上有得天独厚的优势。对于其原理进行简单的描述:

k-Means算法是典型的基于距离的聚类算法,采用的是距离作为相似性指标。经过n次迭代后,当中心的位置不在发生变换的时候即是收敛完成。

算法:

           1. 从n个文档中随机的选择出k个文档作为质心

           2.从剩余的文档中测量出每个文档到质心的距离,并归类到最小质心的一类中

          3. 重新计算质心的位置

          4.重复2-3步,直到迭代完成。

由以上步骤,可以有java实现K-Means算法。随机产生100个点,设置k=5后进行聚类操作:

         1.主函数:

          

package KMeans;
import java.util.ArrayList;

/**
 * K-Means算法
 * @author Administrator
 *
 */
public class k_means {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	//1.创建二维数组 10x10的数组
		int num_1[]=new int[100];
		int num_2[]=new int[100];
        //随机赋值

			for(int i=0;i<100;i++){
				num_1[i]=(int)( Math.random()*100);
			}
		
			for(int i=0;i<100;i++){
				num_2[i]=(int)( Math.random()*100);
			}
		// 2.创建点坐标
			ArrayList<pointBean> list=new ArrayList<pointBean>();
			pointBean bean;
	        for(int i=0;i<100;i++){
	        	bean=new pointBean();
	        	bean.point_x=num_1[i];
	        	bean.point_y
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值