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

erro no codigo

por algum motivo o codigo que veio no colab estava dando erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pedi ajuda da IA e ela sugeriu remover o "squared = false":

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

e dessa forma funcionou, saberia dizer porque aconteceu isso?

1 resposta
solução!

Ei, Rafael! Tudo bem?

O erro ocorre porque a versão do scikit-learn instalada é antiga e não reconhece o parâmetro squared na função mean_squared_error. Esse parâmetro só passou a existir a partir da versão 0.22. Em versões mais antigas, para obter o RMSE, é necessário calcular o MSE primeiro e depois aplicar a raiz quadrada manualmente.

Neste caso, recomendo que troque o código atual para esse:

from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
import numpy as np

print('Métricas conjunto de treino:')
print('R²:', r2_score(y_treino, dtr.predict(X_treino)))
print('MAE:', mean_absolute_error(y_treino, dtr.predict(X_treino)))
print('RMSE:', np.sqrt(mean_squared_error(y_treino, dtr.predict(X_treino))))

print('\n\nMétricas conjunto de teste:')
print('R²:', r2_score(y_teste, dtr.predict(X_teste)))
print('MAE:', mean_absolute_error(y_teste, dtr.predict(X_teste)))
print('RMSE:', np.sqrt(mean_squared_error(y_teste, dtr.predict(X_teste))))

Retorno:

A imagem mostra uma captura de tela com fundo branco contendo dois blocos de texto alinhados à esquerda. O primeiro bloco, intitulado "Métricas conjunto de treino:", apresenta os valores R²: 1.0, MAE: 0.0 e RMSE: 0.0. O segundo bloco, intitulado "Métricas conjunto de teste:", apresenta os valores R²: 0.660591437323604, MAE: 694.1638777260193 e RMSE: 1454.651772523526. Os textos estão em fonte preta comum, com os títulos em negrito e os valores alinhados à direita sob cada métrica.

O que mudou:

  • O parâmetro squared=False foi removido e substituído por np.sqrt(mean_squared_error(y, y_pred)) que atende melhor a com versão.
  • Foi adicionado um import numpy as np

Essa mudança foi para gerar melhor compatibilidade com as versões antigas do Scikit-learn, calculando o MSE e tirando a raiz manualmente. Deixo o notebook usado para teste abaixo:

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!