Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Tarea Graficas Error vs Numero de puntos segun el grado de polinomio
- import numpy as np
- import matplotlib.pyplot as plt
- num_points_train = 10
- #Generamos un vector que va de 0 a 1, asi funciona random
- x = np.random.random(num_points_train)
- y = np.sin(2*np.pi*x)
- # El 0.5 la normal, y el 0.1 desviacion estandar
- noise = np.random.normal(0.5,0.1, num_points_train)
- noise = noise - 0.5 #Es para regresar el noise al origen
- y_noisy = y + noise
- pol_degree = 3
- pos=0
- errores=[]
- for j in range(3):
- pos=pos+1
- poly = np.polyfit(x, y_noisy, pol_degree) #Genrea un vector con los parametros de mi polinomio
- f = np.poly1d(poly)
- #Grafica del error vs puntos
- num_points_test = 0
- puntos = []
- error2 = []
- for i in range(10):
- num_points_test = num_points_test+10
- puntos.append(num_points_test)
- x_test = np.linspace(0, 1, num_points_test)
- y_test = np.sin(2*np.pi*x_test)
- y_new = f(x_test)
- #Calculo del error
- error = (y_test-y_new)**2
- error1 = np.mean(error)
- error_RMS = np.sqrt(error1/num_points_test)
- error2.append(error_RMS)
- tam=len(error2) #Llenamos un vector con todos los errores
- for k in range(0,tam):
- errores.append(error2[k])
- plt.figure(1) #Mantiene las 3 graficas en una sola figura
- plt.subplot(1,3,pos) #La posición va aumentando en el for y genera el numero de graficas
- plt.plot (puntos, error2, 'ro')
- plt.ylabel ('Error')
- plt.xlabel ('Numero de Puntos')
- pol_degree = pol_degree + 3 #El grado del polinomio aumenta de 3 en 3
- plt.show ()
- merror=min(errores)
- for i in range(0,len(errores)):
- if(errores[i] == merror):
- pos=i
- print(merror)
- print(pos)
- if pos < 10:
- print ("El menor error se obtiene con un polinomio grado %d" % (3))
- elif (pos > 10) and (pos <20):
- print ("El menor error se obtiene con un polinomio grado %d" % (6))
- else:
- print ("El menor error se obtiene con un polinomio grado %d" % (9))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement