Laboratorio: semana dos
  1. Descargar el dataset de IMDB de Kaggle aquí:
  1. Leer del archivo los siguientes datos
  • actor_1_facebook_likes
  • actor_2_facebook_likes
  • actor_3_facebook_likes
  • director_facebook_likes
  • budget
  • movie_facebook_likes
  1. Normalizar los datos dividiendolos por el número máximo de esa variable
  • actor_1_facebook_likes
  • actor_2_facebook_likes
  • actor_3_facebook_likes
  • director_facebook_likes
  • budget
  • movie_facebook_likes
  • Para aquellos datos en los que se tenga todos los valores definidos
  1. Graficar todas las variables contra movie_facebook_likes
  1. Hacer una regressión lineal usando gradient descent para la variable movie_facebook_likes, pueden basar el código en la siguiente implementación (comentar código):

  • def gradientDescent(x, y, theta, alpha, m, numIterations):
  •     xTrans = x.transpose()
  •     for i in range(0, numIterations):
  •         hypothesis = np.dot(x, theta)
  •         loss = hypothesis - y
  •         cost = np.sum(loss ** 2) / (2 * m)
  •         print("Iteration %d | Cost: %f" % (i, cost))
  •         gradient = np.dot(xTrans, loss)
  •         theta = theta - alpha * gradient
  •     return theta

  1. Graficar la evolución de los pesos para las dimensiones, tomar W_0  como intersección con el eje, y el peso de budget para graficar líneas: 
  • budget
  • movie_facebook_likes
  1. Modificar el código para actualizar los pesos por cada 100 ejemplos (minibatch)
  1. Graficar la evolución de los pesos para las dimensiones, , tomar W_0  como intersección con el eje, y el peso de budget para graficar líneas: 
  • budget
  • movie_facebook_likes