pyspark.pandas.mlflow。
load_model
URI指向模型。看到MLflow文檔以了解更多的細節。
這是返回類型,預計當調用模型的預測函數。如果指定“推斷”,包裝器將嚐試確定自動基於模型類型的返回類型。
一個包裝MLflow PythonModel對象。這個包裝器將堅持mlflow.pyfunc.PythonModel的接口。
筆記
目前,該模型預測隻能與現有dataframe回歸。其他列必須手動加入。例如,這段代碼不工作:
> > >df=ps。DataFrame({“x1”:(2.0),“x2”:(3.0),“z”:(- - - - - -1]})> > >特性=df[[“x1”,“x2”]]> > >y=模型。預測(特性)> > >#工作:> > >特性(“y”]=y> > ># dataframes信息不一致將會失敗。> > >df(“y”]=y
當前的解決方案是使用.merge()函數,使用特征值作為合並的鑰匙。
> > >特性(“y”]=y> > >一切=df。合並(特性,在=(x1的,“x2”])> > >一切(x1, x2) z y0 1.376932 2.0 3.0 1
例子
MLflow。然後加載模型作為預測,可以應用於pandas-on-Spark Dataframe。
我們第一次初始化MLflow環境:
> > >從mlflow.tracking進口MlflowClient,set_tracking_uri> > >進口mlflow.sklearn> > >從tempfile進口mkdtemp> > >d=mkdtemp(“pandas_on_spark_mlflow”)> > >set_tracking_uri(“文件:% s”%d)> > >客戶端=MlflowClient()> > >exp_id=mlflow。create_experiment(“my_experiment”)> > >經驗值=mlflow。set_experiment(“my_experiment”)
我們的目標是在學習這個數值函數使用一個簡單的線性回歸量。
> > >從sklearn.linear_model進口LinearRegression> > >火車=pd。DataFrame({“x1”:np。不等(8),“x2”:np。不等(8)* *2,…“y”:np。日誌(2+np。不等(8)})> > >train_x=火車[[“x1”,“x2”]]> > >train_y=火車[[“y”]]> > >與mlflow。start_run():…lr=LinearRegression()…lr。適合(train_x,train_y)…mlflow。sklearn。log_model(lr,“模型”)LinearRegression (…)
現在我們的模型使用MLflow記錄,我們裝載它,應用它pandas-on-Spark dataframe:
> > >從pyspark.pandas.mlflow進口load_model> > >run_info=客戶端。list_run_infos(exp_id)[- - - - - -1]> > >模型=load_model(”:/{run_id}/模式”。格式(run_id=run_info。run_uuid))> > >prediction_df=ps。DataFrame({“x1”:(2.0),“x2”:(4.0]})> > >prediction_df(“預測”]=模型。預測(prediction_df)> > >prediction_df(x1, x2)預測0 2.0 4.0 1.355551
該模型也適用於熊貓DataFrames預期:
> > >模型。預測(prediction_df[[“x1”,“x2”]]。to_pandas())數組([[1.35555142]])
以前的
pyspark.pandas.mlflow.PythonModelWrapper
下一個
擴展