#python #machine-learning #scikit-learn #feature-selection #sklearn-pandas
#python #машинное обучение #scikit-learn #выбор функции #sklearn-pandas
Вопрос:
Я получаю сообщение об ошибке при попытке применить выбор объекта к моей модели классификации. Я думаю, что эта ошибка простая, ее легко решить, но я не уверен, как ее исправить.
Это мой код:
X = df[['S_LENGTH', 'S_WIDTH', 'P_LENGTH', 'P_WIDTH']].values
y = df['SPECIES'].values
feature_select = SelectKBest(f_classif, k=20).fit(X, y)
Но когда я пытаюсь выполнить это, чтобы просмотреть сохраненные функции…
feature_select = X.columns[selection.get_support()]
print(features)
… Я получаю эту ошибку:
AttributeError: 'numpy.ndarray' object has no attribute 'columns'
Любая помощь о том, как исправить эту ошибку, очень ценится.
Спасибо!
Ответ №1:
Когда вы определяете X
, вы берете значения из фрейма данных pandas df
. Значения являются a numpy.ndarray
и как таковые не имеют никакого свойства columns
.
Чтобы исправить это, вам нужно обновить свою строку feature_select = X.columns[selection.get_support()]
.
Он должен читать features = df.columns[feature_select.get_support()]
.
Комментарии:
1. Привет — спасибо за ответ, но я получаю
NameError: name 'selection' is not defined
его при выполнении кода, который вы мне посоветовали использовать.2. Привет @Bono Я отредактировал свой код, чтобы исправить это. Возникли две проблемы: 1. Вы хотите печатать
features
, поэтому мы присваиваем подмножество столбцов этой переменной. 2.selection
не существует и должен был прочитатьfeature_select
.