2 votos

Error cuadrático medio y descenso de gradiente

Estoy tratando de aprender el descenso de gradiente y en el curso de lo que estoy tratando de encontrar el óptimo m y c valor para mi modelo, para $y=mx+c$

Para ello, he trazado el MSE utilizando el siguiente código en python

   #building the model

#lets start with random value of m and c

m=0
c=0

l=0.0001 #l is the learning rate

n=float(len(X_train)) # n=number of training data, we are converting it to float since we will need to divide n

mse=[]

for i in range (0,4000):
    Y_pred=m*X_train+c

    mse.append(numpy.sum((Y_train-Y_pred)**2)/n)
    D_m= (-2/n) * sum(X_train*(Y_train-Y_pred))
    D_c= (-2/n) * sum(Y_train-Y_pred)

    m=m-l*D_m
    c=c-l*D_c

plt.plot(mse)

Y la salida que estoy obteniendo para esto es esta-->

enter image description here

Por lo tanto, parece que la PYME es más o menos la misma después de 2000, y se mantiene más o menos igual hasta 4000

Así que estoy tomando los valores m y c que he obtenido en la iteración 4000. En el gráfico, podemos ver que el valor MSE es inferior a 0,2.

Pero para mi sorpresa cuando hago

mse[-1]

Tengo un NÚMERO ENORME como respuesta

La respuesta que obtengo para mse[-1] es 12041739532.188858

Y por esta razón, mi modelo final es el que peor funciona, produciendo algo así como la salida en el conjunto de entrenamiento.

enter image description here

Será de gran ayuda si alguien puede orientarme sobre por qué ocurre esto con el valor de MSE. Gracias.

1voto

user777 Puntos 10934

Fíjate en la escala de tu gráfico. El eje vertical abarca algo así como $10^{10}$ a $10^{11}$ como se puede ver en el 1e11 impreso sobre la escala vertical. Su gráfico no muestra que el error está por debajo de 0.2 muestra que el error está por debajo de 0.2e11 .

Esto es coherente con el valor impreso para mse[-1] .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X