La Red de Conocimientos Pedagógicos - Aprendizaje de redacción de artículos/tesis - Investigación sobre la previsión de redes neuronales RBF

Investigación sobre la previsión de redes neuronales RBF

Le brinda un programa de predicción de RBF y puede modificarlo de acuerdo con el programa.

Borrar todo;

x =[];

t =[];

x(1)= 0,22;

p>

k = 4;

n = 900

N = 400

Se genera una secuencia lógica, siendo la primera 100 eliminados.

Para i=1: n

x(I 1)= k * x(I)*(1-x(I));

Fin

x(1:800)= x(101:900);

Utilice los primeros 400 datos de x para entrenar la red neuronal RBF

Para j =1 :N

P(1:8,j)=X(j:j7)';

Fin

t = X(9:408 ) ;Datos de destino

net1=newrb(P, T, 0.001, 1); Entrenamiento de red neuronal RBF

n 1 = 300;

Seleccione 400 de Datos X -700 para pruebas de redes neuronales RBF.

Para j=1: N1

P1(1:8,j)= X(j 400:j 7 400)';

Fin p>

t 1 = con una red simulada.

e = t 1-a; error de predicción de un paso

Mse = sqrt(e*e')/size(e, 2) error cuadrático medio

Haz un dibujo para representar los resultados de la simulación

Figura (2)

plot(X(1:200));

Eje ([1 200 -0.1 1.1]);

Title('secuencia del caos logístico');

xlabel(' t ');

ylabel('magnitud');

p>

Figura (3)

plot(1:300, T1, ' b ', 1:300, a, ' r * '); >

H = Leyenda ('Secuencia del caos', 'Valor de predicción de un paso de la red neuronal RBF');

Eje ([1 300-0.5 1.5]);

Continuar

Título ('Secuencia del caos y valor de predicción de un paso');

xlabel(' t ');

ylabel('magnitud');

Figura (4) ;

plot(e,' b-');

Eje([1 300-0.02 0.02]);

Title('Error de predicción e');

xlabel(' t ');

ylabel('magnitud'); Agrupación de k-means:

Uno de los algoritmos RBF más básicos, el algoritmo de aprendizaje utiliza funciones pseudoinversas.

Borrar todo ;

Cerrar todo;

clc

Definir las variables utilizadas

r = 1 Radio del dominio, configuración manual

nodenum = 0; el número de nodos de capa ocultos está determinado por los datos reales y r***

datos de entrada =[]; "; ruta de almacenamiento de los datos de entrada originales

nodo de salida =[]; matriz de entrada de capa oculta

netout =[]; matriz de salida de red

peso=[ ]; genera la matriz de peso, que es el único peso.

núm de entrada = 0; porcentaje de dimensión de entrada

núm de salida = 0; dimensión de salida

centro =[]; num train = 0; número de muestras de aprendizaje

fila = 0; número de muestras de aprendizaje

sim fila = 0; porcentaje de todas las muestras

numtest = 0; ; número de muestras de generalización

Fuerza = 1; el rango utilizado en la normalización suele ser 1.

yout =[]; valor esperado de la salida

Inicialización de variables

r = 1;

número de entrada = 9;

ruta de entrada = 'e:\yinjia\data\años un dat';

número de salida = 1;

simrow. = 290

source=load(input path);

Guarde una copia del código fuente como preparación para la desnormalización.

copysource = fuente

Procesamiento de normalización

fuente=normalize(fuente, intensidad);

yout = fuente(entrada número 1: número de entrada de fila sim);

inputdata=phasespace(fuente, número de entrada, fila sim);

fila = 250

numtrain = fila

numtest = sim row-row;

Establezca la variable de entrada de la primera persona en el centro inicial

Después de la inicialización, la posición del centro no cambiará.

center=inputdata(1,:)';

Se inició un clúster simple.

La idea básica es: dado un radio de vecindad fijo, los puntos dentro del radio de vecindad del punto central se consideran como

puntos en la vecindad para puntos fuera del radio. Utilice el; primer punto que no esté dentro del radio como el nuevo punto central.

Diseña una función iscenter para calcular si un punto es el punto central.

Para el paso=2: línea

if iscenter(inputdata(step,)',center,r)

center=[center inputdata(step,) '];

nodenum = nodenum 1;

finalizar este fin es el centro (datos de entrada (paso,))

El final del paso = 2 este end :row

Porcentaje de finalización de agrupación.

Preparar el cálculo directo de la red neuronal.

[fila central nodenum]= tamaño(centro);

Inicialización de red

nodeout=zeros(fila,nodenum);

netout=zeros(fila, número de salida);

peso=zeros(nodenum, número de salida);

Cálculo de red

Para el paso=1: línea

Para el paso 1=1: nodenum

nodeout(paso, paso 1) = GaussRadialBasisFunction(datos de entrada(paso,:)',. ..

centro(:, paso1), r);

finalizar este final para el paso=1: nodenum

finalizar este final para el paso=1: fila

Utilice pseudoinverso para calcular el peso

peso = pinv(node ​​​​out)* yout(1:250);

Porcentaje utilizado para la simulación

Para el paso=1: simrow

Para el paso 1=1: nodenum

nodeout(paso, paso 1)= GaussRadialBasisFunction(input data(step,:)',...

center(:, step1), r);

end El final de este paso es 1= 1: nodenum

finalice este extremo para el paso = 1: fila sim

mydata = nodeout * peso

Desnormalización

mydata=unnomal (misdatos, fuente de copia, fuerza);

datos rl = copiar fuente (entrada número 1: entrada número fila sim);

trazado(datos rl espera); , ' r ');

Calcular una función de evaluación

rmsetest =(norm(rl data(num train 1:simrow)-my data(num train 1:simrow)). ..

^2/(numtest-1))^0.5

Hay varios programas pequeños que deberías poder escribir tú mismo.