RMOA Hoeffding Tree with Holdout Evaluation

时间:2018-02-19 16:23:13

标签: r machine-learning classification

我正在使用RMOA的{​​{1}}包来实现具有保持评估的Hoeffding Tree流分类器。

一切都在正确训练,除非我尝试从我坚持不懈的测试流中评估我的模型时遇到以下错误消息:

  

UseMethod(“预测”)中的错误:     没有适用于“预测”的方法应用于类“c('HoeffdingTree','MOA_classifier','MOA_model')的对象”

检查this question的答案后,问题可能源于Rpredict()包中都存在stats方法。我尝试使用RMOA表示法来指定哪个包,但我似乎无法指向::。我也尝试完全卸载RMOA predict(),但它没有帮助。

有谁知道如何直接指向stats的{​​{1}},还是我的问题完全由其他原因引起?

我的R代码如下。我只是简单地流式传输虹膜数据集,并提取前30个流项目以用于保持评估。

RMOA

1 个答案:

答案 0 :(得分:1)

包RMOA中的预测方法是一个内部变量,你可以像这样调用它:

RMOA:::predict.MOA_trainedmodel

完整示例:

library(RMOA)
data(iris)
stream <- datastream_dataframe(iris)
test <- stream$get_points(n = 30)
test <- datastream_dataframe(test)

mymodel <- HoeffdingTree(numericEstimator = "GaussianNumericAttributeClassObserver")
mymodel <- trainMOA(model = mymodel, formula = Species ~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width, data = stream)

在我的情况下,预测函数未被屏蔽(如果未导出则为奇数):

pred1 <- predict(mymodel, iris, type = "response")

但如果是的话我可以使用:

pred2 <- RMOA:::predict.MOA_trainedmodel(mymodel, iris, type = "response")

,结果将是相同的:

all.equal(pred1, pred2)
#output
TRUE

我查看了RMOA的NAMESPACE并预测函数已导出但出​​于某种原因

RMOA::predict.MOA_trainedmodel

结果

  

错误:&#39; predict.MOA_trainedmodel&#39;不是从中导出的对象   &#39;命名空间:RMOA&#39;

RMOA:::predict.MOA_trainedmodel

没有