做推荐算法实验时,测试集中用户数量庞大,能否从中随机抽取用户作为实验对象,看算法在这些用户上的效果?

2018-03-26 10:35:20 +08:00
 DongDongXie

因为测试集中用户数量比较庞大,对里面的每个用户都进行测试的话,实验时间比较长。时间关系,我就想的是还是使用原来的训练集进行训练,然后在测试的时候,从测试集中抽取部分用户来进行实验,以这部分用户的测试结果的均值,作为我算法的效果。比如我随机抽取 100 人,然后给这 100 个用户产生推荐,将这 100 个人的最终的实验结果的均值作为我这个算法的实验结果,但是这 100 个用户我是会保存下来,其他对比算法也是要对这 100 个用户进行推荐,以便和我的算法在这 100 个用户上的结果进行对比,请问这样做可以吗

2533 次点击
所在节点    算法
4 条回复
enzo113
2018-03-26 10:46:08 +08:00
你说的“测试”具体是什么?人工评价?回归测试?
DongDongXie
2018-03-26 11:12:31 +08:00
@enzo113 就是看我的算法在这部分用户上的效果,比如准确率、召回率
enzo113
2018-03-26 12:23:12 +08:00
@DongDongXie #2 正常情况下测试集的大小应该少于训练集,并且测试用的时间应该远远少于训练的时间吧。这样其实做一个完整的测试也不会花太多时间?
vegito2002
2018-03-26 12:31:02 +08:00
理论上好像可以;只要 test set 只用来测试, 小一点应该问题不大。 当然要看你实际模拟的是一个什么分布, 如果方差很大的分布, 最后结果的随机性可能就比较大;

我也不太理解为什么你都能 train 完了, 居然 test 时间还成为瓶颈了嘛?

Google 的 typeahead 好像就有一个随机取样的过程在里面, 不过那个不是机器学习算法, 不知道有没有参考价值。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/441385

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX