2014-10-17 107 views
0

我已经建立了一个玩具随机森林模型R(使用从caretGerman Credit数据集),其出口在PMML 4.0和部署到Hadoop的使用Cascading Pattern库。差异从PMML模型在不同平台上

我碰到的一个问题,Cascading Pattern分数相同的数据不同(二进制分类问题)比R相同的模型。在200个观察中,2个得分不同。

这是为什么?难道这是由于随机森林的实施有所不同吗?

+0

拟合随机森林涉及自举这是一个随机过程。据我所知,可以在同一台机器上以相同语言运行相同的代码,并根据随机机会获得不同的结果。它总是两个不同的观察结果吗? – MrFlick 2014-10-17 15:09:38

+1

它总是相同的2.但是,如果它在我建造/装配模型时出现,我会理解它们之间的差异。当我在测试集上运行已经建好的模型时会发生这种情况。 – neuron 2014-10-18 06:28:57

回答

2

German Credit数据集表示分类型问题。分类型RF模型的获胜分数就是成员决策树中最常见的分类标签。

假设您的RF模型有100个决策树,50个决策树预测“良好信用”,另有50个决策树预测“不良信用”。有可能RCascading Pattern以不同的方式解决这种联系情况 - 一个选择首先看到的分数,另一个选择最后看到的分数。您可以尝试用奇数个成员决策树重新训练您的RF模型(即使用一些不能被2整除的值,如99或101)。

PMML规范告诉返回先看到的分数。我不确定Cascading Pattern是否注意到这些细节。您可能想尝试一种名为JPMML-Cascading的替代解决方案。

+0

我用你的建议,并增加了奇数的树木。现在只有一个不匹配(0.5%)。仍然需要达到那一个的底部。 – neuron 2014-10-20 09:55:19

+0

您是否尝试过除了'Cascading Pattern'之外的其他PMML评分引擎?过去我已经建立了RF到PMML转换器(使用Java),并且有兴趣诊断您的问题。 – user1808924 2014-10-20 09:59:05

+0

这就是下一步 - 尝试'jpmml-cascading'和'openscoring'。我只是想确保我已经尽可能地完成了R的任务。另一个问题是'Cascading Pattern'坚持使用PMML 4.0作为随机森林,这意味着我需要使用R的'pmml v1.2.30'而不是当前的'pmml 1.4.2'版本(使用'PMML 4.2')。所以也许另外两个库支持最新版本,并且解决了这个问题。 – neuron 2014-10-20 10:03:25

1

分数匹配是一件大事。当模型从科学家的桌面移动到生产IT部署环境时,分数需要匹配。对于分类任务,也包括所有目标类别的概率。在不同的实现/平台之间有时会存在精度问题,这可能导致最小的差异(非常小)。无论如何,他们也需要检查。

显然,它也可能是模型在PMML中没有被正确表示的情况......不可能使用R PMML包。另一种选择是模型没有正确部署。也就是说,级联使用的评分引擎不能正确解释PMML文件。

PMML本身有一个名为ModelVerification的模型元素,它允许PMML文件包含可用于分数匹配的评分数据。这很有用,但不是必须的,因为您应该能够对已经评分的数据集进行评分,并将其与您已经完成的预期结果进行比较。

更多关于模型验证和得分匹配以及误差在PMML处理,检查: https://support.zementis.com/entries/21207918-Verifying-your-model-in-ADAPA-did-it-upload-correctly-

+0

请问,您如何量化“最小”差异?我使用@ user1808924提供的建议,增长了奇数个发束,并将不匹配从1%降低到0.5%。 – neuron 2014-10-20 09:54:32