全部產品
Search
文件中心

:XGBoost gbtree使用樣本

更新時間:Jul 25, 2025

XGBoost(Extreme Gradient Boosting)是一種高效的梯度提升樹(Gradient Boosting Tree)演算法,廣泛應用於分類和迴歸問題。其gbtree模型專註於使用決策樹作為基學習器。本文利用樓價資料集對XGBoost模型進行訓練,並應用訓練好的XGBoost模型對樓價進行預測。

準備資料

例如,使用boston資料集作為訓練資料集,其資料結構如下所示:

列名

描述

資料類型

crim

城鎮的人均犯罪率。

FLOAT

zn

面積超過25000平方英尺的住宅用地比例。

FLOAT

indus

每個城鎮非零售商業用地面積比例。

FLOAT

chas

是否臨近河道。

INT

nox

氮氧化物濃度(千萬分之一)。

FLOAT

rm

每套住宅的平均房間數。

FLOAT

age

1940年之前建造的自房屋比例。

FLOAT

dis

去往五個就業中心的平均距離。

FLOAT

rad

高速公路的距離。

INT

tax

每10000美元的全額房產稅率。

INT

ptratio

各城鎮師生的比例。

FLOAT

b

非洲裔城鎮居民的比例。

FLOAT

lstat

低收入人口的比例。

FLOAT

medv

自房屋屋的平均價值。

FLOAT

訓練模型

使用boston.train進行模型訓練,並利用boston.test進行資料預測。在訓練過程中,RDS SQLFlow將自動對訓練資料集進行劃分,以產生訓練資料集和驗證資料集。

  1. 搭建基於MySQL的rds_sqlflow服務

  2. 通過SQLFlow用戶端串連至rds_sqlflow服務

  3. 在RDS SQLFlow用戶端的RDS SQLFlow命令列介面中,執行如下SQL訓練模型。

    SELECT * FROM boston.train
    TO TRAIN xgboost.gbtree
    WITH
        objective="reg:squarederror",
        train.num_boost_round = 30
    COLUMN crim, zn, indus, chas, nox, rm, age, dis, rad, tax, ptratio, b, lstat
    LABEL medv
    INTO sqlflow_models.my_xgb_regression_model;

    其中,SELECT語句用於從boston.train表中提取訓練資料,TO TRAIN明確指定所使用的模型為xgboost.gbtree,WITH語句則用於配置訓練參數,COLUMN用於指定特徵列,LABEL用於指定標籤列,最後,INTO語句則用於定義訓練完成後模型的儲存位置。訓練文法的更多資訊請參見訓練文法

使用模型預測資料

  1. 在完成xgboost.gbtree模型的訓練後,可以利用該模型進行樓價預測,相關的預測SQL如下:

    SELECT * FROM boston.test
    TO PREDICT boston.predict.medv
    USING sqlflow_models.my_xgb_regression_model;

    其中,SELECT則用於指定預測所需的資料集,TO PREDICT用於指明預測結果儲存的表,而USING語句用於指定所採用的模型,預測文法的更多資訊請參見預測文法

  2. 預測結束後,通過如下SQL查看預測結果。

    SELECT * FROM boston.predict;

相關文檔

RDS Custom簡介