Как ограничить сюжет, чтобы показать 15 самых важных функций - PullRequest
0 голосов
/ 18 сентября 2018

Из Логистической регрессии ('lrmodel') Я хочу изобразить значение, данное им, но я хочу ограничить его до 15 наиболее релевантных, как я могу это сделать?У меня есть следующий код:

feature_importance = abs(lrmodel.coef_[0])
feature_importance = 100.0 * (feature_importance / feature_importance.max())
sorted_idx = np.argsort(feature_importance)
pos = np.arange(sorted_idx.shape[0]) + .5

featfig = plt.figure(figsize=(18, 40))
featax = featfig.add_subplot(1, 1, 1)
featax.barh(pos, feature_importance[sorted_idx], align='center')
featax.set_yticks(pos)
featax.set_yticklabels(np.array(X.columns)[sorted_idx], fontsize=16)
featax.set_xlabel('Relative Feature Importance')

plt.tight_layout()   
plt.show()

График вывода

Спасибо!

1 Ответ

0 голосов
/ 18 сентября 2018

С argsort вы получаете индексы для отсортированного списка в порядке по возрастанию .Поскольку вам нужны 15 лучших, переверните список на [::-1], а затем постройте их следующим образом:

pos = np.arange(15) + .5
featax.barh(pos, feature_importance[sorted_idx][::-1][0:15], align='center')
featax.set_yticklabels(np.array(X.columns)[sorted_idx][::-1][0:15], fontsize=16)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...