我正在为一个分类问题开发一个神经网络。我有一个包含文本ID列的数据集,我使用pandas.factorize()函数将字符串ID转换为整数ID。
我的文本ID列名为’customer_id’,看起来像这样:
customer_id 0 Z59FTQD 1 HMP29SK 2 VPP29SK3 VPP29SK .. .. .. .. .. 1500 0JP2FAB15001 ZJP29AK
在使用以下代码后:
dataset['customer_num_id'] = pd.factorize(dataset['customer_id'])[0] + 1
我创建了一个名为’customer_num_id’的新列,用于将字符串ID表示为整数值以输入到我的神经网络模型中,我的新列看起来像这样:
customer_id customer_num_id 0 Z59FTQD 11 HMP29SK 22 VPP29SK 33 VPP29SK 3.. .. .. .. .. 1500 0JP2FAB 15001501 ZJP29AK 1501
我想用大约80%的数据来训练我的模型,并用剩下的20%来测试它。
我的问题是:我应该在将数据集分割成训练集和测试集之前还是之后进行因子化?
回答:
我建议在将数据分割成测试和训练数据集之前进行编码/因子化。这样可以确保在两个分割中保持一致的因子化。