Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

diferença entre .score e .r2_score

no exercício é usado dois métodos (.score e .r2_score) para achar R2. Um no teste e outro no treino. Gostaria de saber por quê, se são equivalentes, se poderia utilizar apenas um para os dois cálculos. Tentei testar usando o .score para o teste e deu erro.

print('R² = {}'.format(modelo.score(y_test, y_previsto).round(2)))
1 resposta
solução!

Olá Marcos,

Os dois são equivalentes sim como você percebeu, mas tem algumas diferenças no funcionamento de cada um. O score() vai receber os valores de x e y, vai aplicar o fit() no modelo e então vai executar o r2_score() por trás utilizando o y_real e o y_previsto.

Resumindo as diferenças:

# score recebe o x e o y
modelo.score(X_test, y_test)

# r2_core recebe o y real e o y previsto
metrics.r2_score(y_test, y_previsto)

Olha se esse tópico te ajuda sobre o score e o r2_score.

Assim o erro deve estar acontecendo porque você está passando os valores de y para o modelo.score(), e o que essa função espera é que seja passado o valor de x e o valor de y

Exemplo:

modelo.score(X_test, y_test)

Espero ter ajudado, qualquer dúvida é só falar!