⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perceptron.cs

📁 多个感知器分类,属于人工智能的神经网络的
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace homework1
{
    class perceptron
    {
        public double[] w;
        public double rate;
        public int recNum;
        public int adjustNumber;
        private double[] inputs;
        private int result, returnValue;

        public perceptron(int Num)
        {
            inputs = new double[3];
            inputs[0] = 1;
            inputs[1] = 0;
            inputs[2] = 0;
            result = returnValue = 0;
            w = new double[3];
            w[0] = 1;
            w[1] = 1;
            w[2] = 1;
            rate = 1;
            recNum = Num;
            adjustNumber = 0;
        }
        public void reset()
        {
            inputs[0] = 1;
            inputs[1] = 0;
            inputs[2] = 0;
            result = returnValue = 0;
            w[0] = 1;
            w[1] = 1;
            w[2] = 1;
            rate = 1;
            adjustNumber = 0;
        }
        public void setRate(double dr)
        {rate = dr;}
        public void train(ref ArrayList examples)
        {
            bool over = false;
            while(!over)
            {
                over = true;
                foreach(inputVector example in examples)
                {
                    setInput(example);
                    returnValue = computReturn();
                    if(returnValue != result)
                    {
                        adjust();
                        adjustNumber++;
                        over = false;
                    }
                }   
            }
        }
        public int perdicted(ref inputVector exam)
        {
            return computReturn(ref exam);
        }
        public void randomSetInitW(double a,double b,double c)
        {
            w[0] = a;
            w[1] = b;
            w[2] = c;
        }
        private void setInput(inputVector vect)
        {
            inputs[1] = vect.x;
            inputs[2] = vect.y;
            if (recNum == vect.result)
                result = 1;
            else
                result = 0;
        }
        private void adjust()
        {
            for (int i = 0; i < 3;i++ )
            {
                w[i] += rate * inputs[i] * (result - returnValue);
            }
        }
        private int computReturn(ref inputVector exam)
        {
            double ret = w[0] + exam.x * w[1] + exam.y * w[2];
            return ret > 0 ? 1 : 0;
        }
        private int computReturn()
        {
            double ret = inputs[0] * w[0] + inputs[1] * w[1] + inputs[2] * w[2];
            return ret > 0 ? 1 : 0;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -