如何使用稀疏矩阵作为参数

时间:2017-11-30 13:32:54

标签: data-science-experience

由于目前在Watson ML服务上发布scikit-learn模型的限制,它不允许任何自定义转换器等(https://datascience.ibm.com/docs/content/analyze-data/ml-scikit-learn.html)在管道中,我最终部署了一个仅包含SVC分类器,而不是TfidfVectorizer。

这意味着,我需要"转换"在调用Watson ML上的模型之前,使用TfidfVectorizer获取原始测试数据。

只要我不尝试在线部署方法(我需要,因为我想要一个应用程序将请求发布到我的模型中),这样工作正常。

如何从TfidfVectorizer.transform序列化我的稀疏矩阵并将其作为json有效负载传递给WML服务?

谢谢!

1 个答案:

答案 0 :(得分:2)

实际上,我正在回答我的问题; - )

如果你遇到必须向WML发送稀疏矩阵的情况,那么你可以使用

<yourmatrix>.todense().tolist()

所以,要把它放回到我的初始问题的上下文中,我可以发送变换的结果:

valuesList = tfidf_vectorizer.transform(test).todense().tolist()
payload_scoring = {"values": [[valuesList]]}
response_scoring = requests.post(scoringUrl, json=payload_scoring, headers=header)