• 大小: 2.26MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-15
  • 语言: C/C++
  • 标签: 模式识别  K近邻  

资源简介

模式识别大作业K近邻算法(KNN)C++实现,内有iris和wine数据测试以及其他相关资料。

资源截图

代码片段和文件信息

/*K近邻法*/

#include
#include

void sort(float num[]int n)                            //from min to max
{
   float temp;
   for(int i=0;i   {
   for(int j=i+1;j    {
   if(num[i]>num[j])
   {
   temp=num[i];
   num[i]=num[j];
   num[j]=temp;
   }
   }
   }
}

int div(float afloat bfloat 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;
float f[150][6];                                         //原始数据
float w1[20][6]w2[20][6]w3[20][6];                     //分三类,每类中有20个数据
float s1[60][2]s2[60][2]s3[60][2];
float r[60];
float t[90][1];
int ijmqwez=0;
int k=7;                                                //举例  :取k为10
int k1k2k3;
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=20;i<50;i++)                                        //为了后面计算准确度
t[i-20][0]=f[i][5];
for(i=70;i<100;i++)
t[i-40][0]=f[i][5];
for(i=120;i<150;i++)
t[i-60][0]=f[i][5];
for(i=0;i<20;i++)                                        //第一类赋值20个数据
for(j=0;j<6;j++)
w1[i][j]=f[i][j];
for(i=50;i<70;i++)                                       //第二类赋值20个数据
for(j=0;j<6;j++)
w2[i-50][j]=f[i][j];
for(i=100;i<120;i++)                                     //第三类赋值20个数据
for(j=0;j<6;j++)
w3[i-100][j]=f[i][j];
for(i=20;i<50;i++)
{
k1=0;k2=0;k3=0;
for(j=0;j<20;j++)
{
s1[j][0]=fabs(f[i][1]-w1[j][1])+fabs(f[i][2]-w1[j][2])+fabs(f[i][3]-w1[j][3])+fabs(f[i][4]-w1[j][4]);s1[j][1]=1;
s1[j+20][0]=fabs(f[i][1]-w2[j][1])+fabs(f[i][2]-w2[j][2])+fabs(f[i][3]-w2[j][3])+fabs(f[i][4]-w2[j][4]);s1[j+20][1]=2;
s1[j+40][0]=fabs(f[i][1]-w3[j][1])+fabs(f[i][2]-w3[j][2])+fabs(f[i][3]-w3[j][3])+fabs(f[i][4]-w3[j][4]);s1[j+40][1]=3;
}
    for(q=0;q<60;q++)
r[q]=s1[q][0];
sort(r60);
for(w=0;w {
for(e=0;e<60;e++)
{
if(r[w]==s1[e][0])
{
if(s1[e][1]==1)
{ ++k1;break;}
if(s1[e][1]==2)
{ ++k2;break;}
if(s1[e][1]==3)
{ ++k3;break;}
}
}
}
f[i][5]=div(k1k2k3);

}
for(i=70;i<100;i++)
{
k1=0;k2=0;k3=0;
for(m=0;m<20;m++)
{
s2[m][0]=fabs(f[i][1]-w1[m][1])+fabs(f[i][2]-w1[m][2])+fabs(f[i][3]-w1[m][3])+fabs(f[i][4]-w1[m][4]);s2[m][1]=1;
s2[m+20][0]=fabs(f[i][1]-w2[m][1])+fabs(f[i][2]-w2[m][2])+fabs(f[i][3]-w2[m][3])+fabs(f[i][4]-w2[m][4]);s2[m+20][1]=2;
s2[m+40][0]=fabs(f[i][1]-w3[m][1])+fabs(f[i][2]-w3[m][2])+fabs(f[i][3]-w3[m][3])+fabs(f[i][4]-w3[m][4]);s2[m+40][1]=3;
}
for(q=0;q<60;q++)
r[q]=s2[q][0];
sort(r60);
for(w=0;w {
for(e=0;e<60;e++)
{
if(r[w]==s2[e][0])
{
if(s2[e][1]==1)
{ ++k1;break;}
if(s2[e][1]==2)
{ ++k2;b

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        895  2012-11-28 21:13  第1次大作业k近邻\24884698knn.rar

     文件      11444  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\BuildLog.htm

     文件     225329  2011-11-26 21:19  第1次大作业k近邻\53607935K\Debug\k.exe

     文件     251980  2011-11-26 21:19  第1次大作业k近邻\53607935K\Debug\k.ilk

     文件      17887  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\k.obj

     文件     408064  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\K近邻法.exe

     文件        406  2012-11-29 17:42  第1次大作业k近邻\53607935K\Debug\K近邻法.exe.embed.manifest

     文件        472  2012-11-29 17:42  第1次大作业k近邻\53607935K\Debug\K近邻法.exe.embed.manifest.res

     文件        381  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\K近邻法.exe.intermediate.manifest

     文件     214860  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\K近邻法.ilk

     文件    2042880  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\K近邻法.pdb

     文件         67  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\mt.dep

     文件      33792  2011-11-26 21:19  第1次大作业k近邻\53607935K\Debug\vc60.idb

     文件      53248  2011-11-26 21:19  第1次大作业k近邻\53607935K\Debug\vc60.pdb

     文件      35840  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\vc90.idb

     文件      61440  2012-11-29 18:18  第1次大作业k近邻\53607935K\Debug\vc90.pdb

     文件       3200  2011-11-10 19:42  第1次大作业k近邻\53607935K\Iris.txt

     文件       4295  2012-11-29 18:18  第1次大作业k近邻\53607935K\k.cpp

     文件       3341  2011-11-26 21:17  第1次大作业k近邻\53607935K\k.dsp

     文件        510  2011-11-26 21:19  第1次大作业k近邻\53607935K\k.dsw

     文件      48640  2011-11-26 21:19  第1次大作业k近邻\53607935K\k.opt

     文件       3513  2011-11-26 21:19  第1次大作业k近邻\53607935K\k.plg

     文件       2560  2012-11-29 17:04  第1次大作业k近邻\53607935K\k.suo

     文件       4290  2011-11-24 20:13  第1次大作业k近邻\53607935K\K近邻法.dsp

     文件        522  2011-11-24 19:12  第1次大作业k近邻\53607935K\K近邻法.dsw

     文件     322560  2012-11-29 18:34  第1次大作业k近邻\53607935K\K近邻法.ncb

     文件      48640  2011-11-24 20:13  第1次大作业k近邻\53607935K\K近邻法.opt

     文件       1247  2011-11-24 19:43  第1次大作业k近邻\53607935K\K近邻法.plg

     文件        890  2012-11-29 17:42  第1次大作业k近邻\53607935K\K近邻法.sln

    ..A..H.      7680  2012-11-29 18:34  第1次大作业k近邻\53607935K\K近邻法.suo

............此处省略27个文件信息

评论

共有 条评论