QuantumKernel¶
- class QuantumKernel(feature_map=None, enforce_psd=True, batch_size=900, quantum_instance=None)[source]¶
Bases:
object
Quantum Kernel.
The general task of machine learning is to find and study patterns in data. For many algorithms, the datapoints are better understood in a higher dimensional feature space, through the use of a kernel function:
\[K(x, y) = \langle f(x), f(y)\rangle.\]Here K is the kernel function, x, y are n dimensional inputs. f is a map from n-dimension to m-dimension space. \(\langle x, y \rangle\) denotes the dot product. Usually m is much larger than n.
The quantum kernel algorithm calculates a kernel matrix, given datapoints x and y and feature map f, all of n dimension. This kernel matrix can then be used in classical machine learning algorithms such as support vector classification, spectral clustering or ridge regression.
- Parameters
feature_map (
Optional
[QuantumCircuit
]) – Parameterized circuit to be used as the feature map. If None is given, the ZZFeatureMap is used with two qubits.enforce_psd (
bool
) – Project to closest positive semidefinite matrix if x = y. Only enforced when not using the state vector simulator. Default True.batch_size (
int
) – Number of circuits to batch together for computation. Default 1000.quantum_instance (
Union
[QuantumInstance
,BaseBackend
,Backend
,None
]) – Quantum Instance or Backend
Attributes
Returns feature map
Returns quantum instance
Methods
construct_circuit
(x[, y, measurement, ...])Construct inner product circuit for given datapoints and feature map.
evaluate
(x_vec[, y_vec])Construct kernel matrix for given data and feature map