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

📄 category.cpp

📁 7类别的 Adaline 神经网络的模式识别程序, 可自行变换或者定义要分类的目标和向量的长度
💻 CPP
字号:
#include <iostream.h>
#include <cmath>
#include "Catagory.h"

Category::Category()
:bias(0)
{
for( int i=0; i< N_Category; i++ )
desire_output[i] = 0;
for(  i = 0; i < Vector_Long; i++ )
	 vector[i] = 0;	
}

void Category::Setcategory(double a[Vector_Long], double b, double output[7])
{
	 for( int i = 0; i < Vector_Long; i++ )
	 vector[i] = a[i];
     bias = b;
	 for(  i = 0; i < N_Category; i++ )
     desire_output[i] = output[i];
}

double Category::getvector( int i )
{ 
	return vector[i];
}

double Category::getbias()
{
	 return bias;
}
 
double Category::getdesire_output( int i )
{
	 return desire_output[i];
}

void Category::setbias(double Bias)
{
	bias = Bias;
}

void Category::setvector( int i, double elem )
{
	vector[i] = elem;
}
/*
void Category::Training(Category A, Category weight[N_Category], int &g) 
{
    double sum[N_Category];
    double vec1[Vector_Long];
    double bias1;
    double desire[N_Category];
    double W1[N_Category][Vector_Long];
    double Bias[N_Category];
	double alpha = 0.5;
	double delta[7];
	for (int f = 0; f < 7;f++)
	{
	    delta[f]=desire[f]-sum[f];
	}
    for(int i = 0; i < Vector_Long; i++ )
	{
        vec1[i] = A.getvector(i);
	}
    bias1 = A.getbias();

    for (int j=0; j < N_Category; j++)
	{
	    desire[j]=A.getdesire_output(j);
	}

    for ( j=0; j < N_Category; j++)
	{
	     for(int i = 0; i < Vector_Long; i++ )
		 { 
             W1[j][i] = weight[j].getvector(i);
		 }
	}
    for ( j=0; j < N_Category; j++)
	{
         Bias[j] = weight[j].getbias();
	}
 
    for ( j = 0; j < N_Category; j++)
	{  
	    sum[j] = 0;
        for (int i=0; i < Vector_Long; i++)
		{
            sum[j] += vec1[i]* W1[j][i] ;
		}
        sum[j] += bias1* Bias[j]; 
	   // cout<<"  *****  "<<sum[j]; 
	}
    for ( j=0; j < N_Category; j++)
	{ 
        if (sum[j] < 0)
        sum[j] = -1;
        else if (sum[j] > 0) 
            sum[j] = 1;
        else 
	        sum[j] = desire[j];
	}
    for ( j = 0; j < N_Category; j++)
	{ 
        if (sum[j] != desire[j]) 
		{  
	       for (int i = 0; i < Vector_Long; i++)
		   {
	           W1[j][i] += alpha * vec1[i] * desire[j];
		   }
	       Bias[j] += alpha * bias1 * desire[j];
	       g++;
		}
	}
    for ( j=0; j < N_Category; j++)
	{
	    for(int i = 0; i < Vector_Long; i++ )
		{ 
            weight[j].setvector(i, W1[j][i]);
		}
	}
    for ( j=0; j < N_Category; j++)
	{
     weight[j].setbias(Bias[j]);
	}
}
*/

⌨️ 快捷键说明

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