Creando Nuestro Primer Modelo de Machine Learning (Aprendizaje Automático) con TensorFlow – Parte 1

5 minuto(s)

Demo

En el área de Machine Learning (Aprendizaje Automático), se suelen utilizar modelos para determinadas tareas como las predicciones, este tutorial es para iniciar o para los que se inician en el trabajo con TensorFlow, para poder trabajar en este proyecto debes saber el Lenguaje de Programación Python, terminado este tutorial, podrás crear modelos más complejos en TensorFlow, vamos con este tutorial.

Partes

  • Parte 1 
  • Parte 2 (Final – Código Fuente en GitHub) 

Antes de continuar te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “Razones Por Las Cuales Te Cuesta Aprender A Programar”:

Spotify: Sound Cloud:

Bien ahora continuemos con el Post: Creando Nuestro Primer Modelo de Machine Learning (Aprendizaje Automático) con TensorFlow – Parte 1. 

TensorFlow es un servicio que nos permite trabajar con Machine Learning y hacer predicciones mediante modelos, existen varias herramientas que nos permiten trabajar con TensorFlow, yo usaré Jupyter Notebook con el Lenguaje de Programación Python.

Proyecto

Mi proyecto va ser el siguiente, supongamos que un cliente, el cual es dueño de una plataforma en línea para ver series, películas, documentales, novelas, etc., similar a Netflix, me proporciona el monto que gasto en marketing en determinados últimos 6 meses junto con la cantidad de suscriptores que gano para su plataforma.

Mes Monto invertido en Marketing Suscriptores ganados
Febrero $ 70 177
Marzo $ 85 209
Abril $ 96 234
Mayo $ 45 84
Junio $ 50 158
Julio $ 35 92

Puedes ver en la tabla anterior que existe una relación o lógica entre el monto invertido y los suscriptores que se ganaron para la plataforma del cliente similar a Netflix, cuando se invierte un monto mayor en marketing, aumenta la cantidad de suscriptores.

Y lo que me pide el cliente es encontrar esta relación o lógica entre el monto invertido en marketing y la cantidad de suscriptores ganados para la plataforma, para hacer esto haremos uso de Machine Learning (Aprendizaje Automático).

Preparando los datos

Comenzaré importando TensorFlow, NumPy y Matplotlib


Ahora usaré los datos que me entrego el cliente, estos datos son los montos invertidos por mes y los suscriptores ganados a su plataforma similar a Netflix y para verificar si estoy leyendo los datos, los imprimo en texto.


Ahora crearé un gráfico haciendo uso de Matplotlib, mediante este gráfico podré comprender la relación entre  las variables monto_invertido y suscriptores_ganados.


Luego de ejecutar el código anterior, obtengo mi gráfico con los datos respectivos.

En el gráfico anterior puedes ver que al inicio la linea de puntos no es recta y al cuarto mes recién la línea empieza a ser recta, esto quiere decir que en los primeros meses durante el marketing, podrían haber estado probando y buscando el camino correcto en la publicidad, para luego en el cuarto mes lograr que se encamine de manera lineal el marketing.

Ahora voy a separar los datos en datos de entrenamiento y de prueba, haré uso de scikit-learn que nos permite hacer análisis predictivo de los datos del cliente, los métodos y elementos que usaré son de scikit-learn.

Los datos de entrenamiento se utilizan para entrenar a nuestro modelo y los datos de prueba los mantendremos por separado y luego los usaremos para verificar el rendimiento de nuestro modelo al comparar la etiqueta real de nuestros datos de prueba con la etiqueta predicha por nuestro modelo para los datos de prueba.

Modelo

Paso seguido crearé mi modelo, este modelo lo haré lo mas simple posible, lo importante es que logre su cometido, ya que el problema no es tan complicado, esta red solo requerirá de una capa con una sola neurona.

Voy a construir una capa con el nombre de capa_a, esta capa la crearé instanciando tf.keras.layers.Dense utilizando la siguiente configuración:

input_shape=[1]

Con este elemento especificamos que la entrada a esta capa sea un valor único, esto quiere decir que la forma es una matriz unidimensional con un miembro, ya que esta es la primer y única capa, la forma de entrada es la forma de entrada de todo el modelo, el valor único es un número de tipo floating-point (numero de punto flotante) que representa a monto_invertido.

units = 1

Con este valor especificamos el número de neuronas en la capa, el número de neuronas define cuantas variables internas tiene la capa para tratar de aprender a resolver el problema. Ya que esta es la capa final, también es el tamaño de salida del modelo, un único valor flotante que representa los nuevos suscriptores ganados. En una red de varias capas, el tamaño, y la forma de la capa deberían coincidir con la input_shape de la siguiente capa.


Luego de definir la capa, voy a ensamblarla en un modelo, la definición del modelo secuencial, toma una lista de capas como argumentos que especifican el orden de cálculo desde la entrada hasta la salida. El siguiente modelo tiene una sola capa llamada capa_a.


En muchos casos verás capas definidas dentro de la definición del modelo, como el siguiente ejemplo.


Bueno hasta aquí terminamos la primera parte del tutorial en donde creamos la capa y el modelo para nuestro proyecto.

Ten Paciencia, lo que quiero es que entiendas todo el proceso para Crear este Proyecto y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje. 

Nota (s)

  • En la siguiente parte compilaremos y entrenaremos el modelo, asimismo mostraremos estadísticas del entrenamiento del modelo, usaremos nuestro modelo para predecir datos y verificaremos la precisión de nuestro modelo.
  • El código de los elementos mencionadas en este capitulo del tutorial pueden cambiar, esto no depende de nosotros, si no de las empresas que dan soporte a Jupyter Notebook y Python, que suele cambiar sus elementos en futuras versiones.
  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.