Regresión lineal simple utilizando #tflearn

Tiempo atrás les compartí una pequeña implementación en donde se mostraba un ejemplo de regresión lineal univariable, utilizando el mecanismo puro de #tensorflow. En esta oportunidad la implementación se comparaba con la predicción tradicional que realizan soluciones como Google Spreadsheet. Como muchas veces, utilizar aprendizaje automático, incluso para modelo relativamente simples es un desafío,  tratando mitigar esto, hoy les quiero compartir esta misma actividad implementada de manera similar, pero utilizando #tensorflow y una librería de alto nivel #tflearn [creada por sobre #tensorflow]. Veamos si se percibe con menos complejidad.

Versión de #tensorflow utilizada: 1.2.1

Recordemos que el objetivo es predecir la altura de los niños basada en su edad.

Veamos la implementación completa, ustedes mismos pueden comparar la secuencia de pasos anteriormente implementada y esta nueva versión utilizando #tflearn.


De esta simple implementación podrían prestar atención a estos 3 momentos:

1. Definición del modelo de regresión:

regression = tflearn.regression(linear, optimizer='sgd', loss='mean_square', metric='R2', learning_rate=0.01)
2. Entrenamiento del modelo:

m.fit(variables[0], variables[1], n_epoch=1500, show_metric=True, snapshot_epoch=False)

3. Predicción:

print("\n Child height predicted for 3.5 and 7 years")
print(m.predict([3.5, 7]))

En este caso estamos utilizando, función de optimización stochastic gradient descent, la función de costo mean squared error, un ratio de aprendizaje de 0.01 y 1500 epocs/épocas/iteraciones.

Veamos el resultado de la ejecución:

Fig.1 ejecución del ejemplo
Veamos que dice #TensorBoard sobre la ejecución de este modelo:

Fig. 2 Representación del gráfico en TensorBoard
También podemos analizar la función de costo y su proyección pasando las epocs:
Fig.3 Análisis de la función de costo en TensorBoard
Seguramente has encontrado más simple este modelo de implementación. 

Licencia Creative Commons
Regresión lineal simple utilizando #tflearn por Nicolas Bortolotti se distribuye bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.

Entradas más populares de este blog

7 arquetipos #Polymer 1.0 puntos esenciales prácticos

Iniciando la representación de una mobile-web-page pensando en el rendimiento - Parte 1

Spreadsheet-2-Polymer un newsletter particular