原来数据挖掘的作业,自己懒得算拿c++写着玩的,因为题目就给了七个数据让我们拿去聚类,所以数组就写死了。下午不想学习翻以前的代码发现的,传上来玩玩。

#include<bits/stdc++.h>
using namespace std;
int j,m,n,sum=0,i=1;
double a[7] = {0.0,4.0,1.5,3.0,4.5,4.0,2.5};
double b[7] = {0.0,2.5,1.0,1.5,3.5,2.5,5.0};
double C1[10],C2[10];//存储循环中的距离
int z[15] ={};//分类数组
double l1,l2,l11,l22;//临时变量void x(double c1,double c11,double c2,double c22){//循环函数 测试完成摸鱼问题for(j = 1; j <= 6; j++){C1[j] = sqrt(pow(c1-a[j],2)+pow(c11-b[j],2));printf("%.2f     ",C1[j]);C2[j] = sqrt(pow(c2-a[j],2)+pow(c22-b[j],2));printf("%.2f\n",C2[j]); }printf("***** %d *****\n",i++);
}int zu(){//判断数字是否有变化int js = 0;for(j = 1; j<=6; j++){if(z[j]==z[j+6])js++;z[j+6] = z[j];}cout<<endl;if(js==6)return 0;else return 1;
}void sse(){double sum1 = 0.0,sum2 = 0.0;for(j = 1; j<=6; j++){if(z[j]==1){sum1 += pow(C1[j],2);}else {sum2 += pow(C2[j],2);}}printf("C1 sse: %f\nC2 sse: %f\nSSE = %f\n",sum1,sum2,sum1+sum2);
}int main()
{double c1,c11,c2,c22;//x ycin>>m>>n;c1 = a[m]; c11 = b[m];c2 = a[n]; c22 = b[n];x(c1,c11,c2,c22);//第一次循环z[1] = 12;while(zu()){l1 = 0.0;l11 = 0.0;l2 = 0.0;l22 = 0.0;sum = 0;printf("C1 include:");for(j = 1; j <= 6; j++){if(C1[j] <= C2[j]){l1  += a[j];l11 += b[j];sum++;z[j] = 1;cout<<j;}else{l2 += a[j];l22 += b[j];z[j] = 2;}}cout<<endl;l1 /= sum;      l11 /= sum;//新的xyl2 /= (6-sum);  l22 /= (6-sum);cout<<l1<<' '<<l11<<endl;if(sum == 0)break;x(l1,l11,l2,l22);}sse();printf("C1: %.5f     %.5f\n",l1,l11);printf("C2: %.5f     %.5f\n",l2,l22);printf("The end");return 0;
}

运行结果

C++实现简单Kmeans聚类算法相关推荐

  1. Matlab实现简单K-means聚类算法

    K-means算法简要思想: 算法接受参数 k :然后将事先输入的n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高:而不同聚类中的对象相似度较小. (1)适当选择k个类 ...

  2. k-means聚类算法从入门到精通

    k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 . 目录 1. k-means聚类算法原理 2. k ...

  3. 基于K-Means聚类算法的主颜色提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 01.简介 本期我们将一起实现基于K-Means聚类算法的主色提取 ...

  4. 基于Kmeans聚类算法的图像分割(色彩分割)实战

    基于Kmeans聚类算法的图像分割(色彩分割)实战 图像分割是将一幅图像分割成多个像素区域的任务.属于同一对象类型的所有像素都被分配到同一类别下.图像分类是给一副完整的图像一个类别,目标检测是检测到图 ...

  5. 基于经典的机器学习k-means聚类算法实现对三通道图片的压缩操作

    https://www.toutiao.com/a6573221465104056846/ 压缩图片的原理 k-means算法实现图像的压缩是k-means聚类算法的一个经典的应用,它把一个彩色图压缩 ...

  6. K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

    原文:http://www.cnblogs.com/yixuan-xu/p/6272208.html K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means ...

  7. K-Means聚类算法进行压缩图片

    K-Means聚类算法(二):算法实现及其优化 清雨影 2 年前 (最近在车间干活的时候把手砸伤了,所以打字还是有点不便,大家原谅我更新的慢,加上赞比较少,心情比较低落TAT) 首先介绍一下题图,这个 ...

  8. 机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)

    前言 k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 . 以下是我为大家准备的几个精品专栏,喜欢的小 ...

  9. Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解

        Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解 在Hadoop分布式环境下实现K-Means聚类算法的伪代码如下: 输入:参数0--存储样本数据的文本文件inpu ...

最新文章

  1. java界面设计素材_9.java图形用户界面设计.ppt
  2. 【博客话题】技术人,你肿么了
  3. LeetCode872. Leaf-Similar Trees
  4. 神经网络加载数据 自建数据集 官方数据集 pytorch 显示数据集
  5. Python3与OpenCV3.3 图像处理(九)--高斯模糊
  6. 百度飞桨 如何撑起了AI产业生态?
  7. Linux 命令(58)—— readelf 命令
  8. 如何从一台铅封计算机上取走数据
  9. android 向上弹出,android 弹出Popupwindow 自适用(Activity或者Dialog)判断向上还向下...
  10. 利用openssl创建私有CA的步骤和过程
  11. html5的ajax上传图片,html5标准Ajax上传图片
  12. Ubuntu18.04和Win10共享文件夹
  13. c语言编程数字后有ul,十六进制数后跟L/U/UL解析
  14. C 语言课程设计 最终答辩版 学生通讯录管理系统
  15. JavaSE基础知识
  16. 彩色图像加密matlab算法,彩色图像混沌加密算法
  17. 将一个文件夹拖入MyEclipse的时候,提示destination folder must be accessible
  18. 在windows中使用bat脚本获取linux服务器文件
  19. Windows/Linux混合刻录之后,光盘文件不见了?
  20. CRNN中英文字符识别

热门文章

  1. 为什么说全息投影离真正商业化还很遥远?
  2. 2015年数据结构第五题(输出二叉树的最长一枝)(C/C++)
  3. Linux系统调用之execve函数与标准C库exec函数族(有关于进程方面的函数族)
  4. protect 继承_c++三种继承方式public,protect,private
  5. 跟据HttpRequest获取body内数据
  6. ROS话题的订阅与发布
  7. 自动化脚本Cron工具(MAC和Linux系统)
  8. linux中如何判断两个字符串相等
  9. Java是什么,有什么优势及特点
  10. 项目融资计划书PPT模板