Я использую выбор модели 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
Этот вопрос является частью широкого сомнения, который был задан на Как сравнить алгоритм выбора признаков на основе регрессии с алгоритмами на основе дерева? .
Спасибо!