gpt4 book ai didi

pandas - 如果我的测试数据在某一列中缺少值,如何解决一种热编码问题?

转载 作者:行者123 更新时间:2023-11-30 08:27:15 25 4
gpt4 key购买 nike

例如,如果我的训练数据在列中具有分类值 (1,2,3,4,5),那么一种热编码将为我提供 5 个列。但在我拥有的测试数据中,只说 5 个值中的 4 个,即(1,3,4,5)。因此,一种热编码只会给我 4 个列。因此,如果我将训练好的权重应用于测试数据,我会收到错误,因为列的尺寸在训练和测试数据中不匹配,dim(4)!=dim(5)。关于如何处理缺失的列值有什么建议吗?我的代码的图像如下:

image

最佳答案

请大家不要犯这个错误!

是的,你可以通过训练和测试的串联来实现这个黑客并欺骗自己,但真正的问题是在生产中。有一天,你的模型将面临分类变量的未知水平,然后崩溃。

实际上,一些更可行的选择可能是:

  1. 定期重新训练您的模型以考虑新数据。
  2. 请勿使用一热。说真的,有很多更好的选择,例如留一编码( https://www.kaggle.com/c/caterpillar-tube-pricing/discussion/15748#143154 )条件概率编码( https://medium.com/airbnb-engineering/designing-machine-learning-models-7d0048249e69 )、目标编码等等。像 CatBoost 这样的一些分类器甚至有内置的编码机制,Python 中有像 target_encoders 这样的成熟库,您可以在其中找到很多其他选项。
  3. 嵌入分类特征,这可以让您免于完全重新训练 ( http://flovv.github.io/Embeddings_with_keras/ )

关于pandas - 如果我的测试数据在某一列中缺少值,如何解决一种热编码问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com