2016-07-12 2 views
1

Я использую sklearn.linear_model.LogisticRegression и используя, что я вычислить 2 значение R^следующимregr.score и r2_score дают различные значения

regr.score(xtest, ytest)

и я получаю счет 0,65

Теперь, просто для сравнения я использовал метрику, представленную sklearn.metrics.r2_score¶ и рассчитать оценку следующим

r2_score(ytest,regr.predict(xtest))

и я получаю оценку -0,54

Согласно документации regr.score возвращает «R^2 of self.predict (X) wrt. у.»и это то, что я сделал, чтобы вычислить R^2 с помощью метрики, но я не понимаю, почему эти значения настолько различны?

Может кто-нибудь помочь мне объяснить это немного?

Update : Как предложил я переключился переменные ytest, regr.predict (XTEST) в r2_score, но в логистической регрессии я все еще получаю разные значения Так что я обновил вопрос

+1

Это должно быть 'r2_score (ytest, regr.predict (xtest))' (фактическое затем предсказано) – ayhan

ответ

3

причина вы получите различные значения, потому что score функция.. LogisticRegression класс по умолчанию вычисляет accuracy score. Оценка точности - это просто количество правильных прогнозов, деленное на th общее количество прогнозов. С другой стороны, оценка R2 совершенно другая, и вы можете больше узнать о ее математике here.

Надеюсь, что это поможет!

+0

Спасибо, я думал, что оценки одинаковы для линейной и логистической регрессии и не прошли определение. –