Kaggle竞赛提交错误:“键”列中的值“”已被定义

时间:2018-09-26 08:28:52

标签: multiple-columns submission kaggle gbm

这是我第一次参加kaggle比赛,但我无法提交成绩表。我使用gbm制作了模型,并制作了如下的预测表。与其他kaggle竞争案例一样,提交文件的第2列分别名为“ fullVisitorId”和“ PredictedLogRevenue”。

pred_oob = predict(object = model_gbm, newdata = te_df, type = 'response')

mysub = data.frame(fullVisitorId = test$fullVisitorId, Pred = pred_oob)
mysub = mysub %>%
  group_by(fullVisitorId) %>%
  summarise(Predicted = sum(Pred))

submission = read.csv('sample_submission.csv')
mysub = submission %>%
  left_join(mysub, by = 'fullVisitorId')

mysub$PredictedLogRevenue = NULL
names(mysub) = names(submission)

但是当我尝试提交文件时,我收到“失败”消息,提示...

ERROR: The value '8.893887e+17' in the key column 'fullVisitorId' has already been defined (Line 549026, Column 1)
ERROR: The value '8.895317e+18' in the key column 'fullVisitorId' has already been defined (Line 549126, Column 1)
ERROR: The value '8.895317e+18' in the key column 'fullVisitorId' has already been defined (Line 549127, Column 1)

不仅3行,而且还有8行是这样的。 我不知道我做错了什么。我还检查了其他内核,但找不到答案。请帮忙!!

2 个答案:

答案 0 :(得分:0)

对于创建提交数据框,最简单的方法是

subm_df = pd.read_csv('../input/sample_submission.csv')
subm_df['PredictedLogRevenue'] = <your prediction array>
subm_df.to_csv('Subm_1.csv', index=False)

否,这是假设您的sample_submission.csv具有所有fullVisitorId,这在Kaggle中通常会执行。在此之后,我再也没有遇到任何问题。

答案 1 :(得分:0)

此问题是因为fullVisitorId是数字而不是字符,所以它删除了所有的前导零。因此,将read.csv()与colClases参数或fread()结合使用可以使其工作。 我之所以离开,只是因为可能有人像我一样遇到类似的麻烦