有什么方法可以计算出scikit-learn logistic regression model的残余偏差吗?这是R模型摘要的标准输出,但是我在sklearn的任何文档中都找不到。
答案 0 :(得分:2)
model.predict_proba
normalize=False
中的参数metrics.log_loss()
返回每次采样损失的总和。因此,要完成@ingo的答案,并获得sklearn.linear_model.LogisticRegression
的模型偏差,可以计算:
def deviance(X, y, model):
return 2*metrics.log_loss(y, model.predict_proba(X), normalize=False)
答案 1 :(得分:1)
您无法在scikit-learn中完成此操作,但请查看 statsmodels ,git filter-branch --commit-filter 'git commit-tree -S "$@";' HEAD
(API)
答案 2 :(得分:1)
实际上,您可以。偏差与交叉熵密切相关,交叉熵在sklearn.metrics.log_loss
中。偏差仅为2 *(loglikelihood_of_saturated_model-loglikelihood_of_fitted_model)。 Scikit学习可以(没有较大的调整)只能处理单个实例的分类,因此饱和模型的对数似然将为零。 log_loss
返回的交叉熵是负对数似然率。因此,差异只是
def deviance(X, y, model):
return 2*metrics.log_loss(y, model.predict_log_proba(X))
我知道这是一个很晚的答案,但是我希望它能有所帮助。