资源简介
模式识别大作业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.em
文件 472 2012-11-29 17:42 第1次大作业k近邻\53607935K\Debug\K近邻法.exe.em
文件 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个文件信息
- 上一篇:C++调用C#库例程
- 下一篇:VC MFC操作Excel 20个 源代码合集
相关资源
- 深度学习之卷积神经网络CNN模式识别
- 模式识别课程作业:C均值(k_means)聚
- 条形码识别系统c语言版
- 指纹模式识别系统算法及实现源码
- Visual C++指纹模式识别系统算法与实现
- Visual C++数字图像模式识别技术详解
- Visual C++数字图像模式识别技术详解源
- visual c++数字图像模式识别技术详解
- K-Means K均值C语言实现 里面有个小
- 一个步态识别 软件
- K均值分类法
- 模式识别:模糊C均值算法实现iris数据
- K近邻算法c/c++
- 最小错误率的贝叶斯分类算法之性别
- 模式识别ISODATA算法C程序实现
- Visual C++数字图像模式识别典型案例详
- 图像模式识别_VC++技术实现_源代码_杨
评论
共有 条评论