資源簡(jiǎn)介
模式識(shí)別大作業(yè)K近鄰算法(KNN)C++實(shí)現(xiàn),內(nèi)有iris和wine數(shù)據(jù)測(cè)試以及其他相關(guān)資料。

代碼片段和文件信息
/*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];?????????????????????????????????????????//原始數(shù)據(jù)
float?w1[20][6]w2[20][6]w3[20][6];?????????????????????//分三類,每類中有20個(gè)數(shù)據(jù)
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++)????????????????????????????????????????//為了后面計(jì)算準(zhǔn)確度
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個(gè)數(shù)據(jù)
for(j=0;j<6;j++)
w1[i][j]=f[i][j];
for(i=50;i<70;i++)???????????????????????????????????????//第二類賦值20個(gè)數(shù)據(jù)
for(j=0;j<6;j++)
w2[i-50][j]=f[i][j];
for(i=100;i<120;i++)?????????????????????????????????????//第三類賦值20個(gè)數(shù)據(jù)
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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????895??2012-11-28?21:13??第1次大作業(yè)k近鄰\24884698knn.rar
?????文件??????11444??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\BuildLog.htm
?????文件?????225329??2011-11-26?21:19??第1次大作業(yè)k近鄰\53607935K\Debug\k.exe
?????文件?????251980??2011-11-26?21:19??第1次大作業(yè)k近鄰\53607935K\Debug\k.ilk
?????文件??????17887??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\k.obj
?????文件?????408064??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\K近鄰法.exe
?????文件????????406??2012-11-29?17:42??第1次大作業(yè)k近鄰\53607935K\Debug\K近鄰法.exe.em
?????文件????????472??2012-11-29?17:42??第1次大作業(yè)k近鄰\53607935K\Debug\K近鄰法.exe.em
?????文件????????381??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\K近鄰法.exe.intermediate.manifest
?????文件?????214860??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\K近鄰法.ilk
?????文件????2042880??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\K近鄰法.pdb
?????文件?????????67??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\mt.dep
?????文件??????33792??2011-11-26?21:19??第1次大作業(yè)k近鄰\53607935K\Debug\vc60.idb
?????文件??????53248??2011-11-26?21:19??第1次大作業(yè)k近鄰\53607935K\Debug\vc60.pdb
?????文件??????35840??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\vc90.idb
?????文件??????61440??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\Debug\vc90.pdb
?????文件???????3200??2011-11-10?19:42??第1次大作業(yè)k近鄰\53607935K\Iris.txt
?????文件???????4295??2012-11-29?18:18??第1次大作業(yè)k近鄰\53607935K\k.cpp
?????文件???????3341??2011-11-26?21:17??第1次大作業(yè)k近鄰\53607935K\k.dsp
?????文件????????510??2011-11-26?21:19??第1次大作業(yè)k近鄰\53607935K\k.dsw
?????文件??????48640??2011-11-26?21:19??第1次大作業(yè)k近鄰\53607935K\k.opt
?????文件???????3513??2011-11-26?21:19??第1次大作業(yè)k近鄰\53607935K\k.plg
?????文件???????2560??2012-11-29?17:04??第1次大作業(yè)k近鄰\53607935K\k.suo
?????文件???????4290??2011-11-24?20:13??第1次大作業(yè)k近鄰\53607935K\K近鄰法.dsp
?????文件????????522??2011-11-24?19:12??第1次大作業(yè)k近鄰\53607935K\K近鄰法.dsw
?????文件?????322560??2012-11-29?18:34??第1次大作業(yè)k近鄰\53607935K\K近鄰法.ncb
?????文件??????48640??2011-11-24?20:13??第1次大作業(yè)k近鄰\53607935K\K近鄰法.opt
?????文件???????1247??2011-11-24?19:43??第1次大作業(yè)k近鄰\53607935K\K近鄰法.plg
?????文件????????890??2012-11-29?17:42??第1次大作業(yè)k近鄰\53607935K\K近鄰法.sln
????..A..H.??????7680??2012-11-29?18:34??第1次大作業(yè)k近鄰\53607935K\K近鄰法.suo
............此處省略27個(gè)文件信息
評(píng)論
共有 條評(píng)論