首页 > 解决方案 > 收到的 AttributeError:“numpy.ndarray”对象没有带有 permutation_importance 的属性“lower”

问题描述

我想使用permutation_importance来计算特征重要性。从文档中,我了解到 X_train 需要是数组,而 y_train 需要是类数组。然而,我收到AttributeError: 'numpy.ndarray' object has no attribute 'lower'

我的代码

vectoriser = TfidfVectorizer(ngram_range=(2,3), norm=None)
X_train = vectoriser.fit_transform(df['x'])
X_train = np.nan_to_num(X_train).toarray()
y_train = df['y']
y_train = y_train.values

# Undersampling
rus = RandomUnderSampler(random_state=0)
X_train, y_train = rus.fit_resample(X_train, y_train)

# Load the saved model
clf = joblib.load('model.joblib')

# Calculate result --> triggered error
result = permutation_importance(clf, X_train, y_train, n_repeats=10, random_state=42)

数据

X_火车。形状 = (1068, 3528)

array([[0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])

y_train。形状 = (1068,)

array(['A', 'A', 'A', ..., 'B', 'B', 'B'],
      dtype=object)

我输入了正确的数据类型,为什么它会给我这个错误。还有这个错误是什么意思?谢谢

标签: pythonscikit-learn

解决方案


推荐阅读