qlearnkit.algorithms.qknn package

Submodules

qlearnkit.algorithms.qknn.qknn_base module

class qlearnkit.algorithms.qknn.qknn_base.QNeighborsBase(n_neighbors: int = 3, encoding_map: Optional[qlearnkit.encodings.encoding_map.EncodingMap] = None, quantum_instance: Optional[Union[qiskit.utils.quantum_instance.QuantumInstance, qiskit.providers.basebackend.BaseBackend, qiskit.providers.backend.Backend]] = None)[source]

Bases: qlearnkit.algorithms.quantum_estimator.QuantumEstimator, abc.ABC

fit(X, y)[source]

Fits the model using X as training dataset and y as training labels :param X: training dataset :param y: training labels

qlearnkit.algorithms.qknn.qknn_classifier module

class qlearnkit.algorithms.qknn.qknn_classifier.QKNeighborsClassifier(n_neighbors: int = 3, encoding_map: Optional[qlearnkit.encodings.encoding_map.EncodingMap] = None, quantum_instance: Optional[Union[qiskit.utils.quantum_instance.QuantumInstance, qiskit.providers.basebackend.BaseBackend, qiskit.providers.backend.Backend]] = None)[source]

Bases: sklearn.base.ClassifierMixin, qlearnkit.algorithms.qknn.qknn_base.QNeighborsBase

The Quantum K-Nearest Neighbors algorithm for classification

Note

The naming conventions follow the KNeighborsClassifier from sklearn.neighbors

Example

Classify data using the Iris dataset.

import numpy as np
from qlearnkit.algorithms import QKNeighborsClassifier
from qlearnkit.encodings import AmplitudeEncoding
from qiskit import BasicAer
from qiskit.utils import QuantumInstance, algorithm_globals
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

seed = 42
algorithm_globals.random_seed = seed

quantum_instance = QuantumInstance(BasicAer.get_backend('qasm_simulator'),
                                   shots=1024,
                                   optimization_level=1,
                                   seed_simulator=seed,
                                   seed_transpiler=seed)

encoding_map = AmplitudeEncoding()

# Use iris data set for training and test data
X, y = load_iris(return_X_y=True)

num_features = 2
X = np.asarray([x[0:num_features] for x, y_ in zip(X, y) if y_ != 2])
y = np.asarray([y_ for x, y_ in zip(X, y) if y_ != 2])

qknn = QKNeighborsClassifier(
    n_neighbors=3,
    quantum_instance=quantum_instance,
    encoding_map=encoding_map
)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=seed)
qknn.fit(X_train, y_train)

print(f"Testing accuracy: "
      f"{qknn.score(X_test, y_test):0.2f}")
Testing accuracy: 1.00
predict(X_test: numpy.ndarray) numpy.ndarray[source]

Predict the labels of the provided data.

qlearnkit.algorithms.qknn.qknn_regressor module

class qlearnkit.algorithms.qknn.qknn_regressor.QKNeighborsRegressor(n_neighbors: int = 3, encoding_map: Optional[qlearnkit.encodings.encoding_map.EncodingMap] = None, quantum_instance: Optional[Union[qiskit.utils.quantum_instance.QuantumInstance, qiskit.providers.basebackend.BaseBackend, qiskit.providers.backend.Backend]] = None)[source]

Bases: sklearn.base.RegressorMixin, qlearnkit.algorithms.qknn.qknn_base.QNeighborsBase

The Quantum K-Nearest Neighbors algorithm for regression

Note

The naming conventions follow the KNeighborsRegressor from sklearn.neighbors

predict(X_test: numpy.ndarray) numpy.ndarray[source]

Predict the labels of the provided data.

Module contents

class qlearnkit.algorithms.qknn.QKNeighborsClassifier(n_neighbors: int = 3, encoding_map: Optional[qlearnkit.encodings.encoding_map.EncodingMap] = None, quantum_instance: Optional[Union[qiskit.utils.quantum_instance.QuantumInstance, qiskit.providers.basebackend.BaseBackend, qiskit.providers.backend.Backend]] = None)[source]

Bases: sklearn.base.ClassifierMixin, qlearnkit.algorithms.qknn.qknn_base.QNeighborsBase

The Quantum K-Nearest Neighbors algorithm for classification

Note

The naming conventions follow the KNeighborsClassifier from sklearn.neighbors

Example

Classify data using the Iris dataset.

import numpy as np
from qlearnkit.algorithms import QKNeighborsClassifier
from qlearnkit.encodings import AmplitudeEncoding
from qiskit import BasicAer
from qiskit.utils import QuantumInstance, algorithm_globals
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

seed = 42
algorithm_globals.random_seed = seed

quantum_instance = QuantumInstance(BasicAer.get_backend('qasm_simulator'),
                                   shots=1024,
                                   optimization_level=1,
                                   seed_simulator=seed,
                                   seed_transpiler=seed)

encoding_map = AmplitudeEncoding()

# Use iris data set for training and test data
X, y = load_iris(return_X_y=True)

num_features = 2
X = np.asarray([x[0:num_features] for x, y_ in zip(X, y) if y_ != 2])
y = np.asarray([y_ for x, y_ in zip(X, y) if y_ != 2])

qknn = QKNeighborsClassifier(
    n_neighbors=3,
    quantum_instance=quantum_instance,
    encoding_map=encoding_map
)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=seed)
qknn.fit(X_train, y_train)

print(f"Testing accuracy: "
      f"{qknn.score(X_test, y_test):0.2f}")
Testing accuracy: 1.00
predict(X_test: numpy.ndarray) numpy.ndarray[source]

Predict the labels of the provided data.

class qlearnkit.algorithms.qknn.QKNeighborsRegressor(n_neighbors: int = 3, encoding_map: Optional[qlearnkit.encodings.encoding_map.EncodingMap] = None, quantum_instance: Optional[Union[qiskit.utils.quantum_instance.QuantumInstance, qiskit.providers.basebackend.BaseBackend, qiskit.providers.backend.Backend]] = None)[source]

Bases: sklearn.base.RegressorMixin, qlearnkit.algorithms.qknn.qknn_base.QNeighborsBase

The Quantum K-Nearest Neighbors algorithm for regression

Note

The naming conventions follow the KNeighborsRegressor from sklearn.neighbors

predict(X_test: numpy.ndarray) numpy.ndarray[source]

Predict the labels of the provided data.