Entrenamiento de modelos con scikit-learn en Microsoft Fabric
Scikit-learn (scikit-learn.org) es un conocido marco de aprendizaje automático de código abierto. Se usa con frecuencia para el aprendizaje supervisado y no supervisado. También proporciona varias herramientas para el ajuste del modelo, el preprocesamiento de datos, la selección de modelos, la evaluación del modelo, etc.
En esta sección, veremos un ejemplo de cómo puede entrenar y realizar un seguimiento de las iteraciones del modelo de Scikit-Learn.
Instalación de scikit-learn
Para empezar a trabajar con scikit-learn, debe asegurarse de que está instalado en el cuaderno. Puede instalar o actualizar la versión de scikit-learn en su entorno mediante el siguiente comando:
%pip install scikit-learn
A continuación, crearemos un experimento de aprendizaje automático mediante la API de MLFLow. La API de set_experiment() de MLflow creará un nuevo experimento de aprendizaje automático si aún no existe.
import mlflow
mlflow.set_experiment("sample-sklearn")
Entrenamiento de un modelo de scikit-learn
Una vez creado el experimento, crearemos un conjunto de datos de ejemplo y crearemos un modelo de regresión logística. También iniciaremos una ejecución de MLflow y realizaremos un seguimiento de las métricas, los parámetros y el modelo de regresión logística final. Una vez que hayamos generado el modelo final, también guardaremos el modelo resultante para un seguimiento adicional.
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 guardado el modelo, también se puede cargar para la inferencia. Para ello, cargaremos el modelo y ejecutaremos 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
- Obtenga información sobre modelos de Machine Learning.
- Obtenga información sobre experimentos de Machine Learning.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de