XGBoost,处理贷款数据集的连续和固定数据
XGBoost, handling continous and fixed data for loan dataset
背景:
我正在使用 XGBoost 开发一个模型来预测特定贷款是否会违约。我现在已经包含了 Fico 分数的时间序列数据,以及随时间变化的其他变量。因此,我有 13,202 笔独特的贷款,但有超过 300,000 行包含可变和固定数据。
问题:
鉴于我有随时间变化的数据和一些在整个时间内保持固定的数据,例如 属性 的地块大小和平方英尺,XGBoost 能否区分固定数据和可变数据的混合?此外,当将我的数据拆分为训练集和测试集时,他们这样做的方式是相应地拆分贷款本身而不仅仅是行吗?
构建用于预测的机器学习模型的方法有很多种,每种方法各有利弊。
但是,我的原则是无论我做什么以及如何生成新特征,我都不会改变数据的粒度。例如,在这种情况下,如果我预测贷款是否会违约,那么我的行将是唯一贷款,在我的 training/testing 数据中不会出现超过一次的贷款。
这导致您应该如何生成新功能。您提到您有时间序列相关数据(即每笔贷款在不同时间点的特征值)。此时我可能要做的是水平而不是垂直扩展数据。
我会做类似的事情:
loan_id feat1_t1 feat1_t2 feat1_t3 feat2 ...
1 5 7 8 0.2 ...
这样我仍然只为每个 loan_id 保留 1 行。 feat1
是在不同时间点收集的变量,因此 _t1
、_t2
和 _t3
。对于固定的变量,我将只有 1 列(即 feat2
)。
希望这能回答您的问题。
背景:
我正在使用 XGBoost 开发一个模型来预测特定贷款是否会违约。我现在已经包含了 Fico 分数的时间序列数据,以及随时间变化的其他变量。因此,我有 13,202 笔独特的贷款,但有超过 300,000 行包含可变和固定数据。
问题:
鉴于我有随时间变化的数据和一些在整个时间内保持固定的数据,例如 属性 的地块大小和平方英尺,XGBoost 能否区分固定数据和可变数据的混合?此外,当将我的数据拆分为训练集和测试集时,他们这样做的方式是相应地拆分贷款本身而不仅仅是行吗?
构建用于预测的机器学习模型的方法有很多种,每种方法各有利弊。
但是,我的原则是无论我做什么以及如何生成新特征,我都不会改变数据的粒度。例如,在这种情况下,如果我预测贷款是否会违约,那么我的行将是唯一贷款,在我的 training/testing 数据中不会出现超过一次的贷款。
这导致您应该如何生成新功能。您提到您有时间序列相关数据(即每笔贷款在不同时间点的特征值)。此时我可能要做的是水平而不是垂直扩展数据。
我会做类似的事情:
loan_id feat1_t1 feat1_t2 feat1_t3 feat2 ...
1 5 7 8 0.2 ...
这样我仍然只为每个 loan_id 保留 1 行。 feat1
是在不同时间点收集的变量,因此 _t1
、_t2
和 _t3
。对于固定的变量,我将只有 1 列(即 feat2
)。
希望这能回答您的问题。