与在 BigQuery ML 中使用 ML.Evaluate 进行评估相比,创建模型后的评估结果有啥区别?

Posted

技术标签:

【中文标题】与在 BigQuery ML 中使用 ML.Evaluate 进行评估相比,创建模型后的评估结果有啥区别?【英文标题】:What is the difference between Evaluation result after creating a model, compared to evaluation using ML.Evaluate in BigQuery ML?与在 BigQuery ML 中使用 ML.Evaluate 进行评估相比,创建模型后的评估结果有什么区别? 【发布时间】:2020-02-24 02:12:03 【问题描述】:

我正在尝试使用 BigQuery ML 训练模型,但对功能有点困惑。

当我使用 CREATE MODEL 函数创建模型时,它允许我将数据拆分为训练和评估。假设我使用 AUTO_SPLIT 并且我的行在 500 到 50,000 之间,根据文档,20% 的数据用作 RANDOM 拆分中的评估。我可以假设剩下的 80% 将用于训练吗?

所以在某种程度上,通过使用这个 CREATE MODEL 函数,我基本上是在同时进行训练和评估。这种理解正确吗?如果是,那么 ML.Evaluate 函数的目的是什么?

【问题讨论】:

【参考方案1】:

CREATE MODEL 语句在指定数据集中训练一个新模型。它的一个选项是设置一个 DATA_SPLIT_METHOD,它根据拆分方法将输入数据拆分为两个不同的集合(trainingevaluation)。评估数据用于通过提前停止避免overfitting,不会用于训练模型。评估集通常称为validation 集。

另一方面,ML.EVALUATE 函数用于使用适用于所提供模型类型的通用指标来评估模型指标。它用于量化模型的性能。

【讨论】:

【参考方案2】:

ML.EVALUATE 可用于针对模型训练时不可用的新数据测试模型。

如果您只使用模型调用 ML.EVALUATE 而没有要评估的数据表,它将返回训练期间计算的评估。

【讨论】:

以上是关于与在 BigQuery ML 中使用 ML.Evaluate 进行评估相比,创建模型后的评估结果有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

带有 node.js 的对话流中的 Bigquery ML

国产开源项目也能用SQL解决机器学习问题!与谷歌BigQuery ML有何不同?

将 Biquery 查询格式化为 ML 适当的 JSON 以通过 ML Predict

firebase 和 BigQuery 的保留结果不匹配

在 Google 跟踪代码管理器中使用 GA Bigquery 导出架构变量

BigQueryML中用于TensorFlow模型的ML.PREDICT的多列输入