【问题标题】:R: how to output predicted probabilities from logistic regression in RSSLR:如何从 RSSL 中的逻辑回归输出预测概率
【发布时间】:2020-06-13 16:57:31
【问题描述】:
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 方法适用于 SelfLearning,就像适用于 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"’

【问题讨论】:

    标签: r machine-learning logistic-regression prediction


    【解决方案1】:

    这个类没有方法,如果你检查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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 2017-10-18
      • 1970-01-01
      • 2015-05-04
      • 2018-03-05
      相关资源
      最近更新 更多