What is VQC algorithm
VQC is Variational quantum classifier.
The variational quantum classifier is a variational algorithm where the measured expectation value is interpreted as the output of a classifier.
Only supports one-hot encoded labels; e.g., data like here
[1, 0, 0], [0, 1, 0], [0, 0, 1]
Multi-label classification is not supported; e.g., data like here
[1, 1, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]
Installation
$ pip install qiskit-machine-learning
Coding
from qiskit import BasicAer
from qiskit.utils import QuantumInstance, algorithm_globals
from qiskit.algorithms.optimizers import COBYLA
from qiskit.circuit.library import TwoLocal, ZZFeatureMap
from qiskit_machine_learning.algorithms import VQC
from qiskit_machine_learning.datasets import ad_hoc_data
seed = 1376
algorithm_globals.random_seed = seed
feature_dim = 2
training_size = 20
test_size = 10
training_features, training_labels, test_features, test_labels = \
ad_hoc_data(
training_size=training_size, test_size=test_size, n=feature_dim, gap=0.3)
feature_map = ZZFeatureMap(feature_dimension=feature_dim, reps=2, entanglement="linear")
ansatz = TwoLocal(feature_map.num_qubits, ['ry', 'rz'], 'cz', reps=3)
vqc = VQC(feature_map=feature_map,
ansatz=ansatz,
optimizer=COBYLA(maxiter=100),
quantum_instance=QuantumInstance(BasicAer.get_backend('statevector_simulator'),
shots=1024,
seed_simulator=seed,
seed_transpiler=seed)
)
vqc.fit(training_features, training_labels)
score = vqc.score(test_features, test_labels)
print(f"Testing accuracy: {score:0.2f}")
Result
=> Testing accuracy: 0.95