FidelityQuantumKernel#
- class FidelityQuantumKernel(*, feature_map=None, fidelity=None, enforce_psd=True, evaluate_duplicates='off_diagonal', max_circuits_per_job=None)[source]#
Bases:
BaseKernel
An implementation of the quantum kernel interface based on the
BaseStateFidelity
algorithm.Here, the kernel function is defined as the overlap of two quantum states defined by a parametrized quantum circuit (called feature map):
\[K(x,y) = |\langle \phi(x) | \phi(y) \rangle|^2\]- Parameters:
feature_map (QuantumCircuit | None) – Parameterized circuit to be used as the feature map. If
None
is given,ZZFeatureMap
is used with two qubits. If there’s a mismatch in the number of qubits of the feature map and the number of features in the dataset, then the kernel will try to adjust the feature map to reflect the number of features.fidelity (BaseStateFidelity | None) – An instance of the
BaseStateFidelity
primitive to be used to compute fidelity between states. Default isComputeUncompute
which is created on top of the reference sampler defined bySampler
.enforce_psd (bool) – Project to the closest positive semidefinite matrix if
x = y
. DefaultTrue
.evaluate_duplicates (str) –
Defines a strategy how kernel matrix elements are evaluated if duplicate samples are found. Possible values are:
all
means that all kernel matrix elements are evaluated, even the diagonal ones when training. This may introduce additional noise in the matrix.off_diagonal
when training the matrix diagonal is set to 1, the rest elements are fully evaluated, e.g., for two identical samples in the dataset. When inferring, all elements are evaluated. This is the default value.none
when training the diagonal is set to 1 and if two identical samples are found in the dataset the corresponding matrix element is set to 1. When inferring, matrix elements for identical samples are set to 1.
max_circuits_per_job (int) – Maximum number of circuits per job for the backend. Please check the backend specifications. Use
None
for all entries per job. DefaultNone
.
- Raises:
ValueError – When unsupported value is passed to evaluate_duplicates.
Attributes
- enforce_psd#
Returns
True
if the kernel matrix is required to project to the closest positive semidefinite matrix.
- evaluate_duplicates#
Returns the strategy used by this kernel to evaluate kernel matrix elements if duplicate samples are found.
- feature_map#
Returns the feature map of this kernel.
- fidelity#
Returns the fidelity primitive used by this kernel.
- num_features#
Returns the number of features in this kernel.
Methods
- evaluate(x_vec, y_vec=None)[source]#
Construct kernel matrix for given data.
If y_vec is None, self inner product is calculated.
- Parameters:
x_vec (np.ndarray) – 1D or 2D array of datapoints, NxD, where N is the number of datapoints, D is the feature dimension
y_vec (np.ndarray | None) – 1D or 2D array of datapoints, MxD, where M is the number of datapoints, D is the feature dimension
- Returns:
2D matrix, NxM
- Return type:
np.ndarray