在 train/test 拆分之前或之后分解列?
Factorize column before or after train/test split?
我正在为分类问题开发神经网络。我有一个带有文本 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% 上测试它。
我的问题是:我应该在将数据集拆分为训练集和测试集之前或之后对其进行因式分解吗?
我会 encode/factorize 在你把它分成测试和训练数据集之前。
这样您就可以确保在两个拆分中进行一致的因式分解。
我正在为分类问题开发神经网络。我有一个带有文本 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% 上测试它。
我的问题是:我应该在将数据集拆分为训练集和测试集之前或之后对其进行因式分解吗?
我会 encode/factorize 在你把它分成测试和训练数据集之前。 这样您就可以确保在两个拆分中进行一致的因式分解。