You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:解决'Pipeline'对象无'fit_resample'属性的AttributeError问题

问题描述

我参考了一篇关于不平衡分类与管道的文档,尝试在数据集上实现以下代码:

import numpy as np
import pandas as pd
from collections import Counter
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import RandomUnderSampler
from sklearn.pipeline import  Pipeline
from sklearn.naive_bayes import GaussianNB
data =pd.read_csv('aug_train.csv')
data.drop('id',axis=1,inplace=True)
print(data.info())
print(data.select_dtypes(include='object').columns.tolist())
data[data.select_dtypes(include='object').columns.tolist()]=data[data.select_dtypes(include='object').columns.tolist()].apply(LabelEncoder().fit_transform)
print(data.head())
#print(data['Response'].value_counts())
mymodel =GaussianNB()
y =data['Response'].values
print(Counter(y))
X =data.drop('Response',axis=1).values
#X,y =SMOTE().fit_resample(X,y)
#mymodel.fit(X,y)
#print(mymodel.score(X,y))
#print(Counter(y))
over = SMOTE(sampling_strategy=0.1)
under = RandomUnderSampler(sampling_strategy=0.5)
steps = [('o', over), ('u', under)]
pipeline = Pipeline(steps=steps)
# transform the dataset
X, y = pipeline.fit_sample(X, y)

执行上述代码中X, y = pipeline.fit_sample(X, y)行时,出现错误:AttributeError: 'Pipeline' object has no attribute 'fit_resample',请问该如何修复此问题?

修复方案

问题根源有两个:

  • 导入了错误的Pipeline类:sklearn原生的Pipeline不支持重采样操作的fit_resample方法,必须使用imblearn库提供的专用Pipeline。
  • 方法名拼写错误:imblearn的Pipeline对应的正确方法是fit_resample,而非代码中的fit_sample。

具体修复步骤:

  1. 替换Pipeline的导入语句:
    # 原导入
    # from sklearn.pipeline import Pipeline
    # 替换为
    from imblearn.pipeline import Pipeline
    
  2. 修正方法调用:
    # 原代码
    # X, y = pipeline.fit_sample(X, y)
    # 修正为
    X, y = pipeline.fit_resample(X, y)
    

修复后的完整关键代码片段:

from imblearn.pipeline import Pipeline

over = SMOTE(sampling_strategy=0.1)
under = RandomUnderSampler(sampling_strategy=0.5)
steps = [('o', over), ('u', under)]
pipeline = Pipeline(steps=steps)
# 转换数据集
X, y = pipeline.fit_resample(X, y)

内容的提问来源于stack exchange,提问作者dato datuashvili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:30:54