首页 > 解决方案 > pmml (randomForestModel) 在不同的运行中抛出错误..tree[, 2] 中的错误:维数不正确

问题描述

在尝试构建简单的 RF 回归模型并导出为 PMML 时。我发现数据虽然总是建立模型,但导出为 PMML 并不总是成功的。对于许多运行,它会引发错误。详情如下。

数据集:样本 在此处输入图像描述

代码

> (model.rf <- randomForest(y~ ., data=updatedDataset,ntree=6)) 

Call:
 randomForest(formula = y~ ., data = updatedDataset,      ntree = 6) 
               Type of random forest: regression
                     Number of trees: 6
No. of variables tried at each split: 2

          Mean of squared residuals: 166.4923
                    % Var explained: 46.47

> pmml(model.rf)
Now converting tree  1  to PMML
Now converting tree  2  to PMML
Now converting tree  3  to PMML
Now converting tree  4  to PMML
Now converting tree  5  to PMML
Now converting tree  6  to PMML
**Error in tree[, 2] : incorrect number of dimensions**
> (model.rf <- randomForest(y~ ., data=updatedDataset,ntree=5))

Call:
 randomForest(formula = y~ ., data = updatedDataset,      ntree = 5) 
               Type of random forest: regression
                     Number of trees: 5
No. of variables tried at each split: 2

          Mean of squared residuals: 132.1672
                    % Var explained: 57.51
>pmml(model.rf) worked fine.............................................

其他几个人都失败了..没什么特别的..

> (model.rf <- randomForest(y~ ., data=updatedDataset,ntree=8)) 

Call:
 randomForest(formula = y~ ., data = updatedDataset,      ntree = 8) 
               Type of random forest: regression
                     Number of trees: 8
No. of variables tried at each split: 2

          Mean of squared residuals: 191.4946
                    % Var explained: 38.43
> #model.rf
> pmml(model.rf)
Now converting tree  1  to PMML
Now converting tree  2  to PMML
Now converting tree  3  to PMML
Now converting tree  4  to PMML
Error in tree[, 2] : incorrect number of dimensions
> (model.rf <- randomForest(y~ ., data=updatedDataset,ntree=9))

Call:
 randomForest(formula = y~ ., data = updatedDataset,      ntree = 9) 
               Type of random forest: regression
                     Number of trees: 9
No. of variables tried at each split: 2

          Mean of squared residuals: 155.9007
                    % Var explained: 49.88
> #model.rf
> pmml(model.rf)
Now converting tree  1  to PMML
Now converting tree  2  to PMML
Now converting tree  3  to PMML
Error in tree[, 2] : incorrect number of dimension

这种行为的原因以及如何确保它始终有效是查询。

谢谢 !

标签: rpmml

解决方案


您是否尝试过使用r2pmml导出随机森林模型?

r2pmml(model.rf, "MyRandomForest.pmml")

r2pmml是成功了,还是失败了?该r2pmml包比传统pmml包更智能和更快,因此它可能知道如何正确处理您的模型对象。


推荐阅读