def _sample_testset(self, data):
test_sample = self.test_sample
if not isinstance(test_sample, int):
return data
userid, feedback = self.fields.userid, self.fields.feedback
if test_sample > 0:
sampled = (data.groupby(userid, sort=False, group_keys=False)
.apply(random_choice, test_sample, self.random_state or np.random))
elif test_sample < 0: #leave only the most negative feedback from user
idx = (data.groupby(userid, sort=False)[feedback]
.nsmallest(-test_sample).index.get_level_values(1))
sampled = data.loc[idx]
else:
sampled = data
return sampled
评论列表
文章目录