Понимание коэффициента детерминации - PullRequest
0 голосов
/ 28 мая 2020

Я просматривал документацию , чтобы понять коэффициент детерминации, и из документа я понял, что коэффициент детерминации - это не что иное, как R x R (коэффициент корреляции)

поэтому Я взял набор данных о ценах на жилье с kaggle.com и начал пробовать его для лучшего понимания, это мой код

взял коэффициент корреляции

test_data=pd.read_csv(r'\house_price\test.csv')
_d=test_data.loc[:,['MSSubClass','LotFrontage']]
_d.fillna(0,inplace=True)
_d.corr()

enter image description here

теперь, принимая коэффициент детерминации, подобный этому

from sklearn.metrics import r2_score
r2_score(_d['MSSubClass'],_d['LotFrontage'])

, для которого я получил значение -0.9413195412943647

в идеале не должно быть 0,060531252961 ? как -0,246031 x -0,246031 = 0,060531252961

Ответы [ 2 ]

1 голос
/ 29 мая 2020

после документов: https://scikit-learn.org/stable/modules/model_evaluation.html#r2 -score

r2_score определяется как: enter image description here

Где df.corr метод (с корреляцией Пирсона): enter image description here

поэтому давайте построим пример:

x   y
1   1
1   0
0   0
1   1

корреляция: 4*(1+0+0+1) - 3*2 / sqrt(4*(3-9)*4*(2-4)) = 8-6/ sqr(-24*4*-8) = 2/sqr(-24*4*-8) где R2: 1-((0)^2+(1)^2+(0)^2+(0)^2) / (1-0.75)^2+(1-0.75)^2+(0 - 0.75)^2 +(1-0.75)^2

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

1 голос
/ 29 мая 2020

То, что вы называете «документацией», - это просто сообщение в блоге, описывающее одну из многих разновидностей R2. Я рекомендую прочитать официальную документацию scikit-learn, чтобы понять их реализацию в r2_score.

Короче говоря, значение 0 означает, что модель ничем не отличается от модели, которая просто предсказывает ожидаемое значение (т.е. среднее) целевой переменной. С другой стороны, значение 1 означает, что модель идеальна и в ее прогнозах нет ошибок. Однако, и это основное отличие от того, что указано в вашем сообщении в блоге, вы увидите, что он допускает отрицательные значения, поскольку модель может работать произвольно хуже, чем просто прогнозирование ожидаемого значения целевой переменной.

И это то, что r2_score из scikit-learn говорит вам в вашем случае: модель, которая вам подходит, хуже, т.е. дает в среднем более высокую ошибку, чем просто прогнозирование среднего значения цен на жилье.

...