<jupyter_start><jupyter_text>TAREA 1: ENTENDER EL ENUNCIADO DEL PROBLEMA Y EL CASO PRÁCTICO       <img src="https://drive.google.com/uc?id=1l7bHyrjzq839zVZE06cfdDksLabCN2hg"         alt="Fashion MNIST sprite"  width="1000">        Figura 1. Prediccion de Ventas Futuras usando Series Temporales   ![alt text](https://drive.google.com/uc?id=179967pYtO8DZkFIiqkzKeDXpzKF13KE9) ![alt text](https://drive.google.com/uc?id=1MHVbje9FNlAbo-LOMlCvSYfpgzW7PQ4y) ![alt text](https://drive.google.com/uc?id=1DC-hoQNAxfDXEn91_BTF2B8qH904N8yq) ![alt text](https://drive.google.com/uc?id=1sM7eT88kpVmNMl7wJy0Jq0X_w-r783JF) ![alt text](https://drive.google.com/uc?id=1E6qCyK6SjFany6QsXw8lUc77CSOgjTkj) 2: IMPORTAR LAS LIBRERÍAS Y LOS DATASETS<jupyter_code>import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import datetime
# Necesitarás montar tu disco usando los siguientes comandos:
# Para obtener más información sobre el montaje, consulta esto: https://stackoverflow.com/questions/46986398/import-data-into-google-colaboratory<jupyter_output><empty_output><jupyter_text>TAREA 2.1: IMPORTAR EL DATASET DE VENTAS<jupyter_code># Debes incluir el enlace completo al archivo csv que contiene tu conjunto de datos
sales_train_df.head(5)
# Casi un millón de observaciones
# 1115 tiendas únicas 
# Notemos que las ventas es la variable objetivo (la que intentamos predecir)

# Id:  ID de transacción (combinación de la tienda y la fecha)
# Store: identificador único de la tienda
# Sales: ventas diarias, esta es la variable objetivo
# Customers: número de clientes de un día dado
# Open: Booleano para indicar si la tienda estaba abierta o cerrada (0 = cerrada, 1 = abierta)
# Promo: describe si la tienda tenía algún tipo de promoción ese día o no
# StateHoliday: indica si el día era festivo o no (a = vacaciones públicas, b = vacaciones de Pascua holiday, c = Navidades, 0 = No era festivo)
# SchoolHoliday: indica si (Store, Date) se ve afectado por el cierre de las escuelas públicas
# Fuente original de los datos: https://www.kaggle.com/c/rossmann-store-sales/data



# 9 columnas en total 
# 8 características, cada una con 1017209 puntos de datos
# 1 variable objetivo (ventas)
# Cantidad de ventas promedio por día = 5773 Euros, ventas mínimas por día = 0, ventas máximas por día = 41551
# Número medio de clientes = 633, número mínimo de clientes = 0, número máximo de clientes = 7388<jupyter_output><empty_output><jupyter_text>TAREA 2.2: IMPORTAR LA INFORMACIÓN SOBRE LAS TIENDAS<jupyter_code># StoreType: categoría que indica el tipo de tienda (a, b, c, d)
# Assortment:  a = básico, b = extra, c = extedido
# CompetitionDistance (en metros): distancia a la tienda de la competencia más cercana
# CompetitionOpenSince [Mes/Año]:  fecha en que abrió la competencia
# Promo2: Promo2 es una promoción continuada y consecutiva en algunas tiendas (0 = la tienda no participa, 1 = la tienda participa)
# Promo2Since [Año/Semana]: fecha en la que la tienda empieza a participar en la Promo2
# PromoInterval: describe los intervalos consecutivos donde la Promo2 empieza, indicando los meses en los que empieza la misma. P.e. "Feb,May,Aug,Nov" significa que cada nueva ronda de promoción empieza en Febrero, Mayo, Agosto, Noviembre de cualquier año de esa tienda


# Hagamos lo mismo con los datos store_info_df
# Hay que tener en cuenta que el data frame anterior incluye las transacciones registradas por día (en millones)
# Este data frame solo incluye información sobre las 1115 tiendas exclusivas que forman parte de este estudio
# De media, la distancia de la competencia es de 5404 metros (5,4 kms)<jupyter_output><empty_output><jupyter_text>TAREA 3: EXPLORAR EL DATASET TAREA 3.1: EXPLORAR EL DATASET DE VENTAS<jupyter_code># Veamos si nos faltan datos, ¡esperemos que no sea así!

# Promedio de 600 clientes por día, el máximo es 4500 (¡tenga en cuenta que no podemos ver el valor atípico en 7388!)
# Los datos se distribuyen por igual en varios días de la semana (~ 150000 observaciones x 7 días = ~ 1,1 millones de observaciones)
# Las tiendas están abiertas ~ 80% del tiempo
# Los datos se distribuyen por igual entre todas las tiendas (sin sesgo)
# La promoción # 1 se ejecutó aproximadamente el 40% del tiempo
# Ventas promedio alrededor de 5000-6000 Euros
# Las vacaciones escolares duran alrededor del 18% del tiempo


# ¡Veamos cuántas tiendas están abiertas y cerradas!

# Contemos el número de tiendas que están abiertas y cerradas
# nos quedamos solo con las tiendas abiertas y eliminamos las tiendas cerradas


# Eliminemos la columna open ya que ahora no tiene sentido


# Ventas promedio = 6955 Euros, número promedio de clientes = 762 (ha subido)<jupyter_output><empty_output><jupyter_text>TAREA 3.2: EXPLORAR LOS DATOS DE LA INFORMACIÓN DE LAS TIENDAS<jupyter_code># ¡Veamos si falta algún dato en el data frame de información de la tienda!

# Echemos un vistazo a los valores faltantes en la 'CompetitionDistance'
# Solo faltan 3 filas


# Echemos un vistazo a los valores faltantes en el 'CompetitionOpenSinceMonth'
# Faltan muchas filas = 354 (casi un tercio de las 1115 tiendas)


# Parece que si 'promo2' es cero, 'promo2SinceWeek', 'Promo2SinceYear' y la información de 'PromoInterval' se establece en cero
# Hay 354 filas donde 'CompetitionOpenSinceYear' y 'CompetitionOpenSinceMonth' falta
# Establezcamos estos valores en ceros


# Hay 3 filas con valores de 'CompetitionDistance' que faltan, llenémoslas con valores promedio de la columna 'CompetitionDistance'

# la mitad de las tiendas participan en la promoción 2
# la mitad de las tiendas tienen su competencia a una distancia de 0-3000 m (3 kms de distancia)<jupyter_output><empty_output><jupyter_text>TAREA 3.3: EXPLOREMOS EL DATASET COMBINADO<jupyter_code># Combinemos ambos data frames en función de 'store'



# los clientes y la promoción se correlacionan positivamente con las ventas
# Promo2 no parece ser efectivo en absoluto

# Los clientes / Promo2 y las ventas están fuertemente correlacionados
# Separemos el año y pongámoslo en una columna separada

# Hagamos lo mismo para el día y el mes


# Echemos un vistazo a las ventas promedio y la cantidad de clientes por mes.
# 'groupby' funciona muy bien al agrupar todos los datos que comparten la misma columna del mes, luego obtener la media de la columna de ventas
# Parece que las ventas y el número de clientes alcanzan su punto máximo en el período de Navidad
# Echemos un vistazo a las ventas y a los clientes por día del mes.
# El número mínimo de clientes suele rondar el día 24 del mes.
# La mayoría de los clientes y las ventas son alrededor del 30 y el 1 del mes

# Hagamos lo mismo para el día de la semana (notemos que 7 = domingo)<jupyter_output><empty_output><jupyter_text>TAREA  4: ENTENDER LA INTUICIÓN DETRÁS DE FACEBOOK PROPHET ![alt text](https://drive.google.com/uc?id=1zk5cwXQvqci6hOwXoTSU0DY0Dpt1jNF0) ![alt text](https://drive.google.com/uc?id=10HNgyFmM1CG6yzSxpFudunUaHKNV_xBT) ![alt text](https://drive.google.com/uc?id=1BhEzmHYh_HKDWGz4eXP-clF7KAxJ_Od7)  TAREA  5: ENTRENAR AL MODELO PARTE A<jupyter_code># import prophet<jupyter_output><empty_output><jupyter_text>TAREA  6: ENTRENAR AL MODELO PARTE B - StateHoliday: indica si el día era festivo o no (a = vacaciones públicas, b = vacaciones de Pascua holiday, c = Navidades, 0 = No era festivo)- SchoolHoliday: indica si (Store, Date) se ve afectado por el cierre de las escuelas públicas<jupyter_code># Obtener todas las fechas relacionadas con las vacaciones escolares

# Obtener todas las fechas correspondientes a los festivos estatales





# Concatenamos las vacaciones escolares y los festivos estatales


# Hagamos predicciones usando días festivos para una tienda específica<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.06319176319176319, 'fraction_numerical': 0.028056628056628057, 'mean_word_length': 5.109276729559748, 'pattern_counts': {'":': 0, '<': 34, '<?xml version=': 0, '>': 34, 'https://': 11, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '493031', 'license': 'MIT', 'n_tokens_mistral': 3092, 'n_tokens_neox': 2886, 'n_words': 1014, 'path': 'Esqueleto_Departamento_de_Ventas.ipynb', 'repo_name': 'sergioarnold87/Marketing-Inteligencia_Artificial', 'size': '7770'}