Implementing Binary Classification using Perceptron

Let’s consider the few examples to understand the classification using Sklearn. In this example, we identify tumors as malignant or benign using the Breast Cancer Wisconsin dataset and a variety of characteristics, including mean radius, mean texture, and others.

Step 1: Importing necessary libraries

Python3

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import Perceptron
from sklearn.model_selection import train_test_split
from sklearn import metrics
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix

                    

Step 2: Importing Breast Cancer Dataset

Using Scikit-Learn’s load_breast_cancer function, we load the Breast Cancer dataset. The features of breast cancer tumors are included in this dataset, along with the labels that correlate to them (0 for malignant and 1 for benign).

Python3

# Load the Breast Cancer dataset
data = load_breast_cancer()
X = data.data
y = data.target
print(X.shape)
print(y.shape)

                    

Output:

(569, 30)
(569,)

Step3: Splitting the dataset in train and test set.

Python3

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
print(X_train.shape)
print(X_test.shape)
print(y_train.shape)
print(y_test.shape)

                    

Output:

(398, 30)
(171, 30)
(398,)
(171,)

Step 4: Creating Perceptron

Python3

# Create a Perceptron model
clf = Perceptron(max_iter=1000, eta0=0.1)

                    

Here max_iter defines the number of times the madel are used to train on the same dataset. and eta0 is the learning parameter.

Step 5 : Training the Perceptron Model

Using the Perceptron class from Scikit-Learn, we build a Perceptron model. We give the training’s maximum iteration count (max_iter) as well as the learning rate (eta0).

Python3

# Train the model
clf.fit(X_train, y_train)

                    

Step 6: Prediction

For binary classification of tumour, we use the trained Perceptron model to make predictions on the testing data after training.

Python3

# Make predictions
y_pred = clf.predict(X_test)
print(y_pred)

                    

Output:

[0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0
 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1
 1 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0
 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0
 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1]

Step 7: Evaluation

We assess the model’s accuracy in identifying malignant or benign tumors.

Python3

# Evaluate accuracy
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

                    

Output:

Accuracy: 0.935672514619883

Step 8: Confusion Matrix

Python3

# Calculate confusion matrix
conf_matrix = confusion_matrix(y_test, y_pred)
cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = conf_matrix, display_labels = [False, True])
  
cm_display.plot()
plt.show()

                    

Output:

Heatmap of Confusion Matrix

Confusion Matrix shows the performance of the model where True negatives, false positives, false negatives, True positive values respectively.

Beyond Binary Classification:

While this article has mostly focused on binary classification, it is important to highlight that the Perceptron may also be extended to multiclass classification problems. It distributes instances to one of two classes in binary classification, but in multiclass classification, it may be altered to discriminate between several classes. This adaptation is frequently accomplished using tactics such as one-vs-all (OvA) or one-vs-one (OvO) strategies.

Perceptron Algorithm for Classification using Sklearn

Assigning a label or category to an input based on its features is the fundamental task of classification in machine learning. One of the earliest and most straightforward machine learning techniques for binary classification is the perceptron. It serves as the framework for more sophisticated neural networks. This post will examine how to use Scikit-Learn, a well-known Python machine-learning toolkit, to conduct binary classification using the Perceptron algorithm.

Similar Reads

Perceptron

A simple binary linear classifier called a perceptron generates predictions based on the weighted average of the input data. Based on whether the weighted total exceeds a predetermined threshold, a threshold function determines whether to output a 0 or a 1. One of the earliest and most basic machine learning methods used for binary classification is the perceptron. Frank Rosenblatt created it in the late 1950s, and it is a key component of more intricate neural network topologies....

Components of a Perceptron:

Input Features (x): Predictions are based on the characteristics or qualities of the input data, or input features (x). A number value is used to represent each feature. The two classes in binary classification are commonly represented by the numbers 0 (negative class) and 1 (positive class).Input Weights (w): Each input information has a weight (w), which establishes its significance when formulating predictions. The weights are numerical numbers as well and are either initialized to zeros or small random values.Weighted Sum (): To calculate the weighted sum, use the dot product of the input features’ (x) weights and their associated features’ (w) weights. Mathematically, it is written as . Activation Function (Step Function) : The activation function, which is commonly a step function, is applied to the weighted sum (). If the weighted total exceeds a predetermined threshold, the step function is utilized to decide the perceptron’s output. The output is 1 (positive class) if is greater than or equal to the threshold and 0 (negative class) otherwise....

Working of the Perceptron:

Initialization: The weights (w) are initially initialized, frequently using tiny random values or zeros.Prediction: The Perceptron calculates the weighted total () of the input features and weights in order to provide a forecast for a particular input.Activation Function: Following the computation of the weighted sum (), an activation function is used. The perceptron outputs 1 (positive class) if is greater than or equal to a specific threshold; otherwise, it outputs 0 (negative class) because the activation function is a step function. Updating Weight: Weights are updated if a misclassification, or an inaccurate prediction, is made by the perceptron. The weight update is carried out to reduce prediction inaccuracy in the future. Typically, the update rule involves shifting the weights in a way that lowers the error. The perceptron learning rule, which is based on the discrepancy between the expected and actual class labels, is the most widely used rule.Repeat: Each input data point in the training dataset is repeated through steps 2 through 4 one more time. This procedure keeps going until the model converges and accurately categorizes the training data, which could take a certain amount of iterations....

Steps required for classification using Perceptron:

There are various steps involved in performing classification using the Perceptron algorithm in Scikit-Learn:...

Implementing Binary Classification using Perceptron

Let’s consider the few examples to understand the classification using Sklearn. In this example, we identify tumors as malignant or benign using the Breast Cancer Wisconsin dataset and a variety of characteristics, including mean radius, mean texture, and others....

Implementing Multiclass Classification using Perceptron

...

Challenges and Limitations

...

Conclusion

...