首页 > 解决方案 > XGBoost,处理贷款数据集的连续和固定数据

问题描述

背景:

我正在使用 XGBoost 开发一个模型来预测特定贷款是否会违约。我现在已经包含了 Fico 分数的时间序列数据,以及随时间变化的其他变量。因此,我有 13,202 笔独特的贷款,但有超过 300,000 行包含可变和固定数据。

问题:

鉴于我有随时间变化的数据和一些将在整个时间保持固定的数据,例如房产的地块大小和平方英尺,XGBoost 可以区分固定数据和可变数据的混合吗?此外,当将我的数据拆分为训练和测试集时,他们这样做的方式是否可以使贷款本身被相应地拆分,而不仅仅是行?

标签: pythonpandastime-seriesxgboost

解决方案


建立机器学习模型进行预测的方法有很多种,每种方法都有优缺点。

但是,我的原则是,无论我做什么以及如何生成新功能,我都不会改变数据的粒度。例如,在这种情况下,如果我预测贷款是否会违约,那么我的行将是唯一贷款,在我的训练/测试数据中不会出现多次贷款。

这导致您应该如何生成新功能。您提到您拥有与时间序列相关的数据(即每笔贷款在不同时间点的特征值)。此时我可能会做的是水平扩展数据而不是垂直扩展。

我会做类似的事情:

    loan_id feat1_t1   feat1_t2   feat1_t3   feat2 ...
          1        5          7          8     0.2 ...

这样,我仍然为每个loan_id 保留 1 行。feat1是在不同时间点收集的变量,因此_t1和。对于固定的变量,我将只有 1 列(即)。_t2_t3feat2

希望这能回答你的问题。


推荐阅读