IntroQuando o R² é Mais Adotado?Quando o MSE é Mais Adotado?Tendências em Artigos AcadêmicosExemplos de Uso em ArtigosExemplo 1: EconomiaExemplo 2: Aprendizado de MáquinaExemplo 3: Ciências AmbientaisComo Decidir Qual Métrica Reportar?Conclusão finalEvolução do Treino usando R² ou MSEO que é R²?Interpretação do R²Comparação entre R² e MSEQuando usar R² ou MSE?Use R² quando:Use MSE quando:Como Calcular R² no KerasQuando R² é Melhor que MSE?Quando MSE é Melhor que R²?Conclusão
A escolha entre R² (R-quadrado) e MSE (Erro Quadrático Médio) (em artigos acadêmicos) depende do contexto do estudo, do campo de pesquisa e dos objetivos do trabalho. Ambas as métricas são amplamente utilizadas, mas cada uma tem suas vantagens e desvantagens, o que influencia sua adoção em diferentes cenários. Vamos explorar quando cada métrica é mais comum e por quê.
Ciências Sociais e Economia:
Comparação de Modelos:
Interpretação Simples:
Estudos Descritivos:
Engenharia e Ciências da Computação:
Otimização de Modelos:
Avaliação de Erro Absoluto:
Comparação com Benchmarks:
Uso Conjunto:
Dependência do Campo:
Contexto do Problema:
Objetivo do Estudo:
Público-Alvo:
Normas do Campo:
Reporte Ambas:
Ambas as métricas, R² e MSE, são amplamente utilizadas em artigos acadêmicos, mas a escolha depende do contexto e dos objetivos do estudo. Em geral:
Portanto, ao escrever seu artigo, considere o contexto do problema, o público-alvo e as normas do campo para decidir qual métrica (ou ambas) reportar.
A métrica R² (R-quadrado ou Coeficiente de Determinação) é uma medida estatística amplamente utilizada para avaliar o desempenho de modelos de regressão. Ela indica a proporção da variância na variável dependente (alvo) que é previsível a partir das variáveis independentes (features). Vamos detalhar o que é o , como ele é calculado, e compará-lo com o MSE (Mean Squared Error) para entender quando é melhor usá-lo.
O é uma métrica que varia entre 0 e 1 (ou entre e em alguns casos extremos) e indica o quão bem o modelo se ajusta aos dados. Ele é calculado como:
Onde:
Característica | R² (R-quadrado) | MSE (Erro Quadrático Médio) |
---|---|---|
Escala | Normalizado (0 a 1 ou a 1) | Não normalizado (depende da escala dos dados) |
Interpretação | Proporção da variância explicada | Magnitude do erro (em unidades quadradas) |
Sensibilidade a Outliers | Menos sensível | Mais sensível |
Uso | Comparação entre modelos | Avaliação direta do erro |
Vantagem | Fácil de interpretar | Diretamente relacionado ao erro do modelo |
Desvantagem | Não indica a magnitude do erro | Difícil de comparar entre conjuntos de dados com escalas diferentes |
O Keras não tem uma métrica R² embutida, mas você pode implementá-la facilmente. Aqui está um exemplo de como calcular o R² durante o treinamento:
ximport numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.callbacks import Callback
# Função para calcular R²
def r_squared(y_true, y_pred):
# Soma dos quadrados dos resíduos
SQE = tf.reduce_sum(tf.square(y_true - y_pred))
# Soma dos quadrados totais
SQT = tf.reduce_sum(tf.square(y_true - tf.reduce_mean(y_true)))
# R²
return 1 - SQE / SQT
# Dados de exemplo
X_train = np.random.rand(1000, 10)
y_train = np.random.rand(1000, 1)
X_test = np.random.rand(200, 10)
y_test = np.random.rand(200, 1)
# Definindo o modelo
model = Sequential()
model.add(Dense(16, input_dim=10, activation='relu'))
model.add(Dense(1)) # Saída linear para regressão
# Compilando o modelo com MSE como função de custo e R² como métrica
model.compile(optimizer='adam', loss='mean_squared_error', metrics=[r_squared])
# Treinando o modelo
history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_data=(X_test, y_test))
# Plotando R² e MSE
plt.plot(history.history['r_squared'], label='R² Treino')
plt.plot(history.history['val_r_squared'], label='R² Teste')
plt.plot(history.history['loss'], label='MSE Treino')
plt.plot(history.history['val_loss'], label='MSE Teste')
plt.xlabel('Época')
plt.ylabel('Métrica')
plt.title('R² e MSE vs Época')
plt.legend()
plt.show()
Comparação de Modelos:
Interpretação:
Menos Sensível a Outliers:
Avaliação do Erro Absoluto:
Otimização:
Conjuntos de Dados com Escalas Diferentes:
20/03/2025