Entrenamiento de modelos con scikit-learn en Microsoft Fabric
Este artículo describe cómo entrenar y realizar un seguimiento de las iteraciones del modelo de scikit-learn. Scikit-learn es un conocido marco de aprendizaje automático de código abierto que se usa con frecuencia para el aprendizaje supervisado y no supervisado. El marco proporciona herramientas para el ajuste del modelo, el preprocesamiento de datos, la selección de modelos, la evaluación del modelo, etc.
Requisitos previos
Instale scikit-learn en el cuaderno. Puede instalar o actualizar la versión de scikit-learn en su entorno mediante el siguiente comando:
pip install scikit-learn
Configuración del experimento de aprendizaje automático
Puede crear un experimento de aprendizaje automático mediante la API de MLFLow. La función MLflow set_experiment()
crea un nuevo experimento de aprendizaje automático denominado sample-sklearn, si aún no existe.
Para crear un experimento, ejecute el siguiente código en un cuaderno:
import mlflow
mlflow.set_experiment("sample-sklearn")
Entrenamiento de un modelo de scikit-learn
Una vez configurado el experimento, se crea un conjunto de datos de ejemplo y un modelo de regresión logística. El siguiente código inicia una ejecución de MLflow y realiza un seguimiento de las métricas, los parámetros y el modelo de regresión logística final. Una vez que se haya generado el modelo final, se guarda el modelo resultante para un seguimiento adicional.
Ejecute el código siguiente en su cuaderno y cree el conjunto de datos de ejemplo y el modelo de regresión logística:
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
score = lr.score(X, y)
signature = infer_signature(X, y)
print("log_metric.")
mlflow.log_metric("score", score)
print("log_params.")
mlflow.log_param("alpha", "alpha")
print("log_model.")
mlflow.sklearn.log_model(lr, "sklearn-model", signature=signature)
print("Model saved in run_id=%s" % run.info.run_id)
print("register_model.")
mlflow.register_model(
"runs:/{}/sklearn-model".format(run.info.run_id), "sample-sklearn"
)
print("All done")
Carga y evaluación del modelo en un conjunto de datos de ejemplo
Una vez que hayamos guardado el modelo, puede cargarlo para la inferencia.
Ejecute el código siguiente en el cuaderno y cargue el modelo y, a continuación, ejecute la inferencia en un conjunto de datos de ejemplo:
# Inference with loading the logged model
from synapse.ml.predict import MLflowTransformer
spark.conf.set("spark.synapse.ml.predict.enabled", "true")
model = MLflowTransformer(
inputCols=["x"],
outputCol="prediction",
modelName="sample-sklearn",
modelVersion=1,
)
test_spark = spark.createDataFrame(
data=np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1).tolist(), schema=["x"]
)
batch_predictions = model.transform(test_spark)
batch_predictions.show()
Contenido relacionado
- Exploración de modelos de aprendizaje automático
- Creación de experimentos aprendizaje automático