Как получить функции, выбранные в RandomizedSearchCV для модели LGBMClassifier? - PullRequest
1 голос
/ 14 марта 2020

Я использую выбор модели RandomizedSearchCV (sklearn), чтобы найти наилучшее соответствие для модели LightGBM LGBMClassifier, но я сталкиваюсь с проблемами, чтобы выяснить, какие функции были выбраны для этого. Я могу распечатать важность каждого из них:

lgbm_clf = lgbm.LGBMClassifier(boosting_type='gbdt',....
lgbm_clf.fit(X_train, y_train)
importance_type = lgbm_clf.importance_type
lgbm_clf.importance_type = "gain"
gain = lgbm_clf.feature_importances_
lgbm_clf.importance_type = "split"
split = lgbm_clf.feature_importances_
lgbm_clf.importance_type = importance_type

feature_importance = pd.DataFrame(
    dict(snp=data.columns, zgain=zscore(gain), zsplit=zscore(split))
)
feature_importance

Но как узнать, какие функции были использованы в модели?

Например: если я попытаюсь:

lgbm.plot_split_value_histogram(lgbm_clf, 1)

Я получу ошибку: ValueError: Cannot plot split value histogram, because feature 1 was not used in splitting

Этот вопрос является частью широкого сомнения, который был задан на Как сравнить алгоритм выбора признаков на основе регрессии с алгоритмами на основе дерева? .

Спасибо!

...