Estructuración Modular de Código Python para Machine Learning
Clase 33 de 37 • Curso Profesional de Machine Learning con scikit-learn
Contenido del curso
- 8

Selección de Variables en Modelos de Aprendizaje Automático
06:56 - 9

Reducción de Dimensionalidad con Análisis de Componentes Principales
05:52 - 10

Reducción de Dimensionalidad y Regresión Logística con Python
09:57 - 11

Clasificación de Enfermedad Cardiaca con PCA y Regresión Logística
13:45 - 12

Funciones Kernel en la Clasificación de Datos Complejos
09:01 - 13

Regularización en Modelos de Machine Learning
07:39 - 14

Implementación de Regularización en Modelos de Regresión Lineal
15:19 - 15

Análisis de Resultados en Modelos de Regresión Ridge y Lasso
02:42 - 16
Regularización ElasticNet con Scikit-learn: Conceptos y Aplicación
01:41
- 28

Validación Cruzada en Modelos de Machine Learning
06:53 - 29

Validación Cruzada con Scikit-learn: Cruz Vales Cor y KFold
09:09 - 30

Optimización de Modelos con Búsqueda en Grilla y Aleatoria
07:22 - 31

Automatización de Parámetros en Modelos de Regresión con Random Forest
10:38 - 32
Optimización Automática de Modelos con Auto-sklearn
01:50
- 33

Estructuración Modular de Código Python para Machine Learning
10:17 - 34

Automatización de Modelos Machine Learning con Python
14:18 - 35

Publicación de Modelos de IA con Flask y Python
10:36 - 36

Optimización de Modelos de Machine Learning para Producción
00:42 - 37
Recursos para Aprender Machine Learning y Data Science
00:58
¿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:
- main.py: Aquí implementas todo el flujo principal de Machine Learning.
- block.py: Se encarga solo de la carga de elementos y archivos.
- utils.py: Almacena métodos reutilizables a lo largo del proceso.
- 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!