返回列表

[7th place solution] Essays predictions as features

592. Linking Writing Processes to Writing Quality | linking-writing-processes-to-writing-quality

开始: 2023-10-02 结束: 2024-01-09 智能评测 数据算法赛

[第7名解决方案] 使用论文预测作为特征

作者:Kelvin (Kaggle Grandmaster)
发布时间:2024年1月10日
竞赛排名:第7名

致谢

由于公开的Notebook已经提供了使用操作特征的强大基线(@awqatakSilver Bullet Notebook),我将大部分时间用于尝试通过以下Notebook从匿名化论文中创建特征:@jasonheesangleeNotebook@kawaiicoderuwuNotebook。特别感谢众多其他知识渊博且资源丰富的Notebook作者!

基线特征

@awqatak 的165个特征中,通过特征重要性选择排名前100的LGBM特征。验证策略采用5折交叉验证(Group-Kfold),在CV和LB之间提供了良好的正相关性。

论文特征工程

  • no_comma:论文中逗号","的数量
  • no_quotes:论文中引号"和'的数量
  • no_spaces:论文中空格的总数
  • no_dot:论文中句点"."的数量
  • no_dot_space = np.log(no_dot) * np.log(no_spaces)

使用词和段落生成词袋模型 => 90个特征

  • BOW(词):给定论文"qq qqqq qq",词袋为[qq: 2, qqqq: 1]
  • BOW(段落):给定段落"qqq q qq

    qq q qq",词袋为["qqq q qq": 1, "qq q qq": 1]

标签预处理

观察标签分布时,发现其均值为3.711。我创建了一个新标签"binary label",将原始标签编码为:若标签≥3.7则为1,否则为0。该二分类标签分布均衡(0: 1224, 1: 1247),适合训练分类模型。快速验证测试:若将binary label作为特征泄露,CV可降至0.4X。因此准确预测该编码标签(0或1)能显著提升论文质量预测效果!

使用论文预测作为特征

为利用论文作为特征,我们在q's上训练了一个简单的自定义BPE分词器生成BPE标记,随后分别用于CountVectorizer和TfidfVectorizer(ngram_range=(1,3))。最后训练两个LGBM模型,并使用它们的二分类和回归预测结果作为新特征。

  • (x2 essay_binary_preds)
    • 两个LGBM模型分别基于Count/Tfidf向量,使用二分类目标和binary_logloss指标,以编码后的binary label为目标
    • 概率≥0.5时输出1,否则为0
    • 论文CV准确率达86%
  • (x2 essay_regression_preds)
    • LGBM模型使用回归目标和rmse指标,以原始标签为目标
    • 论文CV RMSE为0.614

模型

所有模型使用相同特征并通过optuna调优,最终权重采用nelder-mead优化确定:

  • LGBM(100个特征 + BOW词特征 + BOW段落特征 + 2×论文二分类预测 + 2×论文回归预测)
  • Denselight
  • Tabnet

CV得分:0.568,公开榜:0.573,私有榜:0.562

同比赛其他方案