Función de costo (implementación de Python)
En primer lugar, necesitamos saber a qué es igual ?(?(?)). Significa θ^T multiplicado por X. X es un vector si se expresa en una ecuación, es θ0. ?0 + θ1? 1 + θ2?2+...+θ Por supuesto, θ también es un vector y es unidimensional. Hay una biblioteca en Python llamada numpy, que se especializa en operaciones matriciales. Primero inicializamos X, y y θ
Primero, inicializamos aleatoriamente. No debería ser necesario hablar de estas cosas. randint es un número entero aleatorio, rand es un decimal y el parámetro bajo representa. el límite superior de su número aleatorio es la dimensión. Una vez completada la inicialización, simplemente comience a calcular.
Operaciones en la fórmula de suma
( (h(θ) = X theta^T) - y )^2*
Creo que estas no deberían. la dificultad es (X * theta.T - y). Para cuadrado, use la función power() de np.
inner = np.power((X * theta.T - y),2), el segundo parámetro es el número cuadrado
Entonces podemos calcular el exterior de la fórmula de suma , esta m representa el número de filas de la matriz X, correspondiente al número de vectores X
,
np.sum(inner,axis=None)
Finalmente, simplemente divídalo por el doble del número de x vectores, que es 1 / len (X) * 2. ¿Por qué es el doble del número? Porque calcula la derivada parcial, es 2. Bien, vamos a ordenarlos. Escríbelo como una función
.