引入BigQuery ML以使用SQL构建预测模型

大数据高效数据分析的一个关键是在数据所处的位置进行计算。 在某些情况下,这意味着在数据库(例如SQL Server)或大数据环境(例如Spark)中运行R,Python,Java或Scala程序。 但这需要一些相当技术上的编程和数据科学技能,这些在商业分析师或SQL程序员中并不常见。 此外,如果您必须将数据集从数据仓库中提取,转换和加载到另一个数据存储中以进行机器学习,则会引入流程延迟。

[ TensorFlow机器学习入门 TensorFlow评论:最好的深度学习库变得更好 •查看最新版本的TensorFlow中的新增功能 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

为此,谷歌宣布了BigQuery ML的Beta版,这是其基于SQL的企业数据仓库服务的扩展,用于构建和部署机器学习模型。 这很重要,因为它降低了训练某些类型的模型和部署预测分析服务的障碍,既减少了所需的时间,又使数据分析人员和统计人员可以接触到它。

BigQuery的SQL方言中添加了一个SQL样式的语句和六个函数以支持机器学习CREATE MODEL语句和函数ML.EVALUATEML.ROC_CURVEML.PREDICTML.TRAINING_INFOML.FEATURE_INFOML.WEIGHTS 。 Google制作了动画GIF,这些GIF显示了如何使用CREATE MODEL语句CREATE MODEL以及如何使用SELECT查询中的ML.PREDICT函数从模型生成预测。

您可能想知道如何将所有巨大的机器学习复杂性封装在SQL语句中。 简短的答案是,至少现在不能这样做。 BigQuery ML 不是TensorFlow顺序使用的通用神经网络建模工具。

仅支持两种类型的模型:用于预测的线性回归(例如“下个月的销售额将是多少?”)和用于分类的二元logistic回归(例如“信贷申请人是否会违约?”)。 尽管在使用的数据结构中暗示在将来的版本中可能会支持多类逻辑分类,但是BigQuery ML甚至无法处理多类逻辑回归。

普通SQL查询的数据存储方式不适合机器学习,因此在为CREATE MODEL语句准备功能(用于预测的输入变量)时,BigQuery ML自动分类变量(字符串,日期,时间,和布尔值)并标准化数字变量(数字,浮点数和整数)。 数值变量也被标准化用于预测。 BigQuery ML可以从多个BigQuery数据集中提取数据,以进行训练和预测。

CREATE MODEL语句的语法为:

{CREATE MODEL | CREATE MODEL IF NOT EXISTS | CREATE OR REPLACE MODEL} 
model_name 
[OPTIONS(model_option_list)] 
[AS query_statement]

模型选项列表指定模型的类型(线性或逻辑回归)以及训练参数,例如学习率策略,最大迭代次数,提早停止标准(最小相对进度)和数据分割参数(用于分离训练和评估数据集)。 BigQuery ML使用梯度下降来优化模型权重。

Google提供了以下CREATE MODEL语句的简单示例

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='linear_reg',
    ls_init_learn_rate=.15,
    l1_reg=1,
    max_iterations=5 ) AS
SELECT
  column1,
  column2,
  column3,
  label
FROM
  `mydataset.mytable`
WHERE
  column4 < 10

创建模型后,您将需要对其进行评估并将其用于预测。 使用ML.EVALUATE函数评估线性回归和逻辑回归模型的模型指标; 它会生成一行包含指标的输出。 您还可以使用ML.ROC_CURVE函数来评估逻辑回归模型。 它为模型的不同阈值生成带有度量的多个行。

使用ML.PREDICT函数来预测应用于数据集的模型的结果。 例如,以下查询比较表mytablemymodel1mymodel2的预测。 您当然可以在SELECT语句中添加WHERE子句,以预测表子集的值。

SELECT
  label,
  predicted_label1,
  predicted_label AS predicted_label2
FROM
  ML.PREDICT(MODEL `mydataset.mymodel2`,
    (
    SELECT
      * REPLACE (predicted_label AS predicted_label1)
    FROM
      ML.PREDICT(MODEL `mydataset.mymodel1`,
        TABLE `mydataset.mytable`)))

From: https://www.infoworld.com/article/3293041/introducing-bigquery-ml-for-building-predictive-models-with-sql.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值