全部產品
Search
文件中心

PolarDB:隨機森林迴歸演算法(Random Forest Regression)

更新時間:Jul 06, 2024

本文介紹了隨機森林迴歸演算法(Random Forest Regression)相關內容。

簡介

隨機森林迴歸演算法(Random Forest Regression)是隨機森林(Random Forest)的重要套用分支。隨機森林迴歸模型通過隨機抽取樣本和特徵,建立多棵相互不關聯的決策樹,通過並行的方式獲得預測結果。每棵決策樹都能通過抽取的樣本和特徵得出一個預測結果,通過綜合所有樹的結果取平均值,得到整個森林的迴歸預測結果。

使用情境

隨機森林迴歸演算法在對資料維度要求相對較低(幾十維),同時對準確性要求較高的情境下使用。

例如,預測Twitter的某一話題的熱度,可以使用隨機森林迴歸模型來處理。模型的輸入可以是話題的特徵,比如話題在某時刻產生的討論群組數量、參與該話題討論的人數和話題關注度等。模型的輸出是平均每小時的活躍討論群組的數量,是一個正的浮點數,值越大熱度越高。

參數說明

下表中的參數為建立模型CREATE MODEL文法中model_parameter參數的取值,您可以根據當前需求選擇對應的參數。

參數

說明

n_estimators

迭代次數。次數越多擬合越好,通常為正整數,預設值為100。

objective

學習任務及相應的學習目標。取值如下:

  • mse(預設):使用均方誤差。

  • mae:使用平均絕對誤差。

max_features

決定劃分時考慮的最大特徵數量。取值如下:

  • sqrt(預設):表示最大特徵數量為sqrt(n_features)

  • 整數:表示最大特徵數量為max_features,取值必須在0~n_features之間,包括n_featuresn_features為建模時使用的特徵欄位的數量。

  • 浮點數:表示最大特徵數量為max_features*n_features

  • log2:表示最大特徵數量為log2(n_features)

random_state

隨機狀態。通常為正整數,預設值為1。

n_jobs

並行線程數。數量越多訓練速度越快,通常為正整數,預設值為4。

max_depth

每棵樹的最大深度。通常為正整數,預設值為None。

說明

當設定為None時,表示對樹的深度沒有限制。

樣本

建立模型與模型離線訓練

/*polar4ai*/
CREATE MODEL randomforestreg1 WITH
( model_class = 'randomforestreg', x_cols = 'dx1,dx2', y_cols='y',
 model_parameter=(objective='mse')) AS (SELECT * FROM db4ai.testdata1);

模型評估

/*polar4ai*/
SELECT dx1,dx2 FROM EVALUATE(MODEL randomforestreg1, 
SELECT * FROM db4ai.testdata1 LIMIT 10) WITH 
(x_cols = 'dx1,dx2',y_cols='y',metrics='r2_score');

模型預測

/*polar4ai*/
SELECT dx1,dx2 FROM
PREDICT(MODEL randomforestreg1, SELECT * FROM db4ai.testdata1 LIMIT 10)
WITH (x_cols = 'dx1,dx2');
說明

其中,x_colsy_cols中的列資料類型必須是浮點型或整型。