|
a |
|
b/Code/All Qiskit, PennyLane QML Nov 23/04a Kernel ML 100% Reg kkawchak.ipynb |
|
|
1 |
{ |
|
|
2 |
"cells": [ |
|
|
3 |
{ |
|
|
4 |
"cell_type": "markdown", |
|
|
5 |
"metadata": {}, |
|
|
6 |
"source": [ |
|
|
7 |
"# Quantum Kernel Machine Learning\n", |
|
|
8 |
"\n", |
|
|
9 |
"## Overview\n", |
|
|
10 |
"\n", |
|
|
11 |
"The general task of machine learning is to find and study patterns in data. For many datasets, the datapoints are better understood in a higher dimensional feature space. This is the fundamental principle behind a series of machine learning algorithms known as *kernel methods*.\n", |
|
|
12 |
"\n", |
|
|
13 |
"In this notebook, you will learn how to define quantum kernels using `qiskit-machine-learning` and how these can be plugged into different algorithms to solve classification and clustering problems.\n", |
|
|
14 |
"\n", |
|
|
15 |
"All examples used in this tutorial are based on this reference paper: [_Supervised learning with quantum enhanced feature spaces_](https://arxiv.org/pdf/1804.11326.pdf).\n", |
|
|
16 |
"\n", |
|
|
17 |
"The content is structured as follows:\n", |
|
|
18 |
"\n", |
|
|
19 |
"1. [Introduction](#1.-Introduction)\n", |
|
|
20 |
"2. [Classification](#2.-Classification)\n", |
|
|
21 |
"3. [Clustering](#3.-Clustering)\n", |
|
|
22 |
"4. [Kernel Principal Components Analysis](#4.-Kernel-Principal-Component-Analysis)\n", |
|
|
23 |
"5. [Conclusion](#5.-Conclusion)" |
|
|
24 |
] |
|
|
25 |
}, |
|
|
26 |
{ |
|
|
27 |
"cell_type": "markdown", |
|
|
28 |
"metadata": {}, |
|
|
29 |
"source": [ |
|
|
30 |
"## 1. Introduction\n", |
|
|
31 |
"\n", |
|
|
32 |
"### 1.1. Kernel Methods for Machine Learning\n", |
|
|
33 |
"\n", |
|
|
34 |
"Kernel methods are a collection of pattern analysis algorithms that use kernel functions to operate in a high-dimensional feature space. The best-known application of kernel methods is in **Support Vector Machines (SVMs)**, supervised learning algorithms commonly used for classification tasks. The main goal of SVMs is to find decision boundaries to separate a given set of data points into classes. When these data spaces are not linearly separable, SVMs can benefit from the use of kernels to find these boundaries.\n", |
|
|
35 |
"\n", |
|
|
36 |
"Formally, decision boundaries are hyperplanes in a high dimensional space. The kernel function implicitly maps input data into this higher dimensional space, where it can be easier to solve the initial problem. In other words, kernels may allow data distributions that were originally non-linearly separable to become a linearly separable problem. This is an effect known as the \"kernel trick\".\n", |
|
|
37 |
"\n", |
|
|
38 |
"There are use-cases for kernel-based unsupervised algorithms too, for example, in the context of clustering. **Spectral Clustering** is a technique where data points are treated as nodes of a graph, and the clustering task is viewed as a graph partitioning problem where nodes are mapped to a space where they can be easily segregated to form clusters.\n", |
|
|
39 |
"\n", |
|
|
40 |
"### 1.2. Kernel Functions\n", |
|
|
41 |
"\n", |
|
|
42 |
"Mathematically, kernel functions follow:\n", |
|
|
43 |
"\n", |
|
|
44 |
"$k(\\vec{x}_i, \\vec{x}_j) = \\langle f(\\vec{x}_i), f(\\vec{x}_j) \\rangle$\n", |
|
|
45 |
"\n", |
|
|
46 |
"where \n", |
|
|
47 |
"* $k$ is the kernel function\n", |
|
|
48 |
"* $\\vec{x}_i, \\vec{x}_j$ are $n$ dimensional inputs\n", |
|
|
49 |
"* $f$ is a map from $n$-dimension to $m$-dimension space and \n", |
|
|
50 |
"* $\\langle a,b \\rangle$ denotes the inner product\n", |
|
|
51 |
"\n", |
|
|
52 |
"When considering finite data, a kernel function can be represented as a matrix: \n", |
|
|
53 |
"\n", |
|
|
54 |
"$K_{ij} = k(\\vec{x}_i,\\vec{x}_j)$.\n", |
|
|
55 |
"\n", |
|
|
56 |
"### 1.3. Quantum Kernels\n", |
|
|
57 |
"\n", |
|
|
58 |
"The main idea behind quantum kernel machine learning is to leverage quantum feature maps to perform the kernel trick. In this case, the quantum kernel is created by mapping a classical feature vector $\\vec{x}$ to a Hilbert space using a quantum feature map $\\phi(\\vec{x})$. Mathematically:\n", |
|
|
59 |
"\n", |
|
|
60 |
"$K_{ij} = \\left| \\langle \\phi(\\vec{x}_i)| \\phi(\\vec{x}_j) \\rangle \\right|^{2}$\n", |
|
|
61 |
"\n", |
|
|
62 |
"where \n", |
|
|
63 |
"* $K_{ij}$ is the kernel matrix\n", |
|
|
64 |
"* $\\vec{x}_i, \\vec{x}_j$ are $n$ dimensional inputs\n", |
|
|
65 |
"* $\\phi(\\vec{x})$ is the quantum feature map\n", |
|
|
66 |
"* $\\left| \\langle a|b \\rangle \\right|^{2}$ denotes the overlap of two quantum states $a$ and $b$\n", |
|
|
67 |
"\n", |
|
|
68 |
"Quantum kernels can be plugged into common classical kernel learning algorithms such as SVMs or clustering algorithms, as you will see in the examples below. They can also be leveraged in new quantum kernel methods like [QSVC](https://qiskit.org/ecosystem/machine-learning/stubs/qiskit_machine_learning.algorithms.QSVC.html) class provided by `qiskit-machine-learning` which is explored in this tutorial, and other methods as shown in later tutorials on [Pegasos QSVC](07_pegasos_qsvc.ipynb) and [Quantum Kernel Training](08_quantum_kernel_trainer.ipynb).\n", |
|
|
69 |
"\n", |
|
|
70 |
"***\n", |
|
|
71 |
"\n", |
|
|
72 |
"Before introducing any example, we set up the global seed to ensure reproducibility:" |
|
|
73 |
] |
|
|
74 |
}, |
|
|
75 |
{ |
|
|
76 |
"cell_type": "code", |
|
|
77 |
"execution_count": 213, |
|
|
78 |
"metadata": {}, |
|
|
79 |
"outputs": [], |
|
|
80 |
"source": [ |
|
|
81 |
"from qiskit.utils import algorithm_globals\n", |
|
|
82 |
"\n", |
|
|
83 |
"algorithm_globals.random_seed = 12345" |
|
|
84 |
] |
|
|
85 |
}, |
|
|
86 |
{ |
|
|
87 |
"cell_type": "markdown", |
|
|
88 |
"metadata": {}, |
|
|
89 |
"source": [ |
|
|
90 |
"## 2. Classification\n", |
|
|
91 |
"\n", |
|
|
92 |
"This section illustrates a quantum kernel classification workflow using `qiskit-machine-learning`." |
|
|
93 |
] |
|
|
94 |
}, |
|
|
95 |
{ |
|
|
96 |
"cell_type": "markdown", |
|
|
97 |
"metadata": {}, |
|
|
98 |
"source": [ |
|
|
99 |
"### 2.1. Defining the dataset" |
|
|
100 |
] |
|
|
101 |
}, |
|
|
102 |
{ |
|
|
103 |
"cell_type": "markdown", |
|
|
104 |
"metadata": {}, |
|
|
105 |
"source": [ |
|
|
106 |
"For this example, we will use the _ad hoc dataset_ as described in the reference [paper](https://arxiv.org/pdf/1804.11326.pdf). \n", |
|
|
107 |
"\n", |
|
|
108 |
"We can define the dataset dimension and get our train and test subsets:" |
|
|
109 |
] |
|
|
110 |
}, |
|
|
111 |
{ |
|
|
112 |
"cell_type": "code", |
|
|
113 |
"execution_count": 214, |
|
|
114 |
"metadata": {}, |
|
|
115 |
"outputs": [], |
|
|
116 |
"source": [ |
|
|
117 |
"from qiskit_machine_learning.datasets import ad_hoc_data\n", |
|
|
118 |
"\n", |
|
|
119 |
"adhoc_dimension = 2\n", |
|
|
120 |
"train_features, train_labels, test_features, test_labels, adhoc_total = ad_hoc_data(\n", |
|
|
121 |
" training_size=20,\n", |
|
|
122 |
" test_size=5,\n", |
|
|
123 |
" n=adhoc_dimension,\n", |
|
|
124 |
" gap=0.3,\n", |
|
|
125 |
" plot_data=False,\n", |
|
|
126 |
" one_hot=False,\n", |
|
|
127 |
" include_sample_total=True,\n", |
|
|
128 |
")" |
|
|
129 |
] |
|
|
130 |
}, |
|
|
131 |
{ |
|
|
132 |
"cell_type": "markdown", |
|
|
133 |
"metadata": {}, |
|
|
134 |
"source": [ |
|
|
135 |
"This dataset is two-dimensional, the two features are represented by the $x$ and $y$ coordinates, and it has two class labels: A and B. We can plot it and see what the distribution looks like. We define utility functions to plot the dataset." |
|
|
136 |
] |
|
|
137 |
}, |
|
|
138 |
{ |
|
|
139 |
"cell_type": "code", |
|
|
140 |
"execution_count": 215, |
|
|
141 |
"metadata": {}, |
|
|
142 |
"outputs": [], |
|
|
143 |
"source": [ |
|
|
144 |
"import matplotlib.pyplot as plt\n", |
|
|
145 |
"import numpy as np\n", |
|
|
146 |
"\n", |
|
|
147 |
"\n", |
|
|
148 |
"def plot_features(ax, features, labels, class_label, marker, face, edge, label):\n", |
|
|
149 |
" # A train plot\n", |
|
|
150 |
" ax.scatter(\n", |
|
|
151 |
" # x coordinate of labels where class is class_label\n", |
|
|
152 |
" features[np.where(labels[:] == class_label), 0],\n", |
|
|
153 |
" # y coordinate of labels where class is class_label\n", |
|
|
154 |
" features[np.where(labels[:] == class_label), 1],\n", |
|
|
155 |
" marker=marker,\n", |
|
|
156 |
" facecolors=face,\n", |
|
|
157 |
" edgecolors=edge,\n", |
|
|
158 |
" label=label,\n", |
|
|
159 |
" )\n", |
|
|
160 |
"\n", |
|
|
161 |
"\n", |
|
|
162 |
"def plot_dataset(train_features, train_labels, test_features, test_labels, adhoc_total):\n", |
|
|
163 |
"\n", |
|
|
164 |
" plt.figure(figsize=(5, 5))\n", |
|
|
165 |
" plt.ylim(0, 2 * np.pi)\n", |
|
|
166 |
" plt.xlim(0, 2 * np.pi)\n", |
|
|
167 |
" plt.imshow(\n", |
|
|
168 |
" np.asmatrix(adhoc_total).T,\n", |
|
|
169 |
" interpolation=\"nearest\",\n", |
|
|
170 |
" origin=\"lower\",\n", |
|
|
171 |
" cmap=\"RdBu\",\n", |
|
|
172 |
" extent=[0, 2 * np.pi, 0, 2 * np.pi],\n", |
|
|
173 |
" )\n", |
|
|
174 |
"\n", |
|
|
175 |
" # A train plot\n", |
|
|
176 |
" plot_features(plt, train_features, train_labels, 0, \"s\", \"w\", \"b\", \"A train\")\n", |
|
|
177 |
"\n", |
|
|
178 |
" # B train plot\n", |
|
|
179 |
" plot_features(plt, train_features, train_labels, 1, \"o\", \"w\", \"r\", \"B train\")\n", |
|
|
180 |
"\n", |
|
|
181 |
" # A test plot\n", |
|
|
182 |
" plot_features(plt, test_features, test_labels, 0, \"s\", \"b\", \"w\", \"A test\")\n", |
|
|
183 |
"\n", |
|
|
184 |
" # B test plot\n", |
|
|
185 |
" plot_features(plt, test_features, test_labels, 1, \"o\", \"r\", \"w\", \"B test\")\n", |
|
|
186 |
"\n", |
|
|
187 |
" plt.legend(bbox_to_anchor=(1.05, 1), loc=\"upper left\", borderaxespad=0.0)\n", |
|
|
188 |
" plt.title(\"Ad hoc dataset\")\n", |
|
|
189 |
"\n", |
|
|
190 |
" plt.show()" |
|
|
191 |
] |
|
|
192 |
}, |
|
|
193 |
{ |
|
|
194 |
"cell_type": "markdown", |
|
|
195 |
"metadata": {}, |
|
|
196 |
"source": [ |
|
|
197 |
"Now we actually plot the dataset for classification:" |
|
|
198 |
] |
|
|
199 |
}, |
|
|
200 |
{ |
|
|
201 |
"cell_type": "code", |
|
|
202 |
"execution_count": 216, |
|
|
203 |
"metadata": { |
|
|
204 |
"tags": [ |
|
|
205 |
"nbsphinx-thumbnail" |
|
|
206 |
] |
|
|
207 |
}, |
|
|
208 |
"outputs": [ |
|
|
209 |
{ |
|
|
210 |
"data": { |
|
|
211 |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhsAAAHDCAYAAACNothiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABcWklEQVR4nO3dfVxUZdoH8N+ZGRlABMEgMF+wQMVQ8SUlTdPSxETTMqrVfdSn9nF7LDNznxXZLXVVajcrt1qzMm3TclkTdWHzbUsrI18yVFZKMN+2IDSVAcnRmTnPHwMjA8PMHGbOnDMzv+/nw0fmzJkz95kzM1ze13XftyCKoggiIiIimWiUbgAREREFNgYbREREJCsGG0RERCQrBhtEREQkKwYbREREJCsGG0RERCQrBhtEREQkKwYbREREJCsGG0RERCQrBhvk99auXQtBEHDq1Cmn+02fPh0RERG+aVQrTZ8+HYmJiUo3g4jIqxhskGr85S9/gSAIGDx4sNJN8UvLli3D5s2blW4GAODYsWNYuHChywCQiIIDgw1SjfXr1yMxMRH79+9HeXm50s3xO2oLNhYtWsRgg4gAMNgglTh58iS++OILvPTSS4iNjcX69euVbhIREXkJgw1ShfXr1yM6Ohrjxo3D5MmTWww2/v3vf+Ouu+5CWFgYOnXqhCVLlsBisUh6ru+//x4TJ05EREQEYmNjMW/ePJjNZrt9Ll++jGeeeQadO3eGXq9Hjx498OKLL8LRIsnr1q3DoEGDEB4ejujoaAwfPhw7duxw2Y7NmzcjNTUVoaGhSE1NRX5+vsP9XnzxRQwZMgQdOnRAWFgYBgwYgI0bN9rtIwgCLl++jHfffReCIEAQBEyfPh0AcPr0afzv//4vevTogbCwMHTo0AEPPvhgs16Ha9euYdGiRUhOTkZoaCg6dOiAO+64Azt37rTb75tvvsHkyZMRExOD0NBQDBw4EFu3brXdv3btWjz44IMAgJEjR9ras3v3bpevCREFJp3SDSACrMHG/fffj5CQEDzyyCNYuXIlDhw4gNtuu822T2VlJUaOHAmTyYT58+ejbdu2ePPNNxEWFub285jNZowZMwaDBw/Giy++iF27dmH58uW45ZZb8PjjjwMARFHEhAkT8Mknn+DRRx9FWloatm/fjt/85jf4/vvv8fLLL9uOt2jRIixcuBBDhgzB4sWLERISgn379uHjjz/GPffc02I7duzYgQceeAC9evVCbm4ufvrpJ8yYMQOdOnVqtu+KFSswYcIETJkyBVevXsWGDRvw4IMPoqCgAOPGjQMAvPfee3jssccwaNAg/M///A8A4JZbbgEAHDhwAF988QUefvhhdOrUCadOncLKlSsxYsQIHDt2DOHh4QCAhQsXIjc313Ycg8GAgwcP4tChQxg9ejQAa7A3dOhQ3HTTTbZrkJeXh4kTJ+LDDz/EpEmTMHz4cMyePRt//vOfsWDBAqSkpACA7V8iCkIikcIOHjwoAhB37twpiqIoWiwWsVOnTuJTTz1lt9+cOXNEAOK+ffts26qqqsSoqCgRgHjy5EmnzzNt2jQRgLh48WK77f369RMHDBhgu71582YRgLhkyRK7/SZPniwKgiCWl5eLoiiKZWVlokajESdNmiSazWa7fS0Wi9O2pKWliQkJCeKlS5ds23bs2CECELt27Wq3b11dnd3tq1eviqmpqeJdd91lt71t27bitGnTmj1X08eLoigWFRWJAMS//vWvtm19+/YVx40b57Tdd999t9i7d2/xypUrtm0Wi0UcMmSImJycbNv297//XQQgfvLJJ06PR0TBgWkUUtz69etx4403YuTIkQCsKYGHHnoIGzZssEtv/POf/0R6ejoGDRpk2xYbG4spU6ZIer5f//rXdreHDRuG7777zu55tFotZs+ebbffM888A1EU8dFHHwGwpkEsFgueffZZaDT2HyVBEFp8/oqKChQXF2PatGmIioqybR89ejR69erVbP/GPTcXL15EdXU1hg0bhkOHDrlxtvaPv3btGn766SckJSWhffv2dsdo3749/v3vf6OsrMzhcS5cuICPP/4YWVlZqKmpwfnz53H+/Hn89NNPGDNmDMrKyvD999+71SYiCi4MNkhRZrMZGzZswMiRI3Hy5EmUl5ejvLwcgwcPxo8//oh//etftn1Pnz6N5OTkZsfo0aOH288XGhqK2NhYu23R0dG4ePGi3fN07NgR7dq1s9uvIQ1w+vRpAMCJEyeg0WgcBgjONDze3XMpKChAeno6QkNDERMTg9jYWKxcuRLV1dVuPd/PP/+MZ5991lZ/csMNNyA2NhaXLl2yO8bixYtx6dIldO/eHb1798ZvfvMbHDlyxHZ/eXk5RFHE73//e8TGxtr9PPfccwCAqqoqSa8F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bAQRASKSYUQkzDBAizLoIYJV9ETuEC0WHN/zJcxms9JNIfI7rQo2Xn/9dfzpT39CZWUl+vbti1dffRWDBg3ydtscknNabldzckitR3CWX/V2LYOrGo401CFLZ0CM6fqSURd0euSZIlGM8FY/b7BOh03qImddkqv3tJx1SXLWaHj6mvGzTlJITqP87W9/w9y5c/Hcc8/h0KFD6Nu3L8aMGYOqquBbetpfpKEOM3EO0RmjgaIioKYGKCpC9JhRmIlzSEOd0k0kIqIAJjnYeOmll/CrX/0KM2bMQK9evfDGG28gPDwc77zzjhztI0+ZzcjSGYDMTAhbttit7SBs3QqMG4csnQECOE8AERHJQ1Ia5erVq/jqq6+QnZ1t26bRaDBq1CgUNarSbsxoNMJovN51X11dDQCoqalpTXubtwnyFWgZDAan94tm50PenD3e1WM91fDcmr17oTcZUTNnDlBb23zHOXOgKyxEZ/yMcoR67XkbyHmerq5PoPDme9zT97RaND0PNX8PyPncnvD0NWtt2xq++zkRWnARRAlX/IcffsBNN92EL774Arfffrtt+//93/9hz5492LdvX7PHLFy4EIsWLfJOa4mIKCCcPXsWnTp1UroZ5COyj0bJzs7G3LlzbbcvXbqErl274syZM4iKipL76VXBYDCgc+fOOHv2LCIjI5Vujk/wnIPjnIHgPG+ec+vPWRRF1NTUoGPHjl5sHamdpGDjhhtugFarxY8//mi3/ccff0R8fLzDx+j1euj1+mbbo6KiguZD2iAyMpLnHASC8ZyB4DxvnnPrBMt/NOk6SQWiISEhGDBgAP71r3/ZtlksFvzrX/+yS6sQERERNZCcRpk7dy6mTZuGgQMHYtCgQXjllVdw+fJlzJgxQ472ERERkZ+THGw89NBDOHfuHJ599llUVlYiLS0N27Ztw4033ujW4/V6PZ577jmHqZVAxXMODsF4zkBwnjfPmUgaSaNRiIiIiKTiQmxEREQkKwYbREREJCsGG0RERCQrBhtEREQkK58GG6+//joSExMRGhqKwYMHY//+/b58ep/79NNPMX78eHTs2BGCIGDz5s1KN0l2ubm5uO2229CuXTvExcVh4sSJ+Pbbb5VulqxWrlyJPn362CY7uv322/HRRx8p3Syfev755yEIAubMmaN0U2S1cOFCCIJg99OzZ0+lmyW777//HlOnTkWHDh0QFhaG3r174+DBg0o3i/yIz4KNYFya/vLly+jbty9ef/11pZviM3v27MGsWbPw5ZdfYufOnbh27RruueceXL58WemmyaZTp054/vnn8dVXX+HgwYO46667cN999+Hf//630k3ziQMHDmDVqlXo06eP0k3xiVtvvRUVFRW2n88//1zpJsnq4sWLGDp0KNq0aYOPPvoIx44dw/LlyxEdHa1008ifiD4yaNAgcdasWbbbZrNZ7Nixo5ibm+urJigKgJifn690M3yuqqpKBCDu2bNH6ab4VHR0tPj2228r3QzZ1dTUiMnJyeLOnTvFO++8U3zqqaeUbpKsnnvuObFv375KN8Onfvvb34p33HGH0s0gP+eTno2GpelHjRpl2+ZqaXoKDNXV1QCAmJgYhVviG2azGRs2bMDly5eDYgr/WbNmYdy4cXaf7UBXVlaGjh074uabb8aUKVNw5swZpZskq61bt2LgwIF48MEHERcXh379+uGtt95SulnkZ3wSbJw/fx5ms7nZLKM33ngjKisrfdEEUoDFYsGcOXMwdOhQpKamKt0cWR09ehQRERHQ6/X49a9/jfz8fPTq1UvpZslqw4YNOHToEHJzc5Vuis8MHjwYa9euxbZt27By5UqcPHkSw4YNQ01NjdJNk813332HlStXIjk5Gdu3b8fjjz+O2bNn491331W6aeRHZF9inoLXrFmzUFJSEvA5bQDo0aMHiouLUV1djY0bN2LatGnYs2dPwAYcZ8+exVNPPYWdO3ciNDRU6eb4zNixY22/9+nTB4MHD0bXrl2Rl5eHRx99VMGWycdisWDgwIFYtmwZAKBfv34oKSnBG2+8gWnTpincOvIXPunZaM3S9OTfnnjiCRQUFOCTTz5Bp06dlG6O7EJCQpCUlIQBAwYgNzcXffv2xYoVK5Rulmy++uorVFVVoX///tDpdNDpdNizZw/+/Oc/Q6fTwWw2K91En2jfvj26d++O8vJypZsim4SEhGZBc0pKSsCnj8i7fBJscGn64CGKIp544gnk5+fj448/Rrdu3ZRukiIsFguMRqPSzZDN3XffjaNHj6K4uNj2M3DgQEyZMgXFxcXQarVKN9EnamtrceLECSQkJCjdFNkMHTq02fD148ePo2vXrgq1iPyRz9Iowbg0fW1trd3/eE6ePIni4mLExMSgS5cuCrZMPrNmzcL777+PLVu2oF27draanKioKISFhSncOnlkZ2dj7Nix6NKlC2pqavD+++9j9+7d2L59u9JNk027du2a1eG0bdsWHTp0COj6nHnz5mH8+PHo2rUrfvjhBzz33HPQarV45JFHlG6abJ5++mkMGTIEy5YtQ1ZWFvbv348333wTb775ptJNI3/iy6Evr776qtilSxcxJCREHDRokPjll1/68ul97pNPPhEBNPuZNm2a0k2TjaPzBSCuWbNG6abJ5r//+7/Frl27iiEhIWJsbKx49913izt27FC6WT4XDENfH3roITEhIUEMCQkRb7rpJvGhhx4Sy8vLlW6W7P7xj3+Iqampol6vF3v27Cm++eabSjeJ/AyXmCciIiJZcW0UIiIikhWDDSIiIpIVgw0iIiKSFYMNIiIikhWDDSIiIpIVgw0iIiKSFYMNIiIikhWDDSIiIpIVgw0iIiKSFYMNIiIikhWDDSIiIpIVgw0iIiKS1f8DgjhSMjBCIRkAAAAASUVORK5CYII=\n", |
|
|
212 |
"text/plain": [ |
|
|
213 |
"<Figure size 500x500 with 1 Axes>" |
|
|
214 |
] |
|
|
215 |
}, |
|
|
216 |
"metadata": {}, |
|
|
217 |
"output_type": "display_data" |
|
|
218 |
} |
|
|
219 |
], |
|
|
220 |
"source": [ |
|
|
221 |
"plot_dataset(train_features, train_labels, test_features, test_labels, adhoc_total)" |
|
|
222 |
] |
|
|
223 |
}, |
|
|
224 |
{ |
|
|
225 |
"cell_type": "markdown", |
|
|
226 |
"metadata": {}, |
|
|
227 |
"source": [ |
|
|
228 |
"### 2.2. Defining the quantum kernel\n", |
|
|
229 |
"\n", |
|
|
230 |
"The next step is to create a quantum kernel instance that will help classify this data. \n", |
|
|
231 |
"\n", |
|
|
232 |
"We use the [FidelityQuantumKernel](https://qiskit.org/ecosystem/machine-learning/stubs/qiskit_machine_learning.kernels.FidelityQuantumKernel.html) class, and pass two input arguments to its constructor: \n", |
|
|
233 |
"\n", |
|
|
234 |
"1. `feature_map`: in this case, a two-qubit [ZZFeatureMap](https://qiskit.org/documentation/stubs/qiskit.circuit.library.ZZFeatureMap.html).\n", |
|
|
235 |
"\n", |
|
|
236 |
"2. `fidelity`: in this case, the [ComputeUncompute](https://qiskit.org/documentation/stubs/qiskit.algorithms.state_fidelities.ComputeUncompute.html) fidelity subroutine that leverages the [Sampler](https://qiskit.org/documentation/stubs/qiskit.primitives.Sampler.html) primitive.\n", |
|
|
237 |
"\n", |
|
|
238 |
"**NOTE:** If you don't pass a `Sampler` or `Fidelity` instance, then the instances of the reference `Sampler` and `ComputeUncompute` classes (found in `qiskit.primitives`) will be created by default." |
|
|
239 |
] |
|
|
240 |
}, |
|
|
241 |
{ |
|
|
242 |
"cell_type": "code", |
|
|
243 |
"execution_count": 217, |
|
|
244 |
"metadata": {}, |
|
|
245 |
"outputs": [], |
|
|
246 |
"source": [ |
|
|
247 |
"from qiskit.circuit.library import ZZFeatureMap\n", |
|
|
248 |
"from qiskit.primitives import Sampler\n", |
|
|
249 |
"from qiskit.algorithms.state_fidelities import ComputeUncompute\n", |
|
|
250 |
"from qiskit_machine_learning.kernels import FidelityQuantumKernel\n", |
|
|
251 |
"\n", |
|
|
252 |
"adhoc_feature_map = ZZFeatureMap(feature_dimension=adhoc_dimension, reps=2, entanglement=\"linear\")\n", |
|
|
253 |
"\n", |
|
|
254 |
"sampler = Sampler()\n", |
|
|
255 |
"\n", |
|
|
256 |
"fidelity = ComputeUncompute(sampler=sampler)\n", |
|
|
257 |
"\n", |
|
|
258 |
"adhoc_kernel = FidelityQuantumKernel(fidelity=fidelity, feature_map=adhoc_feature_map)" |
|
|
259 |
] |
|
|
260 |
}, |
|
|
261 |
{ |
|
|
262 |
"cell_type": "markdown", |
|
|
263 |
"metadata": {}, |
|
|
264 |
"source": [ |
|
|
265 |
"### 2.3. Classification with SVC\n", |
|
|
266 |
"The quantum kernel can now be plugged into classical kernel methods, such as the [SVC](https://scikit-learn.org/stable/modules/svm.html) algorithm from `scikit-learn`. This algorithm allows us to define a [custom kernel](https://scikit-learn.org/stable/modules/svm.html#custom-kernels) in two ways:\n", |
|
|
267 |
"\n", |
|
|
268 |
"1. by providing the kernel as a **callable function**\n", |
|
|
269 |
"2. by precomputing the **kernel matrix**" |
|
|
270 |
] |
|
|
271 |
}, |
|
|
272 |
{ |
|
|
273 |
"cell_type": "markdown", |
|
|
274 |
"metadata": {}, |
|
|
275 |
"source": [ |
|
|
276 |
"#### Kernel as a callable function\n", |
|
|
277 |
"\n", |
|
|
278 |
"We define a SVC model and directly pass the `evaluate` function of the quantum kernel as a callable. Once the model is created, we train it by calling the `fit` method on the training dataset and evaluate the model for accuracy with `score`." |
|
|
279 |
] |
|
|
280 |
}, |
|
|
281 |
{ |
|
|
282 |
"cell_type": "code", |
|
|
283 |
"execution_count": 218, |
|
|
284 |
"metadata": {}, |
|
|
285 |
"outputs": [ |
|
|
286 |
{ |
|
|
287 |
"name": "stdout", |
|
|
288 |
"output_type": "stream", |
|
|
289 |
"text": [ |
|
|
290 |
"Callable kernel classification test score: 1.0\n" |
|
|
291 |
] |
|
|
292 |
} |
|
|
293 |
], |
|
|
294 |
"source": [ |
|
|
295 |
"from sklearn.svm import SVC\n", |
|
|
296 |
"\n", |
|
|
297 |
"adhoc_svc = SVC(kernel=adhoc_kernel.evaluate)\n", |
|
|
298 |
"\n", |
|
|
299 |
"adhoc_svc.fit(train_features, train_labels)\n", |
|
|
300 |
"\n", |
|
|
301 |
"adhoc_score_callable_function = adhoc_svc.score(test_features, test_labels)\n", |
|
|
302 |
"\n", |
|
|
303 |
"print(f\"Callable kernel classification test score: {adhoc_score_callable_function}\")" |
|
|
304 |
] |
|
|
305 |
}, |
|
|
306 |
{ |
|
|
307 |
"cell_type": "markdown", |
|
|
308 |
"metadata": {}, |
|
|
309 |
"source": [ |
|
|
310 |
"#### Precomputed kernel matrix\n", |
|
|
311 |
"\n", |
|
|
312 |
"Instead of passing a function of the quantum kernel as a callable, we can also precompute training and testing kernel matrices before passing them to the `scikit-learn` `SVC` algorithm. \n", |
|
|
313 |
"\n", |
|
|
314 |
"To extract the train and test matrices, we can call `evaluate` on the previously defined kernel and visualize them graphically as follows:" |
|
|
315 |
] |
|
|
316 |
}, |
|
|
317 |
{ |
|
|
318 |
"cell_type": "code", |
|
|
319 |
"execution_count": 219, |
|
|
320 |
"metadata": {}, |
|
|
321 |
"outputs": [ |
|
|
322 |
{ |
|
|
323 |
"data": { |
|
|
324 |
"image/png": "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\n", |
|
|
325 |
"text/plain": [ |
|
|
326 |
"<Figure size 1000x500 with 2 Axes>" |
|
|
327 |
] |
|
|
328 |
}, |
|
|
329 |
"metadata": {}, |
|
|
330 |
"output_type": "display_data" |
|
|
331 |
} |
|
|
332 |
], |
|
|
333 |
"source": [ |
|
|
334 |
"adhoc_matrix_train = adhoc_kernel.evaluate(x_vec=train_features)\n", |
|
|
335 |
"adhoc_matrix_test = adhoc_kernel.evaluate(x_vec=test_features, y_vec=train_features)\n", |
|
|
336 |
"\n", |
|
|
337 |
"fig, axs = plt.subplots(1, 2, figsize=(10, 5))\n", |
|
|
338 |
"\n", |
|
|
339 |
"axs[0].imshow(\n", |
|
|
340 |
" np.asmatrix(adhoc_matrix_train), interpolation=\"nearest\", origin=\"upper\", cmap=\"Blues\"\n", |
|
|
341 |
")\n", |
|
|
342 |
"axs[0].set_title(\"Ad hoc training kernel matrix\")\n", |
|
|
343 |
"\n", |
|
|
344 |
"axs[1].imshow(np.asmatrix(adhoc_matrix_test), interpolation=\"nearest\", origin=\"upper\", cmap=\"Reds\")\n", |
|
|
345 |
"axs[1].set_title(\"Ad hoc testing kernel matrix\")\n", |
|
|
346 |
"\n", |
|
|
347 |
"plt.show()" |
|
|
348 |
] |
|
|
349 |
}, |
|
|
350 |
{ |
|
|
351 |
"cell_type": "markdown", |
|
|
352 |
"metadata": {}, |
|
|
353 |
"source": [ |
|
|
354 |
"To use these matrices, we set the `kernel` parameter of a new `SVC` instance to `\"precomputed\"`. We train the classifier by calling `fit` with the training matrix and training dataset. Once the model is trained, we evaluate it using the test matrix on the test dataset." |
|
|
355 |
] |
|
|
356 |
}, |
|
|
357 |
{ |
|
|
358 |
"cell_type": "code", |
|
|
359 |
"execution_count": 220, |
|
|
360 |
"metadata": {}, |
|
|
361 |
"outputs": [ |
|
|
362 |
{ |
|
|
363 |
"name": "stdout", |
|
|
364 |
"output_type": "stream", |
|
|
365 |
"text": [ |
|
|
366 |
"Precomputed kernel classification test score: 1.0\n" |
|
|
367 |
] |
|
|
368 |
} |
|
|
369 |
], |
|
|
370 |
"source": [ |
|
|
371 |
"adhoc_svc = SVC(kernel=\"precomputed\")\n", |
|
|
372 |
"\n", |
|
|
373 |
"adhoc_svc.fit(adhoc_matrix_train, train_labels)\n", |
|
|
374 |
"\n", |
|
|
375 |
"adhoc_score_precomputed_kernel = adhoc_svc.score(adhoc_matrix_test, test_labels)\n", |
|
|
376 |
"\n", |
|
|
377 |
"print(f\"Precomputed kernel classification test score: {adhoc_score_precomputed_kernel}\")" |
|
|
378 |
] |
|
|
379 |
}, |
|
|
380 |
{ |
|
|
381 |
"cell_type": "markdown", |
|
|
382 |
"metadata": {}, |
|
|
383 |
"source": [ |
|
|
384 |
"### 2.4. Classification with QSVC\n", |
|
|
385 |
"\n", |
|
|
386 |
"`QSVC` is an alternative training algorithm provided by `qiskit-machine-learning` for convenience. It is an extension of `SVC` that takes in a quantum kernel instead of the `kernel.evaluate` method shown before." |
|
|
387 |
] |
|
|
388 |
}, |
|
|
389 |
{ |
|
|
390 |
"cell_type": "code", |
|
|
391 |
"execution_count": 221, |
|
|
392 |
"metadata": {}, |
|
|
393 |
"outputs": [ |
|
|
394 |
{ |
|
|
395 |
"name": "stdout", |
|
|
396 |
"output_type": "stream", |
|
|
397 |
"text": [ |
|
|
398 |
"QSVC classification test score: 1.0\n" |
|
|
399 |
] |
|
|
400 |
} |
|
|
401 |
], |
|
|
402 |
"source": [ |
|
|
403 |
"from qiskit_machine_learning.algorithms import QSVC\n", |
|
|
404 |
"\n", |
|
|
405 |
"qsvc = QSVC(quantum_kernel=adhoc_kernel)\n", |
|
|
406 |
"\n", |
|
|
407 |
"qsvc.fit(train_features, train_labels)\n", |
|
|
408 |
"\n", |
|
|
409 |
"qsvc_score = qsvc.score(test_features, test_labels)\n", |
|
|
410 |
"\n", |
|
|
411 |
"print(f\"QSVC classification test score: {qsvc_score}\")" |
|
|
412 |
] |
|
|
413 |
}, |
|
|
414 |
{ |
|
|
415 |
"cell_type": "markdown", |
|
|
416 |
"metadata": {}, |
|
|
417 |
"source": [ |
|
|
418 |
"### 2.5. Evaluation of models used for classification" |
|
|
419 |
] |
|
|
420 |
}, |
|
|
421 |
{ |
|
|
422 |
"cell_type": "code", |
|
|
423 |
"execution_count": 222, |
|
|
424 |
"metadata": {}, |
|
|
425 |
"outputs": [ |
|
|
426 |
{ |
|
|
427 |
"name": "stdout", |
|
|
428 |
"output_type": "stream", |
|
|
429 |
"text": [ |
|
|
430 |
"Classification Model | Accuracy Score\n", |
|
|
431 |
"---------------------------------------------------------\n", |
|
|
432 |
"SVC using kernel as a callable function | 1.00\n", |
|
|
433 |
"SVC using precomputed kernel matrix | 1.00\n", |
|
|
434 |
"QSVC | 1.00\n" |
|
|
435 |
] |
|
|
436 |
} |
|
|
437 |
], |
|
|
438 |
"source": [ |
|
|
439 |
"print(f\"Classification Model | Accuracy Score\")\n", |
|
|
440 |
"print(f\"---------------------------------------------------------\")\n", |
|
|
441 |
"print(f\"SVC using kernel as a callable function | {adhoc_score_callable_function:10.2f}\")\n", |
|
|
442 |
"print(f\"SVC using precomputed kernel matrix | {adhoc_score_precomputed_kernel:10.2f}\")\n", |
|
|
443 |
"print(f\"QSVC | {qsvc_score:10.2f}\")" |
|
|
444 |
] |
|
|
445 |
}, |
|
|
446 |
{ |
|
|
447 |
"cell_type": "markdown", |
|
|
448 |
"metadata": {}, |
|
|
449 |
"source": [ |
|
|
450 |
"As the classification dataset is small, we find that the three models achieve 100% accuracy." |
|
|
451 |
] |
|
|
452 |
}, |
|
|
453 |
{ |
|
|
454 |
"cell_type": "markdown", |
|
|
455 |
"metadata": {}, |
|
|
456 |
"source": [ |
|
|
457 |
"## 3. Clustering\n", |
|
|
458 |
"\n", |
|
|
459 |
"The second workflow in this tutorial focuses on a clustering task using `qiskit-machine-learning` and the spectral clustering algorithm from `scikit-learn`." |
|
|
460 |
] |
|
|
461 |
}, |
|
|
462 |
{ |
|
|
463 |
"cell_type": "markdown", |
|
|
464 |
"metadata": {}, |
|
|
465 |
"source": [ |
|
|
466 |
"### 3.1. Defining the dataset\n", |
|
|
467 |
"\n", |
|
|
468 |
"We will once again use the _ad hoc dataset_, but now generated with a higher gap of `0.6` (previous example: `0.3`) between the two classes. \n", |
|
|
469 |
"\n", |
|
|
470 |
"Note that clustering falls under the category of unsupervised machine learning, so a test dataset is not required." |
|
|
471 |
] |
|
|
472 |
}, |
|
|
473 |
{ |
|
|
474 |
"cell_type": "code", |
|
|
475 |
"execution_count": 223, |
|
|
476 |
"metadata": {}, |
|
|
477 |
"outputs": [], |
|
|
478 |
"source": [ |
|
|
479 |
"adhoc_dimension = 2\n", |
|
|
480 |
"train_features, train_labels, test_features, test_labels, adhoc_total = ad_hoc_data(\n", |
|
|
481 |
" training_size=25,\n", |
|
|
482 |
" test_size=0,\n", |
|
|
483 |
" n=adhoc_dimension,\n", |
|
|
484 |
" gap=0.6,\n", |
|
|
485 |
" plot_data=False,\n", |
|
|
486 |
" one_hot=False,\n", |
|
|
487 |
" include_sample_total=True,\n", |
|
|
488 |
")" |
|
|
489 |
] |
|
|
490 |
}, |
|
|
491 |
{ |
|
|
492 |
"cell_type": "markdown", |
|
|
493 |
"metadata": {}, |
|
|
494 |
"source": [ |
|
|
495 |
" We plot the clustering dataset below:" |
|
|
496 |
] |
|
|
497 |
}, |
|
|
498 |
{ |
|
|
499 |
"cell_type": "code", |
|
|
500 |
"execution_count": 224, |
|
|
501 |
"metadata": {}, |
|
|
502 |
"outputs": [ |
|
|
503 |
{ |
|
|
504 |
"data": { |
|
|
505 |
"image/png": "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cULExMQIAOLIkSMdPk9eXp4AIJ566im77YMGDRKDBw+23S4tLRUARFFRkd1+t99+u5AkSVRXVwshhKiqqhIajUbcdtttwmQy2e1rNps7bEtGRobo1q2b+Pnnn23btmzZIgCIpKQku33PnTtnd/v8+fNiwIAB4vrrr7fbHhkZKfLy8to8V+vHCyHErl27BADx17/+1bZt4MCBYtKkSR22+4YbbhBXX321aGxstG0zm81i5MiRIjU11bbtvffeEwDEJ5980uHxrJYvXy4AiD179ti2nT9/XnTt2lUMGDBA/PLLL7btGzduFADEE088Ydtm/Wxnz57t0vPdc889QqPR2D1fy9cjhBCffPJJm9eQlJTk8D0eO3asGDt2rO32rbfeKq666qoO2/Dss886PG+PHj0qtFqtmD9/vt32L7/8Uuh0OrvtY8eOFQDEkiVLnLbJ+nrS0tKE0Wi0bX/55ZcFAPHll18KIYQwGo0iPj5eDB06VFy4cMG234oVKwQAu2MSyYld8QpWUlKCyy67DOPHjwdg6Va+8847sXr1arsu8n/84x8YMWIEhg0bZtuWkJDgtMu1tf/5n/+xuz169Gj897//tXserVaLhx56yG6/P/7xjxBC4MMPPwRg6Uo3m8144oknoNHYn2KSJLX7/DU1NSgvL0deXh5iYmJs22+66Sb079+/zf4teyTOnDmDuro6jB49Gvv373fh1do//sKFCzh16hRSUlJwySWX2B3jkksuwVdffYWqqiqHxzl9+jQ+/vhj5Obmor6+Hj/99BN++uknnDp1ChMmTEBVVVWbLnJP7N27FydOnMDvf/97hIWF2bZPmjQJ/fr1Q1lZWZvHWHtdOmI2m1FaWorJkydjyJAhbe7v6LNz1SWXXILvvvsOe/bscfuxH3zwAcxmM3Jzc23v8U8//YTExESkpqbik08+sdtfr9djxowZLh9/xowZdj0So0ePBgDbd2Dv3r04deoU7r//fuh0Fzs7p06ditjYWLdfD5GvMLArlMlkwurVqzF+/HgcOXIE1dXVqK6uxvDhw/Hjjz/io48+su177NgxpKamtjlG3759XX6+sLAwW3enVWxsLM6cOWP3PN27d0dUVJTdftau5GPHjgEADh8+DI1G4zAYd8T6eFdfy8aNGzFixAiEhYUhLi4OCQkJWLx4Merq6lx6vl9++QVPPPGEbbzA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\n", |
|
|
506 |
"text/plain": [ |
|
|
507 |
"<Figure size 500x500 with 1 Axes>" |
|
|
508 |
] |
|
|
509 |
}, |
|
|
510 |
"metadata": {}, |
|
|
511 |
"output_type": "display_data" |
|
|
512 |
} |
|
|
513 |
], |
|
|
514 |
"source": [ |
|
|
515 |
"plt.figure(figsize=(5, 5))\n", |
|
|
516 |
"plt.ylim(0, 2 * np.pi)\n", |
|
|
517 |
"plt.xlim(0, 2 * np.pi)\n", |
|
|
518 |
"plt.imshow(\n", |
|
|
519 |
" np.asmatrix(adhoc_total).T,\n", |
|
|
520 |
" interpolation=\"nearest\",\n", |
|
|
521 |
" origin=\"lower\",\n", |
|
|
522 |
" cmap=\"RdBu\",\n", |
|
|
523 |
" extent=[0, 2 * np.pi, 0, 2 * np.pi],\n", |
|
|
524 |
")\n", |
|
|
525 |
"\n", |
|
|
526 |
"# A label plot\n", |
|
|
527 |
"plot_features(plt, train_features, train_labels, 0, \"s\", \"w\", \"b\", \"B\")\n", |
|
|
528 |
"\n", |
|
|
529 |
"# B label plot\n", |
|
|
530 |
"plot_features(plt, train_features, train_labels, 1, \"o\", \"w\", \"r\", \"B\")\n", |
|
|
531 |
"\n", |
|
|
532 |
"plt.legend(bbox_to_anchor=(1.05, 1), loc=\"upper left\", borderaxespad=0.0)\n", |
|
|
533 |
"plt.title(\"Ad hoc dataset for clustering\")\n", |
|
|
534 |
"\n", |
|
|
535 |
"plt.show()" |
|
|
536 |
] |
|
|
537 |
}, |
|
|
538 |
{ |
|
|
539 |
"cell_type": "markdown", |
|
|
540 |
"metadata": {}, |
|
|
541 |
"source": [ |
|
|
542 |
"### 3.2. Defining the Quantum Kernel\n", |
|
|
543 |
"We use an identical setup as in the classification example. We create another instance of the `FidelityQuantumKernel` class with a `ZZFeatureMap`, but you might notice that in this case we do not provide a `fidelity` instance. This is because the `ComputeUncompute` method provided in the previous case is instantiated by default when the fidelity instance is not provided explicitly. " |
|
|
544 |
] |
|
|
545 |
}, |
|
|
546 |
{ |
|
|
547 |
"cell_type": "code", |
|
|
548 |
"execution_count": 225, |
|
|
549 |
"metadata": {}, |
|
|
550 |
"outputs": [], |
|
|
551 |
"source": [ |
|
|
552 |
"adhoc_feature_map = ZZFeatureMap(feature_dimension=adhoc_dimension, reps=2, entanglement=\"full\")\n", |
|
|
553 |
"\n", |
|
|
554 |
"adhoc_kernel = FidelityQuantumKernel(feature_map=adhoc_feature_map)" |
|
|
555 |
] |
|
|
556 |
}, |
|
|
557 |
{ |
|
|
558 |
"cell_type": "markdown", |
|
|
559 |
"metadata": {}, |
|
|
560 |
"source": [ |
|
|
561 |
"### 3.3. Clustering with the Spectral Clustering Model\n", |
|
|
562 |
"\n", |
|
|
563 |
"The `scikit-learn` spectral clustering algorithm allows us to define a custom kernel in two ways (just like `SVC`):\n", |
|
|
564 |
"\n", |
|
|
565 |
"1. by providing the kernel as a **callable function**\n", |
|
|
566 |
"2. by precomputing the **kernel matrix**. \n", |
|
|
567 |
"\n", |
|
|
568 |
"With the current `FidelityQuantumKernel` class in `qiskit-machine-learning`, we can only use the latter option, so we precompute the kernel matrix by calling `evaluate` and visualize it as follows:" |
|
|
569 |
] |
|
|
570 |
}, |
|
|
571 |
{ |
|
|
572 |
"cell_type": "code", |
|
|
573 |
"execution_count": 226, |
|
|
574 |
"metadata": {}, |
|
|
575 |
"outputs": [ |
|
|
576 |
{ |
|
|
577 |
"data": { |
|
|
578 |
"image/png": "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\n", |
|
|
579 |
"text/plain": [ |
|
|
580 |
"<Figure size 500x500 with 1 Axes>" |
|
|
581 |
] |
|
|
582 |
}, |
|
|
583 |
"metadata": {}, |
|
|
584 |
"output_type": "display_data" |
|
|
585 |
} |
|
|
586 |
], |
|
|
587 |
"source": [ |
|
|
588 |
"adhoc_matrix = adhoc_kernel.evaluate(x_vec=train_features)\n", |
|
|
589 |
"\n", |
|
|
590 |
"plt.figure(figsize=(5, 5))\n", |
|
|
591 |
"plt.imshow(np.asmatrix(adhoc_matrix), interpolation=\"nearest\", origin=\"upper\", cmap=\"Greens\")\n", |
|
|
592 |
"plt.title(\"Ad hoc clustering kernel matrix\")\n", |
|
|
593 |
"plt.show()" |
|
|
594 |
] |
|
|
595 |
}, |
|
|
596 |
{ |
|
|
597 |
"cell_type": "markdown", |
|
|
598 |
"metadata": {}, |
|
|
599 |
"source": [ |
|
|
600 |
"Next, we define a spectral clustering model and fit it using the precomputed kernel. Further, we score the labels using normalized mutual information, since we know the class labels a priori (before hand)." |
|
|
601 |
] |
|
|
602 |
}, |
|
|
603 |
{ |
|
|
604 |
"cell_type": "code", |
|
|
605 |
"execution_count": 227, |
|
|
606 |
"metadata": {}, |
|
|
607 |
"outputs": [ |
|
|
608 |
{ |
|
|
609 |
"name": "stdout", |
|
|
610 |
"output_type": "stream", |
|
|
611 |
"text": [ |
|
|
612 |
"Clustering score: 0.7287008798015754\n" |
|
|
613 |
] |
|
|
614 |
} |
|
|
615 |
], |
|
|
616 |
"source": [ |
|
|
617 |
"from sklearn.cluster import SpectralClustering\n", |
|
|
618 |
"from sklearn.metrics import normalized_mutual_info_score\n", |
|
|
619 |
"\n", |
|
|
620 |
"adhoc_spectral = SpectralClustering(2, affinity=\"precomputed\")\n", |
|
|
621 |
"\n", |
|
|
622 |
"cluster_labels = adhoc_spectral.fit_predict(adhoc_matrix)\n", |
|
|
623 |
"\n", |
|
|
624 |
"cluster_score = normalized_mutual_info_score(cluster_labels, train_labels)\n", |
|
|
625 |
"\n", |
|
|
626 |
"print(f\"Clustering score: {cluster_score}\")" |
|
|
627 |
] |
|
|
628 |
}, |
|
|
629 |
{ |
|
|
630 |
"cell_type": "markdown", |
|
|
631 |
"metadata": {}, |
|
|
632 |
"source": [ |
|
|
633 |
"## 4. Kernel Principal Component Analysis\n", |
|
|
634 |
"\n", |
|
|
635 |
"This section focuses on a Principal Component Analysis task using a kernel PCA algorithm. We calculate a kernel matrix using a `ZZFeatureMap` and show that this approach translates the original features into a new space, where axes are chosen along principal components. In this space the classification task can be performed with a simpler model rather than an SVM." |
|
|
636 |
] |
|
|
637 |
}, |
|
|
638 |
{ |
|
|
639 |
"cell_type": "markdown", |
|
|
640 |
"metadata": {}, |
|
|
641 |
"source": [ |
|
|
642 |
"### 4.1. Defining the dataset\n", |
|
|
643 |
"\n", |
|
|
644 |
"We again use the _ad hoc dataset_ with a gap of `0.6` between the two classes. This dataset resembles the dataset we had in the clustering section, the difference is that in this case `test_size` is not zero." |
|
|
645 |
] |
|
|
646 |
}, |
|
|
647 |
{ |
|
|
648 |
"cell_type": "code", |
|
|
649 |
"execution_count": 228, |
|
|
650 |
"metadata": {}, |
|
|
651 |
"outputs": [], |
|
|
652 |
"source": [ |
|
|
653 |
"adhoc_dimension = 2\n", |
|
|
654 |
"train_features, train_labels, test_features, test_labels, adhoc_total = ad_hoc_data(\n", |
|
|
655 |
" training_size=50,\n", |
|
|
656 |
" test_size=20,\n", |
|
|
657 |
" n=adhoc_dimension,\n", |
|
|
658 |
" gap=0.6,\n", |
|
|
659 |
" plot_data=False,\n", |
|
|
660 |
" one_hot=False,\n", |
|
|
661 |
" include_sample_total=True,\n", |
|
|
662 |
")" |
|
|
663 |
] |
|
|
664 |
}, |
|
|
665 |
{ |
|
|
666 |
"cell_type": "markdown", |
|
|
667 |
"metadata": {}, |
|
|
668 |
"source": [ |
|
|
669 |
"We plot the training and test datasets below. Our ultimate goal in this section is to construct new coordinates where the two classes can be linearly separated." |
|
|
670 |
] |
|
|
671 |
}, |
|
|
672 |
{ |
|
|
673 |
"cell_type": "code", |
|
|
674 |
"execution_count": 229, |
|
|
675 |
"metadata": {}, |
|
|
676 |
"outputs": [ |
|
|
677 |
{ |
|
|
678 |
"data": { |
|
|
679 |
"image/png": "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4MKFC049FkQUGJizQbL65JNPUFtbi40bN2Ljxo1d9hcVFdnMfXCWUql02bk84bPPPsOsWbMwceJEvPLKK0hISEBwcDDWrVuHd99916Fz/PGPf8S6devw0EMP4YYbbkB0dDQEQcCdd95pklw7ceJEfPPNNygtLcVHH32EN998E8899xxeffVV3HvvvcZjFy9ejGnTplm8reTk5J7faSLyOww2SFZFRUWIi4vDyy+/3GXf5s2bsWXLFrz66qsICwtDYmKixS7+kydPurRNiYmJ2LlzJxoaGkx6N77++mvjfkBKwNTr9fjqq68wYsQIp84PwKH78s9//hOhoaHYvn07VCqVcfu6deu6XNfa0M2mTZswf/58rFq1yritpaUFP/30U5djY2Njcc899+Cee+5BY2MjJk6ciGXLluHee+/FNddcAwAIDg7GlClTbN5HW8NIRBR4OIxCsrly5Qo2b96MrKwszJ07t8vP/fffj4aGBuO0yltvvRV79+7F/v37jee4ePGiy2ty3HrrrdDpdHjppZdMtj/33HMQBAHTp08HAGRnZ0OhUGDFihVdpt+KFqbIGiQkJGDEiBF4++23TYYxduzYga+++srkWKVSCUEQTHJXzpw5Y7F4V69evSwGEEqlskt7XnzxxS7TfX/88UeTyxEREUhOToZGowEAxMXFYdKkSXjttddQW1vb5XYuXrxo0hYAFttDRIGHPRskm61bt6KhoQGzZs2yuH/cuHHGAl933HEH/u///g/vvPMOMjMz8eCDDxqnviYmJprkFvTUzJkzMXnyZOTl5eHMmTMYPnw4PvroI5SWluKhhx4yTilNTk5GXl4ennzySUyYMAG33XYbVCoVDhw4gH79+qGwsNDqbRQWFmLGjBn45S9/id/+9re4dOkSXnzxRVx77bVobGw0Hjdjxgw8++yzyMzMxK9//WtcuHABL7/8MpKTk7vc5+uvvx47d+7Es88+i379+mHQoEEYO3YssrKy8M477yA6OhrDhg1DZWUldu7ciT59+phcf9iwYZg0aRKuv/56xMbG4uDBg9i0aRPuv/9+4zEvv/wyfvnLX+K6667D73//e1xzzTX4/vvvUVlZif/85z84cuQIAGDEiBFQKpV4+umncfnyZahUKtx0002Ii4vr8fNDRD5I3skwFMhmzpwphoaGik1NTVaPWbBggRgcHCz+8MMP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o0f3qCFErlC1ZTuOlO5AyoQxiEqIg7r2Aqo/2w9Rr8d8uRtHfi05WcTRoy3GbveTJwX89rf28zGEkEtubhl5m7Vr10Kr1ZokhIqiCJVKhZdeegnR0dFOnS8sLKxL8vv8+fPx448/YvXq1UhMTIRKpcINN9yA1tZWm+fqXAnUcE5XDD87FWzU19cjIyMDkydPxocffoi+ffuiuroaMTExPW4IkauIej1O7d4rdzMoALH0ONmj1Wrx97//HatWrcLUqVNN9mVnZ+O9997DH/7wB4vXDQkJgc4w7cmOiooKvPLKK7j11lsBSKvs/vDDDz1rfA84FWw8/fTTGDBgANatW2fcNmjQIJc3ipxnq/uUyNf58hCAtXoa7qiz0flx4WeCdyorK0N9fT1+97vfdenBuP3227F27VqrwUZSUhL27NmDO++8EyqVCldddZXV20lJScE777yD0aNHQ61W409/+hPCwsJcel+c4dRslK1bt2L06NH41a9+hbi4OIwcORJvvPGGu9pGROSzOudwWJpWacztULbI1kbqKLJm/uOuomtr167FlClTLA6V3H777Th48CCOWlo2GMCKFStw5swZ/PznP0ffvn3t3k59fT1GjRqF3/zmN3jggQcQFxfnkvvQHU71bHz77bdYs2YNHnnkESxduhQHDhzAAw88gJCQEMyfb3lEXKPRQKPpSIBSq9U9azERkQ8wz+Gw5MZ7l0FQXfBco8jI0YRew3Gu8q9//cvqvjFjxtic/jpu3DgcOXLEZNuCBQuwYMGCLseOHDkSBw4cMNk2d+5ck8udbyspKanLbffu3dtltYmcCjb0ej1Gjx6NgoICANKdOX78OF599VWrwUZhYSGWL1/e85YSEfkYezkcDDTkk5ICnDolbwXRQOJUsJGQkIBhw4aZbEtNTcU///lPq9fJzc3FI488YrysVqsxYMAAJ5tJ5jgeS4HMl3M4OnPn1HB702L95THsCQYSnuNUsJGRkYGTJ0+abDt16hQSExOtXkelUkGlYjleIiKiQOVUgujDDz+MvXv3oqCgADU1NXj33Xfx+uuvY9GiRe5qHxEREfk4p4KNX/ziF9iyZQvee+89pKWl4cknn8Tzzz+PefPmuat9RERE5OOcriCalZVls646eYdAHH/1V1x2nFyBORwkJ676SkRERG7FYIOIiIjcisEGERERuRWXmPcR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f//+cjfH7UJCQpCcnIzrr78ehYWFGD58OFavXi13s9zmiy++wIULFzBq1CgEBQUhKCgIu3fvxgsvvICgoCDodDq5m+gRvXv3xuDBg1FTUyN3U9wmISGhS9Ccmprq98NH5FoeCTa4NH3gEEUR999/P7Zs2YJPPvkEgwYNkrtJstDr9dBoNHI3w21uvvlmHDt2DFVVVcaf0aNHY968eaiqqoJSqZS7iR7R2NiIb775BgkJCXI3xW0yMjK6TF8/deoUEhMTZWoR+SKPDaME4tL0jY2NJt94Tp8+jaqqKsTGxmLgwIEytsx9Fi1ahHfffRelpaWIjIw05uRER0cjLCxM5ta5R25uLqZPn46BAweioaEB7777Lnbt2oXt27fL3TS3iYyM7JKH06tXL/Tp08ev83MWL16MmTNnIjExEd999x2eeOIJKJVK3HXXXXI3zW0efvhhjB8/HgUFBcjJycH+/fvx+uuv4/XXX5e7aeRLPDn15cUXXxQHDhwohoSEiGPGjBH37t3ryZv3uE8//VQE0OVn/vz5cjfNbSzdXwDiunXr5G6a2/z2t78VExMTxZCQELFv377izTffLH700UdyN8vjAmHq6x133CEmJCSIISEh4s9+9jPxjjvuEGtqauRultv961//EtPS0kSVSiUOHTpUfP311+VuEvkYLjFPREREbsW1UYiIiMitGGwQERGRWzHYICIiIrdisEFERERuxWCDiIiI3IrBBhEREbkVgw0iIiJyKwYbRERE5FYMNoiIiMitGGwQERGRWzHYICIiIrdisEFERERu9f8BSHvOCc3iY3wAAAAASUVORK5CYII=\n", |
|
|
680 |
"text/plain": [ |
|
|
681 |
"<Figure size 500x500 with 1 Axes>" |
|
|
682 |
] |
|
|
683 |
}, |
|
|
684 |
"metadata": {}, |
|
|
685 |
"output_type": "display_data" |
|
|
686 |
} |
|
|
687 |
], |
|
|
688 |
"source": [ |
|
|
689 |
"plot_dataset(train_features, train_labels, test_features, test_labels, adhoc_total)" |
|
|
690 |
] |
|
|
691 |
}, |
|
|
692 |
{ |
|
|
693 |
"cell_type": "markdown", |
|
|
694 |
"metadata": {}, |
|
|
695 |
"source": [ |
|
|
696 |
"### 4.2. Defining the Quantum Kernel\n", |
|
|
697 |
"\n", |
|
|
698 |
"We proceed with the same kernel setup as it was in the classification task, namely a `ZZFeatureMap` circuit as a feature map and an instance of `FidelityQuantumKernel`." |
|
|
699 |
] |
|
|
700 |
}, |
|
|
701 |
{ |
|
|
702 |
"cell_type": "code", |
|
|
703 |
"execution_count": 230, |
|
|
704 |
"metadata": {}, |
|
|
705 |
"outputs": [], |
|
|
706 |
"source": [ |
|
|
707 |
"feature_map = ZZFeatureMap(feature_dimension=2, reps=2, entanglement=\"linear\")\n", |
|
|
708 |
"qpca_kernel = FidelityQuantumKernel(fidelity=fidelity, feature_map=feature_map)" |
|
|
709 |
] |
|
|
710 |
}, |
|
|
711 |
{ |
|
|
712 |
"cell_type": "markdown", |
|
|
713 |
"metadata": {}, |
|
|
714 |
"source": [ |
|
|
715 |
"Then, we evaluate kernel matrices for the training and test features." |
|
|
716 |
] |
|
|
717 |
}, |
|
|
718 |
{ |
|
|
719 |
"cell_type": "code", |
|
|
720 |
"execution_count": 231, |
|
|
721 |
"metadata": {}, |
|
|
722 |
"outputs": [], |
|
|
723 |
"source": [ |
|
|
724 |
"matrix_train = qpca_kernel.evaluate(x_vec=train_features)\n", |
|
|
725 |
"matrix_test = qpca_kernel.evaluate(x_vec=test_features, y_vec=test_features)" |
|
|
726 |
] |
|
|
727 |
}, |
|
|
728 |
{ |
|
|
729 |
"cell_type": "markdown", |
|
|
730 |
"metadata": {}, |
|
|
731 |
"source": [ |
|
|
732 |
"### 4.3. Comparison of Kernel PCA on gaussian and quantum kernel\n", |
|
|
733 |
"\n", |
|
|
734 |
"In this section we use the `KernelPCA` implementation from `scikit-learn`, with the `kernel` parameter set to \"rbf\" for a gaussian kernel and \"precomputed\" for a quantum kernel. The former is very popular in classical machine learning models, whereas the latter allows using a quantum kernel defined as `qpca_kernel`.\n", |
|
|
735 |
"\n", |
|
|
736 |
"One can observe that the gaussian kernel based Kernel PCA model fails to make the dataset linearly separable, while the quantum kernel succeeds.\n", |
|
|
737 |
"\n", |
|
|
738 |
"While usually PCA is used to reduce the number of features in a dataset, or in other words to reduce dimensionality of a dataset, we don't do that here. Rather we keep the number of dimensions and employ the kernel PCA, mostly for visualization purposes, to show that classification on the transformed dataset becomes easily tractable by linear methods, like logistic regression. We use this method to separate two classes in the principal component space with a `LogisticRegression` model from `scikit-learn`. As usual we train it by calling the `fit` method on the training dataset and evaluate the model for accuracy with `score`." |
|
|
739 |
] |
|
|
740 |
}, |
|
|
741 |
{ |
|
|
742 |
"cell_type": "code", |
|
|
743 |
"execution_count": 232, |
|
|
744 |
"metadata": {}, |
|
|
745 |
"outputs": [], |
|
|
746 |
"source": [ |
|
|
747 |
"from sklearn.decomposition import KernelPCA\n", |
|
|
748 |
"\n", |
|
|
749 |
"kernel_pca_rbf = KernelPCA(n_components=2, kernel=\"rbf\")\n", |
|
|
750 |
"kernel_pca_rbf.fit(train_features)\n", |
|
|
751 |
"train_features_rbf = kernel_pca_rbf.transform(train_features)\n", |
|
|
752 |
"test_features_rbf = kernel_pca_rbf.transform(test_features)\n", |
|
|
753 |
"\n", |
|
|
754 |
"kernel_pca_q = KernelPCA(n_components=2, kernel=\"precomputed\")\n", |
|
|
755 |
"train_features_q = kernel_pca_q.fit_transform(matrix_train)\n", |
|
|
756 |
"test_features_q = kernel_pca_q.fit_transform(matrix_test)" |
|
|
757 |
] |
|
|
758 |
}, |
|
|
759 |
{ |
|
|
760 |
"cell_type": "markdown", |
|
|
761 |
"metadata": {}, |
|
|
762 |
"source": [ |
|
|
763 |
"Here we train and score a model." |
|
|
764 |
] |
|
|
765 |
}, |
|
|
766 |
{ |
|
|
767 |
"cell_type": "code", |
|
|
768 |
"execution_count": 233, |
|
|
769 |
"metadata": {}, |
|
|
770 |
"outputs": [ |
|
|
771 |
{ |
|
|
772 |
"name": "stdout", |
|
|
773 |
"output_type": "stream", |
|
|
774 |
"text": [ |
|
|
775 |
"Logistic regression score: 1.0\n" |
|
|
776 |
] |
|
|
777 |
} |
|
|
778 |
], |
|
|
779 |
"source": [ |
|
|
780 |
"from sklearn.linear_model import LogisticRegression\n", |
|
|
781 |
"\n", |
|
|
782 |
"logistic_regression = LogisticRegression()\n", |
|
|
783 |
"logistic_regression.fit(train_features_q, train_labels)\n", |
|
|
784 |
"\n", |
|
|
785 |
"logistic_score = logistic_regression.score(test_features_q, test_labels)\n", |
|
|
786 |
"print(f\"Logistic regression score: {logistic_score}\")" |
|
|
787 |
] |
|
|
788 |
}, |
|
|
789 |
{ |
|
|
790 |
"cell_type": "markdown", |
|
|
791 |
"metadata": {}, |
|
|
792 |
"source": [ |
|
|
793 |
"Let's plot the results. First, we plot the transformed dataset we get with the quantum kernel. On the same plot we also add model results. Then, we plot the transformed dataset we get with the gaussian kernel." |
|
|
794 |
] |
|
|
795 |
}, |
|
|
796 |
{ |
|
|
797 |
"cell_type": "code", |
|
|
798 |
"execution_count": 234, |
|
|
799 |
"metadata": {}, |
|
|
800 |
"outputs": [ |
|
|
801 |
{ |
|
|
802 |
"data": { |
|
|
803 |
"image/png": "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GiNHjgQAREdHY9euXZg7dy4qVaqEsLAwNG7cON/zli9fHgkJCZg6dSrat2+PLl264PTp0/j000/xv//9T2vRbmE8+eSTGDBgABYtWoSMjAy0bNkSv/76K7788kt069YNrVu3LtDjRkdH45tvvsHYsWPxv//9D35+fujcubPR+3Tq1Anvvfce4uPj0bRpU/z5559YtWqV1plJe4qOjkaPHj0wf/583Lp1S1WS9p9//gFg+mxkp06dkJycjO7du6Njx45IS0vDwoULUbduXdy/f79AfUpKSkLHjh3RvHlzDBo0CLdv38ZHH32EevXqmfWY0dHR+Oyzz/D+++8jPDwcFSpUQJs2bcz+vR8yZAhu376NNm3aoEqVKrhw4QI++ugj1K9fX3Wmt379+nB1dcWMGTNw9+5deHp6ok2bNqhQoUKhXlPHjh0xd+5ctG/fHn369MH169fxySefIDw8PN/aCkN/d506dcJXX32FUqVKoW7dujh48CB27dpl1poGouKI46VhHC/NV9jxcujQofj444/Rv39/HDlyBMHBwfjqq6/ybatRp04d1KhRA+PHj8elS5cQEBCA9evX611bFh0dDQAYNWoUYmNj4erqihdffNGisYQsVJSlDKlg5HKtv/32m9HjjJVMvXfvnjRmzBipUqVKkru7u1SzZk1p1qxZWuViJSl/SVr5vgkJCVJ4eLjk4eEhBQYGSk2bNpVmz54tZWdnq47Lzc2VZs2aJdWpU0fy8PCQypcvLz333HPSkSNHVMecOnVKatGiheTt7S0BUD2Xbkla2ccffyzVqVNHcnd3l4KCgqRXX31VunPnjtYxLVu2lOrVq6f3/TCnjHdOTo40depUKSwsTHJ3d5dCQkKkhIQE6dGjR/kez9yStPfv35f69OkjlS5dWqv0tlySdu3atfnu8+jRI2ncuHFScHCw5O3tLTVr1kw6ePCg1LJlS60y44ZK0urrm1xuVhMMlKS9ceOG1nH6/k+ysrKkESNGSGXLlpX8/Pykbt26SadPn5YASB988IHR9yQvL09KTEyUqlWrJnl6ekoNGjSQNm3alO//SX59s2bNyvcYun2XJElav369FBERIXl6ekp169aVkpOTzf6/v3r1qtSxY0fJ399fAqD1Ppvze79u3Trp2WeflSpUqCB5eHhIVatWlYYNGyZduXJF63m++OILqXr16pKrq6tZ5dzNfU1LliyRatasKXl6ekp16tSRli1bpvf/3NDf3Z07d6T4+HgpMDBQ8vPzk2JjY6VTp07p/RwgcgYcLzleFofxUpIk6cKFC1KXLl0kHx8fKTAwUHr99delbdu25RtD/v77b6ldu3aSn5+fFBgYKA0dOlT6/fff873u3Nxc6bXXXpPKly8vKRQKrddq7lhCllFIUhGv0iOHFhISgtjYWNUGgkSmHD9+HA0aNMDKlSvRt29fe3eHiKhIcLwkS3G8LFm4JotU5H1yHGHRKDmmhw8f5mubP38+XFxc0KJFCzv0iIio6HG8JFM4XhLXZBEAYPv27fj666/x8OFDtG3b1t7dIQc1c+ZMHDlyBK1bt4abm5uqbPnLL7+MkJAQe3ePiMjmOF6SOTheEtMFCQDQunVrnDlzBq+++iomTpxo7+6Qg9q5cyemTp2Kv//+G/fv30fVqlXx0ksvYdKkSXBz4zkbIir+OF6SOTheEoMsIiIiIiIiK+KaLCIiIiIiIitikEVERERERGRFDLLIoNDQUAwcONDe3ShR9u3bB4VCgX379pl9rOaO8ESWOn/+PBQKBZYvX27vrhBRAXG8Lpjly5dDoVDg/Pnz9u4KFUMMssghKRQK1a73mhITE6FQKDBo0CDk5eWpviDKP66urqhatSq6d++O48eP57v/o0ePMG/ePDRu3BilSpWCl5cXatWqhZEjR6p2Ytc1YcIEKBQKvPDCC9Z+mWZZvXo15s+fb7PH/+uvv9CvXz9UrlwZnp6eqFSpEvr164e///7bZs9ZEH///TemTJnikINhq1atEBkZma999+7d8PHxwVNPPYXbt2/boWdERLZl7njtLFq1aqX1vaJs2bL43//+h6VLl+p9Hfv27UNcXBwqVqwIDw8PVKhQAZ07d0ZycrLexz958iQUCgW8vLyQkZFh41dD9sTyJmTQ6dOn4eLiOHH4Bx98gEmTJmHAgAFYvHixVt969+6NDh06QKlU4uTJk/jss8+wdetW/PLLL6hfvz4A4ObNm2jfvj2OHDmCTp06oU+fPvDz88Pp06fx9ddfY9GiRcjOztZ6TkmSsGbNGoSGhuKHH37AvXv34O/vb7PX2KJFCzx8+BAeHh6qttWrV+PEiRMYPXq01Z8vOTkZvXv3RtmyZTF48GCEhYXh/PnzWLJkCdatW4dvvvkGXbt2tfrzFsTff/+NqVOnolWrVggNDbV3d0zas2cPOnfujNq1a2PXrl0oW7asvbtERMWUM43XzqBKlSpISkoCANy4cQMrVqzA4MGD8c8//+CDDz5QHTd58mS89957qFmzJoYNG4Zq1arh1q1b2LJlC3r06IFVq1ahT58+Wo+9cuVKVKxYEXfu3MG6deswZMiQIn1tVIQkIgcEQBoxYoTq+syZMyUAUv/+/SWlUqlqT0tLkwBIs2bN0rr/999/LwGQXn75ZVVbx44dJRcXF2ndunX5nu/Ro0fSuHHj8rXv2bNHAiDt2bNHcnd3l5YvX26Nl2eRjh07StWqVcvXvnfvXgmAtHbt2gI97pkzZyQfHx+pTp060vXr17Vuu3HjhlSnTh3Jz89POnfuXIEe39rWrl0rAZD27t1r767k07JlS6levXqq6/v27ZN8fHykJ598Urp586ZVnuP+/ftWeRxd8t/QsmXLbPL4RFS8mTteF1ReXp704MGDQj+OPsuWLZMASGlpaao23c9zSZKkrKwsqUqVKpKvr6+UnZ0tSZJ6TOrZs6eqTdO2bdukH374QastLy9PCg0NlcaOHSt1795datWqlfVfFDkM5zq1QEYZyi3Wt84nNTUVPXr0QMWKFeHl5YUqVargxRdfxN27d1XH6OZ4y49/4MABjB07FuXLl4evry+6d++OGzduaD1nXl4epkyZgkqVKsHHxwetW7fG33//XaC88blz52LChAno168fli1bZtYZsTZt2gAA0tLSAACHDh3C5s2bMXjwYPTo0SPf8Z6enpg9e3a+9lWrVqFu3bpo3bo12rVrh1WrVpnV57i4ODz11FNabZ07d4ZCocD333+vajt06BAUCgW2bt0KIP//VatWrbB582ZcuHBBlbqgO4uTl5eH6dOno0qVKvDy8kLbtm1x5swZk32cNWsWHjx4gEWLFqF8+fJatwUGBuLzzz/H/fv3MWvWLFX7wIED9c4iTZkyBQqFQqtt2bJlaNOmDSpUqABPT0/UrVsXn332Wb77hoaGolOnTti/fz8aNWoELy8vVK9eHStWrFAds3z5cjz//PMAxB418nshv08KhQJTpkzR+9j6fof379+PUaNGoXz58ihdujSGDRuG7OxsZGRkoH///ihTpgzKlCmDCRMmQLJwl4uUlBR07NgR4eHh2LVrF8qVK6d1+9atWxETEwNfX1/4+/uj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\n", |
|
|
804 |
"text/plain": [ |
|
|
805 |
"<Figure size 1000x500 with 2 Axes>" |
|
|
806 |
] |
|
|
807 |
}, |
|
|
808 |
"metadata": {}, |
|
|
809 |
"output_type": "display_data" |
|
|
810 |
} |
|
|
811 |
], |
|
|
812 |
"source": [ |
|
|
813 |
"fig, (q_ax, rbf_ax) = plt.subplots(1, 2, figsize=(10, 5))\n", |
|
|
814 |
"\n", |
|
|
815 |
"\n", |
|
|
816 |
"plot_features(q_ax, train_features_q, train_labels, 0, \"s\", \"w\", \"b\", \"A train\")\n", |
|
|
817 |
"plot_features(q_ax, train_features_q, train_labels, 1, \"o\", \"w\", \"r\", \"B train\")\n", |
|
|
818 |
"\n", |
|
|
819 |
"plot_features(q_ax, test_features_q, test_labels, 0, \"s\", \"b\", \"w\", \"A test\")\n", |
|
|
820 |
"plot_features(q_ax, test_features_q, test_labels, 1, \"o\", \"r\", \"w\", \"A test\")\n", |
|
|
821 |
"\n", |
|
|
822 |
"q_ax.set_ylabel(\"Principal component #1\")\n", |
|
|
823 |
"q_ax.set_xlabel(\"Principal component #0\")\n", |
|
|
824 |
"q_ax.set_title(\"Projection of training and test data\\n using KPCA with Quantum Kernel\")\n", |
|
|
825 |
"\n", |
|
|
826 |
"# Plotting the linear separation\n", |
|
|
827 |
"h = 0.01 # step size in the mesh\n", |
|
|
828 |
"\n", |
|
|
829 |
"# create a mesh to plot in\n", |
|
|
830 |
"x_min, x_max = train_features_q[:, 0].min() - 1, train_features_q[:, 0].max() + 1\n", |
|
|
831 |
"y_min, y_max = train_features_q[:, 1].min() - 1, train_features_q[:, 1].max() + 1\n", |
|
|
832 |
"xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n", |
|
|
833 |
"\n", |
|
|
834 |
"predictions = logistic_regression.predict(np.c_[xx.ravel(), yy.ravel()])\n", |
|
|
835 |
"\n", |
|
|
836 |
"# Put the result into a color plot\n", |
|
|
837 |
"predictions = predictions.reshape(xx.shape)\n", |
|
|
838 |
"q_ax.contourf(xx, yy, predictions, cmap=plt.cm.RdBu, alpha=0.2)\n", |
|
|
839 |
"\n", |
|
|
840 |
"plot_features(rbf_ax, train_features_rbf, train_labels, 0, \"s\", \"w\", \"b\", \"A train\")\n", |
|
|
841 |
"plot_features(rbf_ax, train_features_rbf, train_labels, 1, \"o\", \"w\", \"r\", \"B train\")\n", |
|
|
842 |
"plot_features(rbf_ax, test_features_rbf, test_labels, 0, \"s\", \"b\", \"w\", \"A test\")\n", |
|
|
843 |
"plot_features(rbf_ax, test_features_rbf, test_labels, 1, \"o\", \"r\", \"w\", \"A test\")\n", |
|
|
844 |
"\n", |
|
|
845 |
"rbf_ax.set_ylabel(\"Principal component #1\")\n", |
|
|
846 |
"rbf_ax.set_xlabel(\"Principal component #0\")\n", |
|
|
847 |
"rbf_ax.set_title(\"Projection of training data\\n using KernelPCA\")\n", |
|
|
848 |
"plt.show()" |
|
|
849 |
] |
|
|
850 |
}, |
|
|
851 |
{ |
|
|
852 |
"cell_type": "markdown", |
|
|
853 |
"metadata": {}, |
|
|
854 |
"source": [ |
|
|
855 |
"As we can see, the data points on the right figure are not separable, but they are on the left figure, hence in case of quantum kernel we can apply linear models on the transformed dataset and this is why SVM classifier works perfectly well on the _ad hoc_ dataset as we saw in the [classification section](#2.-Classification)." |
|
|
856 |
] |
|
|
857 |
}, |
|
|
858 |
{ |
|
|
859 |
"cell_type": "markdown", |
|
|
860 |
"metadata": {}, |
|
|
861 |
"source": [ |
|
|
862 |
"## 5. Conclusion\n", |
|
|
863 |
"\n", |
|
|
864 |
"In this tutorial:\n", |
|
|
865 |
"\n", |
|
|
866 |
"* We reviewed the fundamentals of quantum kernel learning\n", |
|
|
867 |
"* We understood how to define quantum kernels as instances of `FidelityQuantumKernel`\n", |
|
|
868 |
"* We learned how to use the `scikit-learn` `SVC` algorithm with a custom quantum kernel as a callable function vs precomputed quantum kernel matrix for classification\n", |
|
|
869 |
"* We learned how to train classifiers with the `QSVC` algorithm from `qiskit-machine-learning`\n", |
|
|
870 |
"* We learned how to use the `scikit-learn` `SpectralClustering` algorithms with a precomputed quantum kernel matrix for clustering\n", |
|
|
871 |
"* We investigated how to plug in a quantum kernel into `scikit-learn`'s `KernelPCA` algorithm and transform the ad-hoc dataset into a new one that can be tackled by a linear model." |
|
|
872 |
] |
|
|
873 |
}, |
|
|
874 |
{ |
|
|
875 |
"cell_type": "markdown", |
|
|
876 |
"metadata": {}, |
|
|
877 |
"source": [ |
|
|
878 |
"For further reference, `scikit-learn` has other algorithms that can use a precomputed kernel matrix, such as:\n", |
|
|
879 |
"\n", |
|
|
880 |
"- [Agglomerative clustering](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html)\n", |
|
|
881 |
"- [Support vector regression](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html)\n", |
|
|
882 |
"- [Ridge regression](https://scikit-learn.org/stable/modules/generated/sklearn.kernel_ridge.KernelRidge.html)\n", |
|
|
883 |
"- [Gaussian process regression](https://scikit-learn.org/stable/modules/gaussian_process.html)" |
|
|
884 |
] |
|
|
885 |
}, |
|
|
886 |
{ |
|
|
887 |
"cell_type": "code", |
|
|
888 |
"execution_count": 235, |
|
|
889 |
"metadata": { |
|
|
890 |
"tags": [] |
|
|
891 |
}, |
|
|
892 |
"outputs": [ |
|
|
893 |
{ |
|
|
894 |
"data": { |
|
|
895 |
"text/html": [ |
|
|
896 |
"<h3>Version Information</h3><table><tr><th>Software</th><th>Version</th></tr><tr><td><code>qiskit</code></td><td>0.44.1</td></tr><tr><td><code>qiskit-terra</code></td><td>0.25.1</td></tr><tr><td><code>qiskit_machine_learning</code></td><td>0.6.1</td></tr><tr><th colspan='2'>System information</th></tr><tr><td>Python version</td><td>3.10.8</td></tr><tr><td>Python compiler</td><td>GCC 10.4.0</td></tr><tr><td>Python build</td><td>main, Nov 22 2022 08:26:04</td></tr><tr><td>OS</td><td>Linux</td></tr><tr><td>CPUs</td><td>8</td></tr><tr><td>Memory (Gb)</td><td>31.142810821533203</td></tr><tr><td colspan='2'>Wed Nov 22 05:52:34 2023 UTC</td></tr></table>" |
|
|
897 |
], |
|
|
898 |
"text/plain": [ |
|
|
899 |
"<IPython.core.display.HTML object>" |
|
|
900 |
] |
|
|
901 |
}, |
|
|
902 |
"metadata": {}, |
|
|
903 |
"output_type": "display_data" |
|
|
904 |
}, |
|
|
905 |
{ |
|
|
906 |
"data": { |
|
|
907 |
"text/html": [ |
|
|
908 |
"<div style='width: 100%; background-color:#d5d9e0;padding-left: 10px; padding-bottom: 10px; padding-right: 10px; padding-top: 5px'><h3>This code is a part of Qiskit</h3><p>© Copyright IBM 2017, 2023.</p><p>This code is licensed under the Apache License, Version 2.0. You may<br>obtain a copy of this license in the LICENSE.txt file in the root directory<br> of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.<p>Any modifications or derivative works of this code must retain this<br>copyright notice, and modified files need to carry a notice indicating<br>that they have been altered from the originals.</p></div>" |
|
|
909 |
], |
|
|
910 |
"text/plain": [ |
|
|
911 |
"<IPython.core.display.HTML object>" |
|
|
912 |
] |
|
|
913 |
}, |
|
|
914 |
"metadata": {}, |
|
|
915 |
"output_type": "display_data" |
|
|
916 |
} |
|
|
917 |
], |
|
|
918 |
"source": [ |
|
|
919 |
"import qiskit.tools.jupyter\n", |
|
|
920 |
"\n", |
|
|
921 |
"%qiskit_version_table\n", |
|
|
922 |
"%qiskit_copyright" |
|
|
923 |
] |
|
|
924 |
} |
|
|
925 |
], |
|
|
926 |
"metadata": { |
|
|
927 |
"celltoolbar": "Tags", |
|
|
928 |
"kernelspec": { |
|
|
929 |
"display_name": "Python 3 (ipykernel)", |
|
|
930 |
"language": "python", |
|
|
931 |
"name": "python3" |
|
|
932 |
}, |
|
|
933 |
"language_info": { |
|
|
934 |
"codemirror_mode": { |
|
|
935 |
"name": "ipython", |
|
|
936 |
"version": 3 |
|
|
937 |
}, |
|
|
938 |
"file_extension": ".py", |
|
|
939 |
"mimetype": "text/x-python", |
|
|
940 |
"name": "python", |
|
|
941 |
"nbconvert_exporter": "python", |
|
|
942 |
"pygments_lexer": "ipython3", |
|
|
943 |
"version": "3.10.8" |
|
|
944 |
}, |
|
|
945 |
"widgets": { |
|
|
946 |
"application/vnd.jupyter.widget-state+json": { |
|
|
947 |
"state": { |
|
|
948 |
"0b7e452dd74d4f578900f5f5ac0a9360": { |
|
|
949 |
"model_module": "@jupyter-widgets/base", |
|
|
950 |
"model_module_version": "2.0.0", |
|
|
951 |
"model_name": "LayoutModel", |
|
|
952 |
"state": { |
|
|
953 |
"margin": "0px 0px 10px 0px" |
|
|
954 |
} |
|
|
955 |
}, |
|
|
956 |
"0d4c86f5991643ca8114ae916f83cfe6": { |
|
|
957 |
"model_module": "@jupyter-widgets/base", |
|
|
958 |
"model_module_version": "2.0.0", |
|
|
959 |
"model_name": "LayoutModel", |
|
|
960 |
"state": { |
|
|
961 |
"grid_area": "right", |
|
|
962 |
"padding": "0px 0px 0px 0px", |
|
|
963 |
"width": "70px" |
|
|
964 |
} |
|
|
965 |
}, |
|
|
966 |
"158bc986ce0e498b8b0750657d032419": { |
|
|
967 |
"model_module": "@jupyter-widgets/controls", |
|
|
968 |
"model_module_version": "2.0.0", |
|
|
969 |
"model_name": "ButtonStyleModel", |
|
|
970 |
"state": { |
|
|
971 |
"font_family": null, |
|
|
972 |
"font_size": null, |
|
|
973 |
"font_style": null, |
|
|
974 |
"font_variant": null, |
|
|
975 |
"font_weight": null, |
|
|
976 |
"text_color": null, |
|
|
977 |
"text_decoration": null |
|
|
978 |
} |
|
|
979 |
}, |
|
|
980 |
"1c89aba7b24c409d88efe92da847d3db": { |
|
|
981 |
"model_module": "@jupyter-widgets/controls", |
|
|
982 |
"model_module_version": "2.0.0", |
|
|
983 |
"model_name": "HTMLModel", |
|
|
984 |
"state": { |
|
|
985 |
"layout": "IPY_MODEL_fa5cef2d788545bba6eea87177167a4c", |
|
|
986 |
"style": "IPY_MODEL_a30ee202d41f4a95889b08d253574820", |
|
|
987 |
"value": "<h5>Status</h5>" |
|
|
988 |
} |
|
|
989 |
}, |
|
|
990 |
"1ca007345b524895826388ff99f7f51a": { |
|
|
991 |
"model_module": "@jupyter-widgets/controls", |
|
|
992 |
"model_module_version": "2.0.0", |
|
|
993 |
"model_name": "HTMLStyleModel", |
|
|
994 |
"state": { |
|
|
995 |
"description_width": "", |
|
|
996 |
"font_size": null, |
|
|
997 |
"text_color": null |
|
|
998 |
} |
|
|
999 |
}, |
|
|
1000 |
"20a0e46a81934d31b1e46dc487dab904": { |
|
|
1001 |
"model_module": "@jupyter-widgets/controls", |
|
|
1002 |
"model_module_version": "2.0.0", |
|
|
1003 |
"model_name": "HTMLStyleModel", |
|
|
1004 |
"state": { |
|
|
1005 |
"description_width": "", |
|
|
1006 |
"font_size": null, |
|
|
1007 |
"text_color": null |
|
|
1008 |
} |
|
|
1009 |
}, |
|
|
1010 |
"2632feff86054babb4111acc2ce3ab0c": { |
|
|
1011 |
"model_module": "@jupyter-widgets/controls", |
|
|
1012 |
"model_module_version": "2.0.0", |
|
|
1013 |
"model_name": "HTMLModel", |
|
|
1014 |
"state": { |
|
|
1015 |
"layout": "IPY_MODEL_6727989fa0f64187af4470cae6ef2966", |
|
|
1016 |
"style": "IPY_MODEL_1ca007345b524895826388ff99f7f51a", |
|
|
1017 |
"value": "<h5>Backend</h5>" |
|
|
1018 |
} |
|
|
1019 |
}, |
|
|
1020 |
"55bda1d6af1840c69bf897238a2adda5": { |
|
|
1021 |
"model_module": "@jupyter-widgets/controls", |
|
|
1022 |
"model_module_version": "2.0.0", |
|
|
1023 |
"model_name": "HTMLModel", |
|
|
1024 |
"state": { |
|
|
1025 |
"layout": "IPY_MODEL_96b426424db04786ac4aa78b58e025b8", |
|
|
1026 |
"style": "IPY_MODEL_6974e996188c48b2b13dca418161a339", |
|
|
1027 |
"value": "<h5>Job ID</h5>" |
|
|
1028 |
} |
|
|
1029 |
}, |
|
|
1030 |
"6727989fa0f64187af4470cae6ef2966": { |
|
|
1031 |
"model_module": "@jupyter-widgets/base", |
|
|
1032 |
"model_module_version": "2.0.0", |
|
|
1033 |
"model_name": "LayoutModel", |
|
|
1034 |
"state": { |
|
|
1035 |
"width": "145px" |
|
|
1036 |
} |
|
|
1037 |
}, |
|
|
1038 |
"6974e996188c48b2b13dca418161a339": { |
|
|
1039 |
"model_module": "@jupyter-widgets/controls", |
|
|
1040 |
"model_module_version": "2.0.0", |
|
|
1041 |
"model_name": "HTMLStyleModel", |
|
|
1042 |
"state": { |
|
|
1043 |
"description_width": "", |
|
|
1044 |
"font_size": null, |
|
|
1045 |
"text_color": null |
|
|
1046 |
} |
|
|
1047 |
}, |
|
|
1048 |
"86f4ec1f0c21484785d5aac82c1fd8dc": { |
|
|
1049 |
"model_module": "@jupyter-widgets/controls", |
|
|
1050 |
"model_module_version": "2.0.0", |
|
|
1051 |
"model_name": "HTMLStyleModel", |
|
|
1052 |
"state": { |
|
|
1053 |
"description_width": "", |
|
|
1054 |
"font_size": null, |
|
|
1055 |
"text_color": null |
|
|
1056 |
} |
|
|
1057 |
}, |
|
|
1058 |
"8b3098940f664f759f8448274aeae4fc": { |
|
|
1059 |
"model_module": "@jupyter-widgets/controls", |
|
|
1060 |
"model_module_version": "2.0.0", |
|
|
1061 |
"model_name": "HBoxModel", |
|
|
1062 |
"state": { |
|
|
1063 |
"children": [ |
|
|
1064 |
"IPY_MODEL_55bda1d6af1840c69bf897238a2adda5", |
|
|
1065 |
"IPY_MODEL_2632feff86054babb4111acc2ce3ab0c", |
|
|
1066 |
"IPY_MODEL_1c89aba7b24c409d88efe92da847d3db", |
|
|
1067 |
"IPY_MODEL_eb4dc7fb6d504855ae63c081865ab360", |
|
|
1068 |
"IPY_MODEL_8c9a743e762947288ca55f4462f8ea75" |
|
|
1069 |
], |
|
|
1070 |
"layout": "IPY_MODEL_d18170770a8d41bf9ece9d3b744534a5" |
|
|
1071 |
} |
|
|
1072 |
}, |
|
|
1073 |
"8c9a743e762947288ca55f4462f8ea75": { |
|
|
1074 |
"model_module": "@jupyter-widgets/controls", |
|
|
1075 |
"model_module_version": "2.0.0", |
|
|
1076 |
"model_name": "HTMLModel", |
|
|
1077 |
"state": { |
|
|
1078 |
"layout": "IPY_MODEL_da7772c0357747d2a9b31b80e63c436c", |
|
|
1079 |
"style": "IPY_MODEL_86f4ec1f0c21484785d5aac82c1fd8dc", |
|
|
1080 |
"value": "<h5>Message</h5>" |
|
|
1081 |
} |
|
|
1082 |
}, |
|
|
1083 |
"96b426424db04786ac4aa78b58e025b8": { |
|
|
1084 |
"model_module": "@jupyter-widgets/base", |
|
|
1085 |
"model_module_version": "2.0.0", |
|
|
1086 |
"model_name": "LayoutModel", |
|
|
1087 |
"state": { |
|
|
1088 |
"width": "190px" |
|
|
1089 |
} |
|
|
1090 |
}, |
|
|
1091 |
"a30ee202d41f4a95889b08d253574820": { |
|
|
1092 |
"model_module": "@jupyter-widgets/controls", |
|
|
1093 |
"model_module_version": "2.0.0", |
|
|
1094 |
"model_name": "HTMLStyleModel", |
|
|
1095 |
"state": { |
|
|
1096 |
"description_width": "", |
|
|
1097 |
"font_size": null, |
|
|
1098 |
"text_color": null |
|
|
1099 |
} |
|
|
1100 |
}, |
|
|
1101 |
"a6901a5db44c4d198b4fff7a4871a74d": { |
|
|
1102 |
"model_module": "@jupyter-widgets/base", |
|
|
1103 |
"model_module_version": "2.0.0", |
|
|
1104 |
"model_name": "LayoutModel", |
|
|
1105 |
"state": { |
|
|
1106 |
"grid_template_areas": "\n \". . . . right \"\n ", |
|
|
1107 |
"grid_template_columns": "20% 20% 20% 20% 20%", |
|
|
1108 |
"width": "100%" |
|
|
1109 |
} |
|
|
1110 |
}, |
|
|
1111 |
"c1c8eca1c1f849d189a12f54f7dbe8c1": { |
|
|
1112 |
"model_module": "@jupyter-widgets/base", |
|
|
1113 |
"model_module_version": "2.0.0", |
|
|
1114 |
"model_name": "LayoutModel", |
|
|
1115 |
"state": { |
|
|
1116 |
"width": "70px" |
|
|
1117 |
} |
|
|
1118 |
}, |
|
|
1119 |
"d18170770a8d41bf9ece9d3b744534a5": { |
|
|
1120 |
"model_module": "@jupyter-widgets/base", |
|
|
1121 |
"model_module_version": "2.0.0", |
|
|
1122 |
"model_name": "LayoutModel", |
|
|
1123 |
"state": { |
|
|
1124 |
"margin": "0px 0px 0px 37px", |
|
|
1125 |
"width": "600px" |
|
|
1126 |
} |
|
|
1127 |
}, |
|
|
1128 |
"d3192a35350943a796b7745aab24263c": { |
|
|
1129 |
"model_module": "@jupyter-widgets/controls", |
|
|
1130 |
"model_module_version": "2.0.0", |
|
|
1131 |
"model_name": "ButtonModel", |
|
|
1132 |
"state": { |
|
|
1133 |
"button_style": "primary", |
|
|
1134 |
"description": "Clear", |
|
|
1135 |
"layout": "IPY_MODEL_0d4c86f5991643ca8114ae916f83cfe6", |
|
|
1136 |
"style": "IPY_MODEL_158bc986ce0e498b8b0750657d032419", |
|
|
1137 |
"tooltip": null |
|
|
1138 |
} |
|
|
1139 |
}, |
|
|
1140 |
"da7772c0357747d2a9b31b80e63c436c": { |
|
|
1141 |
"model_module": "@jupyter-widgets/base", |
|
|
1142 |
"model_module_version": "2.0.0", |
|
|
1143 |
"model_name": "LayoutModel", |
|
|
1144 |
"state": {} |
|
|
1145 |
}, |
|
|
1146 |
"dcd8b9163d3c485bba4ed0401438224b": { |
|
|
1147 |
"model_module": "@jupyter-widgets/controls", |
|
|
1148 |
"model_module_version": "2.0.0", |
|
|
1149 |
"model_name": "HTMLModel", |
|
|
1150 |
"state": { |
|
|
1151 |
"layout": "IPY_MODEL_0b7e452dd74d4f578900f5f5ac0a9360", |
|
|
1152 |
"style": "IPY_MODEL_e1072709033f4a1abede11cc413e879e", |
|
|
1153 |
"value": "<p style='font-family: IBM Plex Sans, Arial, Helvetica, sans-serif; font-size: 20px; font-weight: medium;'>Circuit Properties</p>" |
|
|
1154 |
} |
|
|
1155 |
}, |
|
|
1156 |
"e1072709033f4a1abede11cc413e879e": { |
|
|
1157 |
"model_module": "@jupyter-widgets/controls", |
|
|
1158 |
"model_module_version": "2.0.0", |
|
|
1159 |
"model_name": "HTMLStyleModel", |
|
|
1160 |
"state": { |
|
|
1161 |
"description_width": "", |
|
|
1162 |
"font_size": null, |
|
|
1163 |
"text_color": null |
|
|
1164 |
} |
|
|
1165 |
}, |
|
|
1166 |
"e9dd1835cf074e5b8066162420c556f4": { |
|
|
1167 |
"model_module": "@jupyter-widgets/controls", |
|
|
1168 |
"model_module_version": "2.0.0", |
|
|
1169 |
"model_name": "GridBoxModel", |
|
|
1170 |
"state": { |
|
|
1171 |
"children": [ |
|
|
1172 |
"IPY_MODEL_d3192a35350943a796b7745aab24263c" |
|
|
1173 |
], |
|
|
1174 |
"layout": "IPY_MODEL_a6901a5db44c4d198b4fff7a4871a74d" |
|
|
1175 |
} |
|
|
1176 |
}, |
|
|
1177 |
"eb4dc7fb6d504855ae63c081865ab360": { |
|
|
1178 |
"model_module": "@jupyter-widgets/controls", |
|
|
1179 |
"model_module_version": "2.0.0", |
|
|
1180 |
"model_name": "HTMLModel", |
|
|
1181 |
"state": { |
|
|
1182 |
"layout": "IPY_MODEL_c1c8eca1c1f849d189a12f54f7dbe8c1", |
|
|
1183 |
"style": "IPY_MODEL_20a0e46a81934d31b1e46dc487dab904", |
|
|
1184 |
"value": "<h5>Queue</h5>" |
|
|
1185 |
} |
|
|
1186 |
}, |
|
|
1187 |
"fa5cef2d788545bba6eea87177167a4c": { |
|
|
1188 |
"model_module": "@jupyter-widgets/base", |
|
|
1189 |
"model_module_version": "2.0.0", |
|
|
1190 |
"model_name": "LayoutModel", |
|
|
1191 |
"state": { |
|
|
1192 |
"width": "95px" |
|
|
1193 |
} |
|
|
1194 |
} |
|
|
1195 |
}, |
|
|
1196 |
"version_major": 2, |
|
|
1197 |
"version_minor": 0 |
|
|
1198 |
} |
|
|
1199 |
} |
|
|
1200 |
}, |
|
|
1201 |
"nbformat": 4, |
|
|
1202 |
"nbformat_minor": 4 |
|
|
1203 |
} |