全部产品
Search
文档中心

云原生数据库 PolarDB:随机森林回归算法(Random Forest Regression)

更新时间:Nov 08, 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中的列数据类型必须是浮点型或整型。