我有预定义的训练和测试集。在生成一些统计数据(如 value_counts)并检查唯一值时,我觉得变量的分布之间存在“很多”差异。应该怎么做?
假设如果我想从train_set中删除一列,比如方差接近于零,我应该对test_set重复同样的操作吗(即使 test_set 的频率表中没有这样的问题?
我运行了以下代码
for dataset in both_datasets: # both_datasets contains train_set and test_set
print(dataset.nunique())
print('\n')
这是输出(我编译它是为了更好地查看并突出显示一些极端情况)
您可能会观察到对于 column specific_code_lesion,test_set 错过了整个类别!
然后为了查看我的列包含多少唯一值,我运行了以下代码
for dataset in both_datasets:
print('-'*120)
for col in dataset.columns:
unique = len(dataset[col].unique())
percentage = float(unique)/ dataset.shape[0]*100
print(percentage, col)
因此,唯一值的百分比存在比率之间存在明显差异。
问题是我应该
避免从 test_data 中获取任何见解。仅更改从 train_set 中获取的见解。但是,我所做的每一个更改也应该在 test_set 中复制
也使用 test_data 来获得洞察力并进行相应的预处理。
做一些改变 test_data 使其更加平衡和有代表性的事情。
别的东西:S
