一、LightGBM回歸
LightGBM是一個用於梯度提升決策樹的框架。它使用直方圖演算法來加速訓練和應用程序。
LightGBM作為一款高性能機器學習框架,被廣泛應用於分類、回歸等任務中,並在許多任務中均表現出較為優異的效果。
其回歸演算法特點: 比較適合於對數據預測建模,能更好的發揮樹模型在尋找最優補償點上的優勢,並通過Leaf Wise生長策略加速提高了模型訓練的速度,可以同時處理連續型和離散型特徵。
二、LightGBM演算法
LightGBM主要包含以下幾個方面:
2.1 分裂演算法:基於直方圖的決策樹演算法
運用單邊採樣技術,可以通過不斷分裂,加速得到較為精簡的決策樹;在對於連續屬性節點分裂時,可以將其離散化後掃描離散化後的每個切分點,從而挑選離散化後較優切分點。同樣,在對於分類屬性節點分裂時,也可以將其轉化為二分類問題。
2.2 直方圖演算法:離散化處理數據
直方圖演算法將數據按照分位數進行離散化,然後以離散後的數據為基礎去構建決策樹,通過這種方式有效地降低了演算法的複雜度。對於數據量較大的海量數據集,LightGBM能在較短的時間內構建出較為精準的模型,同時可以處理有雜訊、不平衡數據等情況。
2.3 Leaf Wise生長策略:優化模型訓練速度
Leaf Wise生長策略與傳統的Depth Wise生長策略相比,是一種更為高效的生長策略,這種策略可以使得決策樹在保證準確性的前提下,減少了非葉子節點數量。相應地,降低了存儲空間和預測時間,加速了模型訓練速度。
三、LightGBM回歸模型
下面是一個簡單的LightGBM回歸模型的例子:
import lightgbm as lgb import numpy as np import pandas as pd from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split # 載入數據 print('Loading data...') df_train = pd.read_csv('train.csv') df_test = pd.read_csv('test.csv') # 處理標籤 y_train = df_train['label'] df_train.drop(['label'], axis=1, inplace=True) y_test = df_test['label'] df_test.drop(['label'], axis=1, inplace=True) # 劃分數據集 X_train, X_val, y_train, y_val = train_test_split(df_train.values, y_train.values, test_size=0.1, random_state=42) # 構建LightGBM模型 print('Training/Fitting ...') params = { 'task': 'train', 'boosting_type': 'gbdt', 'objective': 'regression', 'metric': {'mse'}, 'num_leaves': 31, 'learning_rate': 0.05, 'feature_fraction': 0.9, 'bagging_fraction': 0.8, 'bagging_freq': 5, 'verbose': 0 } lgb_train = lgb.Dataset(X_train, y_train) lgb_eval = lgb.Dataset(X_val, y_val, reference=lgb_train) gbm = lgb.train(params, lgb_train, num_boost_round=100, valid_sets=lgb_eval, early_stopping_rounds=5) # 預測測試集並輸出RMSE print('Predicting ...') y_pred = gbm.predict(df_test.values, num_iteration=gbm.best_iteration) mse = mean_squared_error(y_test, y_pred) print("MSE: %.4f" % mse)
四、LightGBM特徵重要度
LightGBM用的是直方圖,它不會用到所有的特徵,而是根據特徵的重要度選擇部分特徵。
其特徵重要度選取特徵主要是通過在決策樹的生長過程中,對於劃分的屬性,計算其對於決策結果的貢獻。計算後可以通過直方圖統計得到,因此LightGBM的特徵重要度是一個通過統計的平均重要度得到的,反應了特徵對於模型的貢獻程度。
# 輸出特徵重要度 print('Feature importances:', list(gbm.feature_importance()))
五、小結
本文闡述了LightGBM回歸技術,介紹了LightGBM回歸的特點和演算法,同時簡單介紹了LightGBM回歸模型和特徵重要度的計算方式。總之,LightGBM以快速、高效、準確著稱,近年來在處理海量數據方面表現突出,預期將在未來得到廣泛應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/252029.html