如何通过Watson Studio和Machine Learning部署scikit学习python模型?

时间:2018-10-03 17:43:04

标签: machine-learning watson-studio

假设我已经有一个scikit-learn模型,并且我想将其保存到我的Watson Machine Learning中并使用python客户端进行部署。

python客户端文档:http://wml-api-pyclient.mybluemix.net

我喜欢:

clf = svm.SVC(kernel='rbf')
clf.fit(train_data, train_labels)

# Evaluate your model.
predicted = clf.predict(test_data)

我要做的是将此模型部署为可通过REST API访问的Web服务。

我在以下位置阅读了Watson Machine Learning文档:https://dataplatform.cloud.ibm.com/docs/content/analyze-data/wml-ai.html?audience=wdp&context=analytics

但是在部署模型时遇到了麻烦。

2 个答案:

答案 0 :(得分:1)

使用scikit学习模型,Watson Machine Learning期望使用pipeline对象,而不只是拟合模型对象。这样一来,您还可以将数据转换和预处理逻辑部署到同一端点。例如,尝试将代码更改为:

scaler = preprocessing.StandardScaler()
clf = svm.SVC(kernel='rbf')
pipeline = Pipeline([('scaler', scaler), ('svc', clf)])
model = pipeline.fit(train_data, train_labels)

然后,您将可以通过遵循此处的文档来部署模型:http://wml-api-pyclient.mybluemix.net/#deployments

在Watson Studio中的笔记本中,您只需

from watson_machine_learning_client import WatsonMachineLearningAPIClient

wml_credentials = {
                   "url": "https://ibm-watson-ml.mybluemix.net",
                   "username": "*****",
                   "password": "*****",
                   "instance_id": "*****"
                  }

client = WatsonMachineLearningAPIClient(wml_credentials)

,然后先将模型保存到存储库中,然后再使用客户端部署模型

您可以在本教程笔记本中查看如何完成所有这些操作:https://dataplatform.cloud.ibm.com/exchange/public/entry/view/168e65a9e8d2e6174a4e2e2765aa4df1 来自社区

答案 1 :(得分:0)

您还可以将其部署为python函数。您需要将所有功能包装到单个可部署功能(learn python closure)中。

使用凭据的方式与此方法相同。

  • 第1步:定义功能
  • 第2步:将函数存储在存储库中

之后,您可以通过两种方式部署和访问

  1. 使用Python客户端
  2. 使用REST API

此问题已在此see this post

中进行了详细说明