Kaggle riiid 拿银总结

本文是作者在Kaggle比赛中首次参赛并获得银牌的总结,比赛期间利用train、lecture和question表格数据预测用户答题正确率。主要模型采用了LightGBM,并进行了数据清洗、降维处理和特征工程,最终通过模型融合提升预测效果。项目源代码已上传至GitHub。
摘要由CSDN通过智能技术生成

Kaggle 首战拿银总结

比赛起止时间: 2020.10.12 - 2021.1.5
个人比赛账号: Kwjdefulgn
比赛项目简介: 官方给了一个5个G的压缩包,里边有三张表格,分别是train lecture 和 question,我们需要根据这三张表中的做题信息来推测出该用户下一次再遇到某一道题目时的答题正确率。

train表 中主要是用户的一些做题信息,主要字段包括user_id,问题或者讲座的id即content_id,题目类型content_type_id(1代表讲座0代表问题),做题的时间戳timestamp,上一个batch题目的做题时长prior_question_elapsed_time,这一道题目是否回答正确,每套题目的编号task_container_id(默认是按用户做题顺序由小到小大编号),上一套题目是否有解释prior_question_had_explanation。

lecture表 主要依靠外键lecture_id与train表相连,当train表中的题目类型type字段为1时表示讲座。lecture表里边主要字段有lecture的类型编号,tag标号等信息。

question表 主要依靠外键question_id与train表相连,当train表中的题目类型type字段为0时表示讲座。lecture表里边主要字段有question的类型编号,tag标号,该道题目的正确答案, 问题属于哪个模块part。

前期的数据清洗: 经过检查,有196条数据存在异常。即某个task_container里边出现了同一道题目,一套题里边有两道同样的题目,属于异常数据,需要剔除。

主要模型: light gbm模型,后期走多个lgbm模型融合路线。

前期处理: 由于官方给的表格数据过于庞大,我们无可避免的需要对原有的数据进行降维处理,另外可以将.csv类型的表格转成.pkl类型的文本文件,这样可以极大的增加数据的读写效率。

特征工程:
1 前期将所有的列加入lgbm之后发现用户的时间戳,user_id,content_id,part的重要性系数最高,因此前期主要做的是两个维度的特征,一个是用户维度,另一个是问题维度。主要特征尝试如下所示。

# feat_question_tags,
            feat_user_history_lecture_nums,
            # feat_question_asked_nums_and_corroct_nums_and_rate,
            # feat_question_first_tag,
            # feat_time_interval_of_the_last_question,
            feat_user_this_part_history_question_nums_and_corroct_nums_and_rate,
            # feat_user_this_part_history_lecture_nums,#基本没啥用啊,不过也可以先留着
            # user_in_task_container_rate,
            # wa_and_no_explanation,
            feat_user_history_rolling3_container_question_nums_and_corroct_nums_and_rate,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值