配色: 字号:
感知器算法C代码
2012-03-28 | 阅:  转:  |  分享 
  
感知机C算法实现

/Author:kymoCreatedTime:?2011-5-2321:14:48FileName:Preceptron.cpp/#include#include#include#include#include#include#include#include#includeusing?namespace?std;#defineSZ(v)((int)(v).size())#definemax1000#defineN100struct?node{????int?Element[N];//模式类元素????int?Sample;//类别}Node[max];int?n;//模式类的维数int?m;//每个模式类的元素个数node?W_vector;//初始权向量node?Mid_vector[N];//修正后的权向量node?tem[N];void?Large_vector(node?X[]){//样本的增广????for(int?j?=?0;j?<=??2??m?-?1;j?++){????????X[j].Element[n]?=?1;????}}void?Init(node?Quan){//初始权向量的初始化????for(int?j?=?0;j?<=?n;j?++){????????Quan->Element[j]?=?1;????}}int?Mul_vector(node?a,node?b){//向量相乘,用以计算中间修正过程????int?Product?=?0;//乘积????for(int?j?=?0;j?<=?n;j?++){????????Product?+=?a.Element[j]??b.Element[j];????}????return?Product;}node?Add_vector(node?a,node?b){????node?Differ;????for(int?j?=?0;j?<=?n;j?++){????????Differ.Element[j]?=?a.Element[j]?+?b.Element[j];????}????return?Differ;}node?Dec_vector(node?a,node?b){????node?Differ;????for(int?j?=?0;j?<=?n;j?++){????????Differ.Element[j]?=?a.Element[j]?-?b.Element[j];????}????return?Differ;}bool?Judge_identical(node?X[]){//判断迭代过程中是否出现权向量都相同????int?flag??=?0;//判断标志????for(int?l?=?0;l?<=?2??m?-?1;l?++){????????for(int?s?=?l?+?1;s?<=?2??m?-?1;s?++){????????????for(int?t?=?0;t?<=?n;t?++){????????????????if(X[l].Element[t]?!=?X[s].Element[t]){????????????????????return?false;????????????????}????????????}????????}????}????return?true;}void?Preceptron(node?X[],node?W[]){//感知器算法????int?i,j,l;????int?cum?=?0;????do{????????int?ags;????????for(i?=?0;i?<=?2??m?-?1;i?++){????????????ags?=?Mul_vector(W[cum],X[i]);//求修正判断数????????????if(i?<=?m?-?1){//如果为第一类????????????????if(ags?>?0){//结果大于0,则不用修正????????????????????tem[i]?=?W[cum];????????????????????cout<<"不修正"<<"W"<>n;????cout<<"请输入每个模式类的样本数(这里按照两类w1,w2):?";????cin>>m;????for(i?=?0;i?<=?2??m?-?1;i?++){????????for(j?=?0;j?<=?n?-?1;j?++){????????????cin>>Node[i].Element[j];????????}????}????Large_vector(Node);????Init(&Mid_vector[0]);????Preceptron(Node,Mid_vector);????return?0;}

























献花(0)
+1
(本文系zhenxin608首藏)