windows anaconda下載的XGBoost
plot_tree default function畫出來只會顯示
f0, f1, f2......作為feature的切割
如上圖
參考了網路上的做法, 做了修正
1. 首先要建立一個fmap的文件
def ceate_feature_map(features):
outfile = open('xgb.fmap', 'w')
i = 0
for feat in features:
outfile.write('{0}\t{1}\tq\n'.format(i, feat))
i = i + 1
outfile.close()
ceate_feature_map(features_name)
這個features_name也就是你input data的title
2. 改寫plot_tree
原先的
plot_tree(xgbmodel, rankdir='LR')
後來的plot_tree多加一個引數
plot_tree(xgbmodel, rankdir='LR', fmap='xgb.fmap')
在網路上google到的大致上是這樣, 一般都說更新到最新版就有支援fmap這個功能
但是我這樣用了, 而且xgboost也是6.0版本
仍然不能使用
於是進去裡面看plot_tree裡面到底有沒有吃到fmap這個參數
最後
3. 改寫plotting裡面的to_graphviz function
原先的
tree = booster.get_dump()[num_trees]
完全沒有吃到fmap這個參數
建議可以改成這樣
if "fmap" in kwargs:
tree = booster.get_dump(kwargs["fmap"])[num_trees]
else:
tree = booster.get_dump()[num_trees]
這樣畫出來的tree就能夠含有feature name的information了
其餘XGBoost入門詳解, 我認為這篇蠻值得參考的
https://hk.saowen.com/a/24b56c2fdf62f1a70dfa8e2f00917904097a9425225daf98526ea3d6293370db
訂閱:
張貼留言 (Atom)
XGBoost (python3.5) (windows) (anaconda) plot_tree 修正
windows anaconda下載的XGBoost plot_tree default function畫出來只會顯示 f0, f1, f2......作為feature的切割 如上圖 參考了網路上的做法, 做了修正 1. 首先要建立一個fmap的文件 ...
-
這個標題又是下的有點Tizzy Bac風格, 話說起來我真的是愛Tizzy Bac愛的有點過頭了, 昨天跟家人一同去吃火鍋(鍋神創始店就在我家附近), 託鍋神太有名之福,我才有機會聽到這麼有趣的一段對話, 是一個家庭(一對父母與兩個小孩) 小孩A:我要吃蟹肉棒,金針菇...
-
http://10fastfingers.com/typing-test/traditional-chinese 是否大家跟我一樣,每次總是在104要填中打速度的時候亂填一通, 不如就來實際上測測看吧!! 我用舊注音的中打是每分鐘75~80個字 他還會統計告訴你比多...
沒有留言:
張貼留言