作者 | Umar Syed,Sergei Vassilvitskii
近日谷歌正式发布 BigQuery ML(https://cloud.google.com/blog/big-data/2018/07/bridging-the-gap-between-data-and-insights),作为 BigQuery 功能的一部分,可以让数据科学家和分析师在大型的结构化或半结构化的数据集上构建和部署机器学习模型。
谷歌 BigQuery 提供了基于大型数据集的交互式分析能力,让企业能够轻松分享有意义的见解并基于客户分析开发解决方案。很多使用 BigQuery 的企业都没有使用机器学习来更好地理解他们正在生成的数据,这是因为精通 SQL 的数据分析师可能不具备机器学习方面的数据科学背景。
在设计 BigQuery ML 后端时,该团队面临着两难的局面。将大量数据从 BigQuery 服务器传输到运行机器学习算法的专用服务器上将非常耗时,并且存在数据安全性和隐私方面的问题。不过,梯度下降的核心组件——一种用于优化机器学习算法的方法——可以使用常用的 SQL 操作来实现,因此我们能够让 BigQuery ML 利用现有的 BigQuery SQL 处理引擎。
BigQuery 引擎旨在高效地扫描大型数据集而不只是随机抽取小型样本,因此,BigQuery ML 是基于梯度下降的标准(批量)变体,而不是随机版本。虽然随机梯度下降在当今的大型机器学习系统中更为常见,但批量变体具有很多实践方面的优势。
要体验 BigQuery ML,请访问 BigQuery 控制台(https://console.cloud.google.com/bigquery )并按照用户指南(https://cloud.google.com/bigquery/docs/bigqueryml-intro )进行操作。
创建模型非常简单:
在未来,谷歌计划进一步将梯度下降实现与 BigQuery 基础架构集成在一起,以实现更高的性能提升。
以下是创建回归模型、使用模型进行预测、创建分类模型和评估模型的示例。
创建回归模型
10 分钟后,模型就训练好了,并计算出每次迭代的结果。
这里的损失就是均方误差,因此模型在迭代 #6 上收敛,RMSE 约为 sqrt(97)=10 分钟。
使用模型进行预测
结果如下:
因为使用训练模型来预测名为“arr_delay”的变量,所以 ML.PREDICT 会创建一个名为 predict_arr_delay 的列。这个示例从原始表中拉出 10 行数据并预测这些航班的晚点情况。
创建分类模型
这次是预测航班延延误过 15 分钟的可能性。这是一个分类问题,所以需要对查询稍作修改:
计算结果:
以及另一个预测示例:
评估模型
我们可以在独立数据集上评估模型。为了方便,这个例子展示了如何在模型训练的同一数据集上进行评估:
结果:
英文原文:
https://ai.googleblog.com/2018/07/machine-learning-in-google-bigquery.html
https://towardsdatascience.com/how-to-train-and-predict-regression-and-classification-ml-models-using-only-sql-using-bigquery-ml-f219b180b947
领取专属 10元无门槛券
私享最新 技术干货