本文簡要介紹
pyspark.pandas.mlflow.load_model
的用法。用法:
pyspark.pandas.mlflow.load_model(model_uri: str, predict_type: Union[str, type, numpy.dtype, pandas.core.dtypes.base.ExtensionDtype] = 'infer') → pyspark.pandas.mlflow.PythonModelWrapper
將 MLflow 模型加載到可用於 pandas 和 pandas-on-Spark DataFrame 的包裝器中。
- model_uri:str
指向模型的 URI。有關更多詳細信息,請參閱 MLflow 文檔。
- predict_type:python 基本類型、numpy 基本類型、Spark 類型或‘infer’。
這是調用模型的預測函數時預期的返回類型。如果指定了‘infer’,包裝器將嘗試根據模型類型自動確定返回類型。
- PythonModelWrapper
MLflow PythonModel 對象的包裝器。該包裝器應遵循 mlflow.pyfunc.PythonModel 的接口。
參數:
返回:
注意:
目前,模型預測隻能與現有 DataFrame 合並。其他列必須手動連接。例如,此代碼將不起作用:
>>> df = ps.DataFrame({"x1": [2.0], "x2": [3.0], "z": [-1]}) >>> features = df[["x1", "x2"]] >>> y = model.predict(features) >>> # Works: >>> features["y"] = y >>> # Will fail with a message about dataframes not aligned. >>> df["y"] = y
當前的解決方法是使用 .merge() 函數,將特征值用作合並鍵。
>>> features['y'] = y >>> everything = df.merge(features, on=['x1', 'x2']) >>> everything x1 x2 z y 0 2.0 3.0 -1 1.376932
例子:
機器學習流。然後將該模型作為可應用於pandas-on-Spark 數據幀的預測器加載。
這是一個完整的示例,它使用 scikit-learn 創建模型並使用:
我們首先初始化我們的 MLflow 環境:
>>> from mlflow.tracking import MlflowClient, set_tracking_uri >>> import mlflow.sklearn >>> from tempfile import mkdtemp >>> d = mkdtemp("pandas_on_spark_mlflow") >>> set_tracking_uri("file:%s"%d) >>> client = MlflowClient() >>> exp = mlflow.create_experiment("my_experiment") >>> mlflow.set_experiment("my_experiment")
我們的目標是使用簡單的線性回歸器來學習這個數值函數。
>>> from sklearn.linear_model import LinearRegression >>> train = pd.DataFrame({"x1": np.arange(8), "x2": np.arange(8)**2, ... "y": np.log(2 + np.arange(8))}) >>> train_x = train[["x1", "x2"]] >>> train_y = train[["y"]] >>> with mlflow.start_run(): ... lr = LinearRegression() ... lr.fit(train_x, train_y) ... mlflow.sklearn.log_model(lr, "model") LinearRegression(...)
現在我們的模型是使用 MLflow 記錄的,我們將其加載返回並將其應用於 pandas-on-Spark 數據幀:
>>> from pyspark.pandas.mlflow import load_model >>> run_info = client.list_run_infos(exp)[-1] >>> model = load_model("runs:/{run_id}/model".format(run_id=run_info.run_uuid)) >>> prediction_df = ps.DataFrame({"x1": [2.0], "x2": [4.0]}) >>> prediction_df["prediction"] = model.predict(prediction_df) >>> prediction_df x1 x2 prediction 0 2.0 4.0 1.355551
該模型也適用於 pandas DataFrames 正如預期的那樣:
>>> model.predict(prediction_df[["x1", "x2"]].to_pandas()) array([[1.35555142]])
相關用法
- Python pyspark log用法及代碼示例
- Python pyspark log2用法及代碼示例
- Python pyspark locate用法及代碼示例
- Python pyspark lit用法及代碼示例
- Python pyspark length用法及代碼示例
- Python pyspark last_day用法及代碼示例
- Python pyspark lpad用法及代碼示例
- Python pyspark levenshtein用法及代碼示例
- Python pyspark least用法及代碼示例
- Python pyspark create_map用法及代碼示例
- Python pyspark date_add用法及代碼示例
- Python pyspark DataFrame.to_latex用法及代碼示例
- Python pyspark DataStreamReader.schema用法及代碼示例
- Python pyspark MultiIndex.size用法及代碼示例
- Python pyspark arrays_overlap用法及代碼示例
- Python pyspark Series.asof用法及代碼示例
- Python pyspark DataFrame.align用法及代碼示例
- Python pyspark Index.is_monotonic_decreasing用法及代碼示例
- Python pyspark IsotonicRegression用法及代碼示例
- Python pyspark DataFrame.plot.bar用法及代碼示例
- Python pyspark DataFrame.to_delta用法及代碼示例
- Python pyspark element_at用法及代碼示例
- Python pyspark explode用法及代碼示例
- Python pyspark MultiIndex.hasnans用法及代碼示例
- Python pyspark Series.to_frame用法及代碼示例
注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.mlflow.load_model。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。