成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

人工智能算法-LightGBM模型詳解

發布于 2025-4-2 00:30
瀏覽
0收藏

 LightGBM是一個快速、高效的梯度提升框架,他由微軟開發,在數據挖掘和機器學習領域應用廣泛。接下來詳細介紹下他的原理

 1. 梯度提升框架:LightGBM基于梯度提升決策樹(GBDT)算法,通過迭代地訓練決策樹來逐步減少預測誤差。它將弱學習器(如決策樹)組合成一個強學習器,不斷地根據之前模型的誤差來調整新模型的訓練,從而提高整體模型的準確性。

舉例:

假設有一個預測房價的任務,我們有一些房屋的特征數據,如面積、房間數、房齡等,目標是根據這些特征預測房屋的價格。LightGBM會先初始化一個簡單的模型,比如預測所有房屋價格都是一個固定值(可以是房價的平均值),這是初始的弱學習器。然后,計算這個初始模型的預測誤差,即真實房價與預測房價的差值。接下來,根據這個誤差來訓練一個新的決策樹,這個決策樹的目標是盡量糾正之前模型的誤差。將新的決策樹與之前的模型結合起來,得到一個新的、更準確的模型。不斷重復這個過程,每次都根據上一輪模型的誤差來訓練新的決策樹并加入到模型中,使模型的預測能力不斷提升。 

2.  Leaf - Wise生長策略:與傳統的按層生長的決策樹不同,LightGBM采用了Leaf - Wise的生長方式。它每次選擇增益最大的葉子節點進行分裂,而不是像層生長那樣在每一層上對所有節點同時進行分裂。這種策略可以更快速地找到最優的分裂點,減少不必要的計算,提高模型訓練速度。

人工智能算法-LightGBM模型詳解-AI.x社區

舉例:

在構建決策樹時,傳統的按層生長方式是每一層都對所有節點進行分裂,不管這個節點是否真的有必要分裂。而LightGBM的Leaf - Wise生長策略會從根節點開始,每次選擇一個增益最大的葉子節點進行分裂。例如,在預測房價的決策樹中,可能某個葉子節點包含的房屋大多是房齡較新且面積較大的,這些房屋的價格相對較高且比較集中。如果按照層生長,可能會對這個節點所在層的其他節點也進行分裂,而那些節點可能已經比較純了,分裂意義不大。但Leaf - Wise策略會優先選擇這個葉子節點繼續分裂,比如根據房間數進一步細分,因為這樣可能會帶來更大的信息增益,能更精準地預測房價。

3. 直方圖算法:LightGBM使用直方圖算法來優化特征的離散化和數據的統計。它將連續的特征值離散化為有限個區間,然后在這些區間上構建直方圖。通過對直方圖的統計和計算,可以快速找到最優的分裂點,大大減少了計算量,同時也能有效地處理大規模數據。

人工智能算法-LightGBM模型詳解-AI.x社區

舉例:

假設我們有一個房屋面積的特征,其取值范圍是0到1000平方米。LightGBM會先將這個連續的特征值離散化為有限個區間,比如0 - 100平方米、100 - 200平方米等。然后,對于每個訓練數據點,根據其房屋面積落入相應的區間,并在該區間的直方圖中計數加1。在尋找最優分裂點時,LightGBM只需要在這些離散的區間上進行計算,而不用像傳統方法那樣對每個具體的面積值進行遍歷計算。例如,要判斷在哪個面積區間進行分裂能使房價的預測更準確,只需要比較不同區間的統計信息,如區間內房屋的平均價格、數量等,大大減少了計算量。

LightGBM代碼實現

完整代碼示例(房價預測)

1 數據準備

import lightgbm as lgb

from sklearn.datasets import fetch_california_housing

from sklearn.model_selection import train_test_split

from sklearn.metrics import mean_squared_error

#加載加州房價數據集

data = fetch_california_housing()

X, y = data.data, data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

#轉換為LightGBM Dataset格式

train_data = lgb.Dataset(X_train, label=y_train)

test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)

2 參數設置

params = {

'objective': 'regression',

'metric': 'mse',

'boosting_type': 'gbdt',

'num_leaves': 31,

'learning_rate': 0.05,

'feature_fraction': 0.8,

'lambda_l1': 0.1,

'lambda_l2': 0.1,

'max_depth': 5,

'min_data_in_leaf': 20,

'verbose': -1

}

3 模型訓練與早停

evals_result = {} # 記錄評估結果

model = lgb.train(

params,

train_data,

valid_sets=[train_data, test_data],

valid_names=['train', 'test'],

num_boost_round=1000,

early_stopping_rounds=50,

verbose_eval=50,

evals_result=evals_result

)

4 模型評估與可視化

#預測并計算RMSE

y_pred = model.predict(X_test)

rmse = mean_squared_error(y_test, y_pred, squared=False)

print(f'Test RMSE: {rmse:.3f}')

#可視化特征重要性

lgb.plot_importance(model, figsize=(10, 6), max_num_features=10)

#繪制訓練曲線

lgb.plot_metric(evals_result, metric='mse', figsize=(10, 5))

5 使用SHAP解釋模型

import shap

#創建SHAP解釋器

explainer = shap.TreeExplainer(model)

shap_values = explainer.shap_values(X_test)

#可視化單個樣本的特征貢獻

shap.force_plot(explainer.expected_value, shap_values[0,:], X_test[0,:], feature_names=data.feature_names)

#全局特征重要性

shap.summary_plot(shap_values, X_test, feature_names=data.feature_names)

LightGBM與XGBoost和CatBoost比較

人工智能算法-LightGBM模型詳解-AI.x社區


LightGBM過擬合該如何處理?

1.數據層面:確保樣本量> 10,000,避免小數據使用LightGBM。

2.參數調優:

  • 降低num_leaves(如從31減至15)。
  • 增大min_data_in_leaf(如從20增至100)。
  • 提高正則化項(lambda_l1和lambda_l2)。

3.早停法:監控驗證集誤差,提前終止訓練。

LightGBM優點

 ● 訓練速度快:采用了Leaf - Wise生長策略和直方圖算法等優化技術,能夠在較短的時間內處理大規模數據集,提高模型訓練效率。

 ● 內存占用少:對數據的存儲和計算進行了優化,通過直方圖等數據結構來壓縮數據,減少了內存的使用,適合處理內存受限的問題。

 ● 可擴展性強:支持大規模數據集和分布式訓練,可以在多臺機器上并行訓練模型,加速模型的訓練過程,適用于處理海量數據的場景。

 ● 魯棒性好:對數據中的噪聲和異常值具有較好的魯棒性,能夠在一定程度上避免過擬合,提高模型的泛化能力。

本文轉載自 ??人工智能訓練營???,作者: 小A學習

收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 福利精品在线观看 | 波多野结衣一区二区 | 久久夜视频 | 欧美最猛性xxxxx亚洲精品 | 黑人久久 | 成人av电影天堂 | 欧美精品久久久久久久久老牛影院 | 99在线精品视频 | 日韩av资源站 | 亚洲黄色高清视频 | 黄网站在线播放 | 欧美中文字幕一区二区 | 精品久久久久久久人人人人传媒 | 亚洲一区二区三区四区五区中文 | 国产欧美一区二区三区久久 | 小h片免费观看久久久久 | 亚洲成人一区二区 | 中文字幕亚洲免费 | av片在线观看网站 | 色桃网 | 久视频在线观看 | 日屁视频| ririsao久久精品一区 | 日本三级精品 | 免费观看www | 精品日韩一区二区 | 欧美日韩精品久久久免费观看 | 亚洲综合中文字幕在线观看 | 国产色婷婷久久99精品91 | 看黄在线| 欧美日韩精品综合 | 91亚洲精| 丝袜一区二区三区 | 在线亚洲一区 | 视频1区2区| 欧美二区在线 | 日韩免费高清视频 | 日日夜夜天天 | 免费在线一区二区 | 精品国产乱码久久久久久丨区2区 | 久草免费在线视频 |