How to generate classification report and confusion matrix in Python?

How to generate classification report and confusion matrix in Python?

How to generate classification report and confusion matrix in Python?

This recipe helps you generate classification report and confusion matrix in Python


Recipe Objective

While using a classification problem we need to use various metrics like precision, recall, f1-score, support or others to check how efficient our model is working.

For this we need to compute there scores by classification report and confusion matrix. So in this recipie we will learn how to generate classification report and confusion matrix in Python.

This data science python source code does the following:
1. Imports necessary libraries and dataset from sklearn
2. performs train test split on the dataset
3. Applies DecisionTreeClassifier model for prediction
4. Prepares classification report for the output

Step 1 - Import the library

from sklearn import datasets from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report, confusion_matrix

We have imported datasets to use the inbuilt dataframe , DecisionTreeClassifier, train_test_split, classification_report and confusion_matrix.

Step 2 - Setting up the Data

Here we have used datasets to load the inbuilt wine dataset and we have created objects X and y to store the data and the target value respectively. wine = datasets.load_wine() X = y = We are creating a list of target names and We are using train_test_split is used to split the data into two parts, one is train which is used to train the model and the other is test which is used to check how our model is working on unseen data. Here we are passing 0.3 as a parameter in the train_test_split which will split the data such that 30% of data will be in test part and rest 70% will be in the train part.

class_names = wine.target_names X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Step 3 - Training the model

Here we are using DecisionTreeClassifier to predict as a classification model and training it on the train data. After that predicting the output of test data. classifier_tree = DecisionTreeClassifier() y_predict =, y_train).predict(X_test)

Step 5 - Creating Classification Report and Confusion Matrix

Let us first have a look on the parameters of Classification Report:

  • y_true : In this parameter we have to pass the true target values of the data.
  • y_pred : It this parameter we have to pass the predicted output of model.
  • target_names : In this parameter we have to pass the names of target.
For Confusion Matrix there are two parameters test and predicted values of the data. print(classification_report(y_test, y_predict, target_names=class_names)) print(confusion_matrix(y_test, y_predict)) So the output comes as

              precision    recall  f1-score   support

     class_0       0.95      0.95      0.95        19
     class_1       0.95      0.95      0.95        21
     class_2       0.95      0.95      0.95        19

   micro avg       0.95      0.95      0.95        59
   macro avg       0.95      0.95      0.95        59
weighted avg       0.95      0.95      0.95        59

[[18  1  0]
 [ 0 20  1]
 [ 1  0 18]]

Relevant Projects

Credit Card Fraud Detection as a Classification Problem
In this data science project, we will predict the credit card fraud in the transactional dataset using some of the predictive models.

Data Science Project - Instacart Market Basket Analysis
Data Science Project - Build a recommendation engine which will predict the products to be purchased by an Instacart consumer again.

Build a Music Recommendation Algorithm using KKBox's Dataset
Music Recommendation Project using Machine Learning - Use the KKBox dataset to predict the chances of a user listening to a song again after their very first noticeable listening event.

Build a Collaborative Filtering Recommender System in Python
Use the Amazon Reviews/Ratings dataset of 2 Million records to build a recommender system using memory-based collaborative filtering in Python.

Predict Credit Default | Give Me Some Credit Kaggle
In this data science project, you will predict borrowers chance of defaulting on credit loans by building a credit score prediction model.

Loan Eligibility Prediction using Gradient Boosting Classifier
This data science in python project predicts if a loan should be given to an applicant or not. We predict if the customer is eligible for loan based on several factors like credit score and past history.

Forecast Inventory demand using historical sales data in R
In this machine learning project, you will develop a machine learning model to accurately forecast inventory demand based on historical sales data.

Build an Image Classifier for Plant Species Identification
In this machine learning project, we will use binary leaf images and extracted features, including shape, margin, and texture to accurately identify plant species using different benchmark classification techniques.

Census Income Data Set Project - Predict Adult Census Income
Use the Adult Income dataset to predict whether income exceeds 50K yr based on census data.

Time Series Forecasting with LSTM Neural Network Python
Deep Learning Project- Learn to apply deep learning paradigm to forecast univariate time series data.