我有一个带有大类不平衡问题的多标签分类问题,因此我想使用SMOTE创建流水线步骤,但是由于X基本上是文本,而Y则是所述标签的1和0的数组,所以我不能仅以这种方式插入SMOTE(),因为它既需要拟合又需要转换。
pipeline = Pipeline([
('smote', SMOTE()),
('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('ss', StandardScaler(with_mean=False)),
('clf', model),
])
当前版本的不平衡学习带有其自己的pipeline。您应该能够将其合并到sklearn管道中。您只需在导入sklearn之后添加此行,并像使用sklearn管道一样使用它即可。
from imblearn.pipeline import Pipeline