В чём разница между функциями LinearRegression.score и metrics.r2_score в scikit-learn?
Помогите пожалуйста разобраться, в чем ключевое отличие коэффициентов детерминации: встроенного в линейную регрессию LinearRegression.score и независимого r2_score. В каких случаях лучше применять первый, а в каких второй?
Ответы (1 шт):
Peзультат работы обоих методов тождественен.
В Pythоn расширениях - от numpy, pandas, scipy, sklearn..... очень часто одни и те-же результаты можно получить разными путями. Ничего странного тут нет. Поэтому когда что лучше применять - так вопрос не стоит. Часто это просто вопрос удобства.
Ну, например. в модуле sklearn.metrics помимо r2_score есть еще куча всяких метрик. Если вы их будете применять и импортировать соответствующий модуль, то почему не использовать и r2_score ? С другой стороны, прежде чем вычислить r2_score необходимо выполнить и y_pred = regressor.predict(x). А вот regressor.score(x, y) можно использовать непосредственно после regressor.fit(x, y) без дополнительных затратна вычисление.
Ну, или так - score(x, y) - это метод класса LinearRegression, а r2_score - отдельная функция. Тонкости вызовов одного и другого -существуют, но "невооруженным" взглядом их практически и не различить.
Используйте то, что вам удобнее.