LoginSignup
0
0

More than 1 year has passed since last update.

VQC algorithm first Qiskit Machine Learning【Qiskit】

Last updated at Posted at 2022-04-26

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

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0