【问题标题】:Factorize column before or after train/test split?在训练/测试拆分之前或之后分解列?
【发布时间】:2020-11-01 06:33:12
【问题描述】:

我正在为分类问题开发神经网络。我有一个带有文本 id 列的数据集,我使用 pandas.factorize() 函数将字符串 id 转换为 int id。

我的名为“customer_id”的文本 id 列如下所示:

      customer_id   
0       Z59FTQD 
1       HMP29SK 
2       VPP29SK
3       VPP29SK 
.. .. .. .. .. 
1500    0JP2FAB
15001   ZJP29AK

使用后:

dataset['customer_num_id'] = pd.factorize(dataset['customer_id'])[0] + 1

要创建一个名为“customer_num_id”的新列以将字符串 id 表示为 int 值以输入我的神经网络模型,我的新列如下所示:

      customer_id  customer_num_id  
0       Z59FTQD      1
1       HMP29SK      2
2       VPP29SK      3
3       VPP29SK      3
.. .. .. .. .. 
1500    0JP2FAB      1500
1501    ZJP29AK      1501

我想在大约 80% 的数据上训练我的模型并在剩余的 20% 上进行测试。

我的问题是:我应该在将数据集拆分为训练集和测试集之前还是之后分解它?

【问题讨论】:

    标签: pandas machine-learning classification


    【解决方案1】:

    在您将其拆分为测试和训练数据集之前,我会对其进行编码/分解。 这样可以确保在两个拆分中进行一致的因式分解。

    我还建议调查sklearn.preprocessing.LabelEncoder

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 2021-05-13
      • 2015-10-09
      • 2018-09-01
      • 1970-01-01
      • 2019-11-18
      • 2020-06-24
      • 2019-06-14
      • 2019-10-11
      相关资源
      最近更新 更多