欢迎来到天天文库
浏览记录
ID:31458138
大小:50.00 KB
页数:4页
时间:2019-01-10
《感知机算法的c语言实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、感知机算法的C语言实现维数n=3时,分别取M=10,M=20,M=30(1)当M=10时,收敛时,迭代次数K=1,权矩阵矢量为W=[-0.478851,0.458190,-0.156789],阈值,正确分类个数为26个。正确分类率。(2)当M=20时,收敛时,迭代次数K=20,权矩阵矢量为W=[-0.348414,0.448089,0.189322],阈值,正确分类个数为28个。正确分类率为。(3)当M=30时,收敛时,迭代次数K=2,权矩阵矢量为W=[-0.305788,-0.159451,0.640561],阈值,正确分类个数为
2、30个。正确分类率为。维数n=5时,分别取M=10,M=20,M=30(1)当M=10时,收敛时,迭代次数K=2,权矢量矩阵为W=[-0.274457,0.368049,0.363532,-0.226269,0.356574],阈值,正确分类个数为26个。正确分类率为。(2)当M=20时,收敛时,迭代次数K=2,权矩阵矢量为W=[-0.222079,-0.145569,-0.102233,-0.287663,0.645226],阈值,正确分类个数为27个。正确分类率为。(3)当M=30时,收敛时,迭代次数K=2,权矢量矩阵为W=[-
3、0.190624,-0.027136,0.251925,0.309026,0.347021],阈值。正确分类个数为30个。正确分类率为。程序如下所示:#include#include#include#include#definePI3.1415926#defineCOUNT30//样本训练次数#defineDIMEN5//输入样本维度/***************函数名:ran_f函数功能:产生0到1之间均匀分布的随机数接口参数:*pdouble型指针变量函数返
4、回值adouble型****************/doubleran_f(double*p){doublea;srand((unsigned)time(NULL));*p=rand();a=*p/32767.0;return(a);}voidmain(){doublex[COUNT][DIMEN];//输入样本训练数据inty[COUNT];//训练输出intd[COUNT];//理想输出doubleW[COUNT];//权值矩阵doublethres;//阈值doubleeps=0.00001;//进行收敛判断的条件doubl
5、edeta=0.2;//学习因子doubler[1]={3.0};//随机数种子doublext[30][5];//测试数据intdt[30];//理想数据输出doublem1,m2,s,dp,ep;//dp为理想输出与实际输出的差,ep为均方误差intyt[30];//测试输出intcount=0;//测试正确的数目doubleRate;//正确分类率inti,j,k;for(i=0;i6、[j]=sqrt(-2*log(m1))*sin(2*PI*m2);//产生正态分布随机数}if(x[i][1]>=0)d[i]=1;elsed[i]=0;}srand((unsigned)time(NULL));for(j=0;j7、;j=0)y[i]=1;elsey[i]=0;dp=(double)(d[i]-y[i]);for(j=0;j8、d",k);printf("权值:");for(j=0;j
6、[j]=sqrt(-2*log(m1))*sin(2*PI*m2);//产生正态分布随机数}if(x[i][1]>=0)d[i]=1;elsed[i]=0;}srand((unsigned)time(NULL));for(j=0;j7、;j=0)y[i]=1;elsey[i]=0;dp=(double)(d[i]-y[i]);for(j=0;j8、d",k);printf("权值:");for(j=0;j
7、;j=0)y[i]=1;elsey[i]=0;dp=(double)(d[i]-y[i]);for(j=0;j8、d",k);printf("权值:");for(j=0;j
8、d",k);printf("权值:");for(j=0;j
此文档下载收益归作者所有