开发者社区> 问答> 正文

测试数据集问题是否出现训练集没有的uid或bid(附样例)

在处理test数据集时,能保证所有的uid和bid都是在train中出现过吗?


我怕数据集是先选出一堆用户和商标,然后把他们之间的交互信息按照时间前面选出一部分作为train,后面选一部分作test,如果选的时间点不好,可能有的uid和bid只在test中才有。


数据集能保证test中没出现train没有的uid和bid吗?

回复下面询问的:

比如如果test和train的uid,bid完全一致
一个算法a能得到80%的pre,100%的recall,
另一个算法b能得到100%pre,80%recall,
那么两个算法的f1值应该是一样的,都是88.9%

但如果test多了很多uid和bid没出现过,导致用train推荐recall最大值只能到80%,那就变成了
a有80%的pre,80%的recall,
b有100%pre,64%recall,

这样就变成f1值a是80%,b是78%,也就是本来应该排名一样的算法结果a比b好了。

而且即使test中只多了一个uid或者bid,那么a和b算法的排名都是受到影响的

展开
收起
zjueaglelab 2014-03-15 15:01:38 10583 0
6 条回答
写回答
取消 提交回答
  • Re测试数据集问题是否出现训练集没有的uid或bid(附样例)
    我看zjueaglelab其中一个账号提交的结果里面有个很高的recall(41%). 是不是让每一个用户购买了所有的品牌?如果官方的ground truth是没有新品牌和用户,这时的recall应该是100%才对。

    -------------------------

    Re测试数据集问题是否出现训练集没有的uid或bid(附样例)
    这样子,谢谢EagleEye提供的线索

    -------------------------

    回14楼test010的帖子
    “预测提交所有的浏览记录均购买,那么召回率肯定有100%”对于这个判断我觉得不是正确的。你可以试一试。因为没有考虑已有用户与品牌之间的全部关系,还有就是新品牌,这样是不可能在线上有1000%的recall的。
    全部组合输出确实有50M。下载下来的文件没有全部输出的情况多。

    -------------------------

    回2楼穿林越海的帖子
    我觉得EagleEye的问题的出发点是说, 这个新的uid和bid会对我们本地的模型选择产生影响。要是不存在新的用户以及品牌,这样子的话还是很有信息量的。
    2014-03-16 10:48:06
    赞同 展开评论 打赏
  • Re测试数据集问题是否出现训练集没有的uid或bid(附样例)
    我也有楼主同样的问题,提交了的大大们说说看

    -------------------------

    回11楼cxyan的帖子
    没有看到EagleEye的回复,能告诉我答案吗?

    我感觉如果把之前从来没有浏览过,但是在这个月购买了的记录也算在内,召回率根本不可能达到20%。

    -------------------------

    回11楼cxyan的帖子
    而如果不算在内,感觉预测提交所有的浏览记录均购买,那么召回率肯定有100%,准确率也能有1.x%左右,算起来也有3%左右,这样是不是才是对的。

    -------------------------

    回10楼zjueaglelab的帖子
    全部输出哪有50M,下载下来的文件也才4M不到。全部输出也没那么多行。

    -------------------------

    回15楼cxyan的帖子
    我明白你的意思了,你的意思是还考虑本用户没浏览过,但别的用户浏览过的商品,在season1,数据量这么小,应该很难预测到。
    2014-03-16 10:42:25
    赞同 展开评论 打赏
  • Re询问关于测试数据集问题,是否出现训练集没有的uid或bid
    这个问题在现实中是肯定存在的,肯定会动态的新加入一些用户。不过在推荐中应该不考虑这些新加入的用户
    2014-03-15 18:34:44
    赞同 展开评论 打赏
  • 最终评测时,是训练集中出现过的用户,对训练集中出现过的品牌的购买预测,即recall的分母为训练集中uid对bid的真实购买量,所以你说的这个问题是不存在的
    2014-03-15 16:32:37
    赞同 展开评论 打赏
  • 这个是否有,对大家的影响是一样的,都无法预测之前不存在的uid或者bid。
    2014-03-15 15:29:19
    赞同 展开评论 打赏
  • Re询问关于测试数据集问题,是否出现训练集没有的uid或bid
    而且之前说有1000多个用户,后面改成的1000左右用户,因为train中远不到1000人,不会是多出来那些用户只在test中才有吧?

    -------------------------

    回2楼穿林越海的帖子
    当然有影响啊,比如如果test和train的uid,bid完全一致
    一个算法a能得到80%的pre,100%的recall,
    另一个算法b能得到100%pre,80%recall,
    那么两个算法的f1值应该是一样的,都是88.9%

    但如果test多了很多uid和bid没出现过,导致用train推荐recall最大值只能到80%,那就变成了
    a有80%的pre,80%的recall,
    b用100%pre,64%recall,

    这样就变成f1值a是80%,b是78%,也就是本来应该排名一样的算法结果a比b好了。

    -------------------------

    回3楼亚娟的帖子
    官网给出的召回率每个变量解释:


    M 为实际产生成交的用户数量
    bBrandsi为用户i 真实购买的品牌个数
    hitBrandsi预测的品牌列表与用户i真实购买的品牌交集的个数

    这里根本没提bBrandsi一定只有train出现过的brandid,完全没有您说的那个解释

    -------------------------

    Re测试数据集问题是否出现训练集没有的uid或bid(附样例)
    看现在的结果真的让人怀疑是否真有没在训练集出现的uid和bid,比赛支持赛后rejudge吗?让我们检查数据是否有错误

    -------------------------

    Re测试数据集问题是否出现训练集没有的uid或bid(附样例)
    我也想这么尝试的,但这个网站限制提交文件大小为4.9兆,全部输出要近50兆,所以我上传的也是个子集
    2014-03-15 15:03:18
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
F2etest — 多浏览器兼容性测试整体解决方案 立即下载