#Prueba en env_python38 import numpy as np from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt from sklearn.neural_network import MLPRegressor #Definimos la función def y(x): return (np.sin(3*np.pi*x) + np.cos(2*np.pi*x)) #Definimos los valores (-l,+l,discretización) x_vals = np.arange(-1,1,0.005) y_vals = y(x_vals) #Normalizamos los datos y_max = y_vals.max() y_vals /= y_max #Dividimos el conjunto de datos en train y test x_train, x_test, y_train, y_test = \ train_test_split(x_vals, y_vals, test_size=0.20) print("Puntos para Entrenar: ",x_train.shape, "Puntos para Pruebas: ",x_test.shape) #Modificamos el shape de las variables #para que sean de la forma: (#datos,1) x_train = x_train.reshape(-1,1) x_test = x_test.reshape(-1,1) print("Puntos para Entrenar: ",x_train.shape, "Puntos para Pruebas: ",x_test.shape) #Creamos la Red Neuronal mlp = MLPRegressor( hidden_layer_sizes=[10], #hidden_layer_sizes=[20,20], #hidden_layer_sizes=[40,40], #hidden_layer_sizes=[40,40,40], max_iter=1000, ) #Estimamos los parámetros mlp.fit(x_train,y_train) #Realizamos las predicciones predictions = mlp.predict(x_test) #Mostramos la función plt.figure() plt.plot(x_train, y_train, 'b.',label="train") plt.plot(x_test, y_test, 'go',label="test") #Mostramos las predicciones plt.plot(x_test, predictions, 'rx',label="predictions") plt.legend() plt.show()