xgboost 模型展示 特征重要性和决策树形状

本文介绍了在使用xgboost时遇到的问题及其解决方案,包括未安装graphviz的解决方法——通过Anaconda Prompt安装,以及如何调整决策树图像的大小,以清晰查看特征重要性和树结构。
摘要由CSDN通过智能技术生成
# *********get xgb model's feature importance************
b2_model = xgb.Booster(model_file=model_path + '/b2_model_12.model')
importance = b2_model.get_fscore()
importance = sorted(importance.items(), key=operator.itemgetter(1), reverse=False)
df = pd.DataFrame(importance, columns=['feature', 'fscore'])
feat_num = df.shape[0]
for k in range(feat_num):
    index = df.at[k, 'feature']
    index = index.replace('f', '')
    index = int(index)
    name = feat_name[index]
    df.at[k, 'feature'] = name
    stop = 0

df['fscore'] = df['fscore'] / df['fscore'].sum()
df.to_csv(model_path + "xgb_feat_importance_12.csv", index=False)

# Plot the feature importances
plt.figure()
df.plot(kind='barh', x='feature', y='fscore', legend=False, figsize=(6, 
随机森林和xgboost都是常用于特征选择和重要性评估的机器学习算法。然而,由于两者的工作原理和实现方式不同,它们对特征重要性评估结果也可能有所差异。 随机森林是一种基于决策树集成的算法,通过随机选择特征和样本子集构建多个决策树,并通过集成多个决策树的结果来提高预测准确性。在随机森林中,特征重要性是通过评估每个特征模型预测准确性的贡献程度得出的。一般来说,特征在多个决策树中被选择的频率越高,它对整体模型重要性就越高。 相比之下,xgboost是一种基于梯度提升树的算法,通过迭代地训练多个决策树,并通过梯度提升的方式不断优化模型的预测能力。它通过计算使用每个特征分裂后能够使损失函数最小化的增益,来评估特征重要性。增益越大,则说明特征模型预测能力的贡献越大。 在实践中,随机森林和xgboost特征重要性评估结果可能会有些差异。随机森林通常更注重整体特征的贡献程度,而xgboost更关注单个特征的增益。因此,在相同数据集上,两种算法可能会给出略有不同的特征重要性排序。 综上所述,随机森林和xgboost都是可靠的特征重要性评估算法,在具体任务中应根据实际情况选择合适的算法。若需要整体特征贡献的评估,可以选择随机森林;若更关心单个特征的贡献和增益,可以选择xgboost。在实践中,可以比较两个算法的结果,并根据具体需求选取更准确的特征重要性评估方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值