c.zip

  • PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 3
    下载次数
  • 2012-05-08 09:53
    上传日期
用C-均值聚类的方法对Iris数据进行聚类分析
c.zip
  • c.txt
    2.9KB
内容介绍
#include<stdio.h> #include<math.h> int div(float a,float b,float c) //分类函数 { if(a<b) { if(a<c) return 1; else return 3; } else { if(b<c) return 2; else return 3; } } void main() { FILE *fp; int i,j; int r=0; float p1,p2,p3; int N1,N2,N3; //每类的个数 float f[150][6]; float t[150][1]; //存放原始分类 float L1[6]={8,5,3.4,1.5,0.2,1}; //初始化第一类代表点 float L2[6]={71,5.9,3.2,4.8,1.8,2}; //初始化第二类代表点 float L3[6]={125,6.7,3.3,5.7,2.1,3}; //初始化第三类代表点 float t11,t12,t13,t14,t21,t22,t23,t24,t31,t32,t33,t34; float sum11,sum12,sum13,sum14,sum21,sum22,sum23,sum24,sum31,sum32,sum33,sum34; if((fp=fopen("Iris.txt","r"))==NULL) { printf("can't open this file\n"); } for(i=0;i<150;i++) for(j=0;j<6;j++) fscanf(fp,"%f",&f[i][j]); fclose(fp); for(i=0;i<150;i++) { t[i][1]=f[i][5]; } while(1) { sum11=0,sum12=0,sum13=0,sum14=0; sum21=0,sum22=0,sum23=0,sum24=0; sum31=0,sum32=0,sum33=0,sum34=0; N1=0,N2=0,N3=0; p1=0,p2=0,p3=0; for(i=0;i<150;i++) { t11=f[i][1]-L1[1];t12=f[i][2]-L1[2];t13=f[i][3]-L1[3];t14=f[i][4]-L1[4]; t21=f[i][1]-L2[1];t22=f[i][2]-L2[2];t23=f[i][3]-L2[3];t24=f[i][4]-L2[4]; t31=f[i][1]-L3[1];t32=f[i][2]-L3[2];t33=f[i][3]-L3[3];t34=f[i][4]-L3[4]; p1=((L1[1]-f[i][1])*(L1[1]-f[i][1])+(L1[2]-f[i][2])*(L1[2]-f[i][2])+(L1[3]-f[i][3])*(L1[3]-f[i][3])+(L1[4]-f[i][4])*(L1[4]-f[i][4]));//第一类误差平方和 p2=((L2[1]-f[i][1])*(L2[1]-f[i][1])+(L2[2]-f[i][2])*(L2[2]-f[i][2])+(L2[3]-f[i][3])*(L2[3]-f[i][3])+(L2[4]-f[i][4])*(L2[4]-f[i][4]));//第二类误差平方和 p3=((L3[1]-f[i][1])*(L3[1]-f[i][1])+(L3[2]-f[i][2])*(L3[2]-f[i][2])+(L3[3]-f[i][3])*(L3[3]-f[i][3])+(L3[4]-f[i][4])*(L3[4]-f[i][4]));//第三类误差平方和 if(div(p1,p2,p3)==1) { f[i][5]=1; N1++; sum11+=t11; sum12+=t12; sum13+=t13; sum14+=t14; } if(div(p1,p2,p3)==2) { f[i][5]=2; N2++; sum21+=t21; sum22+=t22; sum23+=t23; sum24+=t24; } if(div(p1,p2,p3)==3) { f[i][5]=3; N3++; sum31+=t31; sum32+=t32; sum33+=t33; sum34+=t34; } } L1[1]=L1[1]+sum11/N1;L1[2]=L1[2]+sum12/N1;L1[3]=L1[3]+sum13/N1;L1[4]=L1[4]+sum14/N1; L2[1]=L2[1]+sum21/N2;L2[2]=L2[2]+sum22/N2;L2[3]=L2[3]+sum23/N2;L2[4]=L2[4]+sum24/N2; L3[1]=L3[1]+sum31/N3;L3[2]=L3[2]+sum32/N3;L3[3]=L3[3]+sum33/N3;L3[4]=L3[4]+sum34/N3; if(sum11<0.00001) if(sum12<0.00001) if(sum13<0.00001) if(sum14<0.00001) break; //误差没有变化时,退出循环 } for(i=0;i<150;i++) { if(t[i][1]==f[i][5]) r++; } for(i=0;i<150;i++) { for(j=0;j<6;j++) { printf("%10f",f[i][j]); } printf("\n"); } printf("准确率为%f\n",r/150.0); }
评论
    相关推荐
    • iris数据集
      Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,...
    • iris_data.zip
      iris数据集 mat形式.可用于matlab
    • FCM-iris.zip
      利用模糊聚类算法(FCM)进行iris数据集的处理并进行可视化
    • iris3前端
      iris3前端 构建设置 # install dependencies $ npm install # serve with hot reload at localhost:3000 $ npm run dev # build for production and launch server $ npm run build $ npm run start # generate ...
    • Iris4701
      是一款非常优秀的网络通讯...相对于其它网络嗅探器,Iris 更加易用和人性化,以多元化的模块满足不同层次用户的需求,是网络管理人员和分析人员的必备工具。注:由于特定原因,即时提示信息 (hints.chm 文件) 未汉化
    • 团队IRIS
      身份识别系统的个人责任(IRIS) 个人数据是Internet安全的关键部分。 现代基础架构在很大程度上取决于您用来为您提供最无缝的在线体验的数据。 这就需要一种合乎道德和实用的解决方案,以确保保护数据的完整性,...
    • chainlink-iris
      cd chainlink-iris cp .env.example .env # update .env file accordingly # load in env variables source .env # launch local eth instance ganache-cli --port 8545 --gasLimit 12000000 --accounts 10 --hard...
    • CrossECP-IRIS
      系统间对象模板 这是InterSystems ObjectScript Github存储库的模板。 该模板还带有一些文件,可让您立即在Docker容器中的InterSystems IRIS Community ... $ docker-compose exec iris iris session iris USER>wr
    • Iris数据集
      Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼...
    • iris recognition
      基于虹膜快速检测MATLAB程序,程序简单,运行时间短