xgboost特徵重要性

2021-09-11 01:17:40 字數 1200 閱讀 6210

from sklearn.model_selection import train_test_split

from sklearn import metrics

from sklearn.datasets  import  make_hastie_10_2

from xgboost.sklearn import xgbclassifier

from xgboost import plot_importance

from matplotlib import pyplot

x, y = make_hastie_10_2(random_state=0)

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.5, random_state=0)##test_size測試集合所佔比例

clf = xgbclassifier(

silent=0 ,#設定成1則沒有執行資訊輸出,最好是設定為0.是否在執行公升級時列印訊息。

learning_rate= 0.3, # 如同學習率

min_child_weight=1, 

max_depth=6, # 構建樹的深度,越大越容易過擬合

gamma=0,  # 樹的葉子節點上作進一步分割槽所需的最小損失減少,越大越保守,一般0.1、0.2這樣子。

subsample=1, # 隨機取樣訓練樣本 訓練例項的子取樣比

max_delta_step=0,#最大增量步長,我們允許每個樹的權重估計。

colsample_bytree=1, # 生成樹時進行的列取樣 

reg_lambda=1,  # 控制模型複雜度的權重值的l2正則化項引數,引數越大,模型越不容易過擬合。

n_estimators=100, #樹的個數

seed=1000 #隨機種子

)model = clf.fit(x_train,y_train,eval_metric='auc')

y_true, y_pred = y_test, clf.predict(x_test)

print("accuracy : %.4g" % metrics.accuracy_score(y_true, y_pred))

model.fit(x, y)

print(plot_importance(model))

print(pyplot.show())

用xgboost獲取特徵重要性及應用

一 xgboost對特徵重要性進行排序的原理 即為什麼xgboost可以對特行的重要性進行排序 根據結構分數的增益情況,計算選擇哪個特徵的哪個分割點 某個特徵的重要性,就是它在所有樹 現的次數之和。二 如何繪製特徵重要性條形圖 三 如何根據特種的重要性進行特徵選擇 特徵選擇的閾值thresh是自己確...

xgboost輸出特徵重要性排名和權重值

在機器學習實踐中,我們要經常用到xgboost框架去訓練資料,然後用訓練得到的模型再去 其他未知的資料的標籤。在判斷訓練得到的模型是否合理時,乙個很重要的步驟就是檢視xgboost模型的特徵重要性排序。如果觀察得到模型的排名前幾的特徵都不符合我們正常的思維,那麼模型很可能是不穩定或者有問題的。在訓練...

xgboost和隨機森林特徵重要性計算方法

隨機森林中特徵重要性和xgboost不同 隨機森林中的特徵重要性主要是基於不純度 也可以叫做gini importance 計算某乙個節點不純度為 其中,k omega k k le ft omega left ri ght omega right 分別為節點k以及其左右子節點中訓練樣本個數與總訓練...