Main Report BenjaminSaavedra - herrCSDatos.trabajo1.Parte1
Main Report BenjaminSaavedra - herrCSDatos.trabajo1.Parte1
Main Report BenjaminSaavedra - herrCSDatos.trabajo1.Parte1
DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
Investigación de herramientas para ciencia de datos
Parte 1.
May 1, 2024
INFB6052 - HERRAMIENTAS PARA CS. DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
1 Introducción
La Ciencia de Datos es un campo interdisciplinario que combina habilidades de programación, estadı́stica y conocimien-
tos de dominio para extraer información significativa de conjuntos de datos complejos. En esta investigación, explo-
raremos diversas herramientas fundamentales utilizadas en este campo, incluyendo Python y sus Ambientes Virtualiza-
dos, Visual Studio Code, GitHub Copilot, CodeGeex, LaTeX, Flask y Django.
Una comunidad activa y colaborativa proporciona una amplia gama de recursos y colabora constantemente en el
desarrollo de nuevas herramientas y técnicas produciendo una flexibilidad y versatilidad para adaptarse a una amplia
variedad de aplicaciones y su capacidad de integración con otras tecnologı́as y lenguajes, lo que facilita su uso en
conjunto con bases de datos, sistemas de archivos y servicios web. Estas caracterı́sticas hacen de Python la elección
preferida tanto para profesionales como para estudiantes en el ámbito de la ciencia de datos.
Con un ambiente virtual, puedes crear un entorno aislado que tenga su propio intérprete de Python y conjunto de
bibliotecas instaladas. Esto te permite instalar y administrar versiones especı́ficas de bibliotecas para cada proyecto
sin afectar otros proyectos o el sistema operativo en general. Además, los ambientes virtuales facilitan la replicación
del entorno de desarrollo en diferentes máquinas, lo que garantiza una mayor consistencia y reproducibilidad en tus
proyectos.
Su ecosistema de extensiones ofrece opciones para integrar funcionalidades especı́ficas, como soporte para Jupyter
Notebooks, esenciales para análisis interactivo. Además, su compatibilidad con múltiples lenguajes de programación
facilita trabajar en proyectos que involucran diferentes tecnologı́as. La integración con Git y sistemas de control de
versiones simplifica el seguimiento de cambios y la colaboración en equipos. La capacidad de depuración integrada per-
mite identificar y solucionar errores de manera eficiente. Y gracias a su administrador de extensiones, es fácil instalar
y gestionar las herramientas necesarias para proyectos.
1
INFB6052 - HERRAMIENTAS PARA CS. DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
2.4 CodeGeex
CodeGeeX es un asistente de codificación basado en IA que sugiere código en las lı́neas actuales o siguientes. Es un
modelo de generación de código multilenguaje a gran escala basado en transformadores, y soporta varios lenguajes de
programación convencionales. CodeGeeX tiene un buen rendimiento para generar programas ejecutables y puede ser
utilizado como asistente de programación personalizable.
2.5 LaTeX
LaTeX es un sistema de composición de textos ampliamente utilizado para la creación de documentos cientı́ficos y
técnicos. Es especialmente útil para la creación de informes, artı́culos y libros que contienen fórmulas matemáticas o
elementos complejos de formato. Su sintaxis intuitiva y poderosa permite escribir y formatear documentos con precisión
y coherencia, mientras que su capacidad para gestionar automáticamente referencias bibliográficas y citas simplifica el
proceso de escritura académica. Además, LaTeX proporciona un alto grado de control sobre la estructura y el diseño
del documento, lo que lo convierte en la herramienta preferida por muchos investigadores, académicos y profesionales
técnicos para la preparación de documentos de calidad profesional.
2
INFB6052 - HERRAMIENTAS PARA CS. DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
3.2 Visual Studio Code (IDE):
Procedemos a instalar el entorno de desarrolo integrado y editor de texto Visual Studio Code desde su sitio oficial:
https://code.visualstudio.com/ el archivo ”VSCodeUserSetup-x64-1.88.1”. Agregamos VS Code al ”PATH”. Luego
instalamos una extensión de Python para la codificación, reconocimiento y ejecución de los archivos ”.py” para el
soporte ”vscode.dev”. Luego creamos una carpeta llamada ”Codes” que cuelgue de la raı́z principal, en la carpeta
podemos crear un archivo ”proyecto-1-ciencia-de-datos.py”.
3
INFB6052 - HERRAMIENTAS PARA CS. DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
Cabe destacar que este proceso se podia seguir dentro del Visual Studio Code y tambien podriamos haber instalado el
paquete de entorno virtual ”venv”.
Para Finalizar dentro de la terminal de vs code nos situamos en la carpeta donde está nuestro entorno virtual (proyecto-
1-ciencia-de-datos), ahi ejecutamos el comando ”Set-ExecutionPolicy RemoteSigned -Scope Process” el cual cambia las
politicas del entrono de comandos del sistema operativo (Set-ExecutionPolicy) para que acepte scripts no firmados
localmente (RemoteSigned) esto será momentáneo una vez cerrada la sesión volverá a sus parámetros definidos (-Scope
Process).
Flask y Django Global: Desactivamos el entorno virtual con el comando ”deactivate”. Instalamos Flask y Django
de forma global en el intérprete con los respectivos comandos ”pip install flask” y ”pip install Django==5.0.4”.
4
INFB6052 - HERRAMIENTAS PARA CS. DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
GitHub Copilot: Mediante VS Code instalamos Github Copilot y luego lo enlazamos a Github.
CodeGeex: Mediante VS Code instalamos CodeGeex y luego lo enlazamos a CodeGeex.cn
Jupyter: Mediante VS Code instalamos Jupyter y instalamos las librerias necesarias de forma global.
LaTeX (sistema de composición de textos): Procedemos a instalar el compilador de Latex desde el sitio fil-
ial https://miktex.org/ el archivo ”basic-miktex-24.1-x64”, despues instalamos desde https://strawberryperl.com/ el
archivo ”strawberry-perl-5.38.2.2-64bit” el cual lo utilizaremos como lenguaje interprete, por ultimo la extension de
Latex en VS Code (Latex workshop de James Yu).
Para calibrar el motor de recomendación, nos enfocaremos únicamente en el primer punto, pero cabe destacar que
se calibra en tres pilares principales:
1.-Preferencias del Cliente: Este pilar es fundamental, ya que está directamente relacionado con la tasa de conversión
y la satisfacción del cliente.
2.-Rentabilidad para el Negocio: Maximizar el rendimiento económico del motor de recomendación.
3.-Otros Criterios de Negocio: Habilitar el motor para la incorporación de otras acciones comerciales, como la promoción
de productos no vendidos.
El motor se calibrará ajustando los porcentajes de cada uno de estos componentes según sea necesario, adaptándose
ası́ a las necesidades especı́ficas del cliente o del retorno económico esperado.
5
INFB6052 - HERRAMIENTAS PARA CS. DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
El enfoque del motor estará basado en una memoria de usuario con filtro colaborativo. Determinaremos la similitud
entre usuarios según sus calificaciones de pelı́culas, y recomendaremos pelı́culas del cı́rculo de usuarios con intereses
similares. Entre las ventajas de este enfoque se encuentran su ingenierı́a sencilla y los buenos resultados obtenidos en
muchos casos. Sin embargo, requiere un control intensivo y feedback repetitivo, además de ser intensivo en recursos y
no ser efectivo en situaciones de inicio en frı́o (cold start).
La implementación del motor de recomendación se realizará utilizando Python, con la ayuda de Jupyter para el desarrollo
inicial. Posteriormente, utilizaremos la biblioteca Django para crear una interfaz de usuario, que permitirá a los
usuarios seleccionar pelı́culas y recibir recomendaciones basadas en sus preferencias. Finalmente, emplearemos diversas
bibliotecas de Python para realizar web scraping de ”https://www.imdb.com”, con el fin de crear nuestro propio
conjunto de datos de las pelı́culas más votadas, recopilando información esencial como identificación de ID usuario,
pelı́cula votada y valoración. Estos datos serán fundamentales para el reentrenamiento del modelo de recomendación,
en la segunda parte del informe titulado ”Investigación de herramientas para ciencia de datos”, se profundizará en el
desarrollo y la aplicación del proyecto.
6 Conclusiones
En esta investigación, hemos explorado varias herramientas esenciales para la Ciencia de Datos, cada una con sus
propias caracterı́sticas y ventajas. Estas herramientas proporcionan un conjunto sólido de recursos para la adquisición,
limpieza, análisis y visualización de datos, lo que permite a los cientı́ficos de datos realizar investigaciones significativas
y obtener información valiosa a partir de conjuntos de datos complejos.
En la preparación del entorno de desarrollo, hemos detallado los pasos para instalar y configurar estas herramien-
tas, asegurando un entorno óptimo para el desarrollo de proyectos en Ciencia de Datos. Además, hemos propuesto
un emocionante proyecto aplicado: la creación de un motor de recomendación de pelı́culas utilizando técnicas de filtro
colaborativo. El proyecto propuesto, es solo el comienzo, en el vasto paisaje de la Ciencia de Datos, hay numerosas
oportunidades para aplicar estas herramientas de manera innovadora. Desde sistemas de recomendación para música o
libros hasta análisis de datos en sectores especı́ficos como la salud o la energı́a, las posibilidades son infinitas.
7 Referencias
Python Programming: An Introduction to Computer Science” by John Zelle, Franklin, Beedle and Associates Inc, 2016.
LaTeX: ”LaTeX: A Document Preparation System” by Leslie Lamport, Addison-Wesley Professional, 1994.
Flask: ”Flask Web Development: Developing Web Applications with Python” by Miguel Grinberg, O’Reilly Media,
2018.
Django: ”Django for Beginners: Build websites with Python and Django” by William S. Vincent, 2020.
Visual Studio Code: Documentación oficial de Visual Studio Code, disponible en: https://code.visualstudio.com/docs.