Estructuración Modular de Código Python para Machine Learning

Clase 33 de 37Curso Profesional de Machine Learning con scikit-learn

Resumen

¿Cómo organizar tu entorno de trabajo?

La organización de tu entorno es clave para un desarrollo eficiente. Siempre que empieces un nuevo proyecto, especialmente en Machine Learning, es fundamental estructurar adecuadamente tus carpetas y archivos. Una sugerencia práctica es crear una carpeta llamada "in" para documentos de entrada como texto e imágenes. Luego, dentro de la raíz de tu proyecto, agrega un directorio "out" donde guardarás las exportaciones y resultados como modelos generados o gráficos. Además, una carpeta "models" te ayudará a mantener organizados tus modelos probados. De esta forma, evitas que todo esté revuelto y puedes gestionar fácilmente los resultados.

¿Qué archivos iniciales son necesarios?

Al desarrollarse un proyecto, varios archivos son necesarios:

  1. main.py: Aquí implementas todo el flujo principal de Machine Learning.
  2. block.py: Se encarga solo de la carga de elementos y archivos.
  3. utils.py: Almacena métodos reutilizables a lo largo del proceso.
  4. models.py: Abarca toda la parte del Machine Learning como tal.

¿Cómo crear una clase en Python?

Para inicializar una clase en Python, se utiliza la instrucción class. Los atributos y métodos dentro de la clase permiten reutilizar el código sin necesidad de reescribirlo.

class Utiles:
    def __init__(self):
        pass

    def load_from_csv(self, path):
        return pd.read_csv(path)
  • Ventaja de usar clases: Facilitan la actualización y modificación del código, manteniendo el flujo de ejecución intacto. Si un cliente cambia de base de datos, solo necesitas cambiar un método.

¿Cómo reutilizar métodos en Python?

Tener métodos en un archivo de utilidades simplifica el proceso de escalar y manipular datos. Por ejemplo, funciones para escalar datos o dividir conjuntos son esenciales.

def split_data(dataset, target_column, drop_columns):
    X = dataset.drop(columns=drop_columns)
    y = dataset[target_column]
    return X, y

Esta forma de organización te permite modificar y mejorar funciones sin afectar el flujo principal del programa. Además, cuando es necesario cargar datos, simplemente puedes llamarlos a través de la clase y métodos predefinidos.

¿Cómo ejecutar el código de forma modular?

Una vez organizada la estructura, el main.py puede cargar datos de un CSV usando métodos definidos en utils.py. Asegúrate de importar librerías necesarias como Pandas para evitar errores.

import pandas as pd
from utils import Utiles

util = Utiles()
data = util.load_from_csv('in/felicidad.csv')

Esto incrementa la flexibilidad de tu código, permitiéndote adaptarlo a cambios futuros sin complicaciones. ¡Sigue aprendiendo y aprovechando las ventajas del código modular!