Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferença na estimativa do R²

Olá,

Eu vi a aula "Estimando um modelo de regressão linear" e entendi que o valor de R² pode ser estimado usando '.score(Xtrain, ytrain)' e usando 'metrics.r2score(ytest, yprev)'. No entanto, os resultados apresentados pelas duas contas tem valores diferentes (0.73 e 0.69) e são calculados usando dados diferentes (Xtrain e ytrain no primeiro caso e y_test, yprev). Eu pensei na seguinte explicação para isso e gostaria de ver se está correta: Se entendi corretamente, o valor calculado com o 'modelo.score(Xtrain, ytrain)' não utiliza os dados X_test e y_test, enquanto o valor calculado com 'metrics.r2_score(ytest e y_prev)' utiliza os dados de X_train e y_train para estimar os coeficientes da regressão (e posteriormente com os dados de X_test estimar os dados y_prev) e utiliza os dados y_test e y_prev para o cálculo do coeficiente de determinação.

Minha pergunta é: os valores são diferentes pois eles são calculados usando dados diferentes? Minha explicação faz sentido?

Desde já, obrigado!

2 respostas
solução!

Olá Raphael, tudo bem? Espero que sim!

Exatamente Raphael, os valores são diferentes porque utilizam dados diferentes. O R² calculado inicialmente foi para os dados de treino, checando os valores que foram preditos contra as próprias labels que foram utilizadas para treinar o modelo, que é o y_train.

Já o segundo R² calculado, foi feito com dados de teste, os valores foram preditos e foram comparados com os valores de y_test que não tinham sido vistos ainda pelo modelo. É natural que o valor tenha sido menor, uma vez que os valores não eram conhecidos pelo modelo.

Caso você utilize o código: print('R² = {}'.format(modelo.score(X_test, y_test).round(2))) ao invés de print('R² = {}'.format(modelo.score(X_train, y_train).round(2))), obterá o mesmo valor 0.69 que foi obtido utilizando a função metrics.r2_score().

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Sim, faz sentido.