Regresión Lineal Datos Ecommerce

Descripción:

Se tiene datos de una compañia Ecommerce que vende ropa online. Esta empresa también tiene un servicio de consejería o personal Stylist. Se puede ordenar las ropas que se deseen, a través de App o Web.

La empresa quiere decidir si enfocarse en la experiencia de la APP o en la web, en base a los datos de clientes. La variable a predecir es Yearly Amount Spent.

Importar librerias

Importar pandas, numpy, matplotlib, y seaborn. Colocar %matplotlib inline

Obtener los datos

Se trabajará con el archivo de clientes de la compañia. La información que se tiene es de Email, Dirección, etc. Pero también tiene variables numéricas:

Lee el archivo csv (Ecommerce_Customers.csv) de clientes en un Dataframe llamado clientes.

Mostrar el encabezado de clientes, verificar sus métodos info() y describe().

Análisis Exploratorio de Datos

Para el resto del ejercicio solo usar los datos numéricos del archivo CSV.


Usar seaborn para crear un jointplot que compare las columnas Time on Website y Yearly Amount Spent. La correlación tiene sentido?

Hacer lo mismo pero con la columna Time on App.

Explora estos tipos de relaciones sobre el conjunto de datos entero. Usar pairplot para recrear el gráfico abajo.

Basado en el gráfico cual sería la características más correlacionada con Yearly Amount Spent?

Crear un grafo de modelo lineal (usando lmplot de seaborn) de Yearly Amount Spent vs. Length of Membership.

Datos de entrenamiento y prueba

Define la variable X como las características numéricas de clientes, la variable $y$ igual a la columna "Yearly Amount Spent" column.

Usar model_selection.train_test_split de sklearn para dividir los datos en conjuntos de entrenamiento y prueba. Definir el test_size=0.3 y random_state=101

Entrenamiento del modelo

Usando datos de entrenamiento

Importar LinearRegression de sklearn.linear_model

Crear una instancia de un modelo LinearRegression() llamado lm.

Entrenar(fit) lm usando los datos de entrenamiento.

Imprimir los coeficientes (parámetros del modelo)

Predecir datos de prueba

Dado el modelo entrenado, evaluar su desempeño en el conjunto de prueba.

Usar lm.predict() para predecir el conjunto X_prueba.

Crear un scatterplot de los valores de prueba reales versus valores predichos.

Evaluación del modelo

Calcula las métricas MAE, MSE, y RMSE.

Residuos

Graficar un histograma de los residuos para tener la seguridad que están normalmente distribuidos. Usar distplot de seaborn, o plt.hist().

Conclusión

Se enfocará en el app o en el website? o eso no importa y Membership Time es lo relevante?

Producir el dataframe:

Cómo se interpretan estos parámetros / coeficientes?

Debe enfocarse más en la APP o en el website?

Hay dos opciones: mejora el website para igualar el desempeño de APP, o mejora la APP dado que es la que está funcionando mejor.

Depende de otros factores de la compañia, tal vez sea necesario explorar la relación entre Length of Membership y el APP o website antes de concluir algo.