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以及其左右子節點中訓練樣本個數與總訓練...