In this Python tutorial, we will learn How Scikit learn confusion matrix works in Python and we will also cover different examples related to Scikit learn confusion matrix. And, we will cover these topics.
- Scikit learn confusion matrix
- Scikit learn confusion matrix example
- Scikit learn confusion matrix plot
- Scikit learn confusion matrix accuracy
- Scikit learn confusion matrix multiclass
- Scikit learn confusion matrix display
- Scikit learn confusion matrix labels
- Scikit learn confusion matrix normalize
Scikit learn confusion matrix
In this section, we will learn about how the Scikit learn confusion matrix works in python.
- Scikit learn confusion matrix is defined as a technique to calculate the performance of classification.
- The confusion matrix is also used to predict or summarise the result of the classification problem.
Code:
- y_true = [2, 0, 0, 2, 0, 1] is used to get the true value.
- y_pred = [0, 0, 2, 0, 0, 2] is used to get the predicted value.
- confusion_matrix(y_true, y_pred) is used to evaluate the confusion matrix.
from sklearn.metrics import confusion_matrix
y_true = [2, 0, 0, 2, 0, 1]
y_pred = [0, 0, 2, 0, 0, 2]
confusion_matrix(y_true, y_pred)
Output:
After running the above code, we get the following output in which we can see that the confusion matrix value is printed on the screen.
Read: Scikit learn Image Processing
Scikit learn confusion matrix example
In this section, we will learn about how Scikit learn confusion matrix example works in python.
- Scikit learn confusion matrix example is defined as a technique to summarise the result of the classification.
- The confusion matrix also predicted the number of correct and incorrect predictions of the classification model.
Code:
In the following code, we will import some libraries from which we can make the confusion matrix.
- iris = datasets.load_iris() is used to load the iris data.
- class_names = iris.target_names is used to get the target names.
- x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0) is used to split the data set into train and test data.
- classifier = svm.SVC(kernel=”linear”, C=0.02).fit(x_train, y_train) is used to fit the model.
- ConfusionMatrixDisplay.from_estimator() is used to plot the confusion matrix.
- print(display.confusion_matrix) is used to print the confusion matrix.
import numpy as num
import matplotlib.pyplot as plot
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import ConfusionMatrixDisplay
iris = datasets.load_iris()
x = iris.data
y = iris.target
class_names = iris.target_names
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)
classifier = svm.SVC(kernel="linear", C=0.02).fit(x_train, y_train)
num.set_printoptions(precision=2)
title_options = [
("Confusion matrix, without normalization", None),
("Normalized confusion matrix", "true"),
]
for title, normalize in title_options:
display = ConfusionMatrixDisplay.from_estimator(
classifier,
x_test,
y_test,
display_labels=class_names,
cmap=plot.cm.Blues,
normalize=normalize,
)
display.ax_.set_title(title)
print(title)
print(display.confusion_matrix)
plot.show()
Output:
In the following output, we can see that the result of the classification is summarised on the screen with help of a confusion matrix.
Read: Scikit learn non-linear [Complete Guide]
Scikit learn confusion matrix plot
In this section, we will learn about how Scikit learn confusion matrix plot in python.
- Scikit learn confusion matrix plot is used to plot the graph on the screen to summarise the result of the model.
- It is used to plot the graph to predict the number of correct or incorrect predictions of the model.
Code:
In the following code, we will import some libraries from which we can plot the confusion matrix on the screen.
- x, y = make_classification(random_state=0) is used to make classification.
- x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0) is used to split the data set into train and test set.
- classifier.fit(x_train, y_train) is used to fit the model.
- plot_confusion_matrix(classifier, x_test, y_test) is used to plot the confusion matrix on the screen.
import matplotlib.pyplot as plot
from sklearn.datasets import make_classification
from sklearn.metrics import plot_confusion_matrix
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
x, y = make_classification(random_state=0)
x_train, x_test, y_train, y_test = train_test_split(
x, y, random_state=0)
classifier = SVC(random_state=0)
classifier.fit(x_train, y_train)
SVC(random_state=0)
plot_confusion_matrix(classifier, x_test, y_test)
plot.show()
Output:
After running the above code, we get the following output in which we can see that the confusion matrix is plotted on the screen.
Read: Scikit learn KNN Tutorial
Scikit learn confusion matrix accuracy
In this section, we will learn about Scikit learn confusion matrix accuracy of the model in python.
Scikit learn confusion matrix accuracy is used to calculate the accuracy of the matrix how accurate our model result.
Code:
In the following code, we will import some libraries from which we can calculate the accuracy of the model.
- y_pred = [1, 3, 2, 0] is used to predict the predicted value.
- y_true = [0, 1, 2, 3] is used to predict the true value.
- accuracy_score(y_true, y_pred) is used to predict the accuracy score.
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
y_pred = [1, 3, 2, 0]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred)
accuracy_score(y_true, y_pred, normalize=False)
import numpy as num
accuracy_score(num.array([[0, 1], [1, 1]]), num.ones((2, 2)))
Output:
After running the above code, we get the following output in which we can see that the confusion matrix accuracy score is printed on the screen.
Read: Scikit learn Sentiment Analysis
Scikit learn confusion matrix multiclass
In this section, we will learn about how scikit learn confusion matrix multiclass works in python.
Scikit learn confusion matrix multi-class is defined as a problem of classifying illustration of one of the three or more classes.
Code:
In the following code, we will import some libraries from which we can make a confusion matrix multiclass.
- df = pd.read_csv(“IRIS.csv”) is used to load the dataset.
- df.dtypes is used to select the types of data.
#importing packages
import pandas as pds
import numpy as num
import seaborn as sb
import matplotlib.pyplot as plot
df = pd.read_csv("IRIS.csv")
df.head()
df.dtypes
- x = df.drop([‘species’], axis=1) is used to separating independent variable and dependent variable.
- print(x.shape) is used to print the shape of the dataset.
#Separating independant variable and dependent variable("Species")
x = df.drop(['species'], axis=1)
y = df['species']
print(x.shape)
print(y.shape)
- x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0) is used to split the dataset into train and test set.
- print(x_train.shape) is used to print the shape of the train set.
- print(x_test.shape) is used to print the shape of the test set.
# Splitting the dataset to Train and test
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0)
print(x_train.shape)
print(y_train.shape)
print(x_test.shape)
print(y_test.shape)
- classifier = SVC(kernel = ‘linear’).fit(x_train,y_train) is used to training the classifier from x train and y train.
- cm = confusion_matrix(y_test, y_pred) is used to creating the confusion matrix.
- cm_df = pd.DataFrame() is used to create the data frame.
- plot.figure(figsize=(5,4)) is used to plot the figure.
from sklearn.svm import SVC
from sklearn.metrics import confusion_matrix
classifier = SVC(kernel = 'linear').fit(x_train,y_train)
classifier.predict(x_train)
y_pred = classifier.predict(X_test)
cm = confusion_matrix(y_test, y_pred)
cm_df = pd.DataFrame(cm,
index = ['SETOSA','VERSICOLR','VIRGINICA'],
columns = ['SETOSA','VERSICOLR','VIRGINICA'])
plot.figure(figsize=(5,4))
sb.heatmap(cm_df, annot=True)
plot.title('Confusion Matrix')
plot.ylabel('Actal Values')
plot.xlabel('Predicted Values')
plot.show()
Read: Scikit learn Gradient Descent
Scikit learn confusion matrix display
In this section, we will learn about how Scikit learn confusion matrix display works in python.
Scikit learn confusion matrix display is defined as a matrix in which i,j is equal to the number of observations are forecast to be in a group.
Code:
In the following code, we will learn to import some libraries from which we can see how the confusion matrix is displayed on the screen.
- x, y = make_classification(random_state=0) is used to make classification.
- x_train, x_test, y_train, y_test = train_test_split(x, y,random_state=0) is used to split the dataset into train and test data.
- classifier.fit(x_train, y_train) is used to fit the data.
- predictions = classifier.predict(x_test) is used to predict the data.
- display=ConfusionMatrixDisplay(confusion_matrix=cm,display_labels=classifier.classes_) is used to display the confusion matrix.
- display.plot() is used to plot the matrix.
import matplotlib.pyplot as plot
from sklearn.datasets import make_classification
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
x, y = make_classification(random_state=0)
x_train, x_test, y_train, y_test = train_test_split(x, y,
random_state=0)
classifier = SVC(random_state=0)
classifier.fit(x_train, y_train)
SVC(random_state=0)
predictions = classifier.predict(x_test)
cm = confusion_matrix(y_test, predictions, labels=classifier.classes_)
display = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=classifier.classes_)
display.plot()
plot.show()
Output:
After running the above code, we get the following output in which we can see that a confusion matrix is displayed on the screen.
Read: Scikit learn Classification Tutorial
Scikit learn confusion matrix labels
In this section, we will learn how Scikit learn confusion matrix labels works in python.
Scikit learn confusion matrix label is defined as a two-dimension array that contrasts a predicted group of labels with true labels.
Code:
In the following code, we will import some libraries to know how scikit learn confusion matrix labels works.
- y_true = num.array([[1, 0, 0],[0, 1, 1]]) is used to collect the true labels in the array.
- y_pred = num.array([[1, 0, 1],[0, 1, 0]]) is used to collect the predicted labelsin the array.
- multilabel_confusion_matrix(y_true, y_pred) is used to get multilabel confusion matrix.
import numpy as num
from sklearn.metrics import multilabel_confusion_matrix
y_true = num.array([[1, 0, 0],
[0, 1, 1]])
y_pred = num.array([[1, 0, 1],
[0, 1, 0]])
multilabel_confusion_matrix(y_true, y_pred)
Output:
After running the above code, we get the following output in which we can see that the confusion matrix labels are printed on the screen.
Read: Scikit learn Hyperparameter Tuning
Scikit learn confusion matrix normalize
In this section, we will learn about how scikit learn confusion matrix normalize works in python.
Scikit learn confusion matrix normalize is defined as a process that represents one sample is present in each group.
Code:
In the following code, we will import some libraries from which we can normalize the matrix.
- iris = datasets.load_iris() is used to load the data.
- x_train, x_test, y_train, y_test = train_test_split(X, y, random_state=0) is used use to split the dataset into train and test data.
- classifier = svm.SVC(kernel=’linear’, C=0.01) is used as a classifier.
- y_pred = classifier.fit(x_train, y_train).predict(x_test) is used to fit the model.
- cm = confusion_matrix(y_true, y_pred) is used to compute the confusion matrix.
- classes = classes[unique_labels(y_true, y_pred)] is used of label that appear in the data.
- figure, axis = plot.subplots() is used to plot the figure on the screen.
- plot.setp(axis.get_xticklabels(), rotation=45, ha=”right”,rotation_mode=”anchor”) is used to set the alignment and rotate the ticks.
- plot_confusion_matrix(y_test, y_pred, classes=class_names, normalize=True, title=’Normalized confusion matrix’) is used to plot the normalized confusion matrix.
import numpy as num
import matplotlib.pyplot as plot
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn.utils.multiclass import unique_labels
iris = datasets.load_iris()
x_digits = iris.data
y = iris.target
class_names = iris.target_names
x_train, x_test, y_train, y_test = train_test_split(X, y, random_state=0)
classifier = svm.SVC(kernel='linear', C=0.01)
y_pred = classifier.fit(x_train, y_train).predict(x_test)
def plot_confusion_matrix(y_true, y_pred, classes,
normalize=False,
title=None,
cmap=plot.cm.Blues):
if not title:
if normalize:
title = 'Normalized confusion matrix'
cm = confusion_matrix(y_true, y_pred)
classes = classes[unique_labels(y_true, y_pred)]
if normalize:
cm = cm.astype('float') / cm.sum(axis=1)[:, num.newaxis]
print("Normalized confusion matrix")
print(cm)
figure, axis = plot.subplots()
im = axis.imshow(cm, interpolation='nearest', cmap=cmap)
axis.figure.colorbar(im, ax=axis)
axis.set(xticks=num.arange(cm.shape[1]),
yticks=num.arange(cm.shape[0]),
xticklabels=classes, yticklabels=classes,
title=title,
ylabel='True label',
xlabel='Predicted label')
plot.setp(axis.get_xticklabels(), rotation=45, ha="right",
rotation_mode="anchor")
fmt = '.2f' if normalize else 'd'
thresh = cm.max() / 2.
for i in range(cm.shape[0]):
for j in range(cm.shape[1]):
axis.text(j, i, format(cm[i, j], fmt),
ha="center", va="center",
color="cyan" if cm[i, j] > thresh else "red")
figure.tight_layout()
return axis
plot_confusion_matrix(y_test, y_pred, classes=class_names, normalize=True,
title='Normalized confusion matrix')
plot.show()
Output:
In the following code, we will see a normalized confusion matrix array is created, and also a normalized confusion matrix graph is plotted on the screen.
Also, take a look at some more Scikit learn tutorials.
- Scikit learn Linear Regression
- Scikit learn Feature Selection
- Scikit learn Ridge Regression
- Scikit learn Random Forest
So, in this tutorial we discussed Scikit learn confusion matrix and we have also covered different examples related to its implementation. Here is the list of examples that we have covered.
- Scikit learn confusion matrix
- Scikit learn confusion matrix example
- Scikit learn confusion matrix plot
- Scikit learn confusion matrix accuracy
- Scikit learn confusion matrix multiclass
- Scikit learn confusion matrix display
- Scikit learn confusion matrix labels
- Scikit learn confusion matrix normalize
I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.