# Performance Metrics for Classification and Regression Tasks

Performance evaluation is an essential aspect of machine learning and data analysis. By using appropriate metrics, we can assess the quality of our models and make informed decisions. In this article, we will explore the performance metrics available in scikit-learn, a popular Python library for machine learning.

## Classification Performance Metrics

Classification tasks involve predicting a discrete class or category for given input data. Here are some commonly used performance metrics for classification tasks:

### Accuracy Score

Accuracy is one of the most basic metrics for classification tasks. It measures the proportion of correct predictions to the total number of predictions.

``````from sklearn.metrics import accuracy_score

y_true = [0, 1, 0, 1]
y_pred = [0, 1, 1, 1]

accuracy = accuracy_score(y_true, y_pred)``````

### Confusion Matrix

A confusion matrix provides a detailed breakdown of the model's performance. It shows the number of true positives, true negatives, false positives, and false negatives.

``````from sklearn.metrics import confusion_matrix

y_true = [1, 1, 0, 1, 0, 0]
y_pred = [1, 0, 0, 1, 0, 1]

cm = confusion_matrix(y_true, y_pred)``````

### Precision, Recall, and F1-Score

Precision and recall are useful metrics when dealing with imbalanced datasets or when the cost of false positives and false negatives differ. Precision measures the proportion of correctly predicted positive instances out of all positive predictions, while recall measures the proportion of correctly predicted positive instances out of all actual positive instances. The F1-score is the harmonic mean of precision and recall.

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

y_true = [1, 1, 0, 1, 0, 0]
y_pred = [1, 0, 0, 1, 0, 1]

precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)``````

## Regression Performance Metrics

Regression tasks involve predicting continuous numerical values rather than discrete categories. Here are some commonly used performance metrics for regression tasks:

### Mean Squared Error (MSE)

MSE measures the average squared difference between the predicted and true values. It quantifies the model's average error, with higher values indicating worse performance.

``````from sklearn.metrics import mean_squared_error

y_true = [2.5, 4.0, 3.5, 8.0]
y_pred = [3.0, 3.5, 2.5, 7.0]

mse = mean_squared_error(y_true, y_pred)``````

### R-Squared Score

R-squared is a statistical measure that indicates the proportion of variance in the dependent variable that is predictable from the independent variables. It ranges from 0 to 1, with higher values indicating a better fit.

``````from sklearn.metrics import r2_score

y_true = [2.5, 4.0, 3.5, 8.0]
y_pred = [3.0, 3.5, 2.5, 7.0]

r2 = r2_score(y_true, y_pred)``````

### Mean Absolute Error (MAE)

MAE measures the average absolute difference between the predicted and true values. Unlike MSE, it does not weight the errors quadratically, making it less sensitive to outliers.

``````from sklearn.metrics import mean_absolute_error

y_true = [2.5, 4.0, 3.5, 8.0]
y_pred = [3.0, 3.5, 2.5, 7.0]

mae = mean_absolute_error(y_true, y_pred)``````

## Conclusion

Performance metrics play a crucial role in evaluating the accuracy and effectiveness of machine learning models. In this article, we explored some of the commonly used metrics for classification and regression tasks available in scikit-learn. Utilizing these metrics will allow you to make more informed decisions when working with classification and regression problems, leading to improved models and insights.