Ошибка get_features_name_out при возврате имени функции.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка get_features_name_out при возврате имени функции.

Сообщение Anonymous »

Я хочу знать важность функции для моих данных, поэтому я использую permutation_importance. Когда я получаю результат, кажется, что функция уже декодирована, и я хочу узнать имя моей функции, используя get_features_name_out. Получается ошибка: у объекта StandardScaler нет атрибута get_feature_names_out . Если я попытаюсь интерпретировать вручную, боюсь, в заказе произошла ошибка. Должно быть (3,0,1,2) по порядку. Курильщик, возраст, ИМТ, пол.
Вот код

Код: Выделить всё

import numpy as np
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split
from sklearn.inspection import permutation_importance

# Prepare data
X = df[['age', 'bmi', 'sex', 'smoker']]
y = df['charges']

# Define the preprocessor
categorical_transformer = OneHotEncoder(drop='first', sparse=False)
numerical_transformer = StandardScaler()

preprocessor = ColumnTransformer(
transformers=[
('num', numerical_transformer, ['age', 'bmi']),
('cat', categorical_transformer, ['sex', 'smoker'])
]
)

# Preprocess the data
X_preprocessed = preprocessor.fit_transform(X)

# Extract feature names
num_features = numerical_transformer.get_feature_names_out(['age', 'bmi'])
cat_features = categorical_transformer.get_feature_names_out(['sex', 'smoker'])
feature_names = np.concatenate([num_features, cat_features])

# Split the data
X_train, X_test, y_train, y_test = train_test_split(X_preprocessed, y, test_size=0.2, random_state=42)

# Train KNeighborsRegressor
knn_regressor = KNeighborsRegressor()
reg_model = knn_regressor.fit(X_train, y_train)

# Evaluate feature importance using permutation importance
results = permutation_importance(knn_regressor, X_test, y_test, n_repeats=10, random_state=42, scoring='neg_mean_squared_error')

# Display feature importances with names
for i, importance in enumerate(results.importances_mean):
print(f"Feature '{feature_names[i]}': Importance: {importance}")

sorted_indices = np.argsort(results.importances_mean)
for i in sorted_indices[::-1]:
print(f"Feature '{feature_names[i]}', Importance: {results.importances_mean[i]}")
Я хочу знать названия функций. И, возможно, объяснение того, почему порядок важности признаков неверен, потому что я вручную строю график между зарядами и каждым признаком, правильный порядок должен быть курильщик, возраст, ИМТ, пол.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ature-name
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»