Есть ли способ рассчитать остаточное отклонение модели регрессии модели scikit-learn? Это стандартный вывод из резюме модели R, но я не мог найти ее в документации по sklearn.
На самом деле, вы можете. Отклонение тесно связано с перекрестной энтропией, которая находится в sklearn.metrics.log_loss
. Отклонение составляет всего 2 * (loglikelihood_of_saturation_model - loglikelihood_of_fitted_model). Scikit Learn может (без больших настроек) обрабатывать только отдельные экземпляры, так что логарифмическая вероятность насыщенной модели будет равна нулю. Перекрестная энтропия, возвращаемая log_loss
является отрицательной логарифмической вероятностью. Таким образом, отклонение просто
def deviance(X, y, model):
return 2*metrics.log_loss(y, model.predict_log_proba(X))
Я знаю, что это очень поздний ответ, но я надеюсь, что в любом случае это поможет.
Вы не можете сделать это в scikit-learn, но проверьте statsmodels, GLMResults
(API)
model.predict_log_proba
или просто.predict_proba
? В документации log_loss указано, что вторым аргументомy_pred
должны быть вероятности ...