首页 > 解决方案 > 生产中的多标签二进制化器

问题描述

如何使用MultiLabelBinarizer()它可以为训练和看不见的数据产生相同的矢量形状?这就是我的意思:

我有这个训练数据:

data_train = {
    'Events': ['He is coming', 'They went away', 'came but disappeared', 'Nothis is happening'],
    'Classes': ['A', 'B', "C", "D"] 
    
}
data_train_frame = pd.DataFrame(data_train)

现在我将输入空间二值化如下:

lb = MultiLabelBinarizer()
lb = lb.fit(np.array(data_train_frame["Events"].str.split(' ')) )    
lb.fit_transform(data_train_frame["Events"].str.split(' ')).shape  

我使用二值化器的输出来训练一个模型,我正在生产中部署这个模型。我已经导出了模型和 Multilabelbinarizer。假设我的生产数据恰好如下所示:

data_test = {
    'Events': ['He is avoiding to call', 'They went over a sudden', 'I hate it', 'Nothis is going on'],
    'Classes': ['A', 'B', "C", "D"] 
    
}
data_frame_test = pd.DataFrame(data_test)

然后我使用导出的 Multilabelbinarizer 对看不见的数据进行二值化:

lb.fit_transform(data_frame_test["Events"].str.split(' ')).shape  

我希望我导出的 Multilabelbinarizer 能够转换我看不见的数据并生成它在训练期间产生的形状,以便可以将其馈送到模型中。

现在的问题是它产生了不同的形状,预测模型不会接受

有什么帮助吗?

这个问题与不相似,也不与此相似

标签: pythonscikit-learnmultilabel-classification

解决方案


推荐阅读