出发点是一切直接暴露和利用未来测试数据信息的行为都是不真实的,应该尽力避免,具体来说:
问题1. 假设今天真的是8月15日,天猫团队的人应该如何确认他们的模型?拿到8月16~9月15的数据来测一遍吗?
当然不行,因为未来的数据天猫团队咋可能拿到呢?哪怕是未来一个月有多少次购买,都只能是预测,根本不可能拿到,只有到9月16日他们才能拿到,但到那时他们的任务没准已经变成了预测9月16~10月15了。 所以当前比赛的测试环境是不真实的。当然了,如果测试集很大或者限制评测次数的话这种真实性带来的公平性的问题会小一点,但毕竟是不真实的。
问题2. 为保证测试接近真实场景?直接不让参赛队看到结果,赛后一次性公布结果和排名,可以吗?
可以。这样是真实公平的,但是这样的问题在于,咱们现在是”比赛“,所以就是要和别人“比”,大家各自私下优化模型,对于和别人的模型比较是好是坏就完全不知道是啥情况了。那这样大家是不是很痛苦?所以最好也不要这样
问题3. 用户和品牌的抽样能参考8月16~9月15的数据(例如这一个月内的优质品牌和优质用户)甚至这以后的数据吗?
当然不行,理由同1。
问题4. 8月16~9月15的购买次数超多,比前几个月多太多,这样的测试数集好吗?
如果确实是超多的话(而不是故意抽取的9月的优质数据),从公平性角度来说,没问题。 但是这样从赛题的难度而言,大大加大,因为训练数据和测试数据的分布差异极大,我们很难从训练数据的效果好坏推导出测试数据的效果好坏。我对于此问题持中立态度,也就是数据分布可以有一定差异,但最好是这种差异的可预测性不是太难。
针对第二季,我的建议解决方案:
比赛前x天:给出前4个月的数据,让大家预测下一个月,显示排行榜
比赛后y天:给出前5个月的数据(也就是公布第5个月答案),让大家预测第6个月的结果
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。