模型解释方法

文章介绍了如何在模型生成后,通过计算特征权重并使用随机森林模型(rfc)进行排序,以及如何通过树模型可视化(如决策树)来理解和解释模型的工作原理。作者展示了如何展示特征重要性和创建可视化图形以帮助解释模型预测过程。
摘要由CSDN通过智能技术生成
模型生成后需要对模型进行解释

特征权重

importances = rfc.feature_importances_
indices = np.argsort(importances)[::-1] #[::-1]表示将各指标按权重大小进行排序输出
for f in range(data_train_x[:100].shape[1]):
    print("%2d) %-*s %f" % (f + 1, 30, data_train_x.columns[indices[f]], importances[indices[f]]))

权重展示

def rf_feat_importance(m,df):
    return pd.DataFrame({'cols':df.columns,'imp':m.feature_importances_}).sort_values('imp',ascending=False)

sns.set_palette(sns.color_palette("BuGn_d"))
rf_feat_importance(rfc,data_train_x).plot('cols','imp',figsize=(14,6),kind='barh')
plt.show()

树模型可视化

estimator = rfc.estimators_[1]

from sklearn import tree
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz/bin/'
dot_data1= tree.export_graphviz(
        estimator,#改成你要画的树,这里我们画dtr2
        out_file = None,
        feature_names = data_train_x.columns,#改成需要的特征名
        filled = True,
        impurity = True,#是否显示gini系数或者熵值
        rounded = True,
        special_characters=True,
        class_names=str(pd.DataFrame(data_train_y).columns)#分类树的类别名,回归树不用指定
    )
import pydotplus
graph = pydotplus.graph_from_dot_data(dot_data1)
graph.get_nodes()[1].set_fillcolor("#2DF3DF")
from IPython.display import Image
Image(graph.create_png())
graph.write_png("welding_depth_5.jpg")#保存图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值