import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_excel('氣象、環(huán)境、火災(zāi)燒毀.xlsx')

# 劃分特征和目標(biāo)變量
X = df.drop(['month', 'day', 'area'], axis=1)
y = df['area']
# 劃分訓(xùn)練集和測試集
# 注意:random_state=42 是為了確保結(jié)果的可復(fù)現(xiàn)性,并且針對該數(shù)據(jù)集進(jìn)行了特定處理。讀者在使用自己的數(shù)據(jù)時(shí),可以自由修改此參數(shù)。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
random_state=42)
df.head()

“這個(gè)數(shù)據(jù)集包含了氣象、環(huán)境和火災(zāi)信息,其中X、Y表示地理位置,month和day是日期信息,F(xiàn)FMC、DMC、DC、ISI是火災(zāi)相關(guān)的氣象指數(shù),temp表示溫度,RH是濕度,wind是風(fēng)速,rain是降雨量,area是火災(zāi)燒毀的面積,在建模時(shí),我們未使用日期信息(month 和 day)

模型建立

import xgboost as xgb
from sklearn.model_selection import GridSearchCV

# XGBoost回歸模型參數(shù)
params_xgb = {
'learning_rate': 0.02, # 學(xué)習(xí)率,控制每一步的步長,用于防止過擬合。典型值范圍:0.01 - 0.1
'booster': 'gbtree', # 提升方法,這里使用梯度提升樹(Gradient Boosting Tree)
'objective': 'reg:squarederror', # 損失函數(shù),這里使用平方誤差,適用于回歸任務(wù)
'max_leaves': 127, # 每棵樹的葉子節(jié)點(diǎn)數(shù)量,控制模型復(fù)雜度
'verbosity': 1, # 控制 XGBoost 輸出信息的詳細(xì)程度,0表示無輸出,1表示輸出進(jìn)度信息
'seed': 42, # 隨機(jī)種子,用于重現(xiàn)模型的結(jié)果
'nthread': -1, # 并行運(yùn)算的線程數(shù)量,-1表示使用所有可用的CPU核心
'colsample_bytree': 0.6, # 每棵樹隨機(jī)選擇的特征比例,用于增加模型的泛化能力
'subsample': 0.7, # 每次迭代時(shí)隨機(jī)選擇的樣本比例,用于增加模型的泛化能力
'eval_metric': 'rmse' # 評價(jià)指標(biāo),這里使用均方根誤差(rmse)
}

# 初始化XGBoost回歸模型
model_xgb = xgb.XGBRegressor(**params_xgb)

# 定義參數(shù)網(wǎng)格,用于網(wǎng)格搜索
param_grid = {
'n_estimators': [100, 200, 300, 400, 500], # 樹的數(shù)量
'max_depth': [3, 4, 5, 6, 7], # 樹的深度
'learning_rate': [0.01, 0.02, 0.05, 0.1], # 學(xué)習(xí)率
}

# 使用GridSearchCV進(jìn)行網(wǎng)格搜索和k折交叉驗(yàn)證
grid_search = GridSearchCV(
estimator=model_xgb,
param_grid=param_grid,
scoring='neg_mean_squared_error', # 評價(jià)指標(biāo)為負(fù)均方誤差
cv=5, # 5折交叉驗(yàn)證
n_jobs=-1, # 并行計(jì)算
verbose=1 # 輸出詳細(xì)進(jìn)度信息
)

# 訓(xùn)練模型
grid_search.fit(X_train, y_train)

# 輸出最優(yōu)參數(shù)
print("Best parameters found: ", grid_search.best_params_)
print("Best RMSE score: ", (-grid_search.best_score_) ** 0.5) # 還原RMSE

# 使用最優(yōu)參數(shù)訓(xùn)練模型
best_model_xgboost = grid_search.best_estimator_

使用網(wǎng)格搜索(GridSearchCV)和5折交叉驗(yàn)證來優(yōu)化XGBoost模型的超參數(shù)(如樹的數(shù)量、深度、學(xué)習(xí)率等),然后輸出最優(yōu)參數(shù)和通過負(fù)均方誤差評估得到的最小均方根誤差(RMSE),最后使用最優(yōu)參數(shù)訓(xùn)練模型

獲取特征重要性

# 獲取XGBoost模型的特征貢獻(xiàn)度(重要性)
feature_importances = best_model_xgboost.feature_importances_

# 將特征和其重要性一起排序
sorted_indices = np.argsort(feature_importances)[::-1] # 逆序排列,重要性從高到低
sorted_features = X_train.columns[sorted_indices]
sorted_importances = feature_importances[sorted_indices]

# 打印排序后的特征及其重要性
for feature_name, importance in zip(sorted_features, sorted_importances):
print(f"Feature: {feature_name}, Importance: {importance:.4f}")

從訓(xùn)練好的XGBoost模型中提取特征的重要性,并將這些特征按重要性從高到低進(jìn)行排序。首先,通過best_model_xgboost.feature_importances_ 獲取各特征的貢獻(xiàn)度,然后利用np.argsort() 對貢獻(xiàn)度進(jìn)行排序,接著將特征名稱和對應(yīng)的重要性值按順序存儲(chǔ),最后,代碼通過for循環(huán)打印出每個(gè)特征及其貢獻(xiàn)度,幫助我們識(shí)別出模型中對預(yù)測結(jié)果影響最大的特征

特征重要性可視化

# 繪制按重要性排序的特征貢獻(xiàn)性柱狀圖
plt.figure(figsize=(10, 6), dpi=1200)
plt.barh(sorted_features, sorted_importances, color='steelblue')
plt.xlabel('Importance', fontsize=14)
plt.ylabel('Features', fontsize=14)
plt.title('Sorted Feature Importance', fontsize=16)
plt.gca().invert_yaxis()
plt.savefig("Sorted Feature Importance.pdf", format='pdf',bbox_inches='tight')
# 顯示圖表
plt.show()

通過 plt.barh() 繪制了按重要性排序的特征貢獻(xiàn)柱狀圖,并將其保存為 PDF 文件,該圖展示了各個(gè)特征對 XGBoost 模型在預(yù)測火災(zāi)面積時(shí)的相對重要性

從圖中可以看出,RH(相對濕度)、temp(溫度) 和 DMC(濕潤度代碼) 是對火災(zāi)面積預(yù)測貢獻(xiàn)最大的特征,表明這些環(huán)境因素對火災(zāi)的影響最為顯著。而 rain(降雨量) 對模型的貢獻(xiàn)最小,這意味著在這個(gè)數(shù)據(jù)集中,降雨量對火災(zāi)面積的預(yù)測起到的作用相對較小

總結(jié)

在之前的文章中,我們探討了如何通過隨機(jī)森林模型的特征貢獻(xiàn)度來衡量各個(gè)特征在預(yù)測中的重要性,然而,特征貢獻(xiàn)度不僅適用于隨機(jī)森林,像?XGBoost、CatBoost和??LightGBM等強(qiáng)大的樹模型同樣可以為我們揭示特征對模型的貢獻(xiàn)度,因此,我將推出一個(gè)系列文章,逐步講解如何從這些不同的樹模型中提取特征貢獻(xiàn)度,讓你學(xué)會(huì)在不同算法中挖掘最重要的特征

細(xì)心的讀者可能已經(jīng)注意到,XGBoost 的特征貢獻(xiàn)度與隨機(jī)森林有顯著的區(qū)別,正是這些差異,讓我們對特征有了不同的見解和理解,最終,我們的目標(biāo)是通過多模型特征貢獻(xiàn)度的可視化,幫助你直觀地比較各個(gè)模型對同一特征的不同看法,最終可以將多種模型的特征貢獻(xiàn)度整合在一張圖中,輕松地對比每個(gè)模型對特征的不同判斷,從而更好地理解模型的行為和特征的重要性

文章轉(zhuǎn)自微信公眾號@Python機(jī)器學(xué)習(xí)AI

熱門推薦
一個(gè)賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業(yè)工程師共享工作效率翻倍的秘密
熱門推薦
一個(gè)賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
返回頂部
上一篇
SCI圖表復(fù)現(xiàn):優(yōu)化SHAP特征貢獻(xiàn)圖展示更多模型細(xì)節(jié)
下一篇
SCI圖表復(fù)現(xiàn):整合數(shù)據(jù)分布與相關(guān)系數(shù)的高級可視化策略
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
韩国v欧美v日本v亚洲v| 91精品福利在线| 亚洲永久精品大片| 亚洲gay无套男同| 日av在线不卡| 成人综合日日夜夜| 欧美久久婷婷综合色| 日韩欧美色综合| 亚洲视频 欧洲视频| 亚洲国产精品一区二区www在线| 免费人成精品欧美精品| 成人精品国产一区二区4080| 色乱码一区二区三区88| 日韩欧美中文字幕精品| 国产精品不卡一区| 久久精品99久久久| 色哟哟一区二区在线观看 | 欧美精品久久99久久在免费线| 日韩一区二区在线观看| 成人欧美一区二区三区白人| 精品写真视频在线观看| 欧美亚洲免费在线一区| 日本一二三不卡| 蜜桃视频在线观看一区二区| 91免费看视频| 国产精品欧美精品| 久久超碰97中文字幕| 欧美色中文字幕| 亚洲男同性恋视频| 成人激情电影免费在线观看| 久久婷婷国产综合精品青草| 日韩福利电影在线| 欧美日韩国产乱码电影| 一区二区不卡在线播放| 成人妖精视频yjsp地址| 精品久久久久久久久久久久包黑料 | 男人的天堂久久精品| 欧美色视频在线| 亚洲精品久久7777| 99r精品视频| 国产精品国产自产拍高清av王其| 国内一区二区视频| 日韩视频免费观看高清完整版在线观看 | 国产精品传媒入口麻豆| 国产成人精品影视| 欧美激情一区不卡| 国产99精品在线观看| 久久精品视频网| 国产aⅴ综合色| 中文字幕欧美国产| 99re亚洲国产精品| 亚洲人成网站精品片在线观看 | 亚洲一线二线三线久久久| 欧美性三三影院| 天堂一区二区在线| 精品国产麻豆免费人成网站| 狠狠色丁香久久婷婷综合_中| 久久久久久夜精品精品免费| 国产成人免费视频精品含羞草妖精| 中文字幕精品—区二区四季| 91在线你懂得| 人人爽香蕉精品| 国产色综合久久| 日本精品一级二级| 蜜臀久久99精品久久久久久9 | heyzo一本久久综合| 夜夜嗨av一区二区三区| 欧美日韩一区在线观看| 狠狠久久亚洲欧美| 一区二区三区四区亚洲| 日韩一区二区不卡| 91丝袜高跟美女视频| 亚洲一线二线三线久久久| 日韩精品一区二区三区视频| 成人黄页在线观看| 丝袜美腿亚洲综合| 国产精品国产三级国产aⅴ入口 | 日韩欧美激情一区| 91丨porny丨户外露出| 日韩av电影免费观看高清完整版 | 在线播放/欧美激情| 狠狠色综合色综合网络| 亚洲欧美色图小说| 久久久久久久久岛国免费| 欧美日韩一区二区三区四区五区| 国产精品亚洲第一区在线暖暖韩国 | 久久精品人人做| 欧美体内she精高潮| 成人一道本在线| 国产综合色在线| 蜜桃视频一区二区三区在线观看| 一区二区三区四区精品在线视频| 国产午夜精品一区二区| 欧美一区二区三区在线电影| 成人一区二区三区视频| 久久99热99| 五月婷婷激情综合| 亚洲精品网站在线观看| 欧美高清在线一区二区| 欧美电影免费观看高清完整版在| 欧美主播一区二区三区美女| 成人夜色视频网站在线观看| 狠狠色伊人亚洲综合成人| 青椒成人免费视频| 午夜精品福利一区二区蜜股av | 国产网红主播福利一区二区| 精品久久久久久久人人人人传媒| 91精品国产入口| 欧美日韩精品免费| 69堂国产成人免费视频| 欧美精品日韩综合在线| 欧美美女直播网站| 91 com成人网| xvideos.蜜桃一区二区| 久久久影视传媒| 国产精品你懂的在线欣赏| 亚洲视频你懂的| 亚洲成av人片一区二区梦乃| 午夜精品久久久久久久久久| 视频在线观看91| 国产一区二区三区久久悠悠色av| 久久草av在线| 国产99久久久国产精品免费看| 国产不卡视频在线播放| 成av人片一区二区| 在线观看视频欧美| 欧美肥妇bbw| www久久久久| 中文字幕制服丝袜成人av| 亚洲一区二区三区国产| 日韩av网站免费在线| 久久99精品久久久| 成人av在线播放网站| 在线区一区二视频| 精品少妇一区二区三区在线播放| 国产无人区一区二区三区| 亚洲男人天堂一区| 日本强好片久久久久久aaa| 韩日欧美一区二区三区| 9l国产精品久久久久麻豆| 欧美性生交片4| 国产亚洲自拍一区| 亚洲va中文字幕| 成人黄色一级视频| 日韩视频免费直播| 亚洲美女免费视频| 久久99精品国产91久久来源| 一本在线高清不卡dvd| 日韩一区二区中文字幕| 亚洲天堂av一区| 国产一区二区中文字幕| 欧美日韩免费在线视频| 中文欧美字幕免费| 亚洲妇熟xx妇色黄| 成人app在线| 精品成人一区二区三区| 夜夜爽夜夜爽精品视频| 国产成a人亚洲精| 欧美r级在线观看| 午夜久久电影网| 91丨国产丨九色丨pron| 精品福利一区二区三区| 午夜av电影一区| 欧美日韩一区二区在线视频| 中文字幕一区在线| 国产99久久久国产精品潘金网站| 欧美r级电影在线观看| 亚洲高清视频的网址| 99久久综合99久久综合网站| 久久久久久久久久久久久久久99 | 成人午夜激情片| 国产色爱av资源综合区| 日本网站在线观看一区二区三区| 欧亚洲嫩模精品一区三区| 136国产福利精品导航| 粉嫩一区二区三区在线看| 欧美不卡123| 久久国产精品第一页| 91精品国产色综合久久久蜜香臀| 亚洲一区在线观看免费 | 丝袜a∨在线一区二区三区不卡| 在线视频综合导航| 亚洲图片欧美色图| 在线看一区二区| 偷拍与自拍一区| 欧美一区二区精美| 国产综合久久久久久鬼色| 日韩欧美国产不卡| 欧美群妇大交群的观看方式| 国产黑丝在线一区二区三区| 日韩一级完整毛片| 美美哒免费高清在线观看视频一区二区 | 欧美色网一区二区| 亚洲成a人片综合在线| 这里只有精品电影| 久久国产视频网| 国产欧美视频在线观看| 91毛片在线观看| 日韩高清在线观看| 中文字幕免费在线观看视频一区|