478. Feedback Prize - Evaluating Student Writing | feedback-prize-2021
首先,我要感谢 abhishek、hengck23 和 librauee 提供的优秀笔记本和讨论。我从他们的工作中学到了很多。这是我们参加的第二个 Kaggle 比赛,虽然离金牌只差一名,但我们已经非常满意了。
合并具有相同标签的连续预测,例如我们将 [B-Lead, I-Lead, I-Lead]、[B-Lead, I-Lead] 合并为一个单独的预测。我们只在标签属于 ['Lead', 'Position', 'Concluding', 'Rebuttal'] 时执行此操作,因为在训练数据中这些标签没有连续的预测。
过滤 "Lead" 和 "Concluding"。在几乎所有的训练数据中只有一个 Lead 标签和一个 Concluding 标签,因此我们只保留分数高于阈值的预测。此外,我们发现合并两个 Lead 可以进一步提高 CV 分数。
concluding_df = sorted(concluding_df, key=lambda x: np.mean(x[4]), reverse=True)
new_begin = min(concluding_df[0][3][0], concluding_df[1][3][0])
new_end = max(concluding_df[0][3][-1], concluding_df[1][3][-1])
由于分数是基于预测和真实值之间的重叠部分计算的,因此我们将预测从 word_list[begin:end] 扩展到 word_list[begin - 1: end + 1]。希望扩展后的预测能更好地命中真实值并跨越 50% 的阈值。
缩放。每个 token 的概率乘以一个因子。这些因子是通过遗传算法搜索获得的。
还有其他一些尝试,但效果不佳。这些尝试包含在推理笔记本中。