首页 > 解决方案 > 如何将 scikit 学习模型应用于不同形状的看不见的数据?Get Dummies 导致问题

问题描述

假设我训练了一个模型来检测客户流失,并且数据集具有以下特征(非常简化)。我有品牌和女性,他们通过在线或邮寄方式注册。

ID  source  Gender  Churn
1   Online  M       1
2   Post    M       1
3   Online  M       1
4   Online  F       0
5   Post    F       0

我申请 pandas get_dummies

ID  source_online   source_post Gender_M    Gender_F
1       1               0          1          0
2       0               1          1          0
3       1               0          1          0
4       1               0          0          1
5       0               1          0          1

现在假设我使用一个模型StandardScaler,然后fit对这些数据进行训练。

几天后,我从同一个数据库和模式中获得了新数据,我必须预测客户流失。完全相同的变量,除了这次只有男性,他们只在网上注册。

ID  source  Gender
1   Online  M
2   Online  M
3   Online  M

我申请get_dummies

   ID  source_Online  Gender_M
0   1              1         1
1   2              1         1
2   3              1         1

首先,StandardScaler从训练集中学习到的设置不适用于这些看不见的数据,因为它缺少一些dummy variables. 当然,由于同样的原因,它不适用于经过训练的模型。

有没有办法解决?

我目前有数百条存在此问题的记录,因为它们在训练集中存在的变量中缺少一个。(在这个简化的例子中,我们缺少女性)

标签: pythonpandasmachine-learningscikit-learndummy-variable

解决方案


推荐阅读