首页 > 解决方案 > 在脚本而不是 GUI 中重现 RandomForestLearner 的困难

问题描述

我希望通过脚本调用函数而不是使用橙色 GUI 来重现一些数据,因为它会使批处理数据更容易。我花了好几个小时在这方面无济于事,因为我无法找到在 orange3 中编写 randomforest 脚本的文档。

图像中使用该方案时,我从训练器和测试数据集中获得了随机树的合理 MSE、RMSE、MAE、R2。随机树使用放置模型时选择的默认参数。

当我尝试使用默认随机树为数据集编写脚本时,它通常会返回:“ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 而言太大的值。” 对于所有值。

这是我正在使用的代码:

import os
import Orange

cwd = os.getcwd()+'\\'

train = Orange.data.Table(cwd+'train_ex.csv')
test = Orange.data.Table(cwd+'test_ex.csv')
learner = Orange.classification.RandomForestLearner()

result = Orange.evaluation.testing.TestOnTestData(train,test,[learner])

MSE = Orange.evaluation.MSE(result)
RMSE = Orange.evaluation.RMSE(result)
MAE = Orange.evaluation.MAE(result)
R2 = Orange.evaluation.R2(result)
print(MSE,RMSE,MAE,R2)

数据集可在以下链接中找到:https ://drive.google.com/open?id=1lmNar3jItWmWql7ywZtbTi4PtMC32UwE

非常感谢有关该主题的任何帮助!

标签: orange

解决方案


我已经解决了我遇到的问题。在GUI中,选择目标数据时,GUI将在树木和森林的分类类型和回归类型之间自动选择。如果用户的目标数据是数字(连续),则必须调用 Orange.regression.learner,而分类(离散)数据将使用 Orange.classification.learner。


推荐阅读