Обучение моделей с помощью scikit-learn в Microsoft Fabric
Scikit-learn (scikit-learn.org) — это популярная платформа машинного обучения с открытым исходным кодом. Он часто используется для защищенного и неконтролируемого обучения. Он также предоставляет различные средства для параметров модели, предварительной обработки данных, выбора моделей, оценки моделей и т. д.
В этом разделе мы рассмотрим пример обучения и отслеживания итерации модели Scikit-Learn.
Установка scikit-learn
Чтобы приступить к работе с scikit-learn, необходимо убедиться, что он установлен в записной книжке. Вы можете установить или обновить версию scikit-learn в вашей среде с помощью следующей команды:
%pip install scikit-learn
Затем мы создадим эксперимент машинного обучения с помощью API MLFLow. API MLflow set_experiment() создаст новый эксперимент машинного обучения, если он еще не существует.
import mlflow
mlflow.set_experiment("sample-sklearn")
Обучение модели scikit-learn
После создания эксперимента мы создадим образец набора данных и создадим модель логистической регрессии. Мы также начнем запуск MLflow и отслеживать метрики, параметры и окончательную модель логистической регрессии. Создав окончательную модель, мы также сохраните полученную модель для дополнительного отслеживания.
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")
Загрузка и оценка модели в образце набора данных
После сохранения модели ее также можно загрузить для вывода. Для этого мы загрузим модель и запустите вывод в образце набора данных.
# 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()
Связанный контент
- Узнайте о моделях машинного обучения.
- Узнайте о экспериментах машинного обучения.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по