场景:一个df,有categorized columns,经过one-hot以后用于训练某些模型
训练好了以后现在修改了这个df的categorized columns的内容,由于某些原因,导致【可能有原本存在的feature丢失】,而且我们并不知道是否丢失/丢了多少类/丢了哪些类。
比如,column "color"原本有"green", "red", "blue",但由于包含"blue"的行很少,我们不小心(而不是针对blue)把那几行删掉了,现在修改过的df经过one-hot以后无法产生color_blue这一列。修改过的df的维度和原来训练模型的df的维度和结构不一致就容易出问题(比如不能套用之前的模型)。
注意:新的df不能产生额外特征(在本篇笔记里设定:对比之前的df,之后的df只有可能丢失某些特征,不会增加特征)
解决方法:
假设原本的是df,修改过的是df_alter
直接创建一个临时df,构造是pd.concat([df_alter, df]),也就是把新旧df拼在一起
然后对临时的df进行one-hot,由于包含原本的df,所以特征一定是“齐全”的
最后把one-hot的df切掉一半(切掉老df的结果)保留前半部分就可以
Last Modified in 2025-08-16