Main Report BenjaminSaavedra - herrCSDatos.trabajo1.Parte1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

INFB6052 - HERRAMIENTAS PARA CS.

DE DATOS
INGENIERÍA CIVIL EN CIENCIA DE DATOS
Investigación de herramientas para ciencia de datos
Parte 1.

Benjamı́n Ignacio Saavedra Contreras, Ignacio Antonio Francia Moreno

Universidad Tecnológica Metropolitana


bsaavedra@utem.cl, ifrancia@utem.cl

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.

2 Investigación de Herramientas y Conceptos


2.1 Python
Python para ciencia de datos:
Python se ha convertido en el lenguaje de programación lı́der en el campo de la ciencia de datos debido a su sintaxis
clara y legible, una amplia variedad de bibliotecas especializadas como NumPy, pandas y scikit-learn que facilitan el
análisis y procesamiento de datos. Los Ambientes Virtualizados, como virtualenv o conda, permiten crear entornos
aislados para proyectos Python, lo permiten a los desarrolladores crear y mantener proyectos de Python con dependen-
cias especı́ficas sin afectar al sistema operativo ni a otros proyectos Python en el mismo sistema.

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.

Python Ambientes Virtualizados:


Cuando desarrollamos proyectos en Python, a menudo necesitamos utilizar diferentes versiones de bibliotecas y paque-
tes. Sin embargo, instalar estas bibliotecas directamente en el sistema operativo puede generar conflictos entre versiones
o problemas de compatibilidad. Aquı́ es donde entran en juego los ambientes virtualizados.

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.

2.2 Visual Studio Code


Visual Studio Code (VS Code) es un entorno de desarrollo integrado (IDE) altamente personalizable y ampliamente
utilizado en la comunidad de programadores. Ofrece caracterı́sticas avanzadas, como resaltado de sintaxis, depuración
integrada y control de versiones, lo que lo hace ideal para proyectos de Ciencia de Datos.

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.

2.3 GitHub Copilot


GitHub Copilot es una herramienta de programación asistida por inteligencia artificial. Utiliza modelos de lenguaje
avanzados para sugerir código mientras escribes, lo que puede mejorar la productividad y ayudar en tareas repetitivas.
En el contexto de la ciencia de datos, ofrece completados automáticos de código para tareas comunes como carga,
limpieza y modelado de datos, basados en el contexto del proyecto y el código existente. Proporciona sugerencias
contextualizadas, aprende continuamente de una gran cantidad de código fuente y comentarios de desarrolladores, y
ayuda a reducir la carga cognitiva al automatizar tareas repetitivas. En resumen, GitHub Copilot mejora la eficiencia y
la productividad de los cientı́ficos de datos al tiempo que les permite centrarse en tareas más creativas y de alto nivel.

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.6 Flask y Django


Flask y Django son frameworks de desarrollo web escritos en Python. Flask es ligero y flexible, ideal para proyectos
pequeños y rápidos, mientras que Django es más completo y proporciona caracterı́sticas adicionales, como administración
de bases de datos y autenticación de usuarios, lo que lo hace adecuado para aplicaciones web más complejas. Ambos
marcos abordan diferentes necesidades de desarrollo web en el campo de la ciencia de datos, desde la creación de API
RESTful hasta la implementación de aplicaciones web interactivas para visualización de datos y análisis.

3 Preparación del Entorno de Desarrollo


3.1 Python:
Procedemos a instalar Python desde su sitio oficial: https://www.python.org/ el archivo ”python-3.12.3-amd64”, Agreg-
amos Python.exe al ”PATH” lo que permite ejecutar comandos desde cualquier ubicación en tu sistema operativo,
agregar Python al ”PATH” facilita el trabajo con scripts y entornos virtuales. inlcuimos en la instalacion ”PIP” es el
sistema de gestión de paquetes de Python. Permite instalar, desinstalar y gestionar paquetes de software escritos en
Python que están disponibles en el Python Package Index (PyPI) y otros repositorios de paquetes. Es una herramienta
esencial para trabajar con bibliotecas. Además ”PY Laucher” puede detectar y gestionar versiones virtuales de Python
creadas con herramientas como venv o virtualenv, permitiéndote ejecutar scripts con el intérprete de Python dentro
de un entorno virtual especı́fico. La aplicación Python 3.12 (64-bit) quedo instalada, ahora instalaremos un editor de
texto avanzado en vez de utilizar la terminal, todo esto para utilizar de forma más eficiente el intérprete de Python.

Figure 1: Terminal Python

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”.

Figure 2: VS Code archivó.py

3.3 Entornos Virtuales:


En nuestra carpeta Principal (Codes) creamos una carpeta (proyecto-1-ciencia-de-datos), donde tendremos nuestro
archivo ”app.py” y nuestro entorno virtual (env).
Abrimos la consola de comandos del sistema como administrador (cmd), nos situamos donde guardamos el intérprete
Python (C:\Python312) y verificamos que exista el gestor de paquetes ”pip” con el comando ”pip - -version”. Si pip
está instalado correctamente, procedemos a instalar el paquete de entornos virtuales ”virtualenv” con el comando ”pip
install virtualenv”. Una vez que la instalación esté completa, creamos nuestro entorno virtual utilizando el comando
”virtualenv env”. Para activar nuestro entorno virtual, ejecutamos el comando ”.\env\Scripts\activate”.

Figure 3: Instalación y activación del entorno virtual

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).

Figure 4: Activación del entorno en virtual VS Code

4 Instalación de Herramientas Especı́ficas


Django Entorno Virtual: Instalamos Django en el entorno virtual, nos debemos cerciorar de que este se encuentre
activo, para ver los paquetes ejecutamos el comando ”pip list”, luego para instalar Django ejecutamos el comando ”pip
install Django==5.0.4”.

Figure 5: Instalación Django

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).

Figure 6: Latex en VS Code

5 Propuesta de Proyecto Aplicado:


Nuestro proyecto consistirá en el desarrollo de un motor de recomendación de pelı́culas. Utilizaremos un conjunto de
datos de IMDB que incluye información de 1000 pelı́culas y alrededor de 100,000 votos en total. Estos datos están
organizados por ID usuario, calificación y pelı́cula votada. El objetivo es crear un motor que personalice el contenido
ofrecido al usuario según sus intereses y preferencias.
Construiremos únicamente el algoritmo de recomendación, pero la estructura de un motor de recomendación se compone
de cuatro elementos principales:
1.-Interfaz de Usuario: Esencial para recopilar eficientemente nuevos datos y proporcionar una experiencia amigable al
usuario.
2.-Recopilación de Datos: Consiste en la captura de eventos, productos y datos de usuarios, los cuales se almacenarán
en una base de datos. Las API’s actuarán como mediadores en este proceso con la interfaz.
3.-Algoritmo del Motor de Recomendación y Modelado del Objeto: Se encargará de procesar los datos y generar re-
comendaciones personalizadas para cada usuario.
4.-Filtros Offline y Online: Estos filtros tienen en cuenta la recurrencia de lo ofrecido al usuario y lo consumido, mejo-
rando continuamente las recomendaciones.

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.

GitHub Copilot: Documentación oficial de GitHub Copilot, disponible en: https://copilot.github.com/docs/.

CodeGeex: Sitio web oficial de CodeGeex, disponible en: https://www.codegeex.com/.

Visual Studio Code: Documentación oficial de Visual Studio Code, disponible en: https://code.visualstudio.com/docs.

También podría gustarte