预测新用户——Datawhale AI夏令营 D1

大体观察

凭借经验、肉眼观察对数据有个初处理
如:观察发现测试集中有80%数据来自训练集,而训练集中有90%数据为0(即非新用户),所以我们可以大致认为:标签为1的可以直接灵标签为1,标签为0的则需要建模预测标签是否为1

(因为短时间内为新用户即1的基本上仍然是新用户,而非新用户即0的,可能是用户回流等,导致标签会改变)

k折交叉验证

证是一种评估机器学习模型性能的统计方法,核心思想是将数据集均匀分割成K个子集,依次选择其中1个作为验证集,其余K-1个作为训练集,重复K次后取平均结果。其优势在于:

  • 充分利用数据:每个样本都会参与训练和验证
  • 评估更稳健:避免单次划分的随机性影响
  • 防止过拟合:尤其适用于小规模数据集

Python实现(以Scikit-learn为例)

基础版本
from sklearn.model_selection import KFold
import numpy as np

X = np.array([[1,2],[3,4],[5,6],[7,8],[9,10]])
y = np.array([0,1,0,1,0])
kf = KFold(n_splits=3, shuffle=True, random_state=42)

for train_index, val_index in kf.split(X):
    print("TRAIN:", train_index, "VAL:", val_index)
    X_train, X_val = X[train_index], X[val_index]
    y_train, y_val = y[train_index], y[val_index]

如何上分

  • 进行did(device id)聚合
    • 从事件级数据到用户级预测
      • 原始数据通常是事件级(每个用户有多条记录),但预测任务可能是用户级(每个用户只预测一个标签)。
      • 例如:预测某个用户是否会新增(target=0/1),而不是预测某个事件是否会带来新增.
      • 可以减少数据冗余,提高计算效率
posted on 2025-07-12 21:25  Siannnn  阅读(11)  评论(0)    收藏  举报