Scikit-learn Tutorial 7: Understanding Support Vector Machines (SVM) with Machine Learning

Posted by


In this tutorial, we will discuss Support Vector Machines (SVM) in the context of machine learning using the Scikit-learn library in Python. Support Vector Machines are a powerful and versatile machine learning algorithm that is capable of performing both linear and non-linear classification, regression, and outlier detection tasks.

Support Vector Machines work by finding the optimal hyperplane that best separates the different classes in the dataset. The hyperplane is defined as the line that maximizes the margin between the two classes. The data points closest to the hyperplane are known as support vectors, and they are crucial in determining the position and orientation of the hyperplane.

Now, let’s move on to implementing Support Vector Machines in Python using the Scikit-learn library. First, you need to install the necessary libraries by running the following command:

pip install numpy scikit-learn

Next, we will import the required libraries:

import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

Now, let’s load a dataset to work with. For this tutorial, we will use the famous Iris dataset that contains information about three different species of Iris flowers. We will classify the data into its corresponding species using the Support Vector Machines algorithm.

iris = datasets.load_iris()
X = iris.data
y = iris.target

Next, we will split the dataset into training and testing sets:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

We will then scale the features using the StandardScaler:

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

Now, we will create an SVM model and train it on the training data:

svm = SVC(kernel='linear', C=1.0)
svm.fit(X_train, y_train)

After training the model, we can make predictions on the test data:

y_pred = svm.predict(X_test)

Finally, we can evaluate the accuracy of the model:

accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')

This is a simple example of how to use Support Vector Machines in Scikit-learn for classification. SVMs are highly customizable, and you can experiment with different kernels, regularization parameters, and other hyperparameters to improve the performance of the model.

In conclusion, Support Vector Machines are a powerful algorithm for both linear and non-linear classification tasks. By using the Scikit-learn library in Python, you can easily implement SVMs in your machine learning projects.

0 0 votes
Article Rating
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@thevoidwalkertvw
30 days ago

Sir god bless you. May god grant you a happy life.

@grac12
30 days ago

sir, If I give kernel=linear, it is not showing the output, kindly tell me why is it so?

@duggy1993
30 days ago

Very straight-forward and clear tutorial, thanks a lot!

@rajdeepjadhav2374
30 days ago

Is there any way to define learning rate and number of epochs to run and also get the Validation loss, Validation Accuracy for each epoch?

@crazymexicandope
30 days ago

This is great. Many of the other tutorials I've seen go into too much detail for what I need but this explained the process very clearly and concisely. Thank you 10/10

@DarshanSenTheComposer
30 days ago

4:37 – Little correction – head is a function so, don't forget the parentheses after head 🙂