使用随机森林对数据进行分类
该随机森林示例使用了一个名为 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)