library(RSSL)
set.seed(1)
df <- generateSlicedCookie(1000,expected=FALSE) %>%
add_missinglabels_mar(Class~.,0.98)
df_test <- generateSlicedCookie(1000,expected=FALSE)
class_lr <- LogisticRegression(Class~.,df,lambda = 0.01)
class_lr_self <- SelfLearning(Class~., df, method=LogisticRegression)
在这里,class_lr
是一个逻辑回归模型。要获得其预测的概率,我可以打电话(感谢this post的回答):
log(posterior(class_lr, df_test))
第二个模型class_lr_self
是带有自学习包装器的逻辑回归模型。有没有办法从class_lr_self
输出预测概率?
运行predict(class_lr_self, newdata = df_test)
仅给我标签。
我尝试了以下操作,但是posterior
的{{1}}方法没有SelfLearning
的方法。
LogisticRegression
答案 0 :(得分:0)
如果您选中it,则该类没有方法:
setMethod("predict", signature(object="SelfLearning"), function(object,newdata,...) {
ModelVariables <- PreProcessingPredict(object@modelform,newdata,y=NULL,scaling=object@scaling,intercept=FALSE,classnames=object@classnames)
X<-ModelVariables$X
return(predict(object@model,X,...))
}
我们只有一个新函数可以返回后验:
func = function(object,newdata,...) {
ModelVariables <- PreProcessingPredict(object@modelform,newdata,y=NULL,scaling=object@scaling,intercept=FALSE,classnames=object@classnames)
X<-ModelVariables$X
return(posterior(object@model,X,...))
}
然后您做
log(func(class_lr_self, df_test))
或者您为此设置后验方法:
setMethod("posterior", signature(object="SelfLearning"), function(object,newdata,...) {
ModelVariables <- PreProcessingPredict(object@modelform,newdata,y=NULL,scaling=object@scaling,intercept=FALSE,classnames=object@classnames)
X<-ModelVariables$X
return(posterior(object@model,X,...))
})
log(posterior(class_lr_self, df_test))