xgboost輸出特徵重要性排名和權重值
在機器學習實踐中,我們要經常用到xgboost框架去訓練資料,然後用訓練得到的模型再去預測其他未知的資料的標籤。
在判斷訓練得到的模型是否合理時,一個很重要的步驟就是檢視xgboost模型的特徵重要性排序。如果觀察得到模型的排名前幾的特徵都不符合我們正常的思維,那麼模型很可能是不穩定或者有問題的。在訓練得到模型檔案及特徵對映檔案後,可以通過下面一段程式碼檢視特徵排名、特徵名稱、特徵權重值
#-*-encoding: utf-8-*-
import xgboost as xgb
import pandas as pd
import operator
from matplotlib import pylab as plt
from pylab import *
fm = mpl.font_manager
fm.get_cachedir()
model_dir = 'your_model_directory_name/'
model_file = 'your_model_file_name'
fmap_file = 'your_fmap_file_name'
model =xgb.Booster(model_file=model_dir + model_file)
importance = model.get_fscore(fmap=model_dir + fmap_file)
f = open(model_dir + fmap_file)
fmap_dict = {}
for line in f:
line = line.strip().split()
fmap_dict[line[1]] = line[0]
feature_num = 10 #想要檢視top10的特徵名稱及權重,這裡設定想要檢視前多少個特徵及其權重
importance = sorted(importance.items(), key=operator.itemgetter(1), reverse=True)
importance = importance[:feature_num]
index = 1
print '特徵排名', '特徵名稱', '特徵權重值'
for line in importance:
print index, fmap_dict[str(line[0])[1:]], line[1]
index += 1
相關文章
- XGBoost 輸出特徵重要性以及篩選特徵特徵
- XGBoost學習(六):輸出特徵重要性以及篩選特徵特徵
- xgboost特徵重要性特徵
- xgboost 特徵重要性計算特徵
- 【特徵工程】(資料)使用Xgboost篩選特徵重要性特徵工程
- xgboost 特徵重要性選擇 / 看所有特徵哪個重要特徵
- 用xgboost模型對特徵重要性進行排序模型特徵排序
- xgboost模型特徵重要性的不同計算方式模型特徵
- 用xgboost獲取特徵重要性及應用特徵
- 用xgboost獲取特徵重要性原理及實踐特徵
- 【演算法】關於xgboost特徵重要性的評估演算法特徵
- 使用XGboost模組XGBClassifier、plot_importance來做特徵重要性排序Import特徵排序
- 特徵值和特徵向量特徵
- 特徵值 和 特徵向量,thrive特徵
- Python中XGBoost的特性重要性和特性選擇Python
- xgboost 特徵選擇,篩選特徵的正要性特徵
- 矩陣的特徵值和特徵向量矩陣特徵
- RF、GBDT、XGboost特徵選擇方法特徵
- 如何正確新增外鏈,提高網站的權重和排名網站
- 特徵值與特徵向量特徵
- xgboost 設定每條資料的重要性
- 分治法求眾數和重數(含檔案輸入輸出)
- 關於特徵值和特徵向量的幾何直覺意義特徵
- c語言中%f輸出double型和float型值C語言
- 分別利用xgbboost和catboost演算法做特徵重要性排序演算法特徵排序
- 機器學習之 基於xgboost的特徵篩選機器學習特徵
- 重學java中的輸入輸出流Java
- python日誌重複輸出Python
- 如何利用百度權重來提高關鍵詞排名?
- 深入解析CSS樣式層疊權重值CSS
- Python輸入和輸出(IO)Python
- 如何獲得高質量的外鏈來提高網站權重和搜尋引擎排名?網站
- 從高斯消元法到特徵值特徵向量特徵
- xgboost get_fscore 判斷特徵重要程度的三種指標特徵指標
- 格式化輸入和輸出
- C語言輸入一個數輸出對應的值C語言
- 輸入和輸出基礎語法
- JAVA筆記(12)——輸入和輸出Java筆記