XGBoost,处理贷款数据集的连续和固定数据

时间:2019-02-19 22:54:50

标签: python pandas time-series xgboost

背景

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

问题:

鉴于我拥有随时间变化的数据,并且某些数据将在整个时间内保持不变,例如物业的地块大小和平方英尺,XGBoost可以区分固定数据和可变数据吗?另外,将我的数据分为训练和测试集时,他们的一种方法是将贷款本身相应地进行拆分,而不仅仅是行吗?

1 个答案:

答案 0 :(得分:1)

建立用于预测的机器学习模型的方法有很多,每种方法各有利弊。

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

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

我会做类似的事情:

With theSheet.QueryTables.Add(Connection:="TEXT;" _ & xStrPath & "\Old_Data\" & theSheet.Name & ".dat", Destination:=theSheet.Range("A5"))

这样,我仍然为每个loan_id只保留1行。 loan_id feat1_t1 feat1_t2 feat1_t3 feat2 ... 1 5 7 8 0.2 ... 是在不同时间点收集的变量,因此是feat1_t1_t2。对于固定的变量,我只有1列(即_t3)。

希望这能回答您的问题。