如何使用Orange GUI中保存的RandomForest模型进行预测

2024-09-30 18:32:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用OrangeGUI并训练了一个RandomForest模型,我后来用SaveModel小部件保存了这个模型。在

Orange用pickle保存它的模型,因此我去写了下面的python脚本:

import Orange, pickle

model = pickle.load(open('model', 'rb'))

问题是,我昨天在网上搜索了很多。而且找不到任何可以用我的数据(与我在橙色GUI中使用的数据格式相同)进行预测的示例,也找不到关于如何使用模型的足够文档。在

在后来的研究中,我发现我可以对一个预先训练过的模型进行评估,而这个模型没有与下面的代码相匹配

^{pr2}$

我要做的是加载数据:

data = Orange.data.Table('trainingData.csv');
test = Orange.data.Table('testData.csv');

我还没有找到关于如何区分这些*.csv文件中的目标和特性的文档。在

即使我能创建这些文件。我必须做一些噱头,其中testData.csv只需要一行长度(我要预测的行),目标值为1。我会通过检查分数是100%还是{}来判断模型预测的结果

所以我知道我的问题是多方面的,但我真的可以在以下几点上提供帮助:

  1. 如何在*.csv文件中定义Orange.data.Table()函数的功能中的目标是什么
  2. 如何使用腌橘随机森林模型来进行预测,而不是使用噱头评估来进行预测。(以便我一次可以预测多个项目…)

非常感谢您抽出时间


Tags: 文件csv数据文档模型目标datamodel
1条回答
网友
1楼 · 发布于 2024-09-30 18:32:21

所以,在Orange GitHub上提出同样的问题后,我设法找到了一个合适的答案。在

对于csv文件格式,其上有一个文档页,说明如何在数据集中定义什么是功能,什么是目标:

Documentation on Loading Data

至于模型,它非常简单。这个模型是一个python对象,用于进行预测,所以只要我将要预测的数据格式化为上面提到的文档,我就可以通过调用

pred_ind = model(data)
[model.domain.class_var.str_val(i) for i in pred_ind]  # convert to value names (strings)

如果我想看到百分比,我需要做的就是

^{pr2}$

但更好的是:

As you can see in the example above, the model stores the domain it was trained on. This means you actually don't even need to bother with 1. When the model is given data to predict, it will first convert it to the domain it was trained on and use the same variables as the target and independent features (obviously they need to be present in the data).

如果有人想知道github上的原始答案,这里是:GitHub

相关问题 更多 >