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.