Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Proyecto de ciencia de datos Instituto Tecnológico de Estudios Superiores de Monterrey: Campus Monterrey Evidencia 2: Proyecto de Ciencia de Datos Ana Paula Ramos Varela 8 de noviembre del 2022 1 Proyecto de ciencia de datos Fase 0. Presentación e Introducción El objetivo de este proyecto de registro nutricional fue registrar todos nuestros alimentos diarios y lograr comprender el uso de la ciencia de datos, para este proyecto se necesitó desarrollar un modelo matemático para poder entender que tanto afecta el consumo de calorías a nuestra masa corporal. En este proyecto recopilamos todos los macronutrientes de nuestros alimentos (grasa, sodio, carbohidratos y calorías) y así podemos relacionar los macronutrientes con las calorías. Sabiendo estos datos nos propusimos crear un un modelo que nos ayude a predecir la cantidad de calorías basándonos en los macronutrientes de dicho alimento. y lograr comprobar la hipótesis inicial ¿Si consume cierta cantidad calórica, puedo tener cambios en mi masa corporal (peso) en un determinado tiempo? Fase 1: Entendimiento del negocio El Cross Industry Standard process for Data Mining o también llamado CRISP-dm es un modelo que nos proporciona una descripción del ciclo de vida de un proyecto de análisis de datos. Este modelo abarca las fases de un proyecto, también toma en cuenta el proceso de análisis de datos. Cuenta con 6 fases: - Definición de necesidades del cliente: se enfoca en la comprensión de los objetivos del proyecto. - Comprensión de los datos: Colección de los datos, identifica problemas, descubre subconjuntos interesantes. - Análisis de los datos: selección de tablas, registros y limpieza de datos. - Modelado: se calibran parámetros, se preparan los datos, se aplican las técnicas de modelado. 2 Proyecto de ciencia de datos - Evaluación: Antes de finalizar el modelo es muy importante evaluarlo, es importante determinar si un objetivo no se logró cumplir , al final se debe tener una decisión de cómo se aplicarán los resultados. - Despliegue: Poner el modelo en marcha. ¿Quién fue el cliente en el registro nutrimental? (descripción de las características del cliente) - El cliente somos nosotros mismos puesto que es nuestra información la que estamos analizando, el cliente tiene 19 años mide 1.56 y pesa 53 kilos. sus comidas promedio eran de 4 al día. ¿Qué problemas se estaba tratando de resolver o identificar a través del registro nutrimental? - Estamos tratando de identificar la relación entre calorías y masa corporal guiándonos de nuestros datos nutrimentales. Fase 2. Entendimiento de los datos ¿Qué tipos de datos se necesitaron? - Usamos datos cuantitativos como la cantidad de carbohidratos, grasa, cantidad de sodio y calorías de nuestros alimentos diarios que registramos en nuestra base de datos, Algunos datos cualitativos como el nombre de los alimentos que se consumieron en estas 5 semanas. Otros datos que se agregaron fue la fecha de consumo pero esta última no era tan relevante para nuestra investigación. - ¿De dónde se obtuvieron los datos? - Los datos se obtuvieron de nuestra base de datos, que básicamente fue información de todos los macronutrientes de nuestros alimentos diarios. Era una tabla de excel que fue llenada en el periodo establecido. ¿Los datos registrados fueron adecuados para hacer el análisis ANOVA (en excel) y el de regresión (en python)? 3 Proyecto de ciencia de datos - los datos cuantitativos que usamos si fueron adecuados ya que tenían una confiabilidad de más del 95%, como la r es alta nuestros datos son adecuados para este proyecto Fase 3. Preparación de los datos ¿Qué ajustes se tuvieron que hacer a los datos (agregar datos, integrar datos, modificar datos (remover o eliminar información), ordenar, etc. para poder realizar el análisis de los mismos? Nos tuvimos que cerciorarse que no hubiera datos en blanco pues nos iba a arrojar un error, también ordenamos los datos en una tabla para un mayor entendimiento y organización, nos aseguramos que todos los datos estuvieran en la misma medida de masa, con estas modificaciones nos aseguramos que el proyecto salga a la perfección. Fase 4. Modelación de los datos import pandas as pd datos_consumo = pd.read_excel('/registro nutricional final.xlsx') datos_consumo.head() datos_consumo.groupby("Momento").count() datos_consumo.describe() datos_seleccionados = datos_consumo.iloc[:,3:8] datos_seleccionados datos_seleccionados.info() datos_seleccionados.isnull().values.any() dataset = datos_seleccionados.dropna() dataset.isnull().sum() dataset.columns X = dataset[['Carbohidratos (g)','Lípidos/grasas (g)', 'Proteína (g)', 'Sodio (mg)']].values y = dataset['Calorías (kcal)'].values from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) from sklearn.linear_model import LinearRegression modelo_regresion = LinearRegression() modelo_regresion.fit(X_train, y_train) 4 Proyecto de ciencia de datos x_columns=['Carbohidratos (g)', 'Lípidos/grasas (g)', 'Proteína (g)', 'Sodio (mg)'] coeff_df = pd.DataFrame(modelo_regresion.coef_, x_columns, columns=['Coeficientes']) coeff_df y_pred = modelo_regresion.predict(X_test) validacion = pd.DataFrame({'Actual': y_test, 'Predicción': y_pred, 'Diferencia': y_test-y_pred}) muestra_validacion = validacion.head(25) muestra_validacion validacion["Diferencia"].describe() from sklearn.metrics import r2_score r2_score(y_test, y_pred) import matplotlib.pyplot as plt muestra_validacion.plot.bar(rot=0) plt.title("Comparación de calorías actuales y de predicción") plt.xlabel("Muestra de alimentos") plt.ylabel("Cantidad de calorías") plt.show() 5 Proyecto de ciencia de datos Estadistica descriptiva: Podemos ver que nos arroja estadisticas relevantes como cantidad de datos (179) el promedio, la desviación estandar, el min y max, etc. esta nos esta dando la información primordial para nuestros datos. 6 Proyecto de ciencia de datos 7 Proyecto de ciencia de datos 8 Proyecto de ciencia de datos Coeficientes de regresión: Aqui nos arroja los coeficientes de nuestros macronutrientes, lo que nos dicen estos es el impacto que tiene los macronutrientes sobre nuestra variable de salida. Nos damos cuenta que la más relevante son los lípidos y grasa, y el sodio no tiene mucha relevancia. Valores actuales y predicción: Aqui podemos ver una clara comparación entre los valores reales y la predicción, si prestamos atención podemos ver que la diferencia entre ellos es muy poca, lo que nos da a entender que el modelo es confiable. en el renglón 2 vemos una diferencia enorme el cual afecta la credibilidad. 9 Proyecto de ciencia de datos Coeficiente determinación r2: La r2 debería ser positiva y alta, por alguna razón a nosotros nos da negativa, me parece que es por la alta diferencia entre el valor actual y la predicción que se obtuvo en uno de los criterios de arriba. 10 Proyecto de ciencia de datos Gráfica: La gráfica nos muestra la precisión de nuestro modelo, compara el valor actual con la predicción, vemos que de igual manera todos los valores son muy parecidos excepto por el valor 2, dónde se ve una clara diferencia y nos hace dudar de la confiabilidad del modelo. Funcionamiento del programa: Primero fue necesario traer de la libreria el SciKit-Learn la clase de regresion lineal con el proposito de tener una variable con la cual trabajar. Es necesario que nuestro modelo pueda “estudiar” nuestros datos e spor eso que usamos el comando fit(). Una vez teniendo esp podemos usar el comando predict() para probarlo con el conjunto de datos que hay. En este punto ya podemos usar describe() este nos arroja la estadistica descriptiva de ña diferencia entre los valores actuales y la predicción que nos da el modelo. 11 Proyecto de ciencia de datos Ahora es moemnto de establecer si nuestro modelo es confiable o no, buscamos que nuestra r2 seacercana a 1. Para finalizar con el programa debemos graficar la diferencia entre valor actual y la predicción del módelo, para esto será necesario usar la librería de matplotlib, con el comando plot.bar() podemos generar los gráficos con nuestra base de datos, será necesario aclarar nuestra X y Y, así como el título, para que nuestra grafica se pueda ver usaremoss el comando show(). Conclusión: La hipotesis actual es ¿Si consumo cierta cantidad calórica, puedo tener cambios en mi masa corporal (peso) en un determinado tiempo? En este caso acepto la hipotesis ya que se puede ver que se están consumiendo más calorías de lo recomendado, al consumir más calorías de las que quemas nos da un resultado de tener una mayor masa corporal, y viceversa. Asi que si se consumen cierta cantidad de calorías en un determinado tiempo, se notarán cambios en el peso. Comparación: 12 Proyecto de ciencia de datos En lo personal prefiero los resultados que arroja Excel, e sun formato mucho más organizado y entendible que el que nos muestra Google Colab, de igual manera Excel nos provee más datos como la suma, varianza, rango, entre otros. Aunque los dos resultados nos dan la estadistica descriptiva que necesitamos, yo sin duda me quedo con los resultados de Excel Google Colab: https://colab.research.google.com/drive/1uzxDBUYxJM80mqrzRRy7BLtOe2AAuMdx ?usp=sharing 13 Proyecto de ciencia de datos Referencias: ¿Qué es el análisis de datos? Procesos y ejemplos | Alteryx. (s. f.). https://www.alteryx.com/es-419/glossary/data-analytics Minitab Blog Editor. (s. f.). Análisis de Regresión: ¿Cómo Puedo Interpretar el R-cuadrado y Evaluar la Bondad de Ajuste? https://blog.minitab.com/es/analisis-de-regresion-como-puedo-interpretar-el-r- cuadrado-y-evaluar-la-bondad-de-ajuste https:\/\/www.aprendemachinelearning.com\/author\/user\/#author. (2018, 12 mayo). Ejemplo Regresión Lineal Python. Aprende Machine Learning. https://www.aprendemachinelearning.com/regresion-lineal-en-espanol-con-pyt hon/ 14 https://www.alteryx.com/es-419/glossary/data-analytics https://blog.minitab.com/es/analisis-de-regresion-como-puedo-interpretar-el-r-cuadrado-y-evaluar-la-bondad-de-ajuste https://blog.minitab.com/es/analisis-de-regresion-como-puedo-interpretar-el-r-cuadrado-y-evaluar-la-bondad-de-ajuste https://www.aprendemachinelearning.com/regresion-lineal-en-espanol-con-python/ https://www.aprendemachinelearning.com/regresion-lineal-en-espanol-con-python/
Compartir