精华内容
下载资源
问答
  • 2020-11-25 15:55:48
    /**
    C均值聚类算法的C语言实现
    Author:AnranWu
    Date:2020/11/25 
    */ 
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    const ll maxn=1e6+50;
    const double eps=1e-2;
    
    struct node{
    	double x=0,y=0;
    }a[maxn],b[maxn],sum[maxn];
    
    int belong[maxn],cnt[maxn];
    
    double dis(node a,node b){
    	return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
    }
    
    int main(){
    	int c,n;
    	printf("请输入需要将模式分为的类别数 c :"); 
    	scanf("%d",&c);
    	printf("请输入模式总数 n :"); 
    	scanf("%d",&n);//输入需要聚类的模式数 
    	printf("请输入各模式的两个特征点 :\n"); 
    	for(int i=1;i<=n;i++)scanf("%lf%lf",&a[i].x,&a[i].y);//输入每个模式的两个特征 
    	for(int i=1;i<=c;i++)b[i]=a[i];//选定初始的c个聚类中心 
    	int ans=0;//ans表示与上次聚类中心一致的聚类中心点数量,当所有聚类中心均不发生改变时循环结束 
    	while(ans<c){
    		memset(cnt,0,sizeof(cnt));//cnt记录每一个类别有多少个模式属于该类 
    		for(int i=1;i<=n;i++){
    			double minn=4e18;//计算该模式到每一个聚类中心的距离
    			int mini=0;
    			for(int j=1;j<=c;j++){
    				double dis_to_center=dis(a[i],b[j]);
    				if(dis(a[i],b[j])<minn){
    					minn=dis_to_center;
    					mini=j;
    				}
    			}
    			belong[i]=mini;//选择距离最小的一个类加入该类 
    			cnt[mini]++;//更新该类中模式的数量 
    		}
    		for(int i=1;i<=c;i++)sum[i].x=0,sum[i].y=0;
    		for(int i=1;i<=n;i++){
    			sum[belong[i]].x+=a[i].x;
    			sum[belong[i]].y+=a[i].y;//计算新的聚类中心 
    		}
    		ans=0;
    		for(int i=1;i<=c;i++){
    			sum[i].x/=cnt[i];
    			sum[i].y/=cnt[i];
    			//判断该聚类中心是否发生变化,eps控制容差值 
    			if((fabs(sum[i].x-b[i].x)<eps)&&(fabs(sum[i].y-b[i].y)<eps))ans++;
    			b[i].x=sum[i].x; 
    			b[i].y=sum[i].y;//更新聚类中心 
    		}
    	}
    	printf("C均值聚类算法已经完成!\nc个类中心分别为\n");
    	for(int i=1;i<=c;i++){
    		printf("第%d类的聚类中心的两个特征值分别为 %.2lf %.2lf\n",b[i].x,b[i].y); 
    	}
    	for(int i=1;i<=c;i++){
    		printf("属于第%d类的点有:\n"); 
    		for(int j=1;j<=n;j++){
    			if(belong[j]==i)printf("%d号点 %.2lf %.2lf\n",j,a[j].x,a[j].y);
    		}
    		putchar(10);
    	}
    }
    
    /*
    测试数据 #1
    2
    20
    0 0
    1 0
    0 1
    1 1
    2 1
    1 2
    2 2
    3 2
    6 6
    7 6
    8 6
    6 7
    7 7
    8 7
    9 7
    7 8
    8 8
    9 8
    8 9
    9 9
    */
    
    更多相关内容
  • 模糊均值聚类算法。
  • c均值聚类算法matlab代码ISO标准 ISO-SPLIT是一种有效的聚类算法,可以处理中低维度的未知数量的单峰聚类,而无需任何用户可调整的参数。 它基于对单峰性的重复测试-使用等渗回归和改进的Hartigan dip测试-应用于...
  • 模糊C均值聚类

    2019-02-24 16:39:42
    Fuzzy C Means - Multi clustering and find center of clusters with Python模糊C均值聚类的python实现,用于实现图像分割
  • c均值聚类算法matlab代码fcm_m 这是matlab代码中FCM聚类方法的一些变体。 您可以参考以下文章以进一步了解:“一种鲁棒的模糊局部信息C均值聚类算法”
  • 针对模糊C均值聚类算法(FCM)存在对初始聚类中心敏感,易陷入局部最优解的不足,将改进的粒子群聚类算法与FCM算法相结合,提出了一种基于粒子群优化的模糊C均值聚类算法。该算法对粒子群初始化空间及粒子移动最大速度...
  • 使用基于模糊 c 均值聚类的机器学习对 2 类和 3 类问题进行一维矩阵分类。 它还包含一个基于矩阵的 AND 门示例和大小为 12 和 3 的输入样本
  • 抑制式模糊C均值聚类惩罚因子的改进.pdf
  • c- 均值聚类推广为直觉模 糊??c- 均值聚类(IFCM) 的途径和方法, 分析了现有的几种IFCM 算法, 并提出了一种基于直觉模糊集的模糊??c- 均值 聚类算法. 该算法首先定义了直觉模糊集之间的距离; 然后构造了...
  • 聚类分割算法是图像处理中的基本操作,文件中包含了使用模糊C-均值实现聚类分割的算法原理以及MAtlab源程序 聚类分割算法是图像处理中的基本操作,文件中包含了使用模糊C-均值实现聚类分割的算法原理以及MAtlab源...
  • C均值聚类法,MATLAB

    2017-04-16 18:50:26
    采用C均值聚类算法对男女生样本数据中的身高、体重2个特征进行聚类分析,考察不同的类别初始值以及类别数对聚类结果的影响,并以友好的方式图示化结果。
  • matlab实现模糊C均值聚类,附带包含600个2维数据的数据集,可视化展示结果。数据集有3类,分别分布在第一、二 三象限。
  • 模糊C均值聚类的Python算法,新数据的类别预测
  • 亲测可用!图像模糊C均值聚类分割matlab代码,聚类分割后显示图像。 仅需要自己修改读图路径。
  • 模糊C均值聚类算法(FCM)在硬C均值聚类的基础上有效地解决了医学图像分割中存在的模糊情况,通过建立表示图像中像素点与聚类中心加权相似度的目标函数,采用迭代优化的方法求解目标函数的极小值来确定最佳聚类。...
  • 基于超像素的快速模糊c均值聚类算法在彩色图像分割中的应用
  • 针对Krinidis等人提出的模糊局部C-均值聚类系列算法缺乏合理性的不足,提出一种新的鲁棒模糊局部C-均值聚类分割算法。对鲁棒模糊局部C-均值聚类的目标函数重新分析并建立正确的聚类目标函数,对新的聚类目标函数及其...
  • 使用Opencv实现区域增长法、K均值聚类算法、模糊C均值聚类算法对图像处理;可处理单通道图像以及多通道图像。用法:建立Opencv工程后添加此cpp文件,在该工程中添加lena .jpg图片即可运行程序(当然也可以自己修改...
  • 课程的随堂作业,C++的,用dev就能运行,模糊聚类的程序,老师要统计数据分类,所以这还是可以用来交作业混一下的
  • 由于现有模糊C均值聚类算法固有的局限性,本文提出了一种改进的模糊C均值聚类算法。首先用概率密度函数来确定初始聚类中心点和聚类数,其次用竞争学习思想提出使对手增加抑制因子来修改隶属度得到加快收敛速度的效果...
  • 模糊C均值聚类算法实现数据挖掘的matlab源代码
  • 模糊C均值聚类算法

    2015-01-19 10:09:11
    自己写的模糊C均值聚类算法,也就是FCM,用matlab写的,希望能帮助大家学习
  • 均值算法对于非球形分布的数据聚类效果不理想且易受到噪声数据的影响, 利用可能性C-均值算法具有良好的抗噪声性能, 将混合核函数引入到该算法中, 提出了一种基于混合核函数的可能性C-均值HKPCM聚类算法。该算法将原...
  • 针对传统的模糊C均值聚类算法(FCM)在图像分割中对噪声十分敏感这一局限性,提出一种自适应的FCM图像分割方法。该方法充分考虑图像像素的灰度信息和空间信息,根据像素的空间位置自适应地计算一个合适的相似度距离...
  • K-MEANS(K均值聚类算法,C均值算法) K-MEANS(K均值聚类算法,C均值算法) K-MEANS(K均值聚类算法,C均值算法)
  • 实验六 C均值聚类.zip

    2020-02-11 22:26:32
    C均值聚类(更常用的叫法是K均值算法,K-means clustering)是经典的非监督数据处理方法。实验目的在于加深学生对C均值聚类原理的理解、掌握的算法的实现过程,体会其在模式识别中的作用。
  • 提出了一种快速且鲁棒的模糊c-means聚类算法,即FRFCM。 FRFCM 能够分割灰度和彩色图像并提供出色的分割结果。
  • 基于马尔可夫随机场和模糊C-均值聚类的DTI图像分割算法.pdf
  • 常见的模糊聚类算法不能有效分割具有类大小不均衡特性的图像,为此,提出对类大小不敏感的模糊C均值聚类图像分割算法。首先将类大小引入至含邻域信息模糊聚类算法(FCM_S)的目标函数中,使得类大小在目标函数中发挥作用,...
  • 模糊C均值聚类算法(FCM)是一种比较有代表性的模糊聚类算法,主要是通过迭代更新聚类中心和隶属度矩阵,使目标函数值达到最小.FCM算法还有很多缺陷和不足,其中最主要的就是选取不同的初始中心,会得到不同的聚类结果,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,864
精华内容 9,545
关键字:

c均值聚类

友情链接: dbglib.zip