python - 使用逻辑回归时如何打印特征重要性的简单列表?
问题描述
我正在使用此处找到的数据集:https ://www.kaggle.com/pavansubhasht/ibm-hr-analytics-attrition-dataset
我的代码是:
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
log_reg_model = LogisticRegression(max_iter=1000, solver = "newton-cg")
log_reg_model = RFE(log_reg_model, 45) # using RFE to get the top 45 most important features
log_reg_model.fit(X_train_SMOTE, y_train_SMOTE) # fitting data
y_pred = log_reg_model.predict(X_test)
print("Model accruracy score: {}".format(accuracy_score(y_test, y_pred)))
print(classification_report(y_test, y_pred))
我正在尝试按顺序打印出最重要的特征,例如在随机森林分类中使用 feature_importances_ 函数时。
以上可以使用LR吗?我在 Stack Overflow 上看到了类似的问题,但没有显示功能名称及其重要性的答案。
解决方案
为此,您可以使用一种名为 的方法shap
,我绝对建议您在深入研究代码之前阅读有关 SHAP 的内容,因为它对于您和其他人准确理解您所呈现的内容非常重要。
但是,如何在您的实现中发挥作用的一个示例是:
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
import shap
log_reg_model = LogisticRegression(max_iter=1000, solver = "newton-cg")
# log_reg_model = RFE(log_reg_model, 45) # using RFE to get the top 45 most important features
log_reg_model.fit(X_train_SMOTE, y_train_SMOTE) # fitting data
y_pred = log_reg_model.predict(X_test)
print("Model accruracy score: {}".format(accuracy_score(y_test, y_pred)))
print(classification_report(y_test, y_pred))
explainer = shap.LinearExplainer(log_reg_model, X_train_SMOTE)
shap_values = explainer.shap_values(X_test[:150])
shap.summary_plot(shap_values, feature_names = X_train_SMOTE.columns)
推荐阅读
- azure - 使用 Azure DevOps 在 Windows 映像上运行并行测试时出错
- dagster - dagster solid 并行运行测试示例
- javascript - 如果然后起作用,我如何验证 Javascript 中的文本?
- node.js - 在 sqlite3(节点包)中,如何按顺序运行多个查询?
- python - 将下载的 Python 的路径添加到 Visual Studio Code
- python - 在 Windows 10 上运行软件时禁用通知
- python - 合并日期上具有不同值的多个数据框
- r - 有没有办法增加系统发育树中允许的物种数量以供我分析?
- bioconductor - clusterProfiler 无法加载包
- google-apps-script - 创建自定义函数以通过 App 脚本验证 Google 电子表格中的数据