02标准建模流程:样本定义与数据集构建

1 样本定义

一般样本分为正样本和负样本,通常将响应变量称为负样本,比如贷款的用户为负样本,未贷款的用户为正样本。
在营销场景中有以下几种定义方式,具体的定义方式应根据建模目标而定:
在这里插入图片描述

2 数据集构建

2.1 时间窗口选择

一般一个用户的时间窗口分为观察期和表现期。以信贷为例,观察期是指用户申请信贷产品前的时间段,在该时间段内进行特征的生成,表现期是定义好坏标签的时间窗口,如果在这个时间窗口触发坏定义,就是坏样本,反之就是好样本。如设定用户在到期3个月内未还款,则认为用户为坏样本,则表现期为3个月,如将在用户贷款前12个月的数据切片中抽取用户的历史行为表现作为变量,用于后续建模,则称观察期为12个月。
选择样本的时候,应保证观察期足够长,从而保证有充分的数据用户特征生成。
如零售信贷预测场景中,观察期为3个月如20200401-20200701,表现期为1个月如20200701-20200731

2.2 数据集划分

将数据集分为3个子集:训练集、测试集和时间外样本(OOT),其中训练集和测试集使用分层抽样进行划分,以保证两个数据集中的负样本占比相同,通常测试集与训练集的比例为4:6。而时间外样本通常使用整个建模样本中时间切片的最后一段样本。

2.3 样本采样

一般负样本占样本总数的比率比较低,如负样本数量:正样本数量=2:8,此时需要对样本进行采样。常见的采样方法有两种:一是对负样本进行下采样,另一种是对正样本进行上采样。在实际工作中一般使用smote进行过采样。
采样算法参考资料:https://blog.csdn.net/weixin_41020287/article/details/111663007

2.3.1 smote算法

from imblearn.over_sampling import SMOTE
#对训练集进行上采样,无需对测试集进行采样
smote = SMOTE(k_neighbors=15
              , n_jobs=1
              , random_state=0)
sam_x,sam_y = smote.fit_resample(X_train,y_train)

2.3.2 ClusterCentroids

使用KMeans对各类别样本进行聚类,然后将聚类中心作为新生成的样本,以此达到上采样的效果

from collections import Counter
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=5000, n_features=2, n_informative=2,
...                            n_redundant=0, n_repeated=0, n_classes=3,
...                            n_clusters_per_class=1,
...                            weights=[0.01, 0.05, 0.94],
...                            class_sep=0.8, random_state=0)
>>> print(sorted(Counter(y).items()))
[(0, 64), (1, 262), (2, 4674)]
from imblearn.under_sampling import ClusterCentroids
cc = ClusterCentroids(random_state=0)
X_resampled, y_resampled = cc.fit_resample(X, y)
>>> print(sorted(Counter(y_resampled).items()))
[(0, 64), (1, 64), (2, 64)]
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值