我正在探索分类列数据泄漏的可能性,将稀有值替换为“Other”类。
假设我有一个有40个分类列的DF。我会检查它们中的每一个,找到唯一值的频率,如果一个值的频率低于1%,我将把它替换为“Other”的类别值。
同样的进程将应用于每一列,很可能是一个循环。
实际上,我对数据泄漏高度怀疑,当直接应用于整个数据时。在此过程中,我将申请一个简历计划。而且我也在考虑把它放到预处理管道中,每次只计算有列车褶皱的稀有类别。在最后对生产模型进行训练时,当然可以使用整个数据。
我想问的是,把这个替代品放到简历管道里,只申请几次培训数据,是不是太过分了?(由于我有40个分类栏,这可能意味着计算40*N次,用于N倍简历)
如果我一开始就把它应用到整个数据中,我会不会容易发生数据泄漏呢?
谢谢。
发布于 2023-02-09 19:26:50
简短的回答是肯定的。
长篇大论的答案如下。在计算统计数字或类似的估计数时,应只根据培训数据计算。为什么?因为您不应该用测试数据中的信息毒害您的培训数据,因为基本假设是后者在培训期间不可用。作为一个玩具例子,如果您想要在培训前使您的数据规范化,则仅在培训数据上计算最小和最大值。然后,你训练你的模型,比如说,f。最后,在测试f时,规范化的特性应该使用您在培训前计算出来的最小和最大值;否则,很可能会出现数据泄漏。因此,同样的理由也适用于你的问题。特别是,这并不是过火;您只是简单地评估您的模型,这总是一件好事,即使它通过长时间的计算来过度消耗您的精力。
https://datascience.stackexchange.com/questions/118414
复制相似问题