Know The Best Evaluation Metrics for Your Regression Model !

Raghav Agrawal Last Updated : 22 Oct, 2024
8 min read

Evaluation Metrics for regression are essential for assessing the performance of regression models specifically. These metrics help in measuring how well a regression model is able to predict continuous outcomes. Common regression evaluation metrics for regression include Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Squared Error (RMSE), R-squared (Coefficient of Determination), and Mean Absolute Percentage Error (MAPE). By utilizing these regression-specific metrics, data scientists and machine learning engineers can evaluate the accuracy and effectiveness of their metrics for regression models in making predictions.

Regression is also one type of supervised Machine learning and in this tutorial, we will discuss various metrics for evaluating regression Models and How to implement them using the sci-kit-learn library.

Learning Objectives:

  • Understand the importance of evaluation metrics in assessing regression model performance
  • Learn about various regression evaluation metrics like MAE, MSE, RMSE, R-squared, etc.
  • Gain knowledge on implementing these metrics using Python’s scikit-learn library
  • Also, the Regression metrics quantify the accuracy of predictive models by measuring the difference between predicted and actual values

This article was published as a part of the Data Science Blogathon 

Regression

Regression is a type of Machine learning which helps in finding the relationship between independent and dependent variables.

In simple words, Regression can be defined as a Machine learning problem where we have to predict continuous values like price, Rating, Fees, etc.

Why We Require Evaluation Metrics?

Most beginners and practitioners most of the time do not bother about the model performance. The talk is about building a well-generalized model, Machine learning model cannot have 100 per cent efficiency otherwise the model is known as a biased model. which further includes the concept of overfitting and underfitting.

It is necessary to obtain the accuracy on training data, But it is also important to get a genuine and approximate result on unseen data otherwise Model is of no use.

So to build and deploy a generalized model we require to Evaluate the model on different regression model evaluation metrics. These metrics helps us to better optimize the performance, fine-tune it, and obtain a better result.

If one metric is perfect, there is no need for multiple metrics. To understand the benefits and disadvantages of regression evaluation metrics for regression because different evaluation metric fits on a different set of a dataset.

Now, I hope you get the importance of Evaluation metrics. let’s start understanding various regression evaluation metrics used for regression tasks.

Dataset

For demonstrating each evaluation metric using the sci-kit-learn library we will use the placement dataset which is a simple linear dataset that looks something like this.

dataset

Now I am applying linear regression on the particular dataset and after that, we will study each evaluation metric and check it on our Linear Regression model.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import pandas as pd

cgpa = [6.89, 5.12, 7.82, 7.42, 6.94, 7.89, 6.73, 6.75, 6.09]
package = [3.26, 1.98, 3.25, 3.67, 3.57, 2.99, 2.6, 2.48, 2.31]
df = pd.DataFrame({'cgpa' : cgpa, 'package' : package})
y = df['package']
X = df.drop('package', axis = 1)

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=2)

lr = LinearRegression()
lr.fit(X_train,y_train)
y_pred = lr.predict(X_test)
print(y_pred)

let’s start Exploring various evaluation metrics for regression.

Also, you can check 12 important Model for Evaluation Metrics for Machine Learning

Types of Regression Metrics

  • Mean Absolute Error(MAE)
  • Mean Squared Error(MSE)
  • Root Mean Squared Error(RMSE)
  • Root Mean Squared Log Error(RMSLE)
  • R Squared (R2)
  • R Squared (R2)

Mean Absolute Error(MAE)

MAE is a very simple metric which calculates the absolute difference between actual and predicted values.

To better understand, let’s take an example you have input data and output data and use Linear Regression, which draws a best-fit line.

Now you have to find the MAE of your model which is basically a mistake made by the model known as an error. Now find the difference between the actual value and predicted value that is an absolute error but we have to find the mean absolute of the complete dataset.

so, sum all the errors and divide them by a total number of observations And this is MAE. And we aim to get a minimum MAE because this is a loss.

evaluation metrics for regression mae

Advantages of MAE

  • The MAE you get is in the same unit as the output variable.
  • It is most Robust to outliers.

Disadvantages of MAE

  • The graph of MAE is not differentiable so we have to apply various optimizers like Gradient descent which can be differentiable.
from sklearn.metrics import mean_absolute_error
print("MAE",mean_absolute_error(y_test,y_pred))

Now to overcome the disadvantage of MAE next metric came as MSE.

Mean Squared Error(MSE)

MSE is a most used and very simple metric with a little bit of change in mean absolute error. Mean squared error states that finding the squared difference between actual and predicted value.

So, above we are finding the absolute difference and here we are finding the squared difference.

What actually the MSE represents? It represents the squared distance between actual and predicted values. we perform squared to avoid the cancellation of negative terms and it is the benefit of MSE.

MSE(Mean squared error) evaluation metrics for regression

Advantages of MSE

The graph of MSE is differentiable, so you can easily use it as a loss function.

Disadvantages of MSE

  • The value you get after calculating MSE is a squared unit of output. for example, the output variable is in meter(m) then after calculating MSE the output we get is in meter squared.
  • If you have outliers in the dataset then it penalizes the outliers most and the calculated MSE is bigger. So, in short, It is not Robust to outliers which were an advantage in MAE.
from sklearn.metrics import mean_squared_error
print("MSE",mean_squared_error(y_test,y_pred))

Root Mean Squared Error(RMSE)

As RMSE is clear by the name itself, that it is a simple square root of mean squared error.

evaluation metrics for regression | Rmse

Advantages of RMSE

  •  The output value you get is in the same unit as the required output variable which makes interpretation of loss easy.

Disadvantages of RMSE

  • It is not that robust to outliers as compared to MAE.

for performing RMSE we have to NumPy NumPy square root function over MSE.

print("RMSE",np.sqrt(mean_squared_error(y_test,y_pred)))

Most of the time people use RMSE as an evaluation metric and mostly when you are working with deep learning techniques the most preferred metric is RMSE.

Root Mean Squared Log Error(RMSLE)

Taking the log of the RMSE metric slows down the scale of error. The metric is very helpful when you are developing a model without calling the inputs. In that case, the output will vary on a large scale.

To control this situation of RMSE we take the log of calculated RMSE error and resultant we get as RMSLE.

To perform RMSLE we have to use the NumPy log function over RMSE.

print("RMSE",np.log(np.sqrt(mean_squared_error(y_test,y_pred))))

It is a very simple metric that is used by most of the datasets hosted for Machine Learning competitions.

R Squared (R2)

R2 score is a metric that tells the performance of your model, not the loss in an absolute sense that how many wells did your model perform.

In contrast, MAE and MSE depend on the context as we have seen whereas the R2 score is independent of context.

So, with help of R squared we have a baseline model to compare a model which none of the other metrics provides. The same we have in classification problems which we call a threshold which is fixed at 0.5. So basically R2 squared calculates how must regression line is better than a mean line.

Hence, R2 squared is also known as Coefficient of Determination or sometimes also known as Goodness of fit.

r2 evaluation metrics for regression
R2 Squared

Now, how will you interpret the R2 score? suppose If the R2 score is zero then the above regression line by mean line is equal means 1 so 1-1 is zero. So, in this case, both lines are overlapping means model performance is worst, It is not capable to take advantage of the output column.

Now the second case is when the R2 score is 1, it means when the division term is zero and it will happen when the regression line does not make any mistake, it is perfect. In the real world, it is not possible.

So we can conclude that as our regression line moves towards perfection, R2 score move towards one. And the model performance improves.

The normal case is when the R2 score is between zero and one like 0.8 which means your model is capable to explain 80 per cent of the variance of data.

from sklearn.metrics import r2_score
r2 = r2_score(y_test,y_pred)
print(r2)

Adjusted R Squared

The disadvantage of the R2 score is while adding new features in data the R2 score starts increasing or remains constant but it never decreases because It assumes that while adding more data variance of data increases.

But the problem is when we add an irrelevant feature in the dataset then at that time R2 sometimes starts increasing which is incorrect.

Hence, To control this situation Adjusted R Squared came into existence.

r2a

Now as K increases by adding some features so the denominator will decrease, n-1 will remain constant. R2 score will remain constant or will increase slightly so the complete answer will increase and when we subtract this from one then the resultant score will decrease. so this is the case when we add an irrelevant feature in the dataset.

And if we add a relevant feature then the R2 score will increase and 1-R2 will decrease heavily and the denominator will also decrease so the complete term decreases, and on subtracting from one the score increases.

n=40
k=2
adj_r2_score = 1 - ((1-r2)*(n-1)/(n-k-1))
print(adj_r2_score)

Hence, this metric becomes one of the most important metrics to use during the evaluation of the model.

Conclusion

Evaluating metrics for regression models using appropriate metrics is crucial for assessing their performance and making informed decisions. By understanding and utilizing metrics like MAE, MSE, RMSE, R-squared, and others, data scientists can quantify the accuracy, goodness of fit, and overall effectiveness of their models. Ultimately, these regression evaluation metrics serve as valuable tools for model selection, optimization, and deployment in real-world regression problems.

Key Takeaways:

  • Evaluation metrics quantify how well a regression model performs on unseen data
  • Different metrics capture different aspects of model performance (error, variance explained, etc.)
  • Interpreting multiple metrics provides a comprehensive understanding of a model’s strengths and limitations
  • Regression metrics are essential tools for evaluating the performance of predictive models, helping to quantify accuracy and guide improvements.

The media shown in this article are not owned by Analytics Vidhya and is used at the Author’s discretion.

Q1. What is the evaluation metric for regression?

A. The evaluation metric for regression includes Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), and R-squared (R²).

Q2. What are the performance metrics for regression classification?

A. Performance metrics for regression classification are MSE, RMSE, MAE, R², and Mean Absolute Percentage Error (MAPE).

Q3. What is the R2 metric of regression?

A. The R² metric, or coefficient of determination, measures the proportion of variance in the dependent variable predictable from the independent variables.

Q4. How to measure performance of regression?

A. Measuring Regression Performance
Error Metrics: MSE, RMSE, MAE (penalize errors differently)
Goodness-of-Fit: R², Adjusted R² (explain variance)
Other: MAPE (percentage error)
Choose metric based on: outliers, interpretability, business impact, model comparison.

I am a software Engineer with a keen passion towards data science. I love to learn and explore different data-related techniques and technologies. Writing articles provide me with the skill of research and the ability to make others understand what I learned. I aspire to grow as a prominent data architect through my profession and technical content writing as a passion.

Responses From Readers

Clear

Geoffrey
Geoffrey

Thank you for the article, interesting especially if the importance of metrics is overshadowed. Just 2 or 3 things : 1/ You said " Regression can be defined as a Machine learning problem where we have to predict discrete values like price, Rating, Fees, etc." It is not discrete, it is continuous values. 2/ I did not fully understand the very last part about adjusted R squared. "It assumes that while adding more data variance of data increases" is that always the case and if so, why ? I would have said that if you add many datapoints with the same "y-value / target-value" the variance will on the contrary decrease ? 3/ I thought that having (linearly ?) dependant features was bad in any case, but at the beginning of the article you seem to say that linear regression is OK with dependant and independant features. Is that the case ? Linked to my question 2, having a redundant feature isn't it almost the same as adding an irrelevant feature or at least it can artificially increase the R2 score while the information used is redundant and we did not really increased the performance of our model Thank you very much ! Geoffrey

Anjana
Anjana

Hey hi. "In simple words, Regression can be defined as a Machine learning problem where we have to predict discrete values like price, Rating, Fees, etc." Shouldnt it be "continous values"?

Flash Card

Why are evaluation metrics important in assessing regression model performance?

Evaluation metrics are crucial because they measure how well a regression model predicts continuous outcomes. They help data scientists and machine learning engineers evaluate the accuracy and effectiveness of their models. By using these metrics, one can determine the model's ability to make accurate predictions, which is essential for model validation and improvement.

Quiz

Why are evaluation metrics important in assessing regression model performance?

Flash Card

What is Mean Absolute Error (MAE) and how is it calculated?

MAE is a metric that calculates the absolute difference between actual and predicted values. It involves summing all the absolute errors and dividing by the total number of observations. The goal is to minimize MAE, as it represents the average magnitude of errors in a set of predictions, without considering their direction.

What is Mean Absolute Error (MAE) and how is it calculated?

Quiz

What is Mean Absolute Error (MAE) and how is it calculated?

Flash Card

How does Mean Squared Error (MSE) differ from MAE?

MSE calculates the squared difference between actual and predicted values, unlike MAE which uses absolute differences. Squaring the errors prevents negative errors from canceling out positive ones, providing a more sensitive measure of prediction accuracy. MSE is particularly useful when larger errors are more significant, as it penalizes them more heavily due to squaring.

How does Mean Squared Error (MSE) differ from MAE?

Quiz

How does Mean Squared Error (MSE) differ from MAE?

Flash Card

What is Root Mean Squared Error (RMSE) and why is it useful?

RMSE is the square root of the Mean Squared Error, providing an error metric in the same units as the predicted variable. It is useful because it makes interpretation easier, allowing for direct comparison with actual data values. RMSE is sensitive to outliers and provides a clear measure of how well the model predicts the data.

What is Root Mean Squared Error (RMSE) and why is it useful?

Quiz

What is Root Mean Squared Error (RMSE) and why is it useful?

Flash Card

Explain the significance of the R-squared (R2) metric in regression analysis.

R2 measures the proportion of variance in the dependent variable that is predictable from the independent variable(s). It provides a baseline for comparing models, independent of the context, unlike MAE and MSE. R2 is also known as the Coefficient of Determination and indicates the goodness of fit of a model.

Explain the significance of the R-squared (R2) metric in regression analysis.

Quiz

What does the R-squared (R2) metric indicate in regression analysis?

Flash Card

How can these regression metrics be implemented using Python’s scikit-learn library?

Scikit-learn provides functions to calculate these metrics easily, such as 'mean_absolute_error', 'mean_squared_error', and 'r2_score'. By using a dataset, one can split it into training and testing sets, fit a regression model, and then use these functions to evaluate the model. This implementation helps in understanding the practical application of these metrics in real-world scenarios.

Quiz

How can regression metrics be implemented using Python’s scikit-learn library?

Flash Card

What role do regression metrics play in quantifying the accuracy of predictive models?

Regression metrics measure the difference between predicted and actual values, quantifying the model's accuracy. They help in assessing how well a model predicts continuous outcomes, which is crucial for model validation. These metrics guide improvements by highlighting areas where the model may be underperforming.

Quiz

What role do regression metrics play in quantifying the accuracy of predictive models?

Flash Card

Why is it important to use multiple metrics to evaluate a regression model?

Different metrics capture various aspects of model performance, such as error magnitude and variance explained. Using multiple metrics provides a comprehensive understanding of a model’s strengths and limitations. This approach helps in making informed decisions about model improvements and selecting the best model for a given task.

Quiz

Why is it important to use multiple metrics to evaluate a regression model?

Congratulations, You Did It!
Well Done on Completing Your Learning Journey. Stay curious and keep exploring!

We use cookies essential for this site to function well. Please click to help us improve its usefulness with additional cookies. Learn about our use of cookies in our Privacy Policy & Cookies Policy.

Show details