Monday , April 22 2024

Support Vector Classification

Support Vector Classification (SVC) is a machine learning algorithm used for binary and multi-class classification tasks. In this example, I’ll provide a step-by-step guide for implementing Support Vector Classification in Python using Scikit-Learn:

Step 1: Import Libraries

import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import classification_report, confusion_matrix

Step 2: Prepare Your Data
Ensure your dataset contains features (X) and the corresponding target labels (y). Make sure your data is in a NumPy array or a DataFrame.

Step 3: Split Data into Training and Testing Sets
Split your data into training and testing sets to evaluate the model’s performance.

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

Step 4: Create the Support Vector Classification Model

classifier = SVC(kernel='linear', C=1.0)
  • kernel: You can choose different kernels like ‘linear,’ ‘poly,’ ‘rbf’ (Radial Basis Function), or ‘sigmoid’ based on your problem’s characteristics.
  • C: Regularization parameter, which controls the trade-off between maximizing the margin and minimizing classification error.

Step 5: Train the Support Vector Classification Model

classifier.fit(X_train, y_train)

Step 6: Make Predictions

y_pred = classifier.predict(X_test)

Step 7: Evaluate the Model
Evaluate the model’s performance using classification metrics such as accuracy, precision, recall, F1-score, and the confusion matrix.

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

accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)

print(f'Accuracy: {accuracy}')
print(f'Precision: {precision}')
print(f'Recall: {recall}')
print(f'F1-Score: {f1}')

confusion = confusion_matrix(y_test, y_pred)
print('Confusion Matrix:')
print(confusion)

Step 8: Visualize Results (Optional)
Depending on the number of features in your dataset, you can visualize the decision boundary to understand how the Support Vector Classifier separates different classes.

# Example visualization for a two-feature dataset
plt.scatter(X_test[y_test == 0][:, 0], X_test[y_test == 0][:, 1], color='red', label='Class 0')
plt.scatter(X_test[y_test == 1][:, 0], X_test[y_test == 1][:, 1], color='blue', label='Class 1')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Support Vector Classification (Linear Kernel)')
plt.legend()
plt.show()

Keep in mind that Support Vector Classification can also handle non-linear classification tasks using different kernel functions (e.g., ‘poly’ or ‘rbf’). You may need to tune hyperparameters and choose an appropriate kernel based on your specific problem.

About Machine Learning

Check Also

Naive Bayes Classification

Naive Bayes is a simple yet effective supervised machine learning algorithm commonly used for classification …

Leave a Reply

Your email address will not be published. Required fields are marked *