深度学习推荐系统实战
王喆
Roku 推荐系统架构负责人,前 hulu 高级研究员,《深度学习推荐系统》作者
33298 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
深度学习推荐系统实战
15
15
1.0x
00:00/00:00
登录|注册

特别加餐|TensorFlow的模型离线评估实践怎么做?

DeepFM评估结果差的原因
常用评估指标及特点
深度推荐模型的效果对比
设置评估指标并计算
导入Spark分割好的训练集和测试集
实践过程分为三步
模型过拟合问题
模型效果比较
模型在测试集上的评估结果记录
EmbeddingMLP、NerualCF、Wide&Deep、DeepFM等模型
测试集评估阶段调用model.evaluate函数
模型在每轮epoch结束后输出评估指标
评估指标包括准确度、ROC曲线AUC、PR曲线AUC、损失函数
模型编译阶段设置metrics
设置评估指标的过程
载入数据集方法
数据集存储路径
Spark中的randomSplit函数
Holdout检验方式
课后思考
小结
模型的效果对比
TensorFlow评估指标的设置
训练集和测试集的生成
TensorFlow模型离线评估实践

该思维导图由 AI 生成,仅供参考

你好,我是王喆。
上两节课,我们学习了离线评估的主要方法以及离线评估的主要指标。那这些方法和指标具体是怎么使用的,会遇到哪些问题呢?我们之前实现的深度学习模型的效果怎么样呢?
这节课,我们直接进入实战,在 TensorFlow 环境下评估一下我们之前实现过的深度学习模型。一方面这能帮助我们进一步加深对离线评估方法和指标的理解,另一方面,也能检验一下我们自己模型的效果。

训练集和测试集的生成

离线评估的第一步就是要生成训练集和测试集,在这次的评估实践中,我会选择最常用的 Holdout 检验的方式来划分训练集和测试集。划分的方法我们已经在第 23 讲里用 Spark 实现过了,就是调用 Spark 中的 randomSplit 函数进行划分,具体的代码你可以参考 FeatureEngForRecModel 对象中的 splitAndSaveTrainingTestSamples 函数。
这里我们按照 8:2 的比例把全量样本集划分为训练集和测试集,再把它们分别存储在SparrowRecSys/src/main/resources/webroot/sampledata/trainingSamples.csvSparrowRecSys/src/main/resources/webroot/sampledata/testSamples.csv路径中。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了TensorFlow模型离线评估的实践方法,重点讨论了生成训练集和测试集的方法以及在TensorFlow中设置评估指标的步骤。通过代码示例展示了如何在模型编译阶段设置准确度、ROC曲线AUC、PR曲线AUC等评估指标,并在训练和评估过程中观察模型效果的变化。文章还对比了Embedding MLP、Wide&Deep、DeepFM等模型在测试集上的评估结果,讨论了模型选择和处理过拟合问题的方法。最后强调了根据具体业务和数据情况调整模型和参数的重要性。整体而言,本文通过实例详细介绍了TensorFlow模型离线评估的实践方法,对于深入了解模型评估的技术人员具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深度学习推荐系统实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • Geek_e642b8
    第二个问题是FM部分使用两两点积的缘故吗?

    作者回复: 我猜测是因为交叉层的数据太稀疏了,不能够让交叉层完全收敛。 另外交叉层大量使用id类特征,测试集的id特征和训练集的id特征重叠比较少的话,很可能无法作出合理的预测。这也是所谓模型泛化性和记忆性的矛盾。

    2020-12-11
    20
  • 老庄
    请教老师,这个wide&deep的ROC和PR AUC的数值,如果使用不同的epochs,得到的结果差别很大。 为什么这里没有把train_dataset分为train和validate两部分,也没有配置EarlyStopping,感觉会一直跑。 这样的结果对比,会不会不大对?

    作者回复: 代码肯定不是最完善的,我完全赞同使用validate dataset和early stop来终止训练。可以的话可以提交PR来增加这些相关方法。

    2021-03-04
    4
  • Geek_b6c3b5
    为什么emp我没有上线默认是emb计算猜你喜欢? 而neuralCF我上线了还需要手动输出model=neuralCF
    2024-03-13归属地:广东
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部