有没有办法在Google表格上部署机器学习模型?

时间:2020-06-15 17:37:40

标签: google-sheets google-cloud-platform google-cloud-functions google-sheets-api

我在本地创建了机器学习回归模型,该模型将一行数据帧作为输入,并使用Python中的sk-learn提供一个(或两个)数字作为输出。我想知道是否可以将Google表格中几行的输入作为输入,然后提供model.predict(row_input)的结果作为输出,如果模型在某个被触发的云函数中运行当所有行都填满时(也许我可以为此查看云调度程序)?

但是我首先如何将机器学习模型部署(或连接)到Google表格?我在互联网上没有碰到太多有关此的资源。

1 个答案:

答案 0 :(得分:0)

如果您的代码是Python代码,建议您将其部署在Cloud Functions上并编写脚本,定义own Google Sheet function,然后使用它来调用Google Cloud Functions。

编辑

您有2种实现方式


首先,您可以将代码部署在Cloud Functions上,并使用所需的参数进行调用(例如,该行中包含的值数组)。您会收到放入单元格中的答案


第二,您还可以将代码部署在Cloud Function中,并仅使用一些引用来调用它,

  • 文件ID
  • 行范围(A1-A10)
  • 要写入结果的目标单元格

然后,Cloud Functions打开文件,获取结果并将结果直接写到工作表中。


第二种解决方案是异步的,这意味着已授权Cloud Functions身份(Cloud Function的服务帐户)在文件上读写。

第一个解决方案是同步的,可以应用于任何工作表或其他应用程序。

为什么我都提出?因为安全。如果您不想向任何人开放您的Cloud Function(并且不支付任何处理费用),则必须确保对Cloud Function的访问权限


对于第一种解决方案,您必须经过身份验证,但该方法不适用于用户身份验证,您需要由Google与正确的受众群体签署的身份令牌。因此,您需要有一个服务帐户。但这意味着您需要生成服务帐户密钥文件并将其存储在脚本中。不是一个非常安全的地方,但是可以。


对于第二种解决方案,这是相同的。除了处于异步模式之外,您可以使用一个技巧:PubSub。实际上,您可以使用用户访问令牌将消息发布到PubSub,并在PubSub上安全地插入您的Cloud Function。云端功能几乎可以实时进行处理,而云端功能会自行更新工作表。但是,您必须以Cloud Functions身份对工作表进行大规模访问,并且不能将此解决方案应用于任何工作表。


我希望这很清楚。如果没有,请随时询问我。