【问题标题】:Are we able to run Orange from Python program我们可以从 Python 程序运行 Orange
【发布时间】:2019-12-25 02:42:38
【问题描述】:

目前,我正在使用 Orange 数据挖掘软件工具来试验我的数据。 我们是否能够从 Python 脚本而不是使用软件来运行 Orange(我们可以编写一些 Python 代码来执行程序吗?)。 我有一个 Python 脚本来生成数据文件。我想编写一个 Python 脚本来使用 Orange 的不同功能。 那可能吗。我们有这方面的教程吗? 谢谢

【问题讨论】:

  • 你知道你可以在 Python 中调用任何程序吗?如果该程序支持无头、非交互式交互,那么您可以通过这种方式做很多事情。它可能需要您编写一些配置文件和输入文件,这是常见的做法。我建议您查看 Orange 的文档,以了解通过对 Orange 可执行文件的简单调用或在 Orange 文档中搜索“脚本接口”或“API”可以完成哪些交互。
  • Oliver,Orange 已经是一个 Python 库(+ GUI,Python 中也是如此),所以你可以直接导入并调用它。
  • 谢谢,非常有用的链接!@JanezD

标签: python machine-learning data-mining orange


【解决方案1】:

Orange 的每个组件都是从 Python 运行的,因为 Orange 是用 Python 编写的。您也可以从 Python 运行单个组件(例如,用于读取数据、数据可视化和模型推理)。 Widget Development Documentation 中提供了如何开发和运行此类组件的文档。除了用于测试 GUI 组件的单元测试外,几乎所有小部件还包括一些测试代码,这些代码只需通过直接从 python 运行小部件来执行(例如,python OWRuleViewer.py)。

您也可以从自己的代码中调用一个或多个小部件。例如,以下代码将运行规则查看器小部件:

import Orange
from Orange.widgets.visualize.owruleviewer import OWRuleViewer
from AnyQt.QtWidgets import QApplication
from Orange.classification import CN2Learner

data = Orange.data.Table("titanic")
learner = Orange.classification.CN2Learner()
model = learner(data)
model.instances = data

a = QApplication([])
ow = OWRuleViewer()
ow.set_classifier(model)

ow.show()
a.exec()

此脚本首先读取数据(关于泰坦尼克号乘客),然后使用 CN2 推断分类规则,并将此模型传递给规则查看器 (OWRuleViewer)。规则查看器是一个显示规则的橙色小部件,对于上面的示例,可能如下所示。请注意,小部件的交互部分(规则的选择以及从中开发规则的示例的选择)在上述脚本中没有探索。

【讨论】:

最近更新 更多