R:如何从 RSSL 中的逻辑回归输出预测概率
R: how to output predicted probabilities from logistic regression in RSSL
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
是逻辑回归模型。为了获得它的预测概率,我可以调用(感谢的回答):
log(posterior(class_lr, df_test))
第二个模型,class_lr_self
是一个带有自学习包装器的逻辑回归模型。有没有办法输出 class_lr_self
?
的预测概率
运行 predict(class_lr_self, newdata = df_test)
只给我标签。
我尝试了以下方法,但是 SelfLearning
没有 posterior
方法,而 LogisticRegression
有。
> log(posterior(class_lr_self, df_test))
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘posterior’ for signature ‘"SelfLearning"’
这个class没有方法,如果你勾选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,...))
}
我们刚刚有了一个新函数,returns后验函数:
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))
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
是逻辑回归模型。为了获得它的预测概率,我可以调用(感谢
log(posterior(class_lr, df_test))
第二个模型,class_lr_self
是一个带有自学习包装器的逻辑回归模型。有没有办法输出 class_lr_self
?
运行 predict(class_lr_self, newdata = df_test)
只给我标签。
我尝试了以下方法,但是 SelfLearning
没有 posterior
方法,而 LogisticRegression
有。
> log(posterior(class_lr_self, df_test))
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘posterior’ for signature ‘"SelfLearning"’
这个class没有方法,如果你勾选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,...))
}
我们刚刚有了一个新函数,returns后验函数:
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))