Riiid Answer Correctness Prediction - lgb baseline 学习

news2024/12/27 12:46:55

链接

特征

features = ['user_questions', 'user_mean', 'content_questions', 'content_mean', 'prior_question_elapsed_time']

user_df = train[train.answered_correctly != -1].groupby('user_id').agg({'answered_correctly': ['count', 'mean']}).reset_index()
user_df.columns = ['user_id', 'user_questions', 'user_mean']

content_df = train[train.answered_correctly != -1].groupby('content_id').agg({'answered_correctly': ['count', 'mean']}).reset_index()
content_df.columns = ['content_id', 'content_questions', 'content_mean']

train['prior_question_elapsed_time'].fillna(mean_prior, inplace = True)

得分: 0.75

使用的五个特征含义分别是

  • 用户回答所有问题的个数
  • 用户回答问题的正确率
  • 问题被回答的个数总和
  • 问题被回答的正确率
  • 用户在上一个question bundle中平均消耗时间

在这里插入图片描述

特征2

链接

FEATS = ['answered_correctly_avg_u', 'answered_correctly_sum_u', 'count_u', 'answered_correctly_avg_c', 'part', 'prior_question_had_explanation', 'prior_question_elapsed_time']


def add_user_feats(df, answered_correctly_sum_u_dict, count_u_dict):
    acsu = np.zeros(len(df), dtype=np.int32)
    cu = np.zeros(len(df), dtype=np.int32)
    for cnt,row in enumerate(tqdm(df[['user_id','answered_correctly']].values)):
        acsu[cnt] = answered_correctly_sum_u_dict[row[0]]
        cu[cnt] = count_u_dict[row[0]]
        answered_correctly_sum_u_dict[row[0]] += row[1]
        count_u_dict[row[0]] += 1
    user_feats_df = pd.DataFrame({'answered_correctly_sum_u':acsu, 'count_u':cu})
    user_feats_df['answered_correctly_avg_u'] = user_feats_df['answered_correctly_sum_u'] / user_feats_df['count_u']
    df = pd.concat([df, user_feats_df], axis=1)
    return df

# answered correctly average for each content
content_df = train[['content_id','answered_correctly']].groupby(['content_id']).agg(['mean']).reset_index()
content_df.columns = ['content_id', 'answered_correctly_avg_c']

# changing dtype to avoid lightgbm error
train['prior_question_had_explanation'] = train.prior_question_had_explanation.fillna(False).astype('int8')

得分 0.76

使用的7个特征是

  • 使用的特征是增量特征,截止到目前该用户的回答正确率
  • 截止到目前该用户回答正确的题目个数
  • 截止到目前该用户回答问题所有个数
  • content在所有回答中的正确率
  • part
  • 是否有解释
  • 平均消耗时间
    在这里插入图片描述

特征3

链接

FEATURES = ['prior_question_elapsed_time', 'prior_question_had_explanation', 'part',
	 'answered_correctly_u_avg', 'elapsed_time_u_avg', 'explanation_u_avg',
                'answered_correctly_q_avg', 'elapsed_time_q_avg', 'explanation_q_avg',
                 'answered_correctly_uq_count', 'timestamp_u_recency_1', 'timestamp_u_recency_2', 'timestamp_u_recency_3', 
                'timestamp_u_incorrect_recency']

使用的特征14个

在这里插入图片描述

特征4

https://www.kaggle.com/code/a763337092/lgb1215

features_dict = {
    #'user_id',
    'timestamp':'float16',#
    'user_interaction_count':'int16',
    'user_interaction_timestamp_mean':'float32',
    'lagtime':'float32',#
    'lagtime2':'float32',
    'lagtime3':'float32',
    #'lagtime_mean':'int32',
    'content_id':'int16',
    'task_container_id':'int16',
    'user_lecture_sum':'int16',#
    'user_lecture_lv':'float16',##
    'prior_question_elapsed_time':'float32',#
    'delta_prior_question_elapsed_time':'int32',#
    'user_correctness':'float16',#
    'user_uncorrect_count':'int16',#
    'user_correct_count':'int16',#
    #'content_correctness':'float16',
    'content_correctness_std':'float16',
    'content_correct_count':'int32',
    'content_uncorrect_count':'int32',#
    'content_elapsed_time_mean':'float16',
    'content_had_explanation_mean':'float16',
    'content_explation_false_mean':'float16',
    'content_explation_true_mean':'float16',
    'task_container_correctness':'float16',
    'task_container_std':'float16',
    'task_container_cor_count':'int32',#
    'task_container_uncor_count':'int32',#
    'attempt_no':'int8',#
    'part':'int8',
    'part_correctness_mean':'float16',
    'part_correctness_std':'float16',
    'part_uncor_count':'int32',
    'part_cor_count':'int32',
    'tags0': 'int8',
    'tags1': 'int8',
    'tags2': 'int8',
    'tags3': 'int8',
    'tags4': 'int8',
    'tags5': 'int8',
   # 'tags6': 'int8',
   # 'tags7': 'int8',
#     'tags0_correctness_mean':'float16',
#     'tags1_correctness_mean':'float16',
#     'tags2_correctness_mean':'float16',
#     'tags4_correctness_mean':'float16',
#     'bundle_id':'int16',
#     'bundle_correctness_mean':'float16',
#     'bundle_uncor_count':'int32',
#     'bundle_cor_count':'int32',
    'part_bundle_id':'int32',
    'content_sub_bundle':'int8',
    'prior_question_had_explanation':'int8',
    'explanation_mean':'float16', #
    #'explanation_var',#
    'explanation_false_count':'int16',#
    'explanation_true_count':'int16',#
   # 'community':'int8',
#     'part_1',
#     'part_2',
#     'part_3',
#     'part_4',
#     'part_5',
#     'part_6',
#     'part_7',
#     'type_of_concept',
#     'type_of_intention',
#     'type_of_solving_question',
#     'type_of_starter'
}
categorical_columns= [
    #'user_id',
    'content_id',
    'task_container_id',
    'part',
   # 'community',
    'tags0',
    'tags1',
    'tags2',
    'tags3',
    'tags4',
    'tags5',
    #'tags6',
    #'tags7',
    #'bundle_id',
    'part_bundle_id',
    'content_sub_bundle',
    'prior_question_had_explanation', 
#     'part_1',
#     'part_2',
#     'part_3',
#     'part_4',
#     'part_5',
#     'part_6',
#     'part_7',
#     'type_of_concept',
#     'type_of_intention',
#     'type_of_solving_question',
#     'type_of_starter'
]

features=list(features_dict.keys())

在这里插入图片描述

top solution

https://www.kaggle.com/competitions/riiid-test-answer-prediction/discussion/209597

  • Firstly, the data are sorted by [‘user_id’, ‘timestamp’, ‘content_id’]
  • created features in different array via self-designed rolling function or self-designed cumlative function
  • use catboost

https://www.kaggle.com/code/tomooinubushi/62nd-solution-lightgbm-single-model-lb-0-801

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/546695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能Python-python3怎么安装util

如何安装python3的util模块 Python是一种高级编程语言,可用于从网页应用到人工智能的各种应用程序。它具有简单易学的语法和强大的功能,而且其可扩展性也非常好。 然而,要使用Python的所有功能,需要具有各种库和模块的支持。本文…

【设计模式】单例模式(创建型)

一、前言 学习设计模式我们关注的是什么,如何实现么?是也不是。我认为比了解如何实现设计模式更重要的是这些设计模式的应用场景,什么场景下我们该用这种设计模式;以及这些设计模式所包含的思想,最终帮助我们把代码写…

DNS正反向解析- 的基本实现步骤和报错解决过程

先copy一张图提升一下理解 DNS解析过程如图分为以下三种过程:首先是DNS客户机解析器,从WEB浏览器中输入相应URL,DNS客户机解析器会首先检查自己本地host文件是否存在网站映射关系,成功则直接完成域名解析。如果host中没有相关映射…

Java学习路线(3)——基础数据类型操作

一、自动类型转换 1、什么是自动类型转换? 自动类型转化是范围小的数据可赋值给范围大的数据且精度不损失,且可以跨越式转化。 基础数据类型之间的转换如下: byte(1)—short(2)—char(2)—int(4)—long(8)—float(4)—double(8) 2、表达式的…

cs109-energy+哈佛大学能源探索项目 Part-2.1(Data Wrangling)

博主前期相关的博客见下: cs109-energy哈佛大学能源探索项目 Part-1(项目背景) 这次主要讲数据的整理。 Data Wrangling 数据整理 在哈佛的一些大型建筑中,有三种类型的能源消耗,电力,冷冻水和蒸汽。 冷冻…

求二进制位中一的个数

原题链接&#xff1a;牛客网 题目内容&#xff1a; 写一个函数返回参数二进制中 1 的个数&#xff0c;负数使用补码表示。 比如&#xff1a; 15 0000 1111 4 个 1 方法一&#xff1a; #include<stdio.h>int NumberOf1(unsigned int n) {int count 0;while (n)…

分布式事务常见解决方案

分布式事务常见解决方案 一、事务介绍 事务是一系列的动作&#xff0c;它们综合在一起才是一个完的工作单元&#xff0c;这些动作必须全部完成&#xff0c;如果有一个失败的话&#xff0c;那么事务就会回滚到最开始的状态&#xff0c;仿佛什么都没发生过一样。 1、单事务概念…

通过关键字搜索接口获取alibaba国际站商品列表

作为一名技术爱好者&#xff0c;我们总会遇到各种各样的技术问题&#xff0c;需要寻找合适的技术解决方案。而在互联网时代&#xff0c;我们可以快速通过搜索引擎获取丰富的技术资源和解决方案。然而&#xff0c;在不同的技术分享中&#xff0c;我们常常会遇到质量参差不齐的文…

eggjs

官网&#xff1a;快速入门 - Egg npm init egg --typesimple 在平时安装/下载依赖时候 控制栏出现如下报错时 npm ERR! code ENOLOCAL npm ERR! Could not install from "Files\nodejs\node_cache\_npx\13944" as it does not contain a package.json file. 解释:无…

【Linux 下】 信号量

文章目录 【Linux 下】 信号量信号量概念信号量操作初始化和销毁P&#xff08;&#xff09;操作V&#xff08;&#xff09;操作理解PV操作 基于信号量与环形队列实现的CS模型基于信号量和环形队列实现的生产者与消费者模型 【Linux 下】 信号量 信号量概念 信号量&#xff08;…

蓝莓投屏 - 超低延时投屏的投屏软件

蓝莓投屏是一个低延时投屏软件&#xff0c;支持安卓、iOS、Mac 设备与Windows系统的电脑之间互相投屏&#xff0c;包括手机/平板之间互投&#xff0c;手机投电脑&#xff0c;电脑投手机 等功能。 投屏画质达到4K高清&#xff0c;播放流畅无延迟。音视频同步&#xff0c;几乎没有…

无需OpenAI API Key,构建个人化知识库的终极指南

一、介绍 今天和大家一起学习下使用LangChain&#xff0b;LLM 来构建本地知识库。 我们先来了解几个名词。 二、什么是LLM&#xff1f; LLM指的是大语言模型&#xff08;Large Language Models&#xff09;&#xff0c;大语言模型&#xff08;LLM&#xff09;是指使用大量文…

Excel中正则表达式函数的使用

有这样一列 上海市闵行区七宝镇中春路7001号37栋 021-54881702 嘉定区黄渡镇金易路1号 021-69580001 如何将地址和电话分开 这两个分成2列&#xff08;地址和电话分开&#xff09; 第一列 第二列 上海市闵行区七宝镇中春路7001号37栋 021-54881702 嘉定区黄渡镇金易路1号 021-6…

【中阳期货】GPT-4正在改进自己,超强进化

GPT是一种预训练语言模型&#xff0c;由OpenAI研发。如果你希望快速了解GPT&#xff0c;可以按照以下步骤进行&#xff1a; 了解预训练语言模型&#xff1a;预训练语言模型是一种人工智能技术&#xff0c;可以通过大量语言数据的训练&#xff0c;自动学习语言的规律和语义。GPT…

web缓存Squid代理服务

缓存网页对象&#xff0c;减少重复请求 squid代理服务器&#xff0c;主要提供缓存加速&#xff0c;应用层过滤控制的功能 代理工作机制 1.代替客户机向网站请求数据&#xff0c;从而可以隐藏用户的真实ip地址 2.将获得的网页数据&#xff08;静态web元素&#xff09;保存到缓…

Rocky Linux 8.5 安装

Rocky Linux 是一个开源的企业级操作系统&#xff0c;旨在与 Red Hat Enterprise Linux 100% 1:1 兼容。 Rocky Linux 项目是什么? 下载地址 Rocky Linux 是一个社区化的企业级操作系统。其设计为的是与美国顶级企业 Linux 发行版实现 100&#xff05; Bug 级兼容&#xff…

【学习日记2023.5.12】之 自定义封装springboot-starter案例_SpringBoot监控_Web后端开发总结

文章目录 1. 自定义封装springboot-starter案例1.1 自定义starter分析1.2 自定义starter实现1.3 自定义starter测试 2. SpringBoot优势2.1 SpringBoot监控2.1.1 Actuator2.1.2 Springboot-Admin 2.2 小结 3. Web后端开发总结 1. 自定义封装springboot-starter案例 1.1 自定义s…

chatgpt赋能Python-python3怎么下载安装

Python 3的下载安装方法 Python 3是一种高级编程语言&#xff0c;具有简单易学、基本语法易于理解、大量的第三方库支持等特点&#xff0c;适用于各种软件开发项目。本文将教您如何下载和安装Python 3。 下载Python3 首先您需要在官网https://www.python.org/downloads/上下…

【新星计划·2023】单臂理由的原理讲解

单臂路由是指在路由器的一个接口上通过配置子接口的方式&#xff0c;实现原来互相隔离的VLAN之间可以互相通信。 一、单臂路由概述 网络中通过VLAN技术来实现隔离广播、方便管理及提高安全性等功能&#xff0c;一旦划分VLAN后&#xff0c;同—VLAN之间可以相互通信&#xff0…

一、通过命令行体验长安链

一、通过命令行体验长安链 1 、概述2、环境依赖2.1、硬件依赖2.2、软件依赖2.3、git安装2.4、golang安装2.5、gcc 3、环境搭建3.1、源码下载3.2、 源码编译3.3、编译及安装包制作3.4、启动节点集群3.5、查看节点启动使用正常 4、使用CMC命令行工具部署、调用合约4.1、编译&…