随机森林算法创建决策树的集成模型。每棵树都对随机选择的训练数据子集进行训练。
您可以使用下列函数训练随机森林模型,并使用该模型对一组测试数据进行预测:
有关如何在 Vertica 中使用随机森林算法的完整示例,请参阅使用随机森林对数据进行分类。
随机森林算法创建决策树的集成模型。每棵树都对随机选择的训练数据子集进行训练。
您可以使用下列函数训练随机森林模型,并使用该模型对一组测试数据进行预测:
有关如何在 Vertica 中使用随机森林算法的完整示例,请参阅使用随机森林对数据进行分类。
该随机森林示例使用了一个名为 iris 的数据集。该示例包含四个变量,用于测量 iris 花的各个部分以预测其种属。
在开始该示例之前,请确保您已按照下载机器学习示例数据中的步骤进行操作。
使用
RF_CLASSIFIER
和 iris
数据创建名为 rf_iris
的随机森林模型。使用
GET_MODEL_SUMMARY
查看模型的摘要输出:
=> SELECT RF_CLASSIFIER ('rf_iris', 'iris', 'Species', 'Sepal_Length, Sepal_Width, Petal_Length, Petal_Width'
USING PARAMETERS ntree=100, sampling_size=0.5);
RF_CLASSIFIER
----------------------------
Finished training
(1 row)
=> SELECT GET_MODEL_SUMMARY(USING PARAMETERS model_name='rf_iris');
------------------------------------------------------------------------
===========
call_string
===========
SELECT rf_classifier('public.rf_iris', 'iris', '"species"', 'Sepal_Length, Sepal_Width, Petal_Length,
Petal_Width' USING PARAMETERS exclude_columns='', ntree=100, mtry=2, sampling_size=0.5, max_depth=5,
max_breadth=32, min_leaf_size=1, min_info_gain=0, nbins=32);
=======
details
=======
predictor |type
------------+-----
sepal_length|float
sepal_width |float
petal_length|float
petal_width |float
===============
Additional Info
===============
Name |Value
------------------+-----
tree_count | 100
rejected_row_count| 0
accepted_row_count| 150
(1 row)
使用
PREDICT_RF_CLASSIFIER
将分类器应用于测试数据:
=> SELECT PREDICT_RF_CLASSIFIER (Sepal_Length, Sepal_Width, Petal_Length, Petal_Width
USING PARAMETERS model_name='rf_iris') FROM iris1;
PREDICT_RF_CLASSIFIER
-----------------------
setosa
setosa
setosa
.
.
.
versicolor
versicolor
versicolor
.
.
.
virginica
virginica
virginica
.
.
.
(90 rows)
使用
PREDICT_RF_CLASSIFIER_CLASSES
查看每个类的概率:
=> SELECT PREDICT_RF_CLASSIFIER_CLASSES(Sepal_Length, Sepal_Width, Petal_Length, Petal_Width
USING PARAMETERS model_name='rf_iris') OVER () FROM iris1;
predicted | probability
-----------+-------------------
setosa | 1
setosa | 1
setosa | 1
setosa | 1
setosa | 1
setosa | 1
setosa | 1
setosa | 1
setosa | 1
setosa | 1
setosa | 0.99
.
.
.
(90 rows)