科大讯飞2025AI开发者大赛-用户新增赛道时间规则解析

根据训练集中的时间规则,对测试集中的数据推断用户标签(新用户或老用户)。

时间规则如下:
针对训练集和测试集中都存在的did:
找到在训练集中标记为新用户最晚的时间点,则测试集中对应did的数据在此时间点前全部为新用户;
找到在训练集中标记为老用户最早的时间点,则测试集中对应did的数据在此时间点后全部为老用户;

具体实现代码如下:

1.1参数说明

  • train_df: 训练集DataFrame,包含已知的用户标签(is_new_did
  • test_df: 测试集DataFrame,需要推断用户标签

1.2寻找共同DID

train_dids = set(train_df['did'].unique())
test_dids = set(test_df['did'].unique())
common_dids = train_dids.intersection(test_dids)

功能说明

  • 提取训练集和测试集中的唯一设备ID(DID)
  • 找出两个集合的交集,即同时出现在训练集和测试集中的DID
  • 只有共同的DID才能应用时间规则

2.2 计算时间规则

# 新用户:找每个DID作为新用户时的最大时间戳
new_user_times = train_common[train_common['is_new_did'] == 1].groupby('did')['common_ts'].max()# 老用户:找每个DID作为老用户时的最小时间戳
old_user_times = train_common[train_common['is_new_did'] == 0].groupby('did')['common_ts'].min()

时间规则逻辑

  1. 新用户规则

    • 对于每个DID,找出它在训练集中被标记为新用户(is_new_did=1)的最晚时间戳
    • 推断:如果测试集中该DID的时间戳 < 这个最晚时间戳,则为新用户
  2. 老用户规则

    • 对于每个DID,找出它在训练集中被标记为老用户(is_new_did=0)的最小时间戳
    • 推断:如果测试集中该DID的时间戳 > 这个最小时间戳,则为老用户

1.3 应用规则

应用新用户规则:
mask_new = (test_with_new_rules['max_new_time'].notna()) & \(test_with_new_rules['common_ts'] < test_with_new_rules['max_new_time'])
test_df.loc[mask_new, 'is_new_did'] = 1

判断条件

  • 该DID存在新用户规则(max_new_time不为空)
  • 测试集中的时间戳小于新用户的最大时间戳
应用老用户规则:
mask_old = (test_with_old_rules['min_old_time'].notna()) & \(test_with_old_rules['common_ts'] > test_with_old_rules['min_old_time']) & \(test_with_old_rules['is_new_did'] == -1)

判断条件

  • 该DID存在老用户规则(min_old_time不为空)
  • 测试集中的时间戳大于老用户的最小时间戳
  • 该记录尚未被标记(is_new_did == -1

1.4 性能优化

使用DataFrame的merge操作批量应用规则,而不是逐行遍历,提高了处理效率:

test_with_new_rules = test_df.merge(new_user_rules_df, on='did', how='left'
)

4. 时间线示例

假设某个DID在训练集中的记录:

时间轴: |---新用户期---[T1]---老用户期---|↑               ↑                ↑最早记录          转换点          最新记录
  • T1之前:标记为新用户(is_new_did=1)
  • T1之后:标记为老用户(is_new_did=0)

对于测试集中的该DID:

  • 如果时间 < T1:根据新用户规则,标记为新用户
  • 如果时间 > T1:根据老用户规则,标记为老用户

计算结果如下:

DID统计:
训练集唯一DID: 270,837
测试集唯一DID: 206,342
共同DID: 192,393

计算时间规则…
新用户规则数: 57,787
老用户规则数: 162,173

批量应用规则…

规则应用结果:
通过规则1确定(新用户): 150,714
通过规则2确定(老用户): 882,188
总确定数量: 1,032,902 (90.34%)
未确定数量: 110,407 (9.66%)

将测试集中未确定是新老用户的数据全部计为老用户,F1Score可达0.92以上

关于检查训练集中是否存在对于同一个did,新用户数据出现在老用户之后的情况,请在评论区获取相关解答!

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

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

相关文章

.NET C# async/定时任务的异步线程池调度方案最大线程数‌ = 处理器核心数 × 250

关于.NET中Threading.Timer的线程机制&#xff0c;结合线程池特性和异步协作原理分析如下&#xff1a; 一、线程复用机制 ‌共享进程级线程池‌ Threading.Timer的回调任务‌不会每次新建线程‌&#xff0c;而是提交到.NET进程全局线程池统一调度&#xff0c;该线程池与async/…

Redis 高可用分片集群:主从模式与哨兵机制详解

一、为何需要分片集群&#xff1f; 在讨论具体方案之前&#xff0c;我们先明确分片集群要解决的问题&#xff1a; 单节点瓶颈&#xff1a;无论是内存容量还是处理能力&#xff08;QPS&#xff09;&#xff0c;单个 Redis 实例都有物理上限。高可用性需求&#xff1a;单点故障…

Qt readyRead信号避坑:不产生readyRead信号的解决方法

Qt readyRead信号避坑&#xff1a;不产生readyRead信号的解决方法 引言一、QSerialport的readyRead1.1 版本问题1.2 缓存问题1.3 阻塞问题 二、Q(Tcp)Socket的readyRead2.1 阻塞问题2.2 运行一段时间&#xff0c;突然不发信号2.3 和具体数据有关&#xff1f; 引言 目前没遇到相…

大事件项目记录10-文章分类接口开发-更新文章分类

四、更新文章分类。 CategoryController.java&#xff1a; PutMappingpublic Result update(RequestBody Validated Category category){categoryService.update(category);return Result.success();} CategoryService&#xff1a; //更新分类void update(Category category); …

AI接口使用–阿里云百炼

原文地址&#xff1a;AI接口使用–阿里云百炼 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 最近开发了一个抖音AI起名小程序&#xff0c;已经在抖音上线了&#xff0c;欢迎大家来使用。其中用到了 AI文本生成 功能&#xff0c;我用的是 阿里云…

大模型之提示词工程入门——解锁与AI高效沟通的“钥匙”

一、什么是提示词工程&#xff1f; 提示词工程&#xff08;Prompt Engineering&#xff09; 是一门通过设计、优化输入文本&#xff08;Prompt&#xff09;来引导大语言模型&#xff08;LLM&#xff09;生成高质量输出的技术。它不仅是AI应用的核心环节&#xff0c;也是连接人…

智慧城市云计算大数据中心项目设计方案

第1章 总体方案设计 1.1 概述 1.2 建设目标 1.3 建设内容 1.3.1 标准规范体系编制 1.3.2 基础设施平台建设 1.3.3 数据资源平台建设 1.3.4 应用支撑平台建设 1.3.5 云管平台运维建设 1.3.6 应用上云迁移实施 1.3.7 信息安全保障建设 1.3.8 容灾备份系统建设 1.4 设…

OpenMP并行加速学习笔记2025.6.27

在OpenMP并行加速中&#xff0c;线程数&#xff08;如32、16、8&#xff09;的选择需结合硬件核心数、任务类型&#xff08;计算密集型或I/O密集型&#xff09;、负载均衡策略及线程开销综合判断。以下为具体差异分析与性能提升对比&#xff1a; 一、核心影响因素分析 1. 硬件…

对象回调和函数回调

1.对象回调&#xff1a; 对象回调原始写法&#xff0c;A调B B又回头调A package com.ldj.demo.controller;/*** User: ldj* Date: 2025/6/28* Time: 12:22* Description: 回调函数的理解 对象回调*/ public class Tr {public static void main(String[] args) {A a new A();…

Python实例题:Web 爬虫与数据可视化

目录 Python实例题 题目 要求&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; Python实例题 题目 Web 爬虫与数据可视化 要求&#xff1a; 编写一个爬虫&#xff0c;从豆瓣电影 Top250 页面&#xff08;豆瓣电影 Top 250&#xff09;抓取电影名称、评分、导演…

关于ubuntu 20.04系统安装分区和重复登录无法加载桌面的问题解决

1. 想要安装Ubuntu 20.04版本&#xff0c;有两块硬盘&#xff0c;所以在分区列表设置的格式为如下&#xff1a; 其中各个/boot 、/home的格式为如下&#xff08;Ubuntu20.04分区方案_ubuntu20.04手动分区-CSDN博客&#xff09; 2.安装完死活输完密码进不去主界面 必须禁用Nou…

26考研|数学分析:隐函数定理及其应用

前言 本章主要围绕隐函数、隐含数组的计算展开&#xff0c;本章的核心还是在于计算的运用&#xff0c;在理论层面要掌握隐函数&#xff08;隐函数组&#xff09;存在性定理&#xff0c;在计算方面&#xff0c;要掌握隐函数、隐函数组的计算方法&#xff0c;此外&#xff0c;本…

PyQtNode Editor 第三篇创建节点(节点的定义)

在 PyQtNode Editor 的开发之旅中,经过前两篇博客对基础环境搭建和核心类结构的探索,我们已经迈出了坚实的步伐。今天,我们将聚焦于node_scene文件,深入解析其中的代码逻辑。这段代码构建了Scene类,它如同整个节点编辑器的 “管理中枢”,承担着组织和协调节点、边等关键元…

通过docker安装nginx服务

nginx配置文件 https://gitee.com/Cairo-SR8/nginx-configuration.git一、安装nginx 1.1 拉去ARM镜像 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_nginx:latest1.2 拉去x86镜像 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/…

盲法在临床试验中的应用与挑战

一、盲法分级与科学价值 1.1 开放标签 1.1.1 受盲对象 无隐藏。 1.1.2 适用场景 外科手术、器械试验等无法伪装的操作。 1.1.3 偏倚控制目标 仅客观终点(生存率、实验室指标)。 1.2 单盲 1.2.1 受盲对象 患者。 1.2.2 适用场景 患者报告结局(PRO)为主的试验(如…

VNware启动虚拟机报错:虚拟化性能计数器需要版本为 3 或以上的架构性能监控。

Vmware版本&#xff1a;17.5 结论&#xff1a; 【编辑虚拟机设置-硬件-处理器-虚化计数器】没勾就勾上&#xff0c;勾了就不勾保存&#xff0c;然后重新打勾 备注&#xff1a;不知道是不是显示问题&#xff0c;之前勾着的时候报错。取消报错&#xff0c;再勾上报错能正常启动虚…

微机系统 - 第7章 -可编程接口芯片

可编程并行输入/输出接口芯片 8255A -1:结构 8255A为40引脚、双列直插封装。 内部结构由数据端口、组控制电路、数据总线缓冲器、读/写控制逻辑四部分组成。 数据总线缓冲器&#xff1a;三态8位双向缓冲器&#xff0c;D7-D0同系统数据总线相连。CPU通过执行输入/输出指令来实…

解析云计算虚拟化基石:KVM、QEMU与Libvirt的协同

在云计算和容器化大行其道的今天&#xff0c;传统虚拟化技术仍是企业IT架构的核心支柱。理解KVM、QEMU和Libvirt的关系&#xff0c;是掌握现代虚拟化技术的关键一步。 一、虚拟化技术演进&#xff1a;从软件模拟到硬件加速的进化之路 虚拟化技术通过在单台物理服务器上创建多个…

Mac mini 跑 DeepSeek R1 及 QwQ-32B模型实测报告

测试对象&#xff1a;2025 款 Mac mini&#xff08;M4 / M4 Pro 芯片&#xff09; 测试模型&#xff1a;DeepSeek-R1&#xff08;14B/32B&#xff09;、QwQ-32B&#xff08;原版/量化版&#xff09; 测试目标&#xff1a;硬件性能适配性、推理速度、内存占用及优化方案 一、Mac…

github常用插件

一&#xff0c;文档辅助阅读系列&#xff1a;自动化wiki处理 1&#xff0c;deepwiki https://deepwiki.com/ 将我们看不懂的官方code文档转换为wiki&#xff0c;更加便于理解。 其实能够翻阅的仓库很有限&#xff0c;比如说&#xff1a; 但是有很多仓库并没有index&#xff…