同时尝试建立一个简单的RF回归模型并导出为PMML。我发现,对于数据,尽管总是构建模型,但导出为PMML并不总是成功的。对于多次运行,它都会抛出错误。详情见下文。
数据集:示例
R代码
> (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.............................................
特别是对于少数others..nothing,它失败了。
> (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
此行为的原因以及如何确保其始终正常工作是查询。
谢谢!
发布于 2020-01-03 14:59:27
您是否尝试过使用r2pmml
package导出随机林模型?
r2pmml(model.rf, "MyRandomForest.pmml")
r2pmml
是成功还是失败?与遗留的pmml
包相比,r2pmml
包更智能、更快,因此它可能知道如何正确地处理模型对象。
https://stackoverflow.com/questions/59576164
复制相似问题