根据@David Leal的回答,我在调用预报函数之前尝试加载library(caret)
,但这没有帮助。
经过一番尝试,我意识到我必须加载包含模型本身的库。就我而言,我必须调用library(kenlab)
获取支持向量。
0
根据@David Leal的回答,我在调用预报函数之前尝试加载library(caret)
,但这没有帮助。
经过一番尝试,我意识到我必须加载包含模型本身的库。就我而言,我必须调用library(kenlab)
获取支持向量。
0
我想我发现了发生这种情况的原因... predict
是来自stats
包的通用函数。我使用名称空间::
-notation从caret
包中调用函数(这是创建用户包的建议),而caret
包中的等效predict
函数是: predict.train
,它是内部函数,不能由外部应用程序调用。调用此函数的唯一方法是使用stats
包中的通用predict
函数,然后基于第一个输入参数的类: predicted <- predict(fit, testData[-$Readmit])
它将标识特定的predict
函数被调用。
对于此特殊情况,此函数的类为train
,因此它将实际调用该函数: caret
包中的train.predict
。此函数还根据所使用的算法(方法)处理请求进行预测的特定函数,例如: predict.gbm
或predict.glm
等。在插入符号文档部分中详细说明:“ 5.7提取预测并类概率”。
因此, ::
-notation可以很好地用于在封装的其它功能,如: caret.train
例如,但不适合该特定之一: predict
。在这种情况下,必须显式加载该库,因此它可以在内部调用predict.train
函数。
简而言之,解决方案是在调用predict
函数之前添加以下行:
library(caret)
然后错误消失。
0
我有一个模型(
fit
),该模型基于直到上个月的历史信息。现在,我想预测当月的模型使用情况。当我尝试调用以下代码时:我收到以下错误:
笔记:
train
函数predict
是一个通用函数,它将基于第一个输入参数调用特定的预测函数。以我为例:>fit$modelInfo$label
[1] "Random Forest"
因此,调用的预测方法将是: predict.randomForest 。有关更多信息,请参见[插入文档] [3]。
这里是用于生成模型和调用模型的摘要源代码:
注意 :生成模型的执行时间大约为3个小时,这就是为什么我保存该对象以便在之后重用。
来自训练模型的数据集具有以下结构:
现在,
testData
将具有以下结构:变量结构是相同的,只是某些因子变量具有不同的级别,因为某些变量具有新值。例如:模型中的
Acuity
为3级,测试数据为4级。我没有从头开始的方法来知道所有变量的所有可能水平。
任何建议,请...
提前致谢,
大卫