zoukankan      html  css  js  c++  java
  • 单层感知机实现或运算

    慢慢发现,百度上很多东西都没有,还是得自己去写,代码很简单,慢慢看就容易看懂,建议看之前,先看这篇文章

    转载请注明:http://www.cnblogs.com/gambler/p/9039607.html

    #include<bits/stdc++.h>
    using namespace std;
    #define MAX_SIZE 1000000
    
    //或运算结果图
    //0 0 0
    //1 0 1
    //0 1 0
    //1 1 0
    //
    int expdata[MAX_SIZE][2];//训练数据
    double w[2];//权值
    double jud;//阈值
    double spe;//训练速率
    int    Y=0;//实际输出值
    int    M;//理论输出值
    int    N;//表示有多少组数据
    void init(void){//初始化数据
        cout<<"请输入初始权值:"<<endl;
        cin>>w[0]>>w[1];
        cout<<"请输入初始阈值和训练速率:"<<endl;
        cin>>jud>>spe;
        cout<<"开始训练!"<<endl;
        freopen("input.txt","r",stdin);
        cin>>N;
        int j;
        for(j=0;j<N;j++){
            cin>>expdata[j][0]>>expdata[j][1];
        }
    }
    
    int T(int a,int b){
        if(a==1||b==1){
                return 1;
        }else{
            return 0;
        }
    }
    
    //加权修正公式为:w[i]=w[i]+spe*(T-Y)*x
    void weighteinterpolation(int a,int b){
        w[0]=w[0]+spe*(M-Y)*a;
        w[1]=w[1]+spe*(M-Y)*b;
    }
    
    void display(int a){
        cout<<""<<a+1<<"次训练:"<<endl;
        cout<<"输入:  X0="<<expdata[a][0]<<"	X1="<<expdata[a][1]<<endl;
        cout<<"权值:  w[0]="<<w[0]<<"	w[1]="<<w[1]<<endl;
        cout<<"理论值:M="<<M<<"	s实际值="<<Y<<endl;
    
    }
    
    void trainperceptron(){//进行训练
        int result=0;
        int i;
        for(i=0;i<N;i++){
            result=w[0]*expdata[i][0]+w[1]*expdata[i][1]-jud;
            if(result<=0){
                Y=0;
            }else{
                Y=1;
            }
            M=T(expdata[i][0],expdata[i][1]);
            if(T(expdata[i][0],expdata[i][1])!=Y){
            weighteinterpolation(expdata[i][0],expdata[i][1]);
            }
            display(i);
        }
    
    }
    
    void show(){
        cout<<"训练结束!!!"<<endl;
        cout<<"训练后的权值是:"<<endl;
        cout<<"w[0]:"<<w[0]<<"	w[1]:"<<w[1]<<endl;
    }
    
    int main(){
        init();
        trainperceptron();
        show();
    }
  • 相关阅读:
    RSA
    DES
    MD5
    增删改查
    [转]数据绑定之DataFormatString
    分页通用存储过程(未验证)
    浅谈sql中的in与not in,exists与not exists的区别
    [转]order by 1是什么意思?
    bak骗子公司
    Performance Considerations for Entity Framework 4, 5, and 6
  • 原文地址:https://www.cnblogs.com/gambler/p/9039607.html
Copyright © 2011-2022 走看看