# Chapter 4: Supervised Learning

## 4.3 Evaluation Metrics for Supervised Learning

When working with machine learning, building models is just one part of the process. After creating a model, it's important to evaluate its performance. One way to do this is through the use of evaluation metrics, which vary depending on the type of machine learning task being performed.

For example, evaluation metrics used for regression problems may differ from those used for classification problems. In this section, we'll take a closer look at the most commonly used evaluation metrics for supervised learning tasks, including how they work and when to use them. As we explore these metrics, we'll also discuss the benefits and drawbacks of each one, so you can make an informed decision about which metric to use for your specific machine learning task.

### 4.3.1 **Evaluation Metrics for Regression**

As we've already discussed in the section on regression analysis, there are several key metrics used to evaluate the performance of regression models:

**Mean Absolute Error (MAE)**

This is a metric used to evaluate the performance of a machine learning model. It calculates the average magnitude of the errors in a set of predictions, without considering their direction. In other words, it represents the average difference between the actual and predicted values.

This metric is particularly useful when the dataset contains outliers or when the direction of the errors is not important. However, it does not penalize large errors as much as other metrics such as the Mean Squared Error. Therefore, it may not be the best choice when the goal is to minimize large errors.

Overall, the Mean Absolute Error is a simple yet effective way to assess the accuracy of a model and compare it to other models.

**Mean Squared Error (MSE)**

This is a statistical measure that calculates the average squared difference between the estimated values and the actual value. It is widely used as a method to evaluate the accuracy of a predictive model.

MSE is calculated by taking the average of the squared errors, which are the differences between the predicted and actual values. The higher the value of MSE, the more inaccurate the model is. Conversely, a lower value of MSE indicates a more accurate model.

MSE is commonly used in fields such as machine learning, statistics, and data analysis, where it is necessary to evaluate the performance of predictive models.

**Root Mean Squared Error (RMSE)**

This is a commonly used method to evaluate the accuracy of a model's predictions, and is defined as the square root of the average of the squared differences between the predicted and actual values. It is an extension of the Mean Squared Error (MSE), which is obtained by simply taking the average of the squared differences. RMSE is preferred over MSE in many cases because it is more easily interpretable in the "y" units.

For example, suppose you have a model that predicts the price of a house based on a number of features such as square footage, number of bedrooms, and location. You can use RMSE to measure how accurately the model predicts the actual price of the house. A lower RMSE value indicates that the model is making more accurate predictions, while a higher RMSE value indicates that the model is making less accurate predictions.

It is important to note that RMSE has its limitations and should not be solely relied upon to evaluate a model's performance. Other evaluation metrics such as Mean Absolute Error (MAE) and R-squared should also be considered for a more comprehensive analysis.

**R-squared (Coefficient of Determination)**

This is a statistical measure that represents the proportion of the variance for a dependent variable that's explained by an independent variable or variables in a regression model. It is an important metric that is used to evaluate the accuracy and validity of a regression model.

R-squared values range from 0 to 1, with higher values indicating that more of the variance in the dependent variable can be explained by the independent variables. However, it's important to note that a high R-squared value doesn't necessarily mean that the model is a good fit for the data.

Other factors, such as the number of independent variables, the sample size, and the nature of the data, can also impact the accuracy of the model. Therefore, it's important to use R-squared in conjunction with other measures of model fit when evaluating the performance of a regression model.

We've already seen how to calculate these metrics using Scikit-learn in the previous sections.

### 4.3.2 **Evaluation Metrics for Classification Models**

Once we've built a classification model, it's important to evaluate its performance. There are several evaluation metrics that we can use for classification models, including:

**Accuracy**

This metric measures the proportion of correct predictions to the total number of input samples. In other words, it provides insight into the model's ability to correctly classify data points. It is an important evaluation metric for many machine learning tasks, including but not limited to classification problems.

Accuracy can be impacted by a variety of factors, such as the quality of the training data, the complexity of the model, and the choice of hyperparameters. Therefore, it is important to understand the limitations of accuracy as a metric and to consider other evaluation metrics in conjunction with accuracy.

Nonetheless, accuracy remains a widely used metric in the machine learning community due to its simplicity and interpretability.

**Precision**

Precision is a metric used in machine learning to evaluate the accuracy of a model's predictions. It is calculated by taking the ratio of the total number of correct positive predictions to the total number of positive predictions.

A higher precision score indicates that the model is more accurate in correctly predicting positive cases. Precision is often used in conjunction with recall, which measures the model's ability to correctly identify all positive cases. Together, precision and recall can provide a more complete picture of a model's performance.

Precision is frequently used in binary classification problems, where there are only two possible outcomes. However, it can also be used in multiclass classification problems, where there are more than two possible outcomes. Overall, precision is an important metric to consider when evaluating the performance of a machine learning model.

**Recall (Sensitivity)**

This is one of the most important metrics in machine learning. It measures the proportion of actual positive cases that were correctly identified by the algorithm. A higher recall score means that the model accurately identified more of the positive cases.

However, a high recall score can sometimes come at the cost of a lower precision score, which measures the proportion of actual positive cases among all the cases predicted as positive. Therefore, it's important to balance recall and precision when evaluating a model's performance.

**F1 Score**

The F1 score is a measure of a model's accuracy that considers both precision and recall. Specifically, it is the harmonic mean of the two, which gives a better sense of the model's performance on incorrectly classified cases than the Accuracy Metric.

By taking into account both precision and recall, the F1 score provides a more balanced assessment of the model's effectiveness than Accuracy alone. This is important because a model that is strong in one area but weak in the other may not perform well overall.

By using the F1 score, we can ensure that our model is performing well across both precision and recall, leading to more accurate and reliable results.

**Area Under ROC (Receiver Operating Characteristic) Curve:**

This is one of the most widely used evaluation metrics for checking the performance of any classification model, and can provide valuable insight into how well it is able to distinguish between classes.

The ROC curve is a graphical representation of the performance of a binary classifier system as its discrimination threshold is varied, and the AUC is calculated as the area under this curve. Essentially, the AUC value represents the probability that the model will rank a randomly chosen positive example higher than a randomly chosen negative example.

A higher AUC score indicates that the model is better at distinguishing between the two classes, while a score of 0.5 indicates that the model is no better than random guessing. Therefore, AUC is a useful metric for assessing the performance of classification models in a variety of applications, including medical diagnosis, credit scoring, and spam filtering.

**Example:**

Here's how we can calculate these metrics using Scikit-learn:

`from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score`

# True labels

y_true = df['B']

# Predicted labels

y_pred = model.predict(df[['A']])

# Calculate metrics

accuracy = accuracy_score(y_true, y_pred)

precision = precision_score(y_true, y_pred)

recall = recall_score(y_true, y_pred)

f1 = f1_score(y_true, y_pred)

roc_auc = roc_auc_score(y_true, y_pred)

print("Accuracy:", accuracy)

print("Precision:", precision)

print("Recall:", recall)

print("F1 Score:", f1)

print("ROC AUC Score:", roc_auc)

Output:

`Accuracy: 1.0`

Precision: 1.0

Recall: 1.0

F1 Score: 1.0

ROC AUC Score: 1.0

The code first imports the `sklearn.metrics`

module. The code then defines the true labels as `y_true = df['B']`

. The code then defines the predicted labels as `y_pred = model.predict(df[['A']])`

. The code then calculates the following metrics:

`accuracy`

: The accuracy of the model is the percentage of predictions that are correct.`precision`

: The precision of the model is the percentage of predicted positives that are actually positive.`recall`

: The recall of the model is the percentage of actual positives that are predicted positive.`f1`

: The f1 score is a weighted average of precision and recall.`roc_auc`

: The roc_auc score is the area under the receiver operating characteristic curve.

The code then prints the values of the metrics.

### 4.3.3 **The Importance of Understanding Evaluation Metrics**

Understanding these evaluation metrics is crucial for interpreting the performance of your machine learning models. Each metric provides a different perspective on the model's performance, and it's important to consider multiple metrics to get a comprehensive understanding of how well your model is performing.

For example, accuracy alone can be a misleading metric, especially for imbalanced classification problems where the majority of instances belong to one class. In such cases, a model that simply predicts the majority class for all instances will have high accuracy, but its ability to predict the minority class may be poor. This is where metrics like precision, recall, and F1 score come in handy, as they provide more insight into the model's performance across different classes.

Similarly, for regression problems, metrics like MAE, MSE, RMSE, and R-squared each provide different insights into the model's performance. MAE provides a straightforward, interpretable measure of error magnitude, while MSE and RMSE give higher weight to larger errors. R-squared provides an indication of how well the model explains the variance in the dependent variable.

In addition to understanding these metrics, it's also important to use them correctly. This includes knowing how to calculate them using tools like Scikit-learn, as well as understanding when to use each metric based on the specific problem and data you're working with.

## 4.3 Evaluation Metrics for Supervised Learning

When working with machine learning, building models is just one part of the process. After creating a model, it's important to evaluate its performance. One way to do this is through the use of evaluation metrics, which vary depending on the type of machine learning task being performed.

For example, evaluation metrics used for regression problems may differ from those used for classification problems. In this section, we'll take a closer look at the most commonly used evaluation metrics for supervised learning tasks, including how they work and when to use them. As we explore these metrics, we'll also discuss the benefits and drawbacks of each one, so you can make an informed decision about which metric to use for your specific machine learning task.

### 4.3.1 **Evaluation Metrics for Regression**

As we've already discussed in the section on regression analysis, there are several key metrics used to evaluate the performance of regression models:

**Mean Absolute Error (MAE)**

This is a metric used to evaluate the performance of a machine learning model. It calculates the average magnitude of the errors in a set of predictions, without considering their direction. In other words, it represents the average difference between the actual and predicted values.

This metric is particularly useful when the dataset contains outliers or when the direction of the errors is not important. However, it does not penalize large errors as much as other metrics such as the Mean Squared Error. Therefore, it may not be the best choice when the goal is to minimize large errors.

Overall, the Mean Absolute Error is a simple yet effective way to assess the accuracy of a model and compare it to other models.

**Mean Squared Error (MSE)**

This is a statistical measure that calculates the average squared difference between the estimated values and the actual value. It is widely used as a method to evaluate the accuracy of a predictive model.

MSE is calculated by taking the average of the squared errors, which are the differences between the predicted and actual values. The higher the value of MSE, the more inaccurate the model is. Conversely, a lower value of MSE indicates a more accurate model.

MSE is commonly used in fields such as machine learning, statistics, and data analysis, where it is necessary to evaluate the performance of predictive models.

**Root Mean Squared Error (RMSE)**

This is a commonly used method to evaluate the accuracy of a model's predictions, and is defined as the square root of the average of the squared differences between the predicted and actual values. It is an extension of the Mean Squared Error (MSE), which is obtained by simply taking the average of the squared differences. RMSE is preferred over MSE in many cases because it is more easily interpretable in the "y" units.

For example, suppose you have a model that predicts the price of a house based on a number of features such as square footage, number of bedrooms, and location. You can use RMSE to measure how accurately the model predicts the actual price of the house. A lower RMSE value indicates that the model is making more accurate predictions, while a higher RMSE value indicates that the model is making less accurate predictions.

It is important to note that RMSE has its limitations and should not be solely relied upon to evaluate a model's performance. Other evaluation metrics such as Mean Absolute Error (MAE) and R-squared should also be considered for a more comprehensive analysis.

**R-squared (Coefficient of Determination)**

This is a statistical measure that represents the proportion of the variance for a dependent variable that's explained by an independent variable or variables in a regression model. It is an important metric that is used to evaluate the accuracy and validity of a regression model.

R-squared values range from 0 to 1, with higher values indicating that more of the variance in the dependent variable can be explained by the independent variables. However, it's important to note that a high R-squared value doesn't necessarily mean that the model is a good fit for the data.

Other factors, such as the number of independent variables, the sample size, and the nature of the data, can also impact the accuracy of the model. Therefore, it's important to use R-squared in conjunction with other measures of model fit when evaluating the performance of a regression model.

We've already seen how to calculate these metrics using Scikit-learn in the previous sections.

### 4.3.2 **Evaluation Metrics for Classification Models**

Once we've built a classification model, it's important to evaluate its performance. There are several evaluation metrics that we can use for classification models, including:

**Accuracy**

This metric measures the proportion of correct predictions to the total number of input samples. In other words, it provides insight into the model's ability to correctly classify data points. It is an important evaluation metric for many machine learning tasks, including but not limited to classification problems.

Accuracy can be impacted by a variety of factors, such as the quality of the training data, the complexity of the model, and the choice of hyperparameters. Therefore, it is important to understand the limitations of accuracy as a metric and to consider other evaluation metrics in conjunction with accuracy.

Nonetheless, accuracy remains a widely used metric in the machine learning community due to its simplicity and interpretability.

**Precision**

Precision is a metric used in machine learning to evaluate the accuracy of a model's predictions. It is calculated by taking the ratio of the total number of correct positive predictions to the total number of positive predictions.

A higher precision score indicates that the model is more accurate in correctly predicting positive cases. Precision is often used in conjunction with recall, which measures the model's ability to correctly identify all positive cases. Together, precision and recall can provide a more complete picture of a model's performance.

Precision is frequently used in binary classification problems, where there are only two possible outcomes. However, it can also be used in multiclass classification problems, where there are more than two possible outcomes. Overall, precision is an important metric to consider when evaluating the performance of a machine learning model.

**Recall (Sensitivity)**

This is one of the most important metrics in machine learning. It measures the proportion of actual positive cases that were correctly identified by the algorithm. A higher recall score means that the model accurately identified more of the positive cases.

However, a high recall score can sometimes come at the cost of a lower precision score, which measures the proportion of actual positive cases among all the cases predicted as positive. Therefore, it's important to balance recall and precision when evaluating a model's performance.

**F1 Score**

The F1 score is a measure of a model's accuracy that considers both precision and recall. Specifically, it is the harmonic mean of the two, which gives a better sense of the model's performance on incorrectly classified cases than the Accuracy Metric.

By taking into account both precision and recall, the F1 score provides a more balanced assessment of the model's effectiveness than Accuracy alone. This is important because a model that is strong in one area but weak in the other may not perform well overall.

By using the F1 score, we can ensure that our model is performing well across both precision and recall, leading to more accurate and reliable results.

**Area Under ROC (Receiver Operating Characteristic) Curve:**

This is one of the most widely used evaluation metrics for checking the performance of any classification model, and can provide valuable insight into how well it is able to distinguish between classes.

The ROC curve is a graphical representation of the performance of a binary classifier system as its discrimination threshold is varied, and the AUC is calculated as the area under this curve. Essentially, the AUC value represents the probability that the model will rank a randomly chosen positive example higher than a randomly chosen negative example.

A higher AUC score indicates that the model is better at distinguishing between the two classes, while a score of 0.5 indicates that the model is no better than random guessing. Therefore, AUC is a useful metric for assessing the performance of classification models in a variety of applications, including medical diagnosis, credit scoring, and spam filtering.

**Example:**

Here's how we can calculate these metrics using Scikit-learn:

`from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score`

# True labels

y_true = df['B']

# Predicted labels

y_pred = model.predict(df[['A']])

# Calculate metrics

accuracy = accuracy_score(y_true, y_pred)

precision = precision_score(y_true, y_pred)

recall = recall_score(y_true, y_pred)

f1 = f1_score(y_true, y_pred)

roc_auc = roc_auc_score(y_true, y_pred)

print("Accuracy:", accuracy)

print("Precision:", precision)

print("Recall:", recall)

print("F1 Score:", f1)

print("ROC AUC Score:", roc_auc)

Output:

`Accuracy: 1.0`

Precision: 1.0

Recall: 1.0

F1 Score: 1.0

ROC AUC Score: 1.0

The code first imports the `sklearn.metrics`

module. The code then defines the true labels as `y_true = df['B']`

. The code then defines the predicted labels as `y_pred = model.predict(df[['A']])`

. The code then calculates the following metrics:

`accuracy`

: The accuracy of the model is the percentage of predictions that are correct.`precision`

: The precision of the model is the percentage of predicted positives that are actually positive.`recall`

: The recall of the model is the percentage of actual positives that are predicted positive.`f1`

: The f1 score is a weighted average of precision and recall.`roc_auc`

: The roc_auc score is the area under the receiver operating characteristic curve.

The code then prints the values of the metrics.

### 4.3.3 **The Importance of Understanding Evaluation Metrics**

Understanding these evaluation metrics is crucial for interpreting the performance of your machine learning models. Each metric provides a different perspective on the model's performance, and it's important to consider multiple metrics to get a comprehensive understanding of how well your model is performing.

For example, accuracy alone can be a misleading metric, especially for imbalanced classification problems where the majority of instances belong to one class. In such cases, a model that simply predicts the majority class for all instances will have high accuracy, but its ability to predict the minority class may be poor. This is where metrics like precision, recall, and F1 score come in handy, as they provide more insight into the model's performance across different classes.

Similarly, for regression problems, metrics like MAE, MSE, RMSE, and R-squared each provide different insights into the model's performance. MAE provides a straightforward, interpretable measure of error magnitude, while MSE and RMSE give higher weight to larger errors. R-squared provides an indication of how well the model explains the variance in the dependent variable.

In addition to understanding these metrics, it's also important to use them correctly. This includes knowing how to calculate them using tools like Scikit-learn, as well as understanding when to use each metric based on the specific problem and data you're working with.

## 4.3 Evaluation Metrics for Supervised Learning

When working with machine learning, building models is just one part of the process. After creating a model, it's important to evaluate its performance. One way to do this is through the use of evaluation metrics, which vary depending on the type of machine learning task being performed.

For example, evaluation metrics used for regression problems may differ from those used for classification problems. In this section, we'll take a closer look at the most commonly used evaluation metrics for supervised learning tasks, including how they work and when to use them. As we explore these metrics, we'll also discuss the benefits and drawbacks of each one, so you can make an informed decision about which metric to use for your specific machine learning task.

### 4.3.1 **Evaluation Metrics for Regression**

As we've already discussed in the section on regression analysis, there are several key metrics used to evaluate the performance of regression models:

**Mean Absolute Error (MAE)**

This is a metric used to evaluate the performance of a machine learning model. It calculates the average magnitude of the errors in a set of predictions, without considering their direction. In other words, it represents the average difference between the actual and predicted values.

This metric is particularly useful when the dataset contains outliers or when the direction of the errors is not important. However, it does not penalize large errors as much as other metrics such as the Mean Squared Error. Therefore, it may not be the best choice when the goal is to minimize large errors.

Overall, the Mean Absolute Error is a simple yet effective way to assess the accuracy of a model and compare it to other models.

**Mean Squared Error (MSE)**

This is a statistical measure that calculates the average squared difference between the estimated values and the actual value. It is widely used as a method to evaluate the accuracy of a predictive model.

MSE is calculated by taking the average of the squared errors, which are the differences between the predicted and actual values. The higher the value of MSE, the more inaccurate the model is. Conversely, a lower value of MSE indicates a more accurate model.

MSE is commonly used in fields such as machine learning, statistics, and data analysis, where it is necessary to evaluate the performance of predictive models.

**Root Mean Squared Error (RMSE)**

This is a commonly used method to evaluate the accuracy of a model's predictions, and is defined as the square root of the average of the squared differences between the predicted and actual values. It is an extension of the Mean Squared Error (MSE), which is obtained by simply taking the average of the squared differences. RMSE is preferred over MSE in many cases because it is more easily interpretable in the "y" units.

For example, suppose you have a model that predicts the price of a house based on a number of features such as square footage, number of bedrooms, and location. You can use RMSE to measure how accurately the model predicts the actual price of the house. A lower RMSE value indicates that the model is making more accurate predictions, while a higher RMSE value indicates that the model is making less accurate predictions.

It is important to note that RMSE has its limitations and should not be solely relied upon to evaluate a model's performance. Other evaluation metrics such as Mean Absolute Error (MAE) and R-squared should also be considered for a more comprehensive analysis.

**R-squared (Coefficient of Determination)**

This is a statistical measure that represents the proportion of the variance for a dependent variable that's explained by an independent variable or variables in a regression model. It is an important metric that is used to evaluate the accuracy and validity of a regression model.

R-squared values range from 0 to 1, with higher values indicating that more of the variance in the dependent variable can be explained by the independent variables. However, it's important to note that a high R-squared value doesn't necessarily mean that the model is a good fit for the data.

Other factors, such as the number of independent variables, the sample size, and the nature of the data, can also impact the accuracy of the model. Therefore, it's important to use R-squared in conjunction with other measures of model fit when evaluating the performance of a regression model.

We've already seen how to calculate these metrics using Scikit-learn in the previous sections.

### 4.3.2 **Evaluation Metrics for Classification Models**

Once we've built a classification model, it's important to evaluate its performance. There are several evaluation metrics that we can use for classification models, including:

**Accuracy**

This metric measures the proportion of correct predictions to the total number of input samples. In other words, it provides insight into the model's ability to correctly classify data points. It is an important evaluation metric for many machine learning tasks, including but not limited to classification problems.

Accuracy can be impacted by a variety of factors, such as the quality of the training data, the complexity of the model, and the choice of hyperparameters. Therefore, it is important to understand the limitations of accuracy as a metric and to consider other evaluation metrics in conjunction with accuracy.

Nonetheless, accuracy remains a widely used metric in the machine learning community due to its simplicity and interpretability.

**Precision**

Precision is a metric used in machine learning to evaluate the accuracy of a model's predictions. It is calculated by taking the ratio of the total number of correct positive predictions to the total number of positive predictions.

A higher precision score indicates that the model is more accurate in correctly predicting positive cases. Precision is often used in conjunction with recall, which measures the model's ability to correctly identify all positive cases. Together, precision and recall can provide a more complete picture of a model's performance.

Precision is frequently used in binary classification problems, where there are only two possible outcomes. However, it can also be used in multiclass classification problems, where there are more than two possible outcomes. Overall, precision is an important metric to consider when evaluating the performance of a machine learning model.

**Recall (Sensitivity)**

This is one of the most important metrics in machine learning. It measures the proportion of actual positive cases that were correctly identified by the algorithm. A higher recall score means that the model accurately identified more of the positive cases.

However, a high recall score can sometimes come at the cost of a lower precision score, which measures the proportion of actual positive cases among all the cases predicted as positive. Therefore, it's important to balance recall and precision when evaluating a model's performance.

**F1 Score**

The F1 score is a measure of a model's accuracy that considers both precision and recall. Specifically, it is the harmonic mean of the two, which gives a better sense of the model's performance on incorrectly classified cases than the Accuracy Metric.

By taking into account both precision and recall, the F1 score provides a more balanced assessment of the model's effectiveness than Accuracy alone. This is important because a model that is strong in one area but weak in the other may not perform well overall.

By using the F1 score, we can ensure that our model is performing well across both precision and recall, leading to more accurate and reliable results.

**Area Under ROC (Receiver Operating Characteristic) Curve:**

This is one of the most widely used evaluation metrics for checking the performance of any classification model, and can provide valuable insight into how well it is able to distinguish between classes.

The ROC curve is a graphical representation of the performance of a binary classifier system as its discrimination threshold is varied, and the AUC is calculated as the area under this curve. Essentially, the AUC value represents the probability that the model will rank a randomly chosen positive example higher than a randomly chosen negative example.

A higher AUC score indicates that the model is better at distinguishing between the two classes, while a score of 0.5 indicates that the model is no better than random guessing. Therefore, AUC is a useful metric for assessing the performance of classification models in a variety of applications, including medical diagnosis, credit scoring, and spam filtering.

**Example:**

Here's how we can calculate these metrics using Scikit-learn:

`from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score`

# True labels

y_true = df['B']

# Predicted labels

y_pred = model.predict(df[['A']])

# Calculate metrics

accuracy = accuracy_score(y_true, y_pred)

precision = precision_score(y_true, y_pred)

recall = recall_score(y_true, y_pred)

f1 = f1_score(y_true, y_pred)

roc_auc = roc_auc_score(y_true, y_pred)

print("Accuracy:", accuracy)

print("Precision:", precision)

print("Recall:", recall)

print("F1 Score:", f1)

print("ROC AUC Score:", roc_auc)

Output:

`Accuracy: 1.0`

Precision: 1.0

Recall: 1.0

F1 Score: 1.0

ROC AUC Score: 1.0

The code first imports the `sklearn.metrics`

module. The code then defines the true labels as `y_true = df['B']`

. The code then defines the predicted labels as `y_pred = model.predict(df[['A']])`

. The code then calculates the following metrics:

`accuracy`

: The accuracy of the model is the percentage of predictions that are correct.`precision`

: The precision of the model is the percentage of predicted positives that are actually positive.`recall`

: The recall of the model is the percentage of actual positives that are predicted positive.`f1`

: The f1 score is a weighted average of precision and recall.`roc_auc`

: The roc_auc score is the area under the receiver operating characteristic curve.

The code then prints the values of the metrics.

### 4.3.3 **The Importance of Understanding Evaluation Metrics**

Understanding these evaluation metrics is crucial for interpreting the performance of your machine learning models. Each metric provides a different perspective on the model's performance, and it's important to consider multiple metrics to get a comprehensive understanding of how well your model is performing.

For example, accuracy alone can be a misleading metric, especially for imbalanced classification problems where the majority of instances belong to one class. In such cases, a model that simply predicts the majority class for all instances will have high accuracy, but its ability to predict the minority class may be poor. This is where metrics like precision, recall, and F1 score come in handy, as they provide more insight into the model's performance across different classes.

Similarly, for regression problems, metrics like MAE, MSE, RMSE, and R-squared each provide different insights into the model's performance. MAE provides a straightforward, interpretable measure of error magnitude, while MSE and RMSE give higher weight to larger errors. R-squared provides an indication of how well the model explains the variance in the dependent variable.

In addition to understanding these metrics, it's also important to use them correctly. This includes knowing how to calculate them using tools like Scikit-learn, as well as understanding when to use each metric based on the specific problem and data you're working with.

## 4.3 Evaluation Metrics for Supervised Learning

### 4.3.1 **Evaluation Metrics for Regression**

**Mean Absolute Error (MAE)**

**Mean Squared Error (MSE)**

**Root Mean Squared Error (RMSE)**

**R-squared (Coefficient of Determination)**

We've already seen how to calculate these metrics using Scikit-learn in the previous sections.

### 4.3.2 **Evaluation Metrics for Classification Models**

**Accuracy**

**Precision**

**Recall (Sensitivity)**

**F1 Score**

**Area Under ROC (Receiver Operating Characteristic) Curve:**

**Example:**

Here's how we can calculate these metrics using Scikit-learn:

`from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score`

# True labels

y_true = df['B']

# Predicted labels

y_pred = model.predict(df[['A']])

# Calculate metrics

accuracy = accuracy_score(y_true, y_pred)

precision = precision_score(y_true, y_pred)

recall = recall_score(y_true, y_pred)

f1 = f1_score(y_true, y_pred)

roc_auc = roc_auc_score(y_true, y_pred)

print("Accuracy:", accuracy)

print("Precision:", precision)

print("Recall:", recall)

print("F1 Score:", f1)

print("ROC AUC Score:", roc_auc)

Output:

`Accuracy: 1.0`

Precision: 1.0

Recall: 1.0

F1 Score: 1.0

ROC AUC Score: 1.0

`sklearn.metrics`

module. The code then defines the true labels as `y_true = df['B']`

. The code then defines the predicted labels as `y_pred = model.predict(df[['A']])`

. The code then calculates the following metrics:

`accuracy`

: The accuracy of the model is the percentage of predictions that are correct.`precision`

: The precision of the model is the percentage of predicted positives that are actually positive.`recall`

: The recall of the model is the percentage of actual positives that are predicted positive.`f1`

: The f1 score is a weighted average of precision and recall.`roc_auc`

: The roc_auc score is the area under the receiver operating characteristic curve.

The code then prints the values of the metrics.