Daniel Andres Rojas Paredes
la funcion que usan decode_labels_idx..... no entiendo de donde la importan?
¿Cómo dividir tareas para mejorar la claridad y eficiencia del flujo?
El diseño de un flujo de trabajo en la programación debe evitar abarcar demasiadas funciones en una sola tarea. Esto es comparable a crear métodos en clases que lo hacen todo. La clave está en dividir las funcionalidades para facilitar la depuración y el refactorización en un futuro.
Para implementar esto, cuando realizamos una transformación de datos y la división de datos, es esencial leer primero el archivo producto de la tarea anterior del procesamiento de datos. Además, debes tener en cuenta dónde se almacenarán los resultados, generalmente en un módulo de orquestación con una carpeta designada para los datos procesados.
¿Dónde se almacenan los datos procesados?
Dentro de nuestro flujo, los datos procesados se organizan meticulosamente para asegurar la trazabilidad. Por ejemplo, encontramos diferentes carpetas que contienen:
Cuando se lleva a cabo la transformación de datos, estos resultados también se almacenan en el folder de datos procesados.
¿Cómo transformar y dividir los datos adecuadamente?
La transformación y división efectiva de datos implica considerar cómo estructuramos el set de datos para su uso en modelos predictivos. Los pasos clave en dicha tarea son:
Lectura del DataFrame: Inicia leyendo el CSV resultante de la tarea previa.
Identificación de características y etiquetas: El texto procesado se reconoce como X (características), y las etiquetas, inicialmente en formato string, se transforman a enteros necesarios para el modelo.
Uso de Convectorizer: Instancia de Convectorizer de Scikit-learn para realizar transformaciones en los datos.
División del conjunto de datos: El conjunto X se divide en datos de entrenamiento y prueba.
Uso de Convectorizer para transformar los datos
vectorizer = CountVectorizer() X_transformed = vectorizer.fit_transform(X)
¿Cómo entrenar el mejor modelo en tu flujo?
Agregar una tarea para entrenar el modelo óptimo es vital para mejorar el rendimiento y obtener predicciones más precisas. La función TrainingBestModel se centra en los siguientes aspectos:
config.py.Para comenzar la experimentación con MLflow, seguimos este enfoque:
Inicialización de experimento: Usar start_run para dar seguimiento al experimento.
Entrenamiento y predicción: Entrenar el modelo y obtener predicciones junto con métricas de performance.
Registro de métricas y modelo: Guardar las métricas y el modelo entrenado como artefacto.
Impresión de informes: Imprimir un reporte clasificado tanto para entrenamiento como para prueba.
Inicialización y registro del modelo
with mlflow.start_run(run_name="BestModelRun") as run: model = RandomForestClassifier(**params) model.fit(x_train, y_train) predictions = model.predict(x_test) accuracy = accuracy_score(y_test, predictions) mlflow.log_metric("accuracy", accuracy) mlflow.sklearn.log_model(model, "model")
Al integrar múltiples tareas en el flujo, optimizas los procesos de entrenamiento, asegurando un flujo continuo y eficiente. Cada detalle, desde la configuración de entrada hasta los comentarios en el código, juega un papel fundamental en el éxito del pipeline.
Daniel Andres Rojas Paredes
la funcion que usan decode_labels_idx..... no entiendo de donde la importan?
Daniel Andres Rojas Paredes
La función decode_labels_into_idx no se menciona explícitamente en el transcript proporcionado. Sin embargo, generalmente se utiliza en el contexto de machine learning para transformar etiquetas de texto en índices numéricos que pueden ser procesados por modelos. Esto es útil al trabajar con técnicas de procesamiento de texto, especialmente en tareas de clasificación. Para su definición y uso específico, revisa el código del proyecto donde estés trabajando, ya que puede estar implementada en alguna parte del flujo de trabajo relacionado con la transformación de datos.
Octavio De Paula
No puedo creer que esto este en Platzi, espero que mis ojos me esten engañando!
Edgar A. Gonzalez Ambriz
Tómalo con calma Octavio, toma lo bueno de éste curso. Hay otro curso en Platzi de MLOps con el que puedes complementar el conocimiento. A mi tampoco me gusta que "medio" me expliquen código hecho fuera de la clase, pero es lo que hay y hay que aprovecharlo al máximo