【发布时间】:2020-04-30 14:40:09
【问题描述】:
我正在编写一个同时训练 Ranger 随机森林和 xgb 回归的脚本。根据基于 rmse 的性能最佳,使用一个或另一个来测试保留数据。
我还想以类似的方式返回两者的特征重要性。
使用 xgboost 库,我可以得到我的特征重要性表并像这样绘制:
> xgb.importance(model = regression_model)
Feature Gain Cover Frequency
1: spend_7d 0.981006272 0.982513621 0.79219969
2: IOS 0.006824499 0.011105014 0.08112324
3: is_publisher_organic 0.006379284 0.002917203 0.06770671
4: is_publisher_facebook 0.005789945 0.003464162 0.05897036
然后我可以像这样绘制它:
> xgb.importance(model = regression_model) %>% xgb.plot.importance()
那是使用 xgboost 库及其功能。使用游侠随机福雷斯特,如果我拟合回归模型,如果我在拟合模型时包含importance = 'impurity',我可以获得特征重要性。那么:
regression_model$variable.importance
spend_7d d7_utility_sum recent_utility_ratio IOS is_publisher_organic is_publisher_facebook
437951687132 0 0 775177421 600401959 1306174807
我可以创建一个 ggplot。但是,ranger 在该表中返回的值与 xgb 在图中显示的比例完全不同。
是否有开箱即用的库或解决方案,我可以在其中以类似的方式绘制 xgb 或 ranger 模型的特征重要性?
【问题讨论】: