本文简要介绍
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。