pyriemann_qiskit.pipelines.QuantumMDMWithRiemannianPipeline

class pyriemann_qiskit.pipelines.QuantumMDMWithRiemannianPipeline(metric={'distance': 'qlogeuclid_hull', 'mean': 'logeuclid'}, quantum=True, q_account_token=None, verbose=True, shots=1024, upper_bound=7, regularization=None, classical_optimizer=<qiskit_optimization.algorithms.slsqp_optimizer.SlsqpOptimizer object>, seed=None, qaoa_optimizer=<qiskit_algorithms.optimizers.slsqp.SLSQP object>)[source]

MDM with Riemannian pipeline adapted for cpm metrics.

It can run on classical or quantum optimizer.

Parameters:
  • metric (string | dict, default={"mean": 'logeuclid', "distance": 'qlogeuclid'}) – The type of metric used for centroid and distance estimation.

  • quantum (bool (default: True)) –

    • If true will run on local or remote backend (depending on q_account_token value),

    • If false, will perform classical computing instead.

  • q_account_token (string (default:None)) – If quantum is True and q_account_token provided, the classification task will be running on a IBM quantum backend. If load_account is provided, the classifier will use the previous token saved with IBMProvider.save_account().

  • verbose (bool (default:True)) – If true, will output all intermediate results and logs.

  • shots (int (default:1024)) – Number of repetitions of each circuit, for sampling.

  • upper_bound (int (default: 7)) – The maximum integer value for matrix normalization.

  • regularization (MixinTransformer (defulat: None)) – Additional post-processing to regularize means.

  • classical_optimizer (OptimizationAlgorithm) – An instance of OptimizationAlgorithm [1]

  • seed (int | None, default=None) – Random seed for the simulation and transpilation.

  • qaoa_optimizer (SciPyOptimizer, default=SLSQP()) – An instance of a scipy optimizer to find the optimal weights for the parametric circuit (ansatz).

classes_

list of classes.

Type:

list

Notes

Added in version 0.1.0.

Changed in version 0.2.0: Add regularization parameter. Add classical_optimizer parameter. Change metric, so you can pass the kernel of your choice as when using MDM.

Changed in version 0.3.0: Add seed parameter. Add qaoa_optimizer

See also

QuanticMDM

References

__init__(metric={'distance': 'qlogeuclid_hull', 'mean': 'logeuclid'}, quantum=True, q_account_token=None, verbose=True, shots=1024, upper_bound=7, regularization=None, classical_optimizer=<qiskit_optimization.algorithms.slsqp_optimizer.SlsqpOptimizer object>, seed=None, qaoa_optimizer=<qiskit_algorithms.optimizers.slsqp.SLSQP object>)[source]

Examples using pyriemann_qiskit.pipelines.QuantumMDMWithRiemannianPipeline

Brain-Invaders with illiteracy classification example

Brain-Invaders with illiteracy classification example

Classification of P300 datasets from MOABB using Quantum MDM

Classification of P300 datasets from MOABB using Quantum MDM

Classification of MI datasets from MOABB using MDM and quantum-enhanced MDM

Classification of MI datasets from MOABB using MDM and quantum-enhanced MDM

Multiclass EEG classification with Quantum Pipeline

Multiclass EEG classification with Quantum Pipeline

Plot training curve of VQC and MDM with SPSA

Plot training curve of VQC and MDM with SPSA