我正在使用RMOA
的{{1}}包来实现具有保持评估的Hoeffding Tree流分类器。
一切都在正确训练,除非我尝试从我坚持不懈的测试流中评估我的模型时遇到以下错误消息:
UseMethod(“预测”)中的错误: 没有适用于“预测”的方法应用于类“c('HoeffdingTree','MOA_classifier','MOA_model')的对象”
检查this question的答案后,问题可能源于R
和predict()
包中都存在stats
方法。我尝试使用RMOA
表示法来指定哪个包,但我似乎无法指向::
。我也尝试完全卸载RMOA predict()
,但它没有帮助。
有谁知道如何直接指向stats
的{{1}},还是我的问题完全由其他原因引起?
我的R代码如下。我只是简单地流式传输虹膜数据集,并提取前30个流项目以用于保持评估。
RMOA
答案 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
没有