¿Cómo hacer una predicción con Regresión Lineal en Notebooks?
Este tutorial se basa en el siguiente ejemplo: link.
En la plataforma, utilizaremos los Notebooks para programar fácilmente una regresión lineal. En un post posterior, modificaremos este cuaderno para que permita parámetros y que pueda ser invocado desde una API REST.
En estadística, una regresión lineal es un enfoque lineal para modelar la relación entre una variable y una o más variables independientes.
En primer lugar, debes conectarte al Entorno CloudLab en https://lab.onesaitplatform.com y crear un usuario si no lo tienes.
Por defecto se te asignará un rol Developer, pero para usar el módulo Noteboooks se necesita un rol Analytics, este rol se da bajo petición., puedes solicitarlo desde el propio Control Panel haciendo una petición de soporte e indicando para qué quieres el rol:
Una vez en el Panel de Control de la Plataforma con este rol, puedes ir a la opción ANALYTICS TOOLS>My Notebooks:
Desde la pantalla de listado de Notebooks seleccionaré el botón + para crear un nuevo Notebook:
Le daremos un nombre al Notebook , luego accedemos a él y rellenamos los párrafos. Haciendo clic en Ctrl+Alt+T, puedes dar un título a un párrafo.
En el primer párrafo, recuperaremos el archivo de su ubicación (En este caso de ejemplo, GitHub) y echaremos un vistazo a su contenido:
%sh
mkdir /tmp/data
wget -O /tmp/data/data.csv https://raw.githubusercontent.com/chasinginfinity/ml-from-scratch/master/03%20Linear%20Regression%20in%202%20minutes/data.csv
cat /tmp/data/data.csvUna vez que hayamos descargado el archivo, importaremos las bibliotecas de Python que vamos a utilizar:
%python
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import LinearRegressionEl modelo de regresión son simplemente 6 líneas en la que cargamos el archivo mediante Pandas, se adaptan los valores entre -1 y 1, se modela la regresión y se hace una predicción sobre la variable Y:
%python
data = pd.read_csv('/tmp/data/data.csv')
X = data.iloc[:,0].values.reshape(-1,1) #values converts it into a numpy array
Y = data.iloc[:,1].values.reshape(-1,1) # -1 means that calculate the dimension of rows but have 1 column
linear_regressor = LinearRegression()
linear_regressor.fit(X,Y)
Y_pred = linear_regressor.predict(X)Por último, mostramos las variables utilizadas para la regresión y la predicción:
%python
plt.scatter(X,Y)
plt.plot(X,Y_pred, color='red')
plt.showSi vamos al último párrafo y seleccionamos Enlazar este párrafo, aparece una URL que podrás incrustar como iFrame en cualquier web: