详细内容或原文请订阅后点击阅览
如何在评分模型中稳健地选择变量
更多变量并不能形成更好的评分模型。稳定变量可以。以下是找到它们的方法。《如何在评分模型中稳健地选择变量》一文首先出现在《走向数据科学》上。
来源:走向数据科学失败的原因有一个:错误的变量选择。您选择适用于训练数据的变量。他们在新数据上崩溃了。该模型在开发过程中看起来很棒,但在生产过程中却出现了问题。
有更好的方法。本文向您展示如何选择稳定、可解释且稳健的变量,无论您如何分割数据。
核心理念:稳定性重于性能
如果变量对数据的每个子集(而不仅仅是整个数据集)都很重要,则该变量是稳健的。
为了检查这一点,我们使用分层交叉验证将训练数据分为 4 部分。我们按默认变量和年份进行分层,以确保每次折叠都代表全部人口。
从 sklearn.model_selection 导入 StratifiedKFold。
skf = StratifiedKFold(n_splits=4, shuffle=True, random_state=42)
train_impulated["折叠"] = -1
对于折叠,(_, test_idx) in enumerate(skf.split(train_impulated, train_impulated["def_year"])):
train_impated.loc[test_idx, "fold"] = 折叠
然后我们构建四对(训练、测试)。每对都使用三折进行训练,一次折叠进行测试。我们仅将每个选择规则应用于训练集,而不是测试集。这可以防止数据泄露。
折叠 = build_and_save_folds(train_impulated, Fold_col="fold", save_dir="folds/")
我们使用 Kaggle 的信用评分数据集。它包含向个人借款人发放的 32,581 笔贷款。
贷款金额
贷款利率
贷款百分比收入cb_person_cred_hist_length贷款意图[1][2][3]
