MLFlow sklearn Model Register的两种写法

MLFlow sklearn Model Register的两种写法

这里介绍MLFlow Model Register的两种写法:

  • mlflow.sklearn.log_model
  • mlflow.register_model


比如我们已经导入了数据,并且经过了数据拆分,归一化等预处理:

X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=1)
# 去均值和方差的归一化
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_val = sc.transform(X_val)

然后我们新建了一个experiment,以及run

myexperiment = Experiment(workspace, "RFTest1")
mlflow.set_experiment("RFTest1")
# 在此experiment下新建一个run
with mlflow.start_run() as new_run:
      mlflow.log_param("dataset_name", datasetTrn.name)
      mlflow.log_param("dataset_version", datasetTrn.version)

然后我们进行训练以及验证:

rf = RandomForestClassifier(max_depth=10, random_state=0, n_estimators=100)
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
rf.fit(X_train, y_train)
predicted_rf = rf.predict(X_val)
acc = accuracy_score(y_val, predicted_rf)

最后我们希望将这个模型打包注册,这样我们需要的时候,就可以从需要的版本中把当时训练的模型提取出来继续使用。这里有两个方式进行模型注册:

第一种方式是mlflow.sklearn.log_model

mlflow.sklearn.log_model(
            sk_model = self.rf, 
            artifact_path = 'outputs/rf.onnx',
            registered_model_name = "sk-learn-random-forest-reg-model" )

第二种方式是mlflow.register_model

experiment_name='RFTest1'
current_experiment=mlflow.get_experiment_by_name(experiment_name)
runs = mlflow.search_runs(experiment_ids=current_experiment.experiment_id, run_view_type=ViewType.ALL)
run_id = runs.tail(1)["run_id"].tolist()[0]
artifact_path = 'outputs/rf.onnx'
model_uri = 'runs:/{}/{}'.format(run_id, artifact_path) 
registered_model_name = "sk-learn-random-forest-reg-model"
result = mlflow.register_model(
        model_uri = model_uri,
        name = registered_model_name
        )
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面分别介绍使用sklearn库中线性回归算法和随机森林算法进行房价预测分析的步骤: 1. 线性回归算法: (1)导入必要的库和数据集 ``` from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error import pandas as pd data = pd.read_csv('house_price.csv') ``` (2)数据预处理 ``` X = data.drop(['Price'], axis=1) y = data['Price'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` (3)训练模型并预测 ``` model = LinearRegression() model.fit(X_train, y_train) y_pred = model.predict(X_test) ``` (4)评估模型性能 ``` mse = mean_squared_error(y_test, y_pred) print("Mean squared error: ", mse) ``` 2. 随机森林算法: (1)导入必要的库和数据集 ``` from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error import pandas as pd data = pd.read_csv('house_price.csv') ``` (2)数据预处理 ``` X = data.drop(['Price'], axis=1) y = data['Price'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` (3)训练模型并预测 ``` model = RandomForestRegressor(n_estimators=100, random_state=0) model.fit(X_train, y_train) y_pred = model.predict(X_test) ``` (4)评估模型性能 ``` mse = mean_squared_error(y_test, y_pred) print("Mean squared error: ", mse) ``` 需要注意的是,在使用随机森林算法进行房价预测时,需要设置n_estimators参数,该参数表示集成中树的数量。在实际应用中,需要通过交叉验证等方法来选择最优的n_estimators值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破浪会有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值