Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом руководстве показано, как импортировать зарегистрированную модель LightGBMClassifier, созданную в части 3. В этом руководстве использовался реестр моделей Microsoft Fabric MLflow для обучения модели и выполнения пакетных прогнозов для тестового набора данных, загруженного из lakehouse (озера данных).
С помощью Microsoft Fabric можно использовать модели машинного обучения с помощью масштабируемой функции PREDICT . Эта функция поддерживает пакетную оценку в любом вычислительном ядре. Вы можете создавать пакетные прогнозы непосредственно из записной книжки Microsoft Fabric или на странице элемента данной модели. Дополнительные сведения о функции PREDICT см. в этом ресурсе.
Чтобы создать пакетные прогнозы в тестовом наборе данных, используйте версию 1 обученной модели LightGBM. Эта версия показала лучшую производительность среди всех обученных моделей машинного обучения. Вы загружаете тестовый набор данных в кадр данных Spark и создаете объект MLFlowTransformer для создания пакетных прогнозов. Затем можно вызвать функцию PREDICT с помощью одного из следующих методов:
- API преобразователя из SynapseML
- Spark SQL API
- Определяемая пользователем функция PySpark (UDF)
Необходимые условия
Получите подписку Microsoft Fabric. Зарегистрируйтесь на бесплатную пробную версию Microsoft Fabric или воспользуйтесь .
Войдите в Microsoft Fabric.
Перейдите в Fabric с помощью переключателя интерфейса в левой нижней части домашней страницы.
Это часть 4 из пяти частей серии учебников. Чтобы завершить работу с этим руководством, сначала выполните указанные ниже действия.
- Часть 1: Загрузка данных в озеро данных Microsoft Fabric с помощью Apache Spark.
- часть 2. Изучение и визуализация данных с помощью записных книжек Microsoft Fabric для получения дополнительных сведений о данных.
- часть 3. Обучение и регистрация моделей машинного обучения.
Следуйте инструкциям в записной книжке
4-predict.ipynb — это записная книжка, сопровождающая это руководство.
Чтобы открыть прилагаемую записную книжку для этого руководства, следуйте инструкциям в Подготовка системы для руководств по науке о данных для импорта записной книжки в рабочую область.
Если вы хотите скопировать и вставить код на этой странице, можно создать новую записную книжку.
Не забудьте подключить Lakehouse к блокноту перед запуском кода.
Важный
Прикрепите тот же лейкхаус, который вы использовали в других частях этой серии.
Загрузка тестовых данных
В следующем фрагменте кода загрузите тестовые данные, сохраненные в части 3.
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
PREDICT с помощью API Transformer
Чтобы использовать API преобразователя из SynapseML, необходимо сначала создать объект MLFlowTransformer.
Создание экземпляра объекта MLFlowTransformer
Объект MLFlowTransformer служит оболочкой для модели MLFlow, зарегистрированной в части 3. Он позволяет создавать пакетные прогнозы на заданном кадре данных. Чтобы создать экземпляр объекта MLFlowTransformer, необходимо указать следующие параметры:
- Тестовые столбцы DataFrame, необходимые модели в качестве входных данных (в данном случае модель нуждается в всех из них).
- Имя нового выходного столбца (в данном случае прогнозы)
- Правильное имя модели и версия модели для создания прогнозов (в данном случае
lgbm_smи версии 1)
Следующий фрагмент кода обрабатывает следующие действия:
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Теперь, когда у вас есть объект MLFlowTransformer, его можно использовать для создания пакетных прогнозов, как показано в следующем фрагменте кода:
import pandas
predictions = model.transform(df_test)
display(predictions)
ПРОГНОЗИРОВАНИе с помощью API SQL Spark
Следующий фрагмент кода использует API SQL Spark для вызова функции PREDICT:
from pyspark.ml.feature import SQLTransformer
# Substitute "model_name", "model_version", and "features" below with values for your own model name, model version, and feature columns
model_name = 'lgbm_sm'
model_version = 1
features = df_test.columns
sqlt = SQLTransformer().setStatement(
f"SELECT PREDICT('{model_name}/{model_version}', {','.join(features)}) as predictions FROM __THIS__")
# Substitute "X_test" below with your own test dataset
display(sqlt.transform(df_test))
PREDICT с определяемой пользователем функцией (UDF)
В следующем фрагменте кода используется UDF PySpark для вызова функции PREDICT:
from pyspark.sql.functions import col, pandas_udf, udf, lit
# Substitute "model" and "features" below with values for your own model name and feature columns
my_udf = model.to_udf()
features = df_test.columns
display(df_test.withColumn("predictions", my_udf(*[col(f) for f in features])))
Вы также можете создать код PREDICT на странице элемента модели. Дополнительные сведения о функции PREDICT см. в этом ресурсе.
Запишите результаты предсказания модели в Lakehouse.
После создания пакетных прогнозов напишите результаты прогнозирования модели обратно в lakehouse, как показано в следующем фрагменте кода:
# Save predictions to lakehouse to be used for generating a Power BI report
table_name = "customer_churn_test_predictions"
predictions.write.format('delta').mode("overwrite").save(f"Tables/{table_name}")
print(f"Spark DataFrame saved to delta table: {table_name}")
Следующий шаг
Продолжить к: