如何解决BigQuery ML 评估指标 (nDCG = 1)
我正在使用 BigQuery ML 训练矩阵分解模型,以便根据客户的交易历史向客户推荐产品。
我的问题是nDCG(由google计算)为1,我不知道为什么。这显然是错误的。
我有一个理论,即之前购买的产品具有最高的预测评级,因此用完美的评级“混乱”预测,从而产生完美的 nDCG。
但事实并非如此,新产品通常排在第 4 或第 6 位。
此外,我在 google docu 中找不到任何关于如何计算 nDCG 的内容来解释这种行为。
我希望有人可以解释这种行为或帮助我解决根本问题。
输入数据
输入数据基于隐式反馈,评分采用二进制编码。
1 -> bought the product prevIoUsly
0 -> no prevIoUs transaction
输入数据仅包含存在于交易历史记录中的cust prod 组合。
因此,每个输入的评分为 1。
它看起来像那样并且有 80,3M 行:
| cust_code | prod_code | rating |
| --------- | ----------- | ------ |
| CUST0000000001 | PRD0900001 | 1 |
| CUST0000000001 | PRD0900027 | 1 |
| CUST0000000009 | PRD0900008 | 1 |
| CUST0000000009 | PRD0900034 | 1 |
查询
训练模型的查询:
CREATE OR REPLACE MODEL `my_model`
OPTIONS(MODEL_TYPE = 'MATRIX_FACTORIZATION',FeedBACK_TYPE = 'IMPLICIT',USER_COL = "cust_code",ITEM_COL = "prod_code",rating_COL = "rating",DATA_SPLIT_METHOD = 'AUTO_SPLIT') AS
SELECT
cust_code,prod_code,rating,FROM
`project_id.dataset.source_table`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。