我在训练期间使用标签编码器,并希望通过保存并稍后加载它来在生产中使用相同的编码器。无论我在网上找到什么解决方案,都只允许标签编码器一次应用于单个列,如下所示:
for col in col_list:
df[col]= df[[col]].apply(LabelEncoder().fit_transform)
在这种情况下,我如何保存它并在以后使用它?因为我尝试拟合整个数据帧,但出现以下错误。
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
C:\Users\DA~1\AppData\Local\Temp/ipykernel_3884/730613134.py in <module>
----> 1 l_enc.fit_transform(df_join[le_col].astype(str))
~\anaconda3\envs\ReturnRate\lib\site-packages\sklearn\preprocessing\_label.py in fit_transform(self, y)
113 Encoded labels.
114 """
--> 115 y = column_or_1d(y, warn=True)
116 self.classes_, y = _unique(y, return_inverse=True)
117 return y
~\anaconda3\envs\ReturnRate\lib\site-packages\sklearn\utils\validation.py in column_or_1d(y, warn)
1022 return np.ravel(y)
1023
-> 1024 raise ValueError(
1025 "y should be a 1d array, got an array of shape {} instead.".format(shape)
1026 )
ValueError: y should be a 1d array, got an array of shape (3949037, 14) instead.
我想将标签编码器安装到具有 10 列(所有分类)的数据帧,保存并稍后在生产中加载。