如何从OrangeML模型获取Scikit学习模型输出?

时间:2019-07-12 08:41:29

标签: python-3.x scikit-learn orange

我希望在Orange模型(例如Orange Tree Classifier)上应用python库,但是该库仅接受scikit-learn模型。有没有办法在Scikit-Learn树分类器中转换我的Orange Tree分类器,包括在Orange管道中使用Python脚本?我知道Orange ML模型是建立在scikit学习库上的,因此它们在理论上应该是可转换的。

提前谢谢! 马丁

1 个答案:

答案 0 :(得分:0)

大多数Orange模型都是基于Scikit-Learns的分类器构建的,而TreeLearner不是。但是,橙色中有SklTreeLearner,它包装了Scikit中的DecisionTreeClassifier。如果要使Scikit模型脱离橙色模型,请使用此模型。这是一个示例:

from Orange.classification import SklTreeLearner
from Orange.data import Table

learner = SklTreeLearner()
model = learner(Table("iris"))  # train model on Iris data
skl_model = model.skl_model  # get skl model

相同的原理也可以用于包装Scikit模型的其他模型-LogisticRegression,RandomForest,...

为了以可视化的橙色训练模型,可以选择使用Python脚本小部件获取skl_model。您将学习者连接到Python脚本小部件,如下面的屏幕快照所示。将Model个学习者的输出连接到Python Script小部件上的Classifier输入很重要。然后在Python脚本小部件中使用以下代码获取Skl模型。

skl_model = in_classifier.skl_model

注意:您可以从除Tree学习者之外的任何学习者那里获取skl_learner。

enter image description here