文档介绍:模式识别作业
K 近邻算法
}
}
int count(struct distance *a)
{
int i,c1=0,c2=0,c3=0;
for(i=0;i<k;i++)
{
if(a[i].num==1)
c1=c1+1;
else if(a[i].num==2)
c2=c2+1;
else
c3=c3+1;
}
for(i=0;i<20;i++)
dist[i].num=1;
for(i=20;i<40;i++)
dist[i].num=2;
for(i=40;i<60;i++)
dist[i].num=3;
if(c1>=(k/2+1))
return(1);
else if(c2>=(k/2+1))
return(2);
else if(c3>=(k/2+1))
return(3);
else return(0);
}void rate(inta,intb,int c)
{
printf("第一类的聚类正确率为%f\n",a/);
printf("第二类的聚类正确率为%f\n",b/);
printf("第三类的聚类正确率为%f\n",c/);
printf("总体正确率为%f\n",(a+b+c)/);
}
void main()
{
int i,j,kind,c1,c2,c3;
c1=c2=c3=0;
float train[n][6],test[n+30][6];
for(i=0;i<20;i++)
dist[i].num=1;
for(i=20;i<40;i++)
dist[i].num=2;
for(i=40;i<60;i++)
dist[i].num=3;
FILE *fp;
if((fp=fopen("","r"))==NULL)
printf("error!\n");
for(i=0;i<n;i++)
{
for(j=0;j<6;j++)
fscanf(fp