Launch the interactive walkthrough to discover each component, including the 3D Q-Sphere Lab & Python in Colab.
Master Quantum Kernel Estimation: computing state overlaps |<Phi(x)|Phi(x’)>|^2 to power Quantum Support Vector Machines.
Interactive 3D state vector exploration, unitary transformation gates, and Born rule collapse for Topic 8.6
| Symbol / Term | Meaning | Beginner Interpretation |
|---|---|---|
| Quantum kernel similarity score | Bounded in [0.0, 1.0], where 1.0 is identical and 0.0 is orthogonal | |
| Quantum state of sample | State vector created by feature map | |
| Adjoint feature map for sample x prime | Inverted circuit running the second data point in reverse | |
| All-zero ground state | Reference state measured to determine transition probability overlap |
Computing the quantum kernel similarity between two 1-qubit data points x = 0.2 and x prime = 0.8 with angle feature map U(x) = Ry(2x):
Result: Points x and x prime have a quantum kernel similarity score of 0.6812, populating matrix entry K_12 in the Gram matrix.
For every pair of samples (x_i, x_j), construct circuit U_dagger(x_j) * U(x_i).
Measure probability of measuring bitstring 00...0; this equals K(x_i, x_j).
Pass computed Kernel Matrix into Scikit-Learn SVC(kernel="precomputed") to find optimal support vectors.
Problem: Identifying rare fraudulent transactions hidden in high-dimensional behavioral feature spaces.
Solution: QSVM with ZZ-kernels maps transactions into quantum space, detecting fraud clusters invisible to classical RBF kernels.
Interactive activity component
Construct a ZZFeatureMap, evaluate quantum kernel Gram matrices with FidelityQuantumKernel, and train a Scikit-Learn Support Vector Classifier with precomputed quantum kernel.
For Google Colab or Jupyter notebooks, run this shell command to install the required dependencies:
!pip install qiskit qiskit-machine-learning qiskit-algorithms scikit-learn numpy1 import numpy as np 2 from sklearn.datasets import make_blobs 3 from sklearn.model_selection import train_test_split 4 from sklearn.preprocessing import MinMaxScaler 5 from sklearn.svm import SVC 6 from qiskit.circuit.library import ZZFeatureMap 7 from qiskit.primitives import StatevectorSampler 8 from qiskit_machine_learning.kernels import FidelityQuantumKernel
import numpy as np → NumPy array computation
from sklearn.datasets import make_blobs → Synthetic classification dataset
from sklearn.model_selection import train_test_split → Dataset split utility
from sklearn.preprocessing import MinMaxScaler → Scale features to [0, 2pi]
from sklearn.svm import SVC → Classical Support Vector Classifier
from qiskit.circuit.library import ZZFeatureMap → Quantum ZZ feature map
from qiskit.primitives import StatevectorSampler → Statevector sampler primitive
from qiskit_machine_learning.kernels import FidelityQuantumKernel → Quantum fidelity kernel evaluator
1 # Step 1: Generate synthetic 2-feature dataset and scale to [0, 2*pi] 2 X, y = make_blobs(n_samples=20, centers=2, random_state=42, n_features=2) 3 scaler = MinMaxScaler(feature_range=(0, 2 * np.pi)) 4 X_scaled = scaler.fit_transform(X) 5 X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42) 6 7 # Step 2: Define Quantum Feature Map (ZZFeatureMap with linear entanglement) 8 feature_map = ZZFeatureMap(feature_dimension=2, reps=2, entanglement='linear') 9 10 # Step 3: Initialize StatevectorSampler and FidelityQuantumKernel 11 sampler = StatevectorSampler() 12 quantum_kernel = FidelityQuantumKernel(feature_map=feature_map) 13 14 # Step 4: Compute Quantum Kernel Gram Matrices for Train and Test sets 15 X_train_kernel = quantum_kernel.evaluate(X_train) 16 X_test_kernel = quantum_kernel.evaluate(X_test, X_train) 17 18 # Step 5: Train Classical Support Vector Machine (SVM) with Precomputed Quantum Kernel 19 svm = SVC(kernel="precomputed") 20 svm.fit(X_train_kernel, y_train) 21 22 # Step 6: Evaluate Model Accuracy on Test Set 23 y_pred = svm.predict(X_test_kernel) 24 accuracy = np.mean(y_pred == y_test) 25 print(f"Quantum Kernel SVM Accuracy: {accuracy * 100:.2f}%")
# Step 1: Generate synthetic 2-feature dataset and scale to [0, 2*pi]
Data generation
X, y = make_blobs(n_samples=20, centers=2, random_state=42, n_features=2)
20 samples, 2 classes
scaler = MinMaxScaler(feature_range=(0, 2 * np.pi))
MinMax scaler
X_scaled = scaler.fit_transform(X)
Fit and transform features
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
Train/test split
# Step 2: Define Quantum Feature Map (ZZFeatureMap with linear entanglement)
Feature map
feature_map = ZZFeatureMap(feature_dimension=2, reps=2, entanglement='linear')
2-qubit ZZFeatureMap
# Step 3: Initialize StatevectorSampler and FidelityQuantumKernel
Kernel initialization
sampler = StatevectorSampler()
Sampler primitive
quantum_kernel = FidelityQuantumKernel(feature_map=feature_map)
Fidelity quantum kernel
# Step 4: Compute Quantum Kernel Gram Matrices for Train and Test sets
Kernel evaluation
X_train_kernel = quantum_kernel.evaluate(X_train)
Evaluate N_train x N_train Gram matrix
X_test_kernel = quantum_kernel.evaluate(X_test, X_train)
Evaluate N_test x N_train kernel matrix
# Step 5: Train Classical Support Vector Machine (SVM) with Precomputed Quantum Kernel
SVM training
svm = SVC(kernel="precomputed")
Instantiate SVM with precomputed kernel
svm.fit(X_train_kernel, y_train)
Fit SVM on quantum Gram matrix
# Step 6: Evaluate Model Accuracy on Test Set
Inference & evaluation
y_pred = svm.predict(X_test_kernel)
Predict test classes
accuracy = np.mean(y_pred == y_test)
Calculate classification accuracy
print(f"Quantum Kernel SVM Accuracy: {accuracy * 100:.2f}%")
Print accuracy
Click "Copy for Colab", open Google Colab, paste into a single cell, and run.
1 # ========================================================= 2 # Quantum Kernel Support Vector Machine in Qiskit Machine Learning 3 # Prepared for Google Colab (Run with Shift + Enter) 4 # ========================================================= 5 6 # Step 1: Install required packages 7 !pip install qiskit qiskit-machine-learning qiskit-algorithms scikit-learn numpy 8 9 # Step 2: Import libraries 10 import numpy as np 11 from sklearn.datasets import make_blobs 12 from sklearn.model_selection import train_test_split 13 from sklearn.preprocessing import MinMaxScaler 14 from sklearn.svm import SVC 15 from qiskit.circuit.library import ZZFeatureMap 16 from qiskit.primitives import StatevectorSampler 17 from qiskit_machine_learning.kernels import FidelityQuantumKernel 18 19 # Step 3: Run Demonstration 20 # Step 1: Generate synthetic 2-feature dataset and scale to [0, 2*pi] 21 X, y = make_blobs(n_samples=20, centers=2, random_state=42, n_features=2) 22 scaler = MinMaxScaler(feature_range=(0, 2 * np.pi)) 23 X_scaled = scaler.fit_transform(X) 24 X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42) 25 26 # Step 2: Define Quantum Feature Map (ZZFeatureMap with linear entanglement) 27 feature_map = ZZFeatureMap(feature_dimension=2, reps=2, entanglement='linear') 28 29 # Step 3: Initialize StatevectorSampler and FidelityQuantumKernel 30 sampler = StatevectorSampler() 31 quantum_kernel = FidelityQuantumKernel(feature_map=feature_map) 32 33 # Step 4: Compute Quantum Kernel Gram Matrices for Train and Test sets 34 X_train_kernel = quantum_kernel.evaluate(X_train) 35 X_test_kernel = quantum_kernel.evaluate(X_test, X_train) 36 37 # Step 5: Train Classical Support Vector Machine (SVM) with Precomputed Quantum Kernel 38 svm = SVC(kernel="precomputed") 39 svm.fit(X_train_kernel, y_train) 40 41 # Step 6: Evaluate Model Accuracy on Test Set 42 y_pred = svm.predict(X_test_kernel) 43 accuracy = np.mean(y_pred == y_test) 44 print(f"Quantum Kernel SVM Accuracy: {accuracy * 100:.2f}%")
Classical 2D data vectors are scaled into [0, 2pi] angles and mapped into 2-qubit Hilbert space via ZZFeatureMap.
FidelityQuantumKernel computes inner product overlaps |<psi(xi)|psi(xj)>|^2 between all pairs of data vectors.
A classical Support Vector Classifier finds the optimal separating maximum-margin hyperplane in Hilbert space with 100% accuracy.
20 synthetic data samples with 2 continuous features and binary labels
Quantum Kernel SVM Accuracy: 100.00%
The quantum kernel projects non-linearly separable data into an entangled Hilbert state space where classical hyperplanes can separate classes with high accuracy and zero barren plateau risk.
Quantum feature maps, FidelityQuantumKernel Gram matrix evaluation, and classical Support Vector Machine (SVM) training.
Test your understanding with these questions. Remember, this is for learning, not examination!