4520 lines (4520 with data), 788.6 kB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "z3ujOArt-ZY5"
},
"source": [
"# **Imports**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "iJ10pIOf-biR",
"outputId": "83c02704-92ae-4401-97b3-292d1f8628e8"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Collecting transformers\n",
" Downloading transformers-4.14.1-py3-none-any.whl (3.4 MB)\n",
"\u001b[K |████████████████████████████████| 3.4 MB 6.2 MB/s \n",
"\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers) (2.23.0)\n",
"Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (1.19.5)\n",
"Collecting tokenizers<0.11,>=0.10.1\n",
" Downloading tokenizers-0.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.3 MB)\n",
"\u001b[K |████████████████████████████████| 3.3 MB 30.9 MB/s \n",
"\u001b[?25hRequirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from transformers) (21.3)\n",
"Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (2019.12.20)\n",
"Collecting pyyaml>=5.1\n",
" Downloading PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (596 kB)\n",
"\u001b[K |████████████████████████████████| 596 kB 33.9 MB/s \n",
"\u001b[?25hCollecting sacremoses\n",
" Downloading sacremoses-0.0.46-py3-none-any.whl (895 kB)\n",
"\u001b[K |████████████████████████████████| 895 kB 30.4 MB/s \n",
"\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers) (4.62.3)\n",
"Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from transformers) (4.8.2)\n",
"Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers) (3.4.0)\n",
"Collecting huggingface-hub<1.0,>=0.1.0\n",
" Downloading huggingface_hub-0.2.1-py3-none-any.whl (61 kB)\n",
"\u001b[K |████████████████████████████████| 61 kB 202 kB/s \n",
"\u001b[?25hRequirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (3.10.0.2)\n",
"Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->transformers) (3.0.6)\n",
"Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->transformers) (3.6.0)\n",
"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2.10)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (3.0.4)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2021.10.8)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (1.24.3)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.15.0)\n",
"Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (7.1.2)\n",
"Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.1.0)\n",
"Installing collected packages: pyyaml, tokenizers, sacremoses, huggingface-hub, transformers\n",
" Attempting uninstall: pyyaml\n",
" Found existing installation: PyYAML 3.13\n",
" Uninstalling PyYAML-3.13:\n",
" Successfully uninstalled PyYAML-3.13\n",
"Successfully installed huggingface-hub-0.2.1 pyyaml-6.0 sacremoses-0.0.46 tokenizers-0.10.3 transformers-4.14.1\n",
"Collecting pytorch-metric-learning\n",
" Downloading pytorch_metric_learning-1.0.0-py3-none-any.whl (102 kB)\n",
"\u001b[K |████████████████████████████████| 102 kB 5.3 MB/s \n",
"\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from pytorch-metric-learning) (4.62.3)\n",
"Requirement already satisfied: scikit-learn in /usr/local/lib/python3.7/dist-packages (from pytorch-metric-learning) (1.0.1)\n",
"Requirement already satisfied: torchvision in /usr/local/lib/python3.7/dist-packages (from pytorch-metric-learning) (0.11.1+cu111)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from pytorch-metric-learning) (1.19.5)\n",
"Requirement already satisfied: torch>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from pytorch-metric-learning) (1.10.0+cu111)\n",
"Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch>=1.6.0->pytorch-metric-learning) (3.10.0.2)\n",
"Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->pytorch-metric-learning) (1.4.1)\n",
"Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->pytorch-metric-learning) (1.1.0)\n",
"Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->pytorch-metric-learning) (3.0.0)\n",
"Requirement already satisfied: pillow!=8.3.0,>=5.3.0 in /usr/local/lib/python3.7/dist-packages (from torchvision->pytorch-metric-learning) (7.1.2)\n",
"Installing collected packages: pytorch-metric-learning\n",
"Successfully installed pytorch-metric-learning-1.0.0\n",
"[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
"[nltk_data] Unzipping corpora/stopwords.zip.\n",
"[nltk_data] Downloading package punkt to /root/nltk_data...\n",
"[nltk_data] Unzipping tokenizers/punkt.zip.\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"True"
]
},
"metadata": {},
"execution_count": 1
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import sqlite3\n",
"import matplotlib.pyplot as plt\n",
"from plotnine import *\n",
"import seaborn as sns\n",
"import plotly.graph_objects as go\n",
"\n",
"from sklearn.decomposition import PCA\n",
"import plotly.express as px\n",
"\n",
"from collections import Counter\n",
"\n",
"import gensim\n",
"from gensim.models import Word2Vec\n",
"\n",
"from sklearn.model_selection import train_test_split\n",
"import nltk\n",
"from nltk.corpus import stopwords\n",
"from nltk.tokenize import word_tokenize\n",
"\n",
"import random\n",
"\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"from torch.optim.lr_scheduler import ReduceLROnPlateau\n",
"\n",
"try:\n",
" import transformers # Huggingface’s transformers library\n",
"except:\n",
" !pip install transformers\n",
" import transformers\n",
"\n",
"from transformers import AutoModel, AutoTokenizer , BertTokenizerFast\n",
"from transformers import AdamW\n",
"\n",
"try:\n",
" from pytorch_metric_learning import losses\n",
"except:\n",
" !pip install pytorch-metric-learning\n",
" from pytorch_metric_learning import losses\n",
"\n",
"from sklearn.cluster import KMeans\n",
"from scipy.spatial import distance\n",
"from sklearn.svm import SVC\n",
"\n",
"\n",
"nltk.download('stopwords')\n",
"nltk.download('punkt')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "S0olppj--bxA"
},
"source": [
"# **Load Data**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Cos6utcU-snB"
},
"source": [
"https://www.kaggle.com/tboyle10/medicaltranscriptions"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 92,
"resources": {
"http://localhost:8080/nbextensions/google.colab/files.js": {
"data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgZG8gewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwoKICAgICAgbGV0IHBlcmNlbnREb25lID0gZmlsZURhdGEuYnl0ZUxlbmd0aCA9PT0gMCA/CiAgICAgICAgICAxMDAgOgogICAgICAgICAgTWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCk7CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPSBgJHtwZXJjZW50RG9uZX0lIGRvbmVgOwoKICAgIH0gd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCk7CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK",
"headers": [
[
"content-type",
"application/javascript"
]
],
"ok": true,
"status": 200,
"status_text": ""
}
}
},
"id": "462tsIe3-d5x",
"outputId": "9c8f7b5b-4ac5-453b-b16f-8fe8704c18aa"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" <input type=\"file\" id=\"files-48700616-4f80-4de4-ab62-80105ec707ab\" name=\"files[]\" multiple disabled\n",
" style=\"border:none\" />\n",
" <output id=\"result-48700616-4f80-4de4-ab62-80105ec707ab\">\n",
" Upload widget is only available when the cell has been executed in the\n",
" current browser session. Please rerun this cell to enable.\n",
" </output>\n",
" <script src=\"/nbextensions/google.colab/files.js\"></script> "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving kaggle.json to kaggle.json\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'kaggle.json': b'{\"username\":\"odedmous\",\"key\":\"f3ad8c8cb61cd1b60a83444f204ebfcc\"}'}"
]
},
"metadata": {},
"execution_count": 2
}
],
"source": [
"from google.colab import files\n",
"files.upload()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "AvA5TteZ-eBw"
},
"outputs": [],
"source": [
"!mkdir -p ~/.kaggle\n",
"!cp kaggle.json ~/.kaggle/\n",
"!chmod 600 ~/.kaggle/kaggle.json"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "q1mX7WoG-k8a",
"outputId": "8cb7811a-d452-410a-d05e-6f05d6c212f8"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Downloading medicaltranscriptions.zip to /content\n",
"100% 4.85M/4.85M [00:00<00:00, 21.4MB/s]\n",
"\n"
]
}
],
"source": [
"!kaggle datasets download -d tboyle10/medicaltranscriptions\n",
"\n",
"# !kaggle datasets download -d shwetp/text-classificationheathcare"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "0EjCyJud-mup",
"outputId": "cbe8f08b-9412-4109-9545-857868f609cc"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"kaggle.json medicaltranscriptions.zip\tsample_data\n"
]
}
],
"source": [
"!ls"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "62zge8h0-n7R",
"outputId": "02cd2f85-221e-4eb7-a62e-a206c1f5a24f"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Archive: medicaltranscriptions.zip\n",
" inflating: mtsamples.csv \n"
]
}
],
"source": [
"!unzip \\*.zip && rm *.zip"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "D2gPr4Vf4uqv"
},
"source": [
"**Preprocess data**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "rWn6bXuH-pTB"
},
"outputs": [],
"source": [
"full_data = pd.read_csv(\"mtsamples.csv\")\n",
"\n",
"# drop None values from the relevant columns\n",
"full_data = full_data.dropna(subset=['description', 'transcription', 'medical_specialty']).reset_index(drop=True)\n",
"\n",
"full_data['description'] = full_data['description'].str.lower() # convert text data to lower case \n",
"full_data['transcription'] = full_data['transcription'].str.lower() # convert text data to lower case \n",
"full_data[\"medical_specialty\"] = full_data[\"medical_specialty\"].str.strip() # delete leading / trailing whitespaces\n",
"\n",
"\n",
"#data[\"words\"] = data[\"description\"].apply(lambda x: nltk.word_tokenize(x)) # description transcription\n",
"#stop_words = set(stopwords.words('english'))\n",
"#data['words_without_stopwords'] = data[\"words\"].apply(lambda x: [word for word in x if word not in (stop_words)])\n",
"\n",
"# drop general categories (for example \"Surgery\" category is kind of superset as there can be surgeries belonging to specializations like cardiology,neurolrogy etc)\n",
"general_categories_rows = full_data[\"medical_specialty\"].isin([\"Surgery\", 'SOAP / Chart / Progress Notes', 'Office Notes', 'Consult - History and Phy.', 'Emergency Room Reports', 'Discharge Summary', 'Pain Management', 'General Medicine'])\n",
"data = full_data.drop(full_data[general_categories_rows].index)\n",
"data = data.reset_index(drop=True)\n",
"\n",
"# Combine similar categories\n",
"data[\"medical_specialty\"] = data[\"medical_specialty\"].str.replace(\"Neurosurgery\", \"Neurology\")\n",
"\n",
"# add \"labels\" column\n",
"data['medical_specialty'] = pd.Categorical(data['medical_specialty'])\n",
"data['labels'] = data['medical_specialty'].cat.codes\n",
"\n",
"\n",
"categories_mapping = dict(enumerate(data['medical_specialty'].cat.categories))\n",
"\n",
"# Take only top 5 categories\n",
"top_categories_num = 5\n",
"cause_dist = data['medical_specialty'].value_counts()[0:top_categories_num]\n",
"cause_dist_unseen_cat = data['medical_specialty'].value_counts()[top_categories_num:]\n",
"\n",
"test_unseen_categories = data[data[\"medical_specialty\"].isin(cause_dist_unseen_cat.keys())]\n",
"test_unseen_categories = test_unseen_categories.reset_index(drop=True)\n",
"\n",
"# take in unseen data only categories which have more than 50 samples\n",
"unseen_categories_groups = test_unseen_categories.groupby(test_unseen_categories['medical_specialty'])\n",
"test_unseen_categories = unseen_categories_groups.filter(lambda x:x.shape[0] > 50)\n",
"\n",
"unseen_categories_mapping = dict(enumerate(test_unseen_categories['medical_specialty'].cat.categories))\n",
"\n",
"data = data[data[\"medical_specialty\"].isin(cause_dist.keys())]\n",
"data = data.reset_index(drop=True)\n",
"\n",
"#sentences = list(data['text'].str.split(' '))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 614
},
"id": "1ddK4D6m_wTq",
"outputId": "d182c902-66e7-4f4b-d70f-5267f8f7c4a0"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>description</th>\n",
" <th>medical_specialty</th>\n",
" <th>sample_name</th>\n",
" <th>transcription</th>\n",
" <th>keywords</th>\n",
" <th>labels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>2-d m-mode. doppler.</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>2-D Echocardiogram - 1</td>\n",
" <td>2-d m-mode: , ,1. left atrial enlargement wit...</td>\n",
" <td>cardiovascular / pulmonary, 2-d m-mode, dopple...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4</td>\n",
" <td>2-d echocardiogram</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>2-D Echocardiogram - 2</td>\n",
" <td>1. the left ventricular cavity size and wall ...</td>\n",
" <td>cardiovascular / pulmonary, 2-d, doppler, echo...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>7</td>\n",
" <td>2-d echocardiogram</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>2-D Echocardiogram - 3</td>\n",
" <td>2-d echocardiogram,multiple views of the heart...</td>\n",
" <td>cardiovascular / pulmonary, 2-d echocardiogram...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>9</td>\n",
" <td>echocardiogram and doppler</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>2-D Echocardiogram - 4</td>\n",
" <td>description:,1. normal cardiac chambers size....</td>\n",
" <td>cardiovascular / pulmonary, ejection fraction,...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>11</td>\n",
" <td>normal left ventricle, moderate biatrial enla...</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>2-D Doppler</td>\n",
" <td>2-d study,1. mild aortic stenosis, widely calc...</td>\n",
" <td>cardiovascular / pulmonary, 2-d study, doppler...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1535</th>\n",
" <td>4972</td>\n",
" <td>adenosine with nuclear scan as the patient un...</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>Adenosine Nuclear Scan</td>\n",
" <td>indication: , chest pain.,type of test: , aden...</td>\n",
" <td>cardiovascular / pulmonary, adenosine nuclear ...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1536</th>\n",
" <td>4973</td>\n",
" <td>patient presents with a chief complaint of ch...</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>Acute Inferior Myocardial Infarction</td>\n",
" <td>chief complaint: , chest pain.,history of pres...</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1537</th>\n",
" <td>4974</td>\n",
" <td>patient had a recurrent left arm pain after h...</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>Angina - Consult</td>\n",
" <td>history of present illness: , the patient is a...</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1538</th>\n",
" <td>4975</td>\n",
" <td>patient had a markedly abnormal stress test w...</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>Abnormal Stress Test</td>\n",
" <td>history of present illness: , mr. abc is a 60-...</td>\n",
" <td>cardiovascular / pulmonary, standard bruce, ni...</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1539</th>\n",
" <td>4976</td>\n",
" <td>abnormal echocardiogram findings and followup...</td>\n",
" <td>Cardiovascular / Pulmonary</td>\n",
" <td>Abnormal Echocardiogram</td>\n",
" <td>reason for consultation: ,abnormal echocardio...</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1540 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 ... labels\n",
"0 3 ... 3\n",
"1 4 ... 3\n",
"2 7 ... 3\n",
"3 9 ... 3\n",
"4 11 ... 3\n",
"... ... ... ...\n",
"1535 4972 ... 3\n",
"1536 4973 ... 3\n",
"1537 4974 ... 3\n",
"1538 4975 ... 3\n",
"1539 4976 ... 3\n",
"\n",
"[1540 rows x 7 columns]"
]
},
"metadata": {},
"execution_count": 32
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 684
},
"id": "HQIQSPgF-2Vu",
"outputId": "7fc34439-6218-44f2-971a-b5b89cf6a377"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>description</th>\n",
" <th>medical_specialty</th>\n",
" <th>sample_name</th>\n",
" <th>transcription</th>\n",
" <th>keywords</th>\n",
" <th>labels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>18</td>\n",
" <td>fertile male with completed family. elective...</td>\n",
" <td>Urology</td>\n",
" <td>Vasectomy - 4</td>\n",
" <td>procedure: , elective male sterilization via b...</td>\n",
" <td>urology, sterilization, vas, fertile male, bil...</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>20</td>\n",
" <td>whole body radionuclide bone scan due to pros...</td>\n",
" <td>Urology</td>\n",
" <td>Whole Body Radionuclide Bone Scan</td>\n",
" <td>indication:, prostate cancer.,technique:, 3....</td>\n",
" <td>urology, prostate cancer, technetium, whole bo...</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>22</td>\n",
" <td>normal vasectomy</td>\n",
" <td>Urology</td>\n",
" <td>Vasectomy - 1</td>\n",
" <td>description:, the patient was placed in the s...</td>\n",
" <td>urology, vasectomy, allis clamp, catgut, hemoc...</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>23</td>\n",
" <td>voluntary sterility. bilateral vasectomy. t...</td>\n",
" <td>Urology</td>\n",
" <td>Vasectomy</td>\n",
" <td>preoperative diagnosis: , voluntary sterility....</td>\n",
" <td>urology, hemiscrotum, bilateral vasectomy, vol...</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>24</td>\n",
" <td>blood in urine - transitional cell cancer of ...</td>\n",
" <td>Urology</td>\n",
" <td>Urology Consut - 1</td>\n",
" <td>chief complaint:,</td>\n",
" <td>NaN</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>951</th>\n",
" <td>3782</td>\n",
" <td>adenotonsillectomy. recurrent tonsillitis. ...</td>\n",
" <td>ENT - Otolaryngology</td>\n",
" <td>Adenotonsillectomy - 1</td>\n",
" <td>preoperative diagnosis: , recurrent tonsilliti...</td>\n",
" <td>ent - otolaryngology, curved allis, tonsilliti...</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>952</th>\n",
" <td>3783</td>\n",
" <td>adenotonsillectomy, primary, patient under ag...</td>\n",
" <td>ENT - Otolaryngology</td>\n",
" <td>Adenotonsillectomy</td>\n",
" <td>preoperative diagnosis: , chronic hypertrophic...</td>\n",
" <td>ent - otolaryngology, hypertrophic adenotonsil...</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>953</th>\n",
" <td>3784</td>\n",
" <td>adenoidectomy procedure</td>\n",
" <td>ENT - Otolaryngology</td>\n",
" <td>Adenoidectomy</td>\n",
" <td>adenoidectomy,procedure:, the patient was bro...</td>\n",
" <td>ent - otolaryngology, adenoidectomy, crowe-dav...</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>954</th>\n",
" <td>3785</td>\n",
" <td>bilateral myringotomies with armstrong gromme...</td>\n",
" <td>ENT - Otolaryngology</td>\n",
" <td>Bilateral Myringotomies - 1</td>\n",
" <td>preoperative diagnoses:, om, chronic, serous,...</td>\n",
" <td>ent - otolaryngology, adenoid hyperplasia, om,...</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>956</th>\n",
" <td>3787</td>\n",
" <td>adenoidectomy and tonsillectomy and lingual f...</td>\n",
" <td>ENT - Otolaryngology</td>\n",
" <td>Adenoidectomy & Tonsillectomy & Lingual Frenu...</td>\n",
" <td>preoperative diagnoses:,1. chronic adenotonsi...</td>\n",
" <td>ent - otolaryngology, adenotonsillitis, ankylo...</td>\n",
" <td>9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>784 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 ... labels\n",
"11 18 ... 30\n",
"12 20 ... 30\n",
"14 22 ... 30\n",
"15 23 ... 30\n",
"16 24 ... 30\n",
".. ... ... ...\n",
"951 3782 ... 9\n",
"952 3783 ... 9\n",
"953 3784 ... 9\n",
"954 3785 ... 9\n",
"956 3787 ... 9\n",
"\n",
"[784 rows x 7 columns]"
]
},
"metadata": {},
"execution_count": 9
}
],
"source": [
"test_unseen_categories"
]
},
{
"cell_type": "code",
"source": [
"test_unseen_categories['medical_specialty'].value_counts()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3UKgTUvW30Va",
"outputId": "7c2b1d3d-2e85-4c27-a9a5-071dcdb9cc06"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Urology 156\n",
"Obstetrics / Gynecology 155\n",
"ENT - Otolaryngology 96\n",
"Hematology - Oncology 90\n",
"Ophthalmology 83\n",
"Nephrology 81\n",
"Pediatrics - Neonatal 70\n",
"Psychiatry / Psychology 53\n",
"Endocrinology 0\n",
"Diets and Nutritions 0\n",
"Dermatology 0\n",
"Dentistry 0\n",
"Cosmetic / Plastic Surgery 0\n",
"Chiropractic 0\n",
"Cardiovascular / Pulmonary 0\n",
"Bariatrics 0\n",
"Autopsy 0\n",
"Gastroenterology 0\n",
"Lab Medicine - Pathology 0\n",
"Hospice - Palliative Care 0\n",
"IME-QME-Work Comp etc. 0\n",
"Speech - Language 0\n",
"Letters 0\n",
"Neurology 0\n",
"Orthopedic 0\n",
"Physical Medicine - Rehab 0\n",
"Podiatry 0\n",
"Radiology 0\n",
"Rheumatology 0\n",
"Sleep Medicine 0\n",
"Allergy / Immunology 0\n",
"Name: medical_specialty, dtype: int64"
]
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TuwK4HWa2iPI"
},
"source": [
"**Display categories distribution**"
]
},
{
"cell_type": "markdown",
"source": [
"**full data top 20 categoris**"
],
"metadata": {
"id": "RfstS-BYcam5"
}
},
{
"cell_type": "code",
"source": [
"cause_dist = full_data['medical_specialty'].value_counts()[0:20]\n",
"print(cause_dist)\n",
"plt.figure(figsize=(9,9))\n",
"plt.title(' ', y=-0.15)\n",
"plt.pie(cause_dist, labels=list(cause_dist.index), autopct=\"%.1f%%\")\n",
"plt.axis('equal')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "OP5s3tlTcPyK",
"outputId": "fdcb04be-575b-4af0-dd79-ec7eeb6c1509"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Surgery 1088\n",
"Consult - History and Phy. 516\n",
"Cardiovascular / Pulmonary 371\n",
"Orthopedic 355\n",
"Radiology 273\n",
"General Medicine 259\n",
"Gastroenterology 224\n",
"Neurology 223\n",
"SOAP / Chart / Progress Notes 166\n",
"Urology 156\n",
"Obstetrics / Gynecology 155\n",
"Discharge Summary 108\n",
"ENT - Otolaryngology 96\n",
"Neurosurgery 94\n",
"Hematology - Oncology 90\n",
"Ophthalmology 83\n",
"Nephrology 81\n",
"Emergency Room Reports 75\n",
"Pediatrics - Neonatal 70\n",
"Pain Management 61\n",
"Name: medical_specialty, dtype: int64\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(-1.1035156440932012,\n",
" 1.1001674125714922,\n",
" -1.1009171942126887,\n",
" 1.1060213005022443)"
]
},
"metadata": {},
"execution_count": 16
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 648x648 with 1 Axes>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"**selected categories**"
],
"metadata": {
"id": "FKy5z5u5cdC6"
}
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 713
},
"id": "deXkSOdB2lMp",
"outputId": "4889e030-7d67-4f12-c7c7-dbf9d2fb3e3e"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Cardiovascular / Pulmonary 371\n",
"Orthopedic 355\n",
"Neurology 317\n",
"Radiology 273\n",
"Gastroenterology 224\n",
"Name: medical_specialty, dtype: int64\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(-1.1238888937307316, 1.10113756636813, -1.1149502140560064, 1.113596635204414)"
]
},
"metadata": {},
"execution_count": 15
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlwAAAI+CAYAAABpINThAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXxU5b0/8M83M5M9OQES9mVAEJBVgUBdK2pri9ba2mr1VrpptdS23tv+Or1dnHq1xrbW2utC1apt1Xq1daGOS+u+guwEBEEk7JsJ2TPreX5/nAECJGSbmefMOZ/365WXMJnMfCbC5MP3POc5opQCEREREaVPju4ARERERE7HwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZixcRERERGnGwkVERESUZl7dAYjIIYJGDoACALkAEsd8BBtMjemIiLQSpZTuDESkW9AoAFABoLzdf8uPus2AVajyk/9t/5EPq2h1pX0JiwNoBdAEoBlAU4056INPRm8vAnAg+VGf/O9+ADsB7AKwt6ZqHssbEWUVFi4ip7MmT0MB+Dv4GJX8XKGOaEfbocrfOz3yh8ou7hYHsAdWAevoYzOA7TVV8/jmRkS2wUOKRE4RNMoBTAEwGcAkAGNhlaoR6N70SbtmVRDtxt28AIYnPzrT6g+ENgL4IPmx4eCva6rmtfQ5KBFRD7FwEWWboFEKq1S1/5gEYKDOWKnQgKJEih6qEMD05Ed7yh8I7YRVvt4HsALAMgDra6rmpeq5iYiOwcJFZGdBIxfAyQDmJD9mAxitNVMa1auidD+F4PB07Jx2t7f4A6FVAJbDKmDLYE3DuFaMiFKChYvIToKGH1apOliwTgaQpzNSJh1QJbrWXRUBOC35cVCTPxBaCat8vQ3g9ZqqebU6whFR9mPhItIpaIwFcC6sacvpAAbrDaRXHUo9ujO0UwLgzOTHf8I6HLkGwGsAXoVVwOr1xSOibMLCRZRJQaMCVrk6WLL8WvPYTK2yVeE6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\n",
"text/plain": [
"<Figure size 648x648 with 1 Axes>"
]
},
"metadata": {}
}
],
"source": [
"cause_dist = data['medical_specialty'].value_counts()[0:top_categories_num]\n",
"print(cause_dist)\n",
"plt.figure(figsize=(9,9))\n",
"plt.title(' ', y=-0.15)\n",
"plt.pie(cause_dist, labels=list(cause_dist.index), autopct=\"%.1f%%\")\n",
"plt.axis('equal')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "m0nMj1EXGcG5",
"outputId": "86a5e3cb-e5fc-4530-dcfb-b526785aa1b3"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" mri left knee without contrast.\n",
"exam:,mri left knee without contrast,clinical:,left knee pain.,findings:,comparison is made with 10/13/05 radiographs.,there is a prominent suprapatellar effusion. patient has increased signal within the medial collateral ligament as well as fluid around it, compatible with type 2 sprain. there is fluid around the lateral collateral ligament without increased signal within the ligament itself, compatible with type 1 sprain.,medial and lateral menisci contain some minimal increased signal centrally that does not extend through an articular surface and findings are felt to represent minimal myxoid degeneration. no tear is seen. anterior cruciate and posterior cruciate ligaments are intact. there is a bone bruise of medial patellar facet measuring approximately 8 x 5 mm. there is suggestion of some mild posterior aspect of the lateral tibial plateau. mr signal on the bone marrow is otherwise normal.,impression:,type 2 sprain in the medial collateral ligament and type sprain in the lateral collateral ligament.,joint effusion and bone bruise with suggestion of some minimal overlying chondromalacia and medial patellar facet.\n",
"Radiology\n"
]
}
],
"source": [
"print(data[\"description\"][100])\n",
"print(data[\"transcription\"][100])\n",
"print(data[\"medical_specialty\"][100])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8QESrnMzSBa2"
},
"source": [
"**Histogram: Length of description sentences**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "wUWLxZq4jA1c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 279
},
"outputId": "8a5ac448-8d7a-4299-f6b9-927e285ee7d1"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"# get length of all the sentences\n",
"seq_len = [len(data[\"description\"][i].split()) for i in range(data.shape[0])]\n",
"pd.Series(seq_len).hist(bins = 30)\n",
"plt.xlabel('Length')\n",
"plt.ylabel('Frequency')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_5l88XhtSKtg"
},
"source": [
"**Histogram: Length of transcription sentences**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 279
},
"id": "bU5eI2EYL2At",
"outputId": "a7bd6d2e-5f0a-42fa-d22c-1a046257fa30"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEGCAYAAACO8lkDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAYzUlEQVR4nO3de5Ad9XXg8e8BPwKMl4chE63AGXARshjZCkwwWXvJjFnbPJwAzoaYIhhhFtm7OGWXlYpl7IqpdbGlZANsvMSO5UAAPxiweZgAcYIpxsSpxViiCBJgzEusEUIKDwsGU4DE2T+6J1yr59FzNff2zNzvp+rW9P31r2+fo9bo6Nfd99eRmUiS1GqXpgOQJM09FgdJUoXFQZJUYXGQJFVYHCRJFa9rOoCdse++++bAwEBb277wwgvssccesxvQPGDevcW8e0vdvNeuXftUZu43VZ95XRwGBgZYs2ZNW9uOjo4yNDQ0uwHNA+bdW8y7t9TNOyIem66Pp5UkSRUWB0lShcVBklRhcZAkVVgcJEkVFgdJUoXFQZJUYXGQJFVYHCRJFfP6G9JzzcDKm2r127DqhA5HIkk7x5GDJKnC4iBJqrA4SJIqLA6SpAqLgySpwuIgSaroWHGIiAMi4raIuC8i7o2IT5Tt+0TELRHxYPlz77I9IuKLEfFQRNwTEYd3KjZJ0tQ6OXLYBqzIzEOBo4BzIuJQYCVwa2YeDNxavgc4Dji4fC0HvtzB2CRJU+hYccjMTZl5V7n8PHA/sBg4Ebi87HY5cFK5fCJwRRbuAPaKiEWdik+SNLmuXHOIiAHgN4AfAv2Zualc9STQXy4vBn7astnjZZskqcsiMzu7g4g+4PvA+Zl5bUT8LDP3aln/bGbuHRE3Aqsy8wdl+63ApzNzzQ6ft5zitBP9/f1HjIyMtBXX2NgYfX197SU1iXUbt9bqt2TxnrO635noRN7zgXn3FvOe2vDw8NrMHJyqT0fnVoqI1wPXAN/IzGvL5s0RsSgzN5WnjbaU7RuBA1o2379s+wWZuRpYDTA4OJhDQ0NtxTY6Okq7205mWd25lU6b3f3ORCfyng/Mu7eY987r5N1KAVwC3J+ZF7asugE4o1w+A/hOS/uHy7uWjgK2tpx+kiR1USdHDu8CTgfWRcTdZdu5wCrg6og4C3gMOKVcdzNwPPAQ8HPgzA7GJkmaQseKQ3ntICZZfcwE/RM4p1PxzEdOAS6pKX5DWpJUYXGQJFX4JLgG1D1dJElNceQgSaqwOEiSKiwOkqQKrznU4DUCSb3GkYMkqcLiIEmqsDhIkiosDpKkCouDJKnC4iBJqrA4SJIqLA6SpAqLgySpopOPCb00IrZExPqWtqsi4u7ytWH8CXERMRARL7as++tOxSVJml4np8+4DLgYuGK8ITP/YHw5Ii4Atrb0fzgzl3YwHklSTZ18TOjtETEw0bqICIpnR7+nU/uXJLUvikc3d+jDi+JwY2YetkP70cCFmTnY0u9e4CfAc8DnMvOfJvnM5cBygP7+/iNGRkbaim1sbIy+vr5afddt3Dp9pwYtWbxn7b4zyXshMe/eYt5TGx4eXjv+7+9kmpqV9VTgypb3m4C3ZObTEXEEcH1EvC0zn9txw8xcDawGGBwczKGhobYCGB0dpe62y+b4rKwbThuq3XcmeS8k5t1bzHvndf1upYh4HfBB4Krxtsx8KTOfLpfXAg8Dv9bt2CRJhSZuZf3PwI8z8/HxhojYLyJ2LZcPAg4GHmkgNkkSnb2V9Urg/wKHRMTjEXFWuepD/OIpJYCjgXvKW1u/DXwsM5/pVGySpKl18m6lUydpXzZB2zXANZ2KRZI0M35DWpJUYXGQJFVYHCRJFRYHSVKFxUGSVGFxkCRVWBwkSRUWB0lShcVBklRhcZAkVVgcJEkVFgdJUoXFQZJUYXGQJFVYHCRJFZ182M+lEbElIta3tJ0XERsj4u7ydXzLus9ExEMR8UBEvL9TcUmSptfJkcNlwLETtF+UmUvL180AEXEoxRPi3lZu86Xxx4ZKkrqvk0+Cuz0iBmp2PxEYycyXgEcj4iHgSIrHjGoaAytvqtVvw6oTOhyJpIWiiWsOH4+Ie8rTTnuXbYuBn7b0ebxskyQ1IDKzcx9ejBxuzMzDyvf9wFNAAl8AFmXmRyLiYuCOzPx62e8S4O8z89sTfOZyYDlAf3//ESMjI23FNjY2Rl9fX62+6zZubWsfc82SxXvOKO+FxLx7i3lPbXh4eG1mDk7Vp2OnlSaSmZvHlyPiq8CN5duNwAEtXfcv2yb6jNXAaoDBwcEcGhpqK5bR0VHqbrus5mmbuW7DaUMzynshMe/eYt47r6unlSJiUcvbk4HxO5luAD4UEW+MiAOBg4E7uxmbJOk1HRs5RMSVwBCwb0Q8DnweGIqIpRSnlTYAHwXIzHsj4mrgPmAbcE5mbu9UbJKkqXXybqVTJ2i+ZIr+5wPndyoeSVJ9fkNaklRhcZAkVVgcJEkVFgdJUoXFQZJUYXGQJFVYHCRJFRYHSVKFxUGSVGFxkCRV1CoOEbGk04FIkuaOuiOHL0XEnRHx3yNiz45GJElqXK3ikJn/CTiN4pkLayPimxHx3o5GJklqTO1rDpn5IPA54NPAbwNfjIgfR8QHOxWcJKkZda85vD0iLgLuB94D/E5m/ody+aIOxidJakDd5zn8H+BvgHMz88Xxxsx8IiI+15HIJEmNqXta6QTgm+OFISJ2iYjdATLzaxNtEBGXRsSWiFjf0va/ylNR90TEdRGxV9k+EBEvRsTd5euvdy4tSdLOqFscvgfs1vJ+97JtKpcBx+7QdgtwWGa+HfgJ8JmWdQ9n5tLy9bGacUmSOqBucfilzBwbf1Mu7z7VBpl5O/DMDm3/mJnbyrd3APvPIFZJUpdEZk7fKeKfgT/KzLvK90cAF2fmb02z3QBwY2YeNsG6vwOuysyvl/3upRhNPAd8LjP/aZLPXA4sB+jv7z9iZGRk2vgnMjY2Rl9fX62+6zZubWsfc82SxXvOKO+FxLx7i3lPbXh4eG1mDk7Vp+4F6U8C34qIJ4AAfgX4g5rbVkTEZ4FtwDfKpk3AWzLz6bLwXB8Rb8vM53bcNjNXA6sBBgcHc2hoqK0YRkdHqbvtspU3tbWPuWbDaUMzynshMe/eYt47r1ZxyMwfRcSvA4eUTQ9k5ivt7DAilgEfAI7JctiSmS8BL5XLayPiYeDXgDXt7EOStHPqjhwAfhMYKLc5PCLIzCtmsrOIOBb4E+C3M/PnLe37Ac9k5vaIOAg4GHhkJp8tSZo9tYpDRHwNeCtwN7C9bE5g0uIQEVcCQ8C+EfE48HmKu5PeCNwSEQB3lHcmHQ38j4h4BXgV+FhmPjPhB0uSOq7uyGEQODTrXL0uZeapEzRfMknfa4Br6n62JKmz6t7Kup7iIrQkqQfUHTnsC9wXEXdSXjgGyMzf7UhUkqRG1S0O53UyCEnS3FL3VtbvR8SvAgdn5vfKeZV27WxokqSm1J2y+2zg28BXyqbFwPWdCkqS1Ky6F6TPAd5FMbXF+IN/frlTQUmSmlX3msNLmfly+d0EIuJ1FN9z0DwysPImVizZVms6kA2rTuhCRJLmqrojh+9HxLnAbuWzo78F/F3nwpIkNalucVgJ/CuwDvgocDPF86QlSQtQ3buVXgW+Wr4kSQtc3bmVHmWCawyZedCsRyRJatxM5lYa90vA7wP7zH44kqS5oNY1h8x8uuW1MTP/N+DtLJK0QNU9rXR4y9tdKEYSM3kWhCRpHqn7D/wFLcvbgA3AKbMejSRpTqh7t9JwOx8eEZdSPBJ0S2YeVrbtA1xF8VS5DcApmflsFN+w+0vgeODnwLLMvKud/UqSdk7d00qfmmp9Zl44yarLgIv5xSfGrQRuzcxVEbGyfP9p4DiKx4MeDLwT+HL5U5LUZXW/BDcI/DeKCfcWAx8DDgfeVL4mlJm3Azs+7vNE4PJy+XLgpJb2K7JwB7BXRCyqGZ8kaRbVveawP3B4Zj4PEBHnATdl5h+2sc/+zNxULj8J9JfLi4GftvR7vGzbhCSpq+oWh37g5Zb3L/PaP+pty8yMiBlN4BcRy4HlAP39/YyOjra177Gxsdrbrliyra19zEX9u9XLp90/17lqJsd7ITHv3jKbedctDlcAd0bEdeX7k3jt1NBMbY6IRZm5qTxttKVs3wgc0NJv/7LtF2TmamA1wODgYA4NDbUVxOjoKHW3rTOL6XyxYsk2Llg3/WHfcNpQ54Ppopkc74XEvHvLbOZd90tw5wNnAs+WrzMz83+2uc8bgDPK5TOA77S0fzgKRwFbW04/SZK6aCZfZNsdeC4z/zYi9ouIAzPz0ak2iIgrgSFg34h4HPg8sAq4OiLOAh7jte9L3ExxG+tDFLeynjmjTCRJs6burayfp7hj6RDgb4HXA1+neDrcpDLz1ElWHTNB36R44pwkqWF1b2U9Gfhd4AWAzHyCKW5hlSTNb3WLw8vl/+wTICL26FxIkqSm1S0OV0fEVyi+mHY28D188I8kLVjTXnMo5zy6Cvh14DmK6w5/mpm3dDg2SVJDpi0O5RfVbs7MJYAFQZJ6QN3TSndFxG92NBJJ0pxR93sO7wT+MCI2UNyxFBSDird3KjBJUnOmLA4R8ZbM/H/A+7sUjyRpDphu5HA9xWysj0XENZn5e90ISpLUrOmuOUTL8kGdDESSNHdMVxxykmVJ0gI23Wmld0TEcxQjiN3KZXjtgvS/62h0kqRGTFkcMnPXbgUiSZo76n7PQZLUQ2byPAf1kIGaT7/bsOqEDkciqQkWB+0Ui4i0MHW9OETEIRQT+Y07CPhTYC/gbOBfy/ZzM/PmLocnSaKB4pCZDwBLASJiV2AjcB3FY0Evysy/6FYsdf/XK0m9pukL0scAD2fmYw3HIUlqEcUD3hraecSlwF2ZeXFEnAcso3hmxBpgRWY+O8E2y4HlAP39/UeMjIy0te+xsTEe3bq9zcjnr/7dYPOL3d/vksV7dn+nLcbGxujr62s0hiaYd2+pm/fw8PDazBycqk9jxSEi3gA8AbwtMzdHRD/wFMU3sb8ALMrMj0z1GYODg7lmzZq29j86Osqy777Q1rbz2Yol27hgXffvQ2j6gvTo6ChDQ0ONxtAE8+4tdfOOiGmLQ5OnlY6jGDVsBsjMzZm5PTNfpXgE6ZENxiZJPa3J4nAqcOX4m4hY1LLuZGB91yOSJAENfc8hIvYA3gt8tKX5zyNiKcVppQ07rJMkdVEjxSEzXwDevEPb6U3Eou7wy3LS/NL0raySpDnI4iBJqrA4SJIqLA6SpAqLgySpwuIgSaqwOEiSKiwOkqQKi4MkqcLiIEmqsDhIkiosDpKkCouDJKnC4iBJqrA4SJIqLA6SpIpGHvYDEBEbgOeB7cC2zByMiH2Aq4ABiqfBnZKZzzYVo7rPhwJJc0PTI4fhzFyamYPl+5XArZl5MHBr+V6S1GVNF4cdnQhcXi5fDpzUYCyS1LMiM5vZccSjwLNAAl/JzNUR8bPM3KtcH8Cz4+9btlsOLAfo7+8/YmRkpK39j42N8ejW7TuTwrzUvxtsfrHpKHbeksV7zqj/2NgYfX19HYpm7jLv3lI37+Hh4bUtZ2wm1Ng1B+DdmbkxIn4ZuCUifty6MjMzIiqVKzNXA6sBBgcHc2hoqK2dj46OcsEPXmhr2/lsxZJtXLCuycM+OzacNjSj/qOjo7T7d2U+M+/eMpt5N3ZaKTM3lj+3ANcBRwKbI2IRQPlzS1PxSVIva6Q4RMQeEfGm8WXgfcB64AbgjLLbGcB3mohPknpdU+cX+oHrissKvA74ZmZ+NyJ+BFwdEWcBjwGnNBSfJPW0RopDZj4CvGOC9qeBY7ofkSSp1Vy7lVWSNAdYHCRJFfP/nkb1JKfZkDrLkYMkqcLiIEmqsDhIkiosDpKkCouDJKnC4iBJqrA4SJIqLA6SpAqLgySpwuIgSaqwOEiSKpxbSQva+BxMK5ZsY9kU8zE5B5P0i7o+coiIAyLitoi4LyLujYhPlO3nRcTGiLi7fB3f7dgkSYUmRg7bgBWZeVf5qNC1EXFLue6izPyLBmKSJLXoenHIzE3ApnL5+Yi4H1jc7TgkSZOLzGxu5xEDwO3AYcCngGXAc8AaitHFsxNssxxYDtDf33/EyMhIW/seGxvj0a3b29p2PuvfDTa/2HQU3Tdd3ksW79m9YLpobGyMvr6+psPoOvOe2vDw8NrMHJyqT2PFISL6gO8D52fmtRHRDzwFJPAFYFFmfmSqzxgcHMw1a9a0tf/R0VGWffeFtradz1Ys2cYF63rvPoTp8l6oF6RHR0cZGhpqOoyuM++pRcS0xaGRW1kj4vXANcA3MvNagMzcnJnbM/NV4KvAkU3EJklq5m6lAC4B7s/MC1vaF7V0OxlY3+3YJEmFJs4vvAs4HVgXEXeXbecCp0bEUorTShuAjzYQmySJZu5W+gEQE6y6uduxSJIm5vQZkqQKi4MkqcLiIEmq6L0b3qUJDEwxKd+OFup3IqRWjhwkSRUWB0lShcVBklRhcZAkVVgcJEkVFgdJUoW3skozVPe2V2951XzmyEGSVOHIQeoQRxiazywOUsMsIpqLLA7SPDHbRcSipKl4zUGSVDHnRg4RcSzwl8CuwN9k5qqGQ5LmldYRwYol21g2g0kFp/u86TjKWDjm1MghInYF/go4DjiU4tGhhzYblST1nrk2cjgSeCgzHwGIiBHgROC+RqOSVMtMRhmdNNmIaT6MbObKtaDIzI7uYCYi4r8Ax2bmfy3fnw68MzM/3tJnObC8fHsI8ECbu9sXeGonwp2vzLu3mHdvqZv3r2bmflN1mGsjh2ll5mpg9c5+TkSsyczBWQhpXjHv3mLevWU2855T1xyAjcABLe/3L9skSV0014rDj4CDI+LAiHgD8CHghoZjkqSeM6dOK2Xmtoj4OPAPFLeyXpqZ93Zodzt9amqeMu/eYt69ZdbynlMXpCVJc8NcO60kSZoDLA6SpIqeLA4RcWxEPBARD0XEyqbjmW0RsSEi1kXE3RGxpmzbJyJuiYgHy597l+0REV8s/yzuiYjDm42+voi4NCK2RMT6lrYZ5xkRZ5T9H4yIM5rIZSYmyfu8iNhYHvO7I+L4lnWfKfN+ICLe39I+b34PIuKAiLgtIu6LiHsj4hNl+4I+3lPk3fnjnZk99aK40P0wcBDwBuBfgEObjmuWc9wA7LtD258DK8vllcCflcvHA38PBHAU8MOm459BnkcDhwPr280T2Ad4pPy5d7m8d9O5tZH3ecAfT9D30PLv+BuBA8u/+7vOt98DYBFweLn8JuAnZW4L+nhPkXfHj3cvjhz+bYqOzHwZGJ+iY6E7Ebi8XL4cOKml/Yos3AHsFRGLmghwpjLzduCZHZpnmuf7gVsy85nMfBa4BTi289G3b5K8J3MiMJKZL2Xmo8BDFL8D8+r3IDM3ZeZd5fLzwP3AYhb48Z4i78nM2vHuxeKwGPhpy/vHmfoPez5K4B8jYm053QhAf2ZuKpefBPrL5YX25zHTPBdS/h8vT6FcOn56hQWYd0QMAL8B/JAeOt475A0dPt69WBx6wbsz83CK2W3PiYijW1dmMf5c8Pcw90qepS8DbwWWApuAC5oNpzMiog+4BvhkZj7Xum4hH+8J8u748e7F4rDgp+jIzI3lzy3AdRRDys3jp4vKn1vK7gvtz2OmeS6I/DNzc2Zuz8xXga9SHHNYQHlHxOsp/oH8RmZeWzYv+OM9Ud7dON69WBwW9BQdEbFHRLxpfBl4H7CeIsfxOzPOAL5TLt8AfLi8u+MoYGvLMH0+mmme/wC8LyL2Lofm7yvb5pUdrhOdTHHMocj7QxHxxog4EDgYuJN59nsQEQFcAtyfmRe2rFrQx3uyvLtyvJu+Gt/Ei+JOhp9QXL3/bNPxzHJuB1HcifAvwL3j+QFvBm4FHgS+B+xTtgfFA5YeBtYBg03nMINcr6QYUr9CcQ71rHbyBD5CceHuIeDMpvNqM++vlXndU/7SL2rp/9ky7weA41ra583vAfBuilNG9wB3l6/jF/rxniLvjh9vp8+QJFX04mklSdI0LA6SpAqLgySpwuIgSaqwOEiSKiwO0gQiYqzDn//JiNi9W/uTZsriIDXjk8Du0/aSGjKnniEtzWUR8VaKL1btB/wcODszfxwRlwHPAYPArwB/kpnfjohdgIuB91BMevYKcCnw78vXbRHxVGYOl59/PvAB4EXgxMzc3M38pFaOHKT6VgN/lJlHAH8MfKll3SKKb7N+AFhVtn0QGKCYY/904LcAMvOLwBPA8HhhAPYA7sjMdwC3A2d3NBNpGo4cpBrKWTH/I/CtYroboHigyrjrs5gE7b6IGJ82+t3At8r2JyPitil28TJwY7m8FnjvrAUvtcHiINWzC/CzzFw6yfqXWpZjkj5TeSVfm8tmO/5uqmGeVpJqyGIO/Ucj4vfh355R/I5pNvtn4PciYpdyNDHUsu55isc+SnOSxUGa2O4R8XjL61PAacBZETE+4+10j9W8hmLW1PuArwN3AVvLdauB705zqklqjLOySh0UEX2ZORYRb6aYV/9dmflk03FJ0/G8ptRZN0bEXsAbgC9YGDRfOHKQJFV4zUGSVGFxkCRVWBwkSRUWB0lShcVBklTx/wH1SPLOoxK8zgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"seq_len = [len(data[\"transcription\"][i].split()) for i in range(data.shape[0])]\n",
"pd.Series(seq_len).hist(bins = 30)\n",
"plt.xlabel('Length')\n",
"plt.ylabel('Frequency')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "wwVOOgyiSXMb"
},
"outputs": [],
"source": [
"\n",
"MAX_SENTENCE_LENGTh = 70 "
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Bfvv7-ngmL7d"
},
"source": [
"## **Split data to train/validation/test sets**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "XnVx4S7EmP2h"
},
"outputs": [],
"source": [
"train_text, temp_text, train_labels, temp_labels = train_test_split(data['description'], data['labels'], \n",
" random_state=42, \n",
" test_size=0.3, \n",
" stratify=data['labels'])\n",
"\n",
"\n",
"val_text, test_text, val_labels, test_labels = train_test_split(temp_text, temp_labels, \n",
" random_state=42, \n",
" test_size=0.5, \n",
" stratify=temp_labels)"
]
},
{
"cell_type": "code",
"source": [
"unseen_train_text, unseen_test_text, unseen_train_labels, unseen_test_labels = train_test_split(test_unseen_categories['description'], test_unseen_categories['labels'], \n",
" random_state=42, \n",
" test_size=0.2, \n",
" stratify=test_unseen_categories['labels'])"
],
"metadata": {
"id": "tRb8Z-lJbd_f"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "urrJrgHLYFKS"
},
"source": [
"## **Tokenize the texts**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "n6OtL2gVaRjp"
},
"source": [
"Explaination about the tokenizer:\n",
"\n",
"https://huggingface.co/course/chapter2/4?fw=pt\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "z8IWzxgyoWtu",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 113,
"referenced_widgets": [
"775bcd5cf9184e0c87acd7ff1a36eb1a",
"d3a42c6c788c4c6e941387f2dc1166f6",
"dac72c0e94484ca38175d01cc56652f8",
"692b491ae3bb40419b3030689a92bb06",
"a5730ed02bbc4cf3ab2d3009b9f0d416",
"0a2d9d795c274e5399f078cd718af4a2",
"fcaaffd670774e5bb8045eab2c195498",
"7379f5a332b8410aa512862ce11041d3",
"97e6b8fbaac544de922da51d8a6d46f2",
"2b2a38a5db8e476884c07b13686624a4",
"25c73f63b9784a7fa080a68746674f4b",
"bff90e3c2e3944edb07065388a12ddc8",
"2e34fe920768463c8595e07d0af9ebec",
"5c322073112c4d6083eb39d3ced0d847",
"d5a7fcfc90174c229b2512a222a088fe",
"3e6cc80498c04949ad2a1a907c215292",
"5925f130fa3e45999e8589a10a840c8a",
"fa912ad358484f6bb06121cac10a4f4a",
"41e305f3d4cb4d58b8cf14a840ad6de2",
"85bad92f464c4257a627b447c8b2529b",
"1d12064a6eaa49878233fa7e7ec3a9a2",
"b10223fdadea45b4ba6cb020f86e32cf",
"69e008667ece48a08bb00d625e63aa7c",
"6dee499d7cd643f5b1326253abd876ff",
"612edcef03c24cc18517b9b5091be38a",
"bb1a0b451f02400a8802af2c737df802",
"0ef237d4e93e4d3ca99aac29e802ace8",
"bd566f2730a740ddbedd20863c1aea6c",
"647c97c1068449e3aa8e6d26a4394cf9",
"60cad1fa99954b9c82a3009edc100328",
"53ac2c24165946bf97cb0a49c9c78048",
"3f77ae8baa294138ad70ee1b0f881faf",
"dd9631bf29164744b17f29383ab11d91"
]
},
"outputId": "70bbf494-c63e-430d-b1ff-707ff8fb5791"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "775bcd5cf9184e0c87acd7ff1a36eb1a",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
"Downloading: 0%| | 0.00/221k [00:00<?, ?B/s]"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "bff90e3c2e3944edb07065388a12ddc8",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
"Downloading: 0%| | 0.00/28.0 [00:00<?, ?B/s]"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "69e008667ece48a08bb00d625e63aa7c",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
"Downloading: 0%| | 0.00/385 [00:00<?, ?B/s]"
]
},
"metadata": {}
}
],
"source": [
"# Load the BERT tokenizer\n",
"model_name = 'microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract-fulltext' #('bert-base-uncased') 'microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract-fulltext'\n",
"tokenizer = BertTokenizerFast.from_pretrained(model_name) \n",
"\n",
"# Longformer toknizer\n",
"#model_name = \"allenai/longformer-base-4096\" \n",
"#tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
"\n",
"# tokenize and encode sequences in the sets set\n",
"texts = [train_text, val_text, test_text, unseen_train_text, unseen_test_text]\n",
"tokens_texts = []\n",
"\n",
"for text in texts:\n",
" tokens_texts.append(tokenizer.batch_encode_plus(text.tolist(),max_length = MAX_SENTENCE_LENGTh, padding='max_length', truncation=True))\n",
"\n",
"train_tokinized, val_tokinized, test_tokinized, unseen_train_tokinized, unseen_test_tokinized = tokens_texts"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "eyZgTlagpvoI"
},
"outputs": [],
"source": [
"def convert_to_tensors(data, labels):\n",
" \n",
" seq = torch.tensor(data['input_ids'])\n",
" mask = torch.tensor(data['attention_mask'])\n",
" y = torch.tensor(labels.tolist())\n",
"\n",
" return seq, mask, y\n",
"\n",
"train_seq, train_mask, train_y = convert_to_tensors(train_tokinized, train_labels)\n",
"val_seq, val_mask, val_y = convert_to_tensors(val_tokinized, val_labels)\n",
"test_seq, test_mask, test_y = convert_to_tensors(test_tokinized, test_labels)\n",
"\n",
"unseen_train_seq, unseen_train_mask, unseen_train_y = convert_to_tensors(unseen_train_tokinized, unseen_train_labels)\n",
"unseen_test_seq, unseen_test_mask, unseen_test_y = convert_to_tensors(unseen_test_tokinized, unseen_test_labels)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "b9N37HYaYOyQ"
},
"source": [
"## **Build custom data loaders**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hfttASxQsbOs"
},
"outputs": [],
"source": [
"from torch.utils.data import Dataset, DataLoader\n",
"\n",
"\n",
"class ContrastiveDataset(Dataset):\n",
"\n",
" def __init__(self, train_seq, train_mask, train_y, positive_prob=0.5):\n",
"\n",
" super().__init__()\n",
" self.train_seq = train_seq\n",
" self.train_mask = train_mask\n",
" self.train_y = train_y\n",
" self.positive_prob = positive_prob # probability to sample two texts with the same category\n",
" \n",
" self.hash_table = {} # format: {\"category\" : [i1, i2, ...]}\n",
"\n",
" # construct a hash table, each key is a category\n",
" # and the value is a list of the indexs of the texts which belong to this category \n",
" for i in range(len(self.train_seq)):\n",
" label = self.train_y[i].item()\n",
" if label in self.hash_table:\n",
" self.hash_table[label].append(i)\n",
" else:\n",
" self.hash_table[label] = [i]\n",
" \n",
"\n",
" def __getitem__(self, index):\n",
" \"\"\"\n",
" Sample two texts from the same category with probability self.positive_prob\n",
" :param index: index (int)\n",
" :return: seq_0 - a sequence of IDs (each ID represent a word in the vocabulary)\n",
" seq_1 - a sequence which differnt from seq0 (different text)\n",
" mask_0 - attention mask for seq1\n",
" mask_1 - attention mask for seq1\n",
" same_class - 1 if seq0 and seq1 are both from the same category, 0 otherwise\n",
" \"\"\"\n",
" same_class = random.uniform(0, 1)\n",
" same_class = same_class > self.positive_prob\n",
"\n",
" seq_0 = self.train_seq[index]\n",
" mask_0 = self.train_mask[index]\n",
" label_0 = self.train_y[index].item()\n",
" class_samples = self.hash_table[label_0]\n",
"\n",
" if len(class_samples) < 2: # handle the case where there are only a single text in some category (in this case we can't draw another text from this category...)\n",
" same_class = False\n",
"\n",
" if same_class:\n",
" while True: \n",
" rnd_idx = random.randint(0, len(class_samples) - 1)\n",
" index_1 = class_samples[rnd_idx]\n",
" if index_1 != index:\n",
" seq_1 = self.train_seq[index_1]\n",
" mask_1 = self.train_mask[index_1]\n",
" label_1 = self.train_y[index_1].item()\n",
" break\n",
" else:\n",
" while True:\n",
" index_1 = random.randint(0, self.__len__() - 1)\n",
" if index_1 != index:\n",
" seq_1 = self.train_seq[index_1]\n",
" mask_1 = self.train_mask[index_1]\n",
" label_1 = self.train_y[index_1].item()\n",
" if label_1 != label_0:\n",
" break\n",
"\n",
" return seq_0, seq_1, mask_0, mask_1, torch.tensor(same_class, dtype=torch.float)\n",
"\n",
" def __len__(self):\n",
" return len(self.train_seq)\n",
"\n",
"class SimpleDataset(Dataset):\n",
"\n",
" def __init__(self, seq, mask, y, positive_prob=0.5):\n",
"\n",
" super().__init__()\n",
" self.seq = seq\n",
" self.mask = mask\n",
" self.y = y\n",
"\n",
"\n",
" def __getitem__(self, index):\n",
" \"\"\"\n",
" Sample texts by the order of the training set.\n",
" :param index: index (int)\n",
" :return: seq - a sequence of IDs (each ID represent a word in the vocabulary)\n",
" mask - attention mask for seq\n",
" y - the category of this text\n",
" \n",
" \"\"\"\n",
" return self.seq[index], self.mask[index], torch.tensor(self.y[index].item())\n",
"\n",
" def __len__(self):\n",
" return len(self.seq)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "_zGBpXmVFhjx"
},
"outputs": [],
"source": [
"train_set = ContrastiveDataset(train_seq, train_mask, train_y)\n",
"val_set = ContrastiveDataset(val_seq, val_mask, val_y)\n",
"test_set = ContrastiveDataset(test_seq, test_mask,test_y)\n",
"\n",
"train_set_simple = SimpleDataset(train_seq, train_mask, train_y)\n",
"test_set_simple = SimpleDataset(test_seq, test_mask, test_y)\n",
"unseen_train_set_simple = SimpleDataset(unseen_train_seq, unseen_train_mask, unseen_train_y)\n",
"unseen_test_set_simple = SimpleDataset(unseen_test_seq, unseen_test_mask, unseen_test_y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "enGjFc3jg1-I"
},
"outputs": [],
"source": [
"trainLoader = DataLoader(train_set, batch_size=32, shuffle=True, drop_last=False, num_workers=0)\n",
"valLoader = DataLoader(val_set, batch_size=32, shuffle=True, drop_last=False, num_workers=0)\n",
"testLoader = DataLoader(test_set, batch_size=10, shuffle=False, drop_last=False, num_workers=0)\n",
"\n",
"trainLoader_simple = DataLoader(train_set_simple, batch_size=32, shuffle=False, drop_last=False, num_workers=0)\n",
"testLoader_simple = DataLoader(test_set_simple, batch_size=64, shuffle=False, drop_last=False, num_workers=0)\n",
"unseen_trainLoader_simple = DataLoader(unseen_train_set_simple, batch_size=64, shuffle=False, drop_last=False, num_workers=0)\n",
"unseen_testLoader_simple = DataLoader(unseen_test_set_simple, batch_size=64, shuffle=False, drop_last=False, num_workers=0)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VcEtc6gdAAOR"
},
"source": [
"# **Siamese Transformer Network**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "KqUoH8NaeNlB"
},
"outputs": [],
"source": [
"\n",
"\n",
"class BERT_Arch(nn.Module):\n",
"\n",
" def __init__(self, bert):\n",
" \n",
" super(BERT_Arch, self).__init__()\n",
"\n",
" self.bert = bert \n",
"\n",
" # For cls_hs output (First token embedding)\n",
"\n",
" #self.fc1 = nn.Linear(768,512)\n",
" #self.dropout = nn.Dropout(0.1)\n",
" #self.relu = nn.ReLU()\n",
" #self.fc2 = nn.Linear(512,128)\n",
"\n",
" # For hs output (all tokens embeddings)\n",
" # https://chriskhanhtran.github.io/posts/cnn-sentence-classification/\n",
" self.conv1 = nn.Conv1d(in_channels=768, out_channels=128, kernel_size=3, stride=1) # kernal_size=3 == three-grams\n",
" self.avg_pooling = nn.AvgPool1d(kernel_size=2) \n",
" self.conv2 = nn.Conv1d(in_channels=128, out_channels=64, kernel_size=3, stride=1) \n",
" self.flatten = nn.Flatten() \n",
" self.fc = nn.Linear(64,128) \n",
" self.dropout = nn.Dropout(0.2)\n",
"\n",
" # Other options:\n",
" #Mean of the token embeddings\n",
" #Max of the token embedding\n",
" \n",
" def forward(self, seq, mask):\n",
" \n",
" # Explaination on BERT and its outputs:\n",
" # https://towardsdatascience.com/tips-and-tricks-for-your-bert-based-applications-359c6b697f8e\n",
" # To sum up: BERT is a transformer encoder, meanning it produces representations of the inputs, and hence we can use it for several tasks.\n",
"\n",
" # BERT returns a dictionary of vectors where the first is called 'sequence output' (or 'hidden state'=hs) and the other is 'pooled output' (or 'cls_hs').\n",
" # ** 'sequence_output' is of shape [batch_size, max_seq_length, 768] with representations for each input token (including start symbol and end symbol)\n",
" # ** 'pooled_output' is of shape [batch_size, 768] with representations for the entire input sequences. It created by taking only the first token embedded vector (start symbol)\n",
" # (and pass it throgh more layers (?))\n",
" \n",
" # The idea of \"pooled_output\":\n",
" # Since, the embeddings from the BERT model at the output layer are known to be contextual embeddings, the output of the 1st token, i.e, [CLS] token\n",
" # would have captured sufficient context. Hence, the authors of BERT paper found it sufficient to use only the output from the 1st token for few tasks\n",
" # such as classification. They call this output from the single token (i.e, 1st token) as pooled_output.\n",
"\n",
" # Get embeddings from bert. \n",
" # Output shape: hs = (b, max_len_seq, embed_dim) \n",
" # cls = (b, embed_dim)\n",
" # where: b: batch_size\n",
" # max_len_seq=number of tokens in the longest text (we defined it erilier)\n",
" hs, cls_hs = self.bert(seq, attention_mask=mask, return_dict=False) \n",
" \n",
" #x = self.fc1(cls_hs)\n",
" #x = self.dropout(x)\n",
" #x = self.relu(x) \n",
" #x = self.fc2(x) \n",
"\n",
" \n",
" x = hs.permute(0, 2, 1).contiguous() # Permute `hs` to match input shape requirement of `nn.Conv1d`\n",
" # The contiguous() ensures the memory of the tensor is stored contiguously\n",
" # which helps avoid potential issues during processing.\n",
" # Output shape: (b, 768, 70) = (b, embed_dim, max_len_seq). \n",
" \n",
" x = F.relu(self.conv1(x)) # Output shape: (b, 128, *) * depends on kernel size and padding\n",
" x = self.avg_pooling(x) # Output shape: (b, 128, *)\n",
" x = F.relu(self.conv2(x)) # Output shape: (b, 128, *)\n",
" x = F.max_pool1d(x, kernel_size=x.shape[2]) # Output shape: (b, 128, 1) # trick: we use kernel of size x.shape[2] to reduce from * to 1\n",
" x = self.flatten(x) # Output shape: (b, 128)\n",
" x = self.fc(x) # Output shape: (b, 128)\n",
" x = self.dropout(x) \n",
" \n",
" return x\n",
"\n",
"\n",
"class SiameseNeuralNetwork(nn.Module):\n",
" \n",
" def __init__(self, bert_arch):\n",
" super().__init__() # TODO super?\n",
"\n",
" self.bert_arch = bert_arch\n",
" self.distance_layer = nn.Sequential(nn.Linear(128, 1), nn.Sigmoid()) # if we would use BCEWithLogitsLoss as loss function, we should delte the sigmoid since we dont need it after the linear layer a sigmoid layer \n",
"\n",
"\n",
" def forward(self, seq1, seq2, mask1, mask2):\n",
" feature_vec1 = self.bert_arch(seq1, mask1) # feature_vec1 shape: [batch_size, embedding_size]\n",
" feature_vec2 = self.bert_arch(seq2, mask2)\n",
" difference = torch.abs(feature_vec1 - feature_vec2) \n",
" out = self.distance_layer(difference)\n",
" return out #feature_vec1, feature_vec2#out\n",
"\n",
"\n",
"class ContrastiveLoss(nn.Module):\n",
" \"\"\"\n",
" Takes embeddings of two samples and a target label == 1 if samples are from the same class and label == 0 otherwise\n",
" \"\"\"\n",
"\n",
" def __init__(self, margin):\n",
" super(ContrastiveLoss, self).__init__()\n",
" self.margin = margin\n",
" self.eps = 1e-9\n",
"\n",
" def forward(self, output1, output2, target, size_average=True):\n",
" distances = (output2 - output1).pow(2).sum(1) # squared distances\n",
" losses = 0.5 * (target.float() * distances +\n",
" (1 + -1 * target).float() * torch.nn.functional.relu(self.margin - (distances + self.eps).sqrt()).pow(2))\n",
" return losses.mean() if size_average else losses.sum()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "qojVadA31lyg"
},
"outputs": [],
"source": [
"def train_siamese_network(model, dataloaders, num_epochs, device): \n",
" \"\"\"\n",
" Train the given SNN model.\n",
"\n",
" :param model: SNN model\n",
" :param dataloaders: a dict that contains train data loader and validation data loader\n",
" :param num_epochs: number of epochs\n",
" :param device: 'cpu' or 'cuda' \n",
"\n",
" :return: train_loss_history - list of train losses by epochs\n",
" val_loss_history - list of validation losses by epochs\n",
"\n",
" \"\"\"\n",
" train_loss_history = []\n",
" val_loss_history = []\n",
" matching_similarity = []\n",
" non_matching_similarity = []\n",
"\n",
" val_matching_similarity = []\n",
" val_non_matching_similarity = []\n",
"\n",
" criterion = torch.nn.BCELoss(reduction='mean') #ContrastiveLoss(margin=1) #losses.ContrastiveLoss(pos_margin=0, neg_margin=1) # torch.nn.BCEWithLogitsLoss(reduction='mean') # the labels are same class (1) vs. different class (0)\n",
" learning_rate = 0.005 # 0.005 # 0.1\n",
" optimizer = AdamW(model.parameters(),lr =learning_rate)#torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9) # AdamW(model.parameters(),lr =learning_rate) 1e-5\n",
" \n",
" # lr = lr * factor \n",
" # mode='min': look for the min validation loss to track\n",
" # patience: number of epochs - 1 where loss plateaus before decreasing LR\n",
" # patience = 0, after 1 bad epoch, reduce LR\n",
" # factor: decaying factor\n",
"\n",
" #scheduler = ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=1, verbose=True, min_lr=0.0001) ########################################################\n",
" #cyclic_scheduler = torch.optim.lr_scheduler.CyclicLR(optimizer, base_lr=0.0001, max_lr=0.1, cycle_momentum=False) ########################################################\n",
"\n",
" for epoch in range(num_epochs): # loop over the train dataset multiple times\n",
"\n",
" # Each epoch has a training and validation phase\n",
" for phase in ['train', 'val']:\n",
" \n",
" if phase == 'train':\n",
" model.train() \n",
" else:\n",
" model.eval() \n",
"\n",
" running_loss = 0.0\n",
"\n",
" for i, batch in enumerate(dataloaders[phase]):\n",
"\n",
" seq1, seq2, mask1, mask2, label = batch\n",
"\n",
" if device == 'cuda':\n",
" seq1, seq2, mask1, mask2, label = seq1.to(device), seq2.to(device), mask1.to(device), mask2.to(device), label.to(device)\n",
"\n",
" # zero the parameter gradients\n",
" optimizer.zero_grad()\n",
" \n",
" # track history only in train\n",
" with torch.set_grad_enabled(phase == 'train'):\n",
"\n",
" # forward \n",
" output = model.forward(seq1, seq2, mask1, mask2) \n",
" loss = criterion(output, label.view(output.size())) # criterion(output.squeeze(0), label.view(1)) label.view((trainLoader.batch_size,1))\n",
" \n",
" # backward + optimize only if in training phase\n",
" if phase == 'train': # with torch.no_grad() if phae == 'val'?\n",
" loss.backward()\n",
" torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # clip the the gradients to 1.0. It helps in preventing the exploding gradient problem\n",
" optimizer.step()\n",
" #cyclic_scheduler.step() ########################################################\n",
"\n",
" # save similarity scores for training data\n",
" output = output.cpu().detach().numpy()\n",
" label = label.cpu().numpy()\n",
" non_matching_similarity.append((sum(output[label == 0]) / sum(label == 0)).item())\n",
" matching_similarity.append((sum(output[label == 1]) / sum(label == 1)).item())\n",
" \n",
" if phase == 'val':\n",
" val_non_matching_similarity.append((sum(output[label == 0]) / sum(label == 0)).item())\n",
" val_matching_similarity.append((sum(output[label == 1]) / sum(label == 1)).item())\n",
"\n",
" running_loss += loss.item() * seq1.size(0) #we multiply by the batch size (note that the batch size in the last batch may not be the batch size we did since the batch size dont necceraly divide the train size)\n",
"\n",
" epoch_loss = running_loss / len(dataloaders[phase].dataset)\n",
" if phase == 'train':\n",
" train_loss_history.append(epoch_loss) \n",
" else:\n",
" val_loss_history.append(epoch_loss)\n",
" #scheduler.step(epoch_loss) ########################################################\n",
"\n",
" print('Epoch {} | {} loss: {:.3f}'.format(epoch, phase, epoch_loss))\n",
" \n",
" \n",
" return train_loss_history, val_loss_history, [non_matching_similarity, matching_similarity, val_non_matching_similarity, val_matching_similarity]\n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "YX4aRDKm4Rq1",
"outputId": "89dc4592-c7f2-48dc-ed2b-e6cbba4bd0a1"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Using cuda device\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"Some weights of the model checkpoint at microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract-fulltext were not used when initializing BertModel: ['cls.predictions.bias', 'cls.predictions.transform.dense.weight', 'cls.seq_relationship.weight', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.decoder.bias', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.transform.dense.bias', 'cls.seq_relationship.bias', 'cls.predictions.decoder.weight']\n",
"- This IS expected if you are initializing BertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
"- This IS NOT expected if you are initializing BertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 0 | train loss: 0.697\n",
"Epoch 0 | val loss: 0.632\n",
"Epoch 1 | train loss: 0.646\n",
"Epoch 1 | val loss: 0.616\n",
"Epoch 2 | train loss: 0.618\n",
"Epoch 2 | val loss: 0.705\n",
"Epoch 3 | train loss: 0.612\n",
"Epoch 3 | val loss: 0.566\n",
"Epoch 4 | train loss: 0.597\n",
"Epoch 4 | val loss: 0.639\n",
"Epoch 5 | train loss: 0.573\n",
"Epoch 5 | val loss: 0.676\n",
"Epoch 6 | train loss: 0.562\n",
"Epoch 6 | val loss: 0.549\n",
"Epoch 7 | train loss: 0.544\n",
"Epoch 7 | val loss: 0.604\n",
"Epoch 8 | train loss: 0.565\n",
"Epoch 8 | val loss: 0.628\n",
"Epoch 9 | train loss: 0.568\n",
"Epoch 9 | val loss: 0.608\n",
"Epoch 10 | train loss: 0.581\n",
"Epoch 10 | val loss: 0.537\n",
"Epoch 11 | train loss: 0.560\n",
"Epoch 11 | val loss: 0.578\n",
"Epoch 12 | train loss: 0.542\n",
"Epoch 12 | val loss: 0.541\n",
"Epoch 13 | train loss: 0.525\n",
"Epoch 13 | val loss: 0.590\n",
"Epoch 14 | train loss: 0.531\n",
"Epoch 14 | val loss: 0.631\n",
"Epoch 15 | train loss: 0.531\n",
"Epoch 15 | val loss: 0.568\n",
"Epoch 16 | train loss: 0.552\n",
"Epoch 16 | val loss: 0.597\n",
"Epoch 17 | train loss: 0.532\n",
"Epoch 17 | val loss: 0.523\n",
"Epoch 18 | train loss: 0.506\n",
"Epoch 18 | val loss: 0.591\n",
"Epoch 19 | train loss: 0.524\n",
"Epoch 19 | val loss: 0.515\n",
"Epoch 20 | train loss: 0.511\n",
"Epoch 20 | val loss: 0.573\n",
"Epoch 21 | train loss: 0.505\n",
"Epoch 21 | val loss: 0.603\n",
"Epoch 22 | train loss: 0.529\n",
"Epoch 22 | val loss: 0.522\n",
"Epoch 23 | train loss: 0.482\n",
"Epoch 23 | val loss: 0.731\n",
"Epoch 24 | train loss: 0.490\n",
"Epoch 24 | val loss: 0.770\n",
"Epoch 25 | train loss: 0.498\n",
"Epoch 25 | val loss: 0.568\n",
"Epoch 26 | train loss: 0.491\n",
"Epoch 26 | val loss: 0.534\n",
"Epoch 27 | train loss: 0.478\n",
"Epoch 27 | val loss: 0.686\n",
"Epoch 28 | train loss: 0.488\n",
"Epoch 28 | val loss: 0.555\n",
"Epoch 29 | train loss: 0.486\n",
"Epoch 29 | val loss: 0.570\n"
]
}
],
"source": [
"# specify GPU\n",
"# Get cpu or gpu device for training.\n",
"device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
"print(\"Using {} device\".format(device))\n",
"\n",
"# import BERT-base pretrained model\n",
"bert = AutoModel.from_pretrained(model_name) # ('bert-base-uncased') 'microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract-fulltext'\n",
"\n",
"# freeze all the parameters\n",
"for param in bert.parameters():\n",
" param.requires_grad = False\n",
"\n",
"# pass the pre-trained BERT to our define architecture\n",
"bert_arch = BERT_Arch(bert)\n",
"\n",
"SNN_model = SiameseNeuralNetwork(bert_arch).to(device)\n",
"num_epochs = 30\n",
"\n",
"train_loss_history, val_loss_history, similarities_list = train_siamese_network(SNN_model, dataloaders={\"train\":trainLoader, \"val\":valLoader}, num_epochs=num_epochs, device=device)\n",
"\n",
"non_matching_similarity, matching_similarity, val_non_matching_similarity, val_matching_similarity = similarities_list"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4i32Y2j8LYdn"
},
"source": [
"**Plot Losses**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ROm9F8mJLeO_"
},
"outputs": [],
"source": [
"def plot_losses(train_loss_history, val_loss_history, num_epochs):\n",
" \n",
" fig = go.Figure()\n",
"\n",
" line_color = [px.colors.qualitative.Light24[5], px.colors.qualitative.Light24[4]] \n",
"\n",
"\n",
" fig.add_trace(go.Scatter(x=list(range(1, num_epochs+1)), y=train_loss_history, mode='lines', line=dict(color=line_color[0], width=1), name=\"train loss\"))\n",
" fig.add_trace(go.Scatter(x=list(range(1, num_epochs+1)), y=val_loss_history, mode='lines',line=dict(color=line_color[1], width=1), name=\"valdiation loss\")) #opacity=0.8\n",
"\n",
" fig.update_yaxes(range=[0, 1])\n",
" fig.update_traces(textposition='top center')\n",
" fig.update_layout(autosize=False,width=900, height=500, title_text=\"SNN Loss\", title_x=0.5, xaxis_title=\"Epoch\", yaxis_title=\"\", xaxis = dict(tickmode='linear', tick0=1, dtick=1), legend=dict(yanchor=\"top\",xanchor=\"right\", x=1.35, y=1),template=\"plotly_dark\")\n",
" fig.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
},
"id": "RGXbOid_MbE1",
"outputId": "a89b1800-624a-4db5-ed77-7f8d8e3de5bc"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"4d6f7fce-a6e1-489e-8571-dd9c9e7282d0\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"4d6f7fce-a6e1-489e-8571-dd9c9e7282d0\")) {\n",
" Plotly.newPlot(\n",
" '4d6f7fce-a6e1-489e-8571-dd9c9e7282d0',\n",
" [{\"line\": {\"color\": \"#0DF9FF\", \"width\": 1}, \"mode\": \"lines\", \"name\": \"train loss\", \"textposition\": \"top center\", \"type\": \"scatter\", \"x\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], \"y\": [0.7054237179278443, 0.6265472942247904, 0.603505700771353, 0.6020117614950452, 0.5872039029129361, 0.573669690700984, 0.6026330887718413, 0.5989546817839698, 0.5643523300070046, 0.5580398387280819, 0.5683228636716867, 0.55377829085918, 0.5358527937492767, 0.5531034163287487, 0.5566783986418942, 0.5687515539340053, 0.5612308057871732, 0.5434279542464715, 0.5313318954549163, 0.544379710708788, 0.516313598416953, 0.5156000412461488, 0.5071330589133424, 0.5580290406665909, 0.5164212430784123, 0.5176821120484199, 0.48999927924161496, 0.5077028474692732, 0.48783804291033345, 0.5035172351437287]}, {\"line\": {\"color\": \"#FE00CE\", \"width\": 1}, \"mode\": \"lines\", \"name\": \"valdiation loss\", \"textposition\": \"top center\", \"type\": \"scatter\", \"x\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], \"y\": [0.676363219688465, 0.6713376525160554, 0.5583492065920974, 0.7502428143571466, 0.6422556072344512, 0.6376463368341521, 0.6165405807299015, 0.5563571076372485, 0.5015164283446936, 0.592246578111277, 0.5878009522632087, 0.5771578297470555, 0.6279447857951705, 0.636031749960664, 0.5639270860137362, 0.577501067609498, 0.5468437648438788, 0.6271910886743884, 0.6119618322942164, 0.5114659073548916, 0.578898777693381, 0.5156069929465587, 0.5104422031284926, 0.5507247610525652, 0.5808975146962451, 0.5679601565067902, 0.6101901370919112, 0.6289728717370466, 0.7602357959850526, 0.48235132374288714]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"x\": 1.35, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"SNN Loss\", \"x\": 0.5}, \"width\": 900, \"xaxis\": {\"dtick\": 1, \"tick0\": 1, \"tickmode\": \"linear\", \"title\": {\"text\": \"Epoch\"}}, \"yaxis\": {\"range\": [0, 1], \"title\": {\"text\": \"\"}}},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('4d6f7fce-a6e1-489e-8571-dd9c9e7282d0');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
],
"source": [
"plot_losses(train_loss_history, val_loss_history, num_epochs)"
]
},
{
"cell_type": "code",
"source": [
"def plot_similarity_scores(non_matching_similarity, matching_similarity):\n",
"\n",
" train_num_batchs = len(non_matching_similarity)\n",
" \n",
" fig = go.Figure()\n",
"\n",
" line_color = [px.colors.qualitative.Light24[22], px.colors.qualitative.Light24[19]] \n",
"\n",
"\n",
" fig.add_trace(go.Scatter(x=list(range(1, train_num_batchs+1)), y=non_matching_similarity, mode='lines', line=dict(color=line_color[0], width=1), name=\"unmatching categories\"))\n",
" fig.add_trace(go.Scatter(x=list(range(1, train_num_batchs+1)), y=matching_similarity, mode='lines',line=dict(color=line_color[1], width=1), name=\"matching categories\")) #opacity=0.8\n",
"\n",
" fig.update_yaxes(range=[0, 1])\n",
" fig.update_traces(textposition='top center')\n",
" fig.update_layout(autosize=False,width=900, height=500, title_text=\"Similarity Scores\", title_x=0.5, xaxis_title=\"Batch\", yaxis_title=\"\", legend=dict(yanchor=\"top\",xanchor=\"right\", x=1.35, y=1),template=\"plotly_dark\")\n",
" fig.show()"
],
"metadata": {
"id": "tgHNvKBiSbOb"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"plot_similarity_scores(non_matching_similarity, matching_similarity)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
},
"id": "QQ3fQb6JSf9i",
"outputId": "cd1827cf-9650-4709-a18a-54ffcb345325"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"6981cd48-7196-4dd9-9ae5-4c3bc8f71a6a\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"6981cd48-7196-4dd9-9ae5-4c3bc8f71a6a\")) {\n",
" Plotly.newPlot(\n",
" '6981cd48-7196-4dd9-9ae5-4c3bc8f71a6a',\n",
" [{\"line\": {\"color\": \"#FC6955\", \"width\": 1}, \"mode\": \"lines\", \"name\": \"unmatching categories\", \"textposition\": \"top center\", \"type\": \"scatter\", \"x\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020], \"y\": [0.5162928104400635, 0.572094738483429, 0.6730896234512329, 0.6324520707130432, 0.5351654887199402, 0.5263772010803223, 0.47306105494499207, 0.44472214579582214, 0.45997825264930725, 0.5109027624130249, 0.5530040860176086, 0.5815303921699524, 0.5713947415351868, 0.593425989151001, 0.6049976348876953, 0.6062835454940796, 0.601677417755127, 0.5740081667900085, 0.5479710698127747, 0.5355966091156006, 0.5140106081962585, 0.5124817490577698, 0.47209811210632324, 0.4666304588317871, 0.4307979941368103, 0.39722347259521484, 0.41836556792259216, 0.42368340492248535, 0.45161423087120056, 0.4373590648174286, 0.4590308666229248, 0.408132940530777, 0.436469167470932, 0.4517155885696411, 0.4103875160217285, 0.34852689504623413, 0.34436824917793274, 0.295637845993042, 0.3356638550758362, 0.36357080936431885, 0.3915422558784485, 0.4354153871536255, 0.33175763487815857, 0.42634710669517517, 0.5079596042633057, 0.5255042910575867, 0.5363529920578003, 0.5121646523475647, 0.39897119998931885, 0.3930557668209076, 0.38900884985923767, 0.2182726263999939, 0.274946004152298, 0.34926214814186096, 0.4162368178367615, 0.41692543029785156, 0.3498885929584503, 0.5225662589073181, 0.41648563742637634, 0.589048445224762, 0.6264747977256775, 0.549769401550293, 0.45369264483451843, 0.40847429633140564, 0.3320482075214386, 0.38228434324264526, 0.33054500818252563, 0.45432719588279724, 0.4154043197631836, 0.3980317711830139, 0.4728740155696869, 0.3386867940425873, 0.4229917824268341, 0.36810240149497986, 0.5115066766738892, 0.5126541256904602, 0.4449695646762848, 0.42644479870796204, 0.41627463698387146, 0.3031921088695526, 0.3760151267051697, 0.3326115608215332, 0.1552550196647644, 0.29757529497146606, 0.382199764251709, 0.30611452460289, 0.2875846028327942, 0.29459765553474426, 0.38069358468055725, 0.3947465717792511, 0.28299981355667114, 0.3568449914455414, 0.270922988653183, 0.35166919231414795, 0.30914124846458435, 0.34063720703125, 0.4932200014591217, 0.4451988935470581, 0.3713792860507965, 0.4279828369617462, 0.25822389125823975, 0.5104261636734009, 0.39438530802726746, 0.4154053032398224, 0.3803046643733978, 0.30577224493026733, 0.4027203321456909, 0.3114612102508545, 0.37836435437202454, 0.22390684485435486, 0.23383335769176483, 0.26451119780540466, 0.35631343722343445, 0.21466735005378723, 0.3266622722148895, 0.4275888204574585, 0.5718287229537964, 0.5808218121528625, 0.643978476524353, 0.4932570159435272, 0.5155171155929565, 0.31518709659576416, 0.47772666811943054, 0.21515724062919617, 0.3001887798309326, 0.24104183912277222, 0.28247103095054626, 0.23606990277767181, 0.3245353102684021, 0.4334939420223236, 0.40280383825302124, 0.4488305151462555, 0.539498507976532, 0.6330653429031372, 0.607150137424469, 0.5752906799316406, 0.49883800745010376, 0.474518358707428, 0.3929968774318695, 0.28520458936691284, 0.17865848541259766, 0.22717565298080444, 0.17686666548252106, 0.1571095734834671, 0.2487068772315979, 0.3204903304576874, 0.3508993089199066, 0.3972349464893341, 0.6034452319145203, 0.5072869658470154, 0.4836586117744446, 0.6125618815422058, 0.40507301688194275, 0.42206308245658875, 0.32763543725013733, 0.37580111622810364, 0.2632441818714142, 0.33219432830810547, 0.27734488248825073, 0.12981587648391724, 0.40389081835746765, 0.33406591415405273, 0.45465484261512756, 0.4685438573360443, 0.49213600158691406, 0.3675747215747833, 0.5182168483734131, 0.34175345301628113, 0.4515645205974579, 0.44612380862236023, 0.458508163690567, 0.27030837535858154, 0.3599388897418976, 0.2784096896648407, 0.27378609776496887, 0.19606417417526245, 0.2815247178077698, 0.3451541066169739, 0.34814029932022095, 0.38178908824920654, 0.4268377125263214, 0.6098355650901794, 0.4437345564365387, 0.5974292159080505, 0.5763757824897766, 0.3189127743244171, 0.2803981304168701, 0.31830891966819763, 0.3094651401042938, 0.28538984060287476, 0.1566246747970581, 0.38645482063293457, 0.3559263348579407, 0.3690991997718811, 0.42877888679504395, 0.3717744052410126, 0.3950536847114563, 0.4467006027698517, 0.27261441946029663, 0.3417098820209503, 0.2655143141746521, 0.28905221819877625, 0.2609562575817108, 0.20829015970230103, 0.2913590669631958, 0.33201414346694946, 0.38392776250839233, 0.3440905809402466, 0.32197728753089905, 0.3279711604118347, 0.43330779671669006, 0.3866349458694458, 0.3563469648361206, 0.4033350348472595, 0.33490458130836487, 0.3017871081829071, 0.3987496495246887, 0.34972286224365234, 0.2824045419692993, 0.29419440031051636, 0.37888288497924805, 0.3193381428718567, 0.5108340382575989, 0.27453190088272095, 0.4173910319805145, 0.3652048707008362, 0.45252496004104614, 0.5133510828018188, 0.42436936497688293, 0.24624855816364288, 0.2522081732749939, 0.22995533049106598, 0.3155554533004761, 0.21829983592033386, 0.23802344501018524, 0.2647421956062317, 0.46228301525115967, 0.4690055251121521, 0.4730730652809143, 0.49372389912605286, 0.3741917312145233, 0.4788200855255127, 0.45223039388656616, 0.3401426076889038, 0.1756056249141693, 0.425821989774704, 0.32982105016708374, 0.31542840600013733, 0.35275256633758545, 0.3126441538333893, 0.2926321029663086, 0.22631841897964478, 0.3483498692512512, 0.22946426272392273, 0.43850621581077576, 0.48034265637397766, 0.35775789618492126, 0.23650185763835907, 0.32247743010520935, 0.2168641835451126, 0.3124200403690338, 0.4838346838951111, 0.3261815011501312, 0.3289327621459961, 0.3240187168121338, 0.2581116855144501, 0.30731484293937683, 0.2937902510166168, 0.24883942306041718, 0.43165192008018494, 0.34246960282325745, 0.23812736570835114, 0.43867552280426025, 0.43486255407333374, 0.36095407605171204, 0.25567924976348877, 0.4546976387500763, 0.3934275507926941, 0.44969937205314636, 0.34058478474617004, 0.31572526693344116, 0.3319847285747528, 0.3241628110408783, 0.27322104573249817, 0.36944496631622314, 0.3488006293773651, 0.1843453049659729, 0.3135800361633301, 0.3716903328895569, 0.20096218585968018, 0.3377167880535126, 0.3631872534751892, 0.31658199429512024, 0.3244751989841461, 0.5627884268760681, 0.48941540718078613, 0.45872893929481506, 0.5146228075027466, 0.2878514230251312, 0.21026787161827087, 0.22156119346618652, 0.35291215777397156, 0.22799542546272278, 0.2996220588684082, 0.40129566192626953, 0.29216694831848145, 0.3213028609752655, 0.3182332515716553, 0.4771650433540344, 0.25832125544548035, 0.27248501777648926, 0.29213330149650574, 0.28716811537742615, 0.350780189037323, 0.29568466544151306, 0.38651445508003235, 0.3931081295013428, 0.3756581246852875, 0.4662708044052124, 0.2606789171695709, 0.40401360392570496, 0.2977718412876129, 0.4391518831253052, 0.24422724545001984, 0.3287743926048279, 0.47810855507850647, 0.27460265159606934, 0.357393354177475, 0.3755515217781067, 0.4924575090408325, 0.42889973521232605, 0.4631759226322174, 0.4918629825115204, 0.4399254620075226, 0.40605026483535767, 0.3392961621284485, 0.5177117586135864, 0.33745327591896057, 0.39974072575569153, 0.14168190956115723, 0.3536597192287445, 0.3088630437850952, 0.2280465066432953, 0.23063741624355316, 0.38151249289512634, 0.4422280490398407, 0.5664825439453125, 0.5006078481674194, 0.5441880226135254, 0.47313055396080017, 0.3040562868118286, 0.38783591985702515, 0.2361348569393158, 0.14318020641803741, 0.2043542116880417, 0.1578170657157898, 0.1282007098197937, 0.24028043448925018, 0.314863383769989, 0.41424378752708435, 0.34094351530075073, 0.5018510818481445, 0.4521118700504303, 0.3866618573665619, 0.3809792995452881, 0.4148229658603668, 0.35913559794425964, 0.40108540654182434, 0.2866370379924774, 0.2479679137468338, 0.14864160120487213, 0.19997435808181763, 0.3874300420284271, 0.36263829469680786, 0.37567082047462463, 0.47800934314727783, 0.5178569555282593, 0.42078226804733276, 0.3644527196884155, 0.36353638768196106, 0.35742321610450745, 0.30268552899360657, 0.3135398328304291, 0.2082672268152237, 0.18737845122814178, 0.32505664229393005, 0.3461722731590271, 0.3417063057422638, 0.4531303644180298, 0.3356286883354187, 0.31828099489212036, 0.42279279232025146, 0.3224864900112152, 0.3008531630039215, 0.433026522397995, 0.18518848717212677, 0.2662060260772705, 0.25809580087661743, 0.3869097828865051, 0.36699897050857544, 0.3532445430755615, 0.36095860600471497, 0.42644649744033813, 0.33228302001953125, 0.4406258761882782, 0.4269825220108032, 0.4372274577617645, 0.32934239506721497, 0.270567923784256, 0.3580247163772583, 0.3408981263637543, 0.45771467685699463, 0.46659013628959656, 0.379716157913208, 0.26088234782218933, 0.2729789614677429, 0.29543253779411316, 0.3134523630142212, 0.23783355951309204, 0.2293749749660492, 0.33437347412109375, 0.3495272099971771, 0.31098252534866333, 0.37520721554756165, 0.42111828923225403, 0.4736560583114624, 0.38066449761390686, 0.5202664732933044, 0.4500938355922699, 0.4773191809654236, 0.31922227144241333, 0.1755952537059784, 0.26674026250839233, 0.08842233568429947, 0.1469402015209198, 0.23531968891620636, 0.18602553009986877, 0.3104056119918823, 0.23944933712482452, 0.44572174549102783, 0.349705308675766, 0.4318442940711975, 0.2764149010181427, 0.31193992495536804, 0.4086414873600006, 0.26923662424087524, 0.23227426409721375, 0.2629854381084442, 0.2415168285369873, 0.273686945438385, 0.2198723703622818, 0.3406065106391907, 0.26684343814849854, 0.37426090240478516, 0.3728327453136444, 0.418735533952713, 0.3660525679588318, 0.3971920907497406, 0.27296116948127747, 0.35351136326789856, 0.43805423378944397, 0.3580839931964874, 0.3946695327758789, 0.46039479970932007, 0.4014938175678253, 0.4025684893131256, 0.3271244764328003, 0.23336510360240936, 0.3571879267692566, 0.23685148358345032, 0.28942131996154785, 0.4096091091632843, 0.2825912833213806, 0.43153226375579834, 0.5215563178062439, 0.23924997448921204, 0.32430803775787354, 0.2257794588804245, 0.3454362154006958, 0.2906862199306488, 0.24406114220619202, 0.25608375668525696, 0.2640521228313446, 0.2697340250015259, 0.30341067910194397, 0.20285487174987793, 0.3850494623184204, 0.3520154058933258, 0.30025193095207214, 0.3891797959804535, 0.36400312185287476, 0.2591690719127655, 0.23492363095283508, 0.3296060860157013, 0.3552095890045166, 0.2762075960636139, 0.30790451169013977, 0.27788591384887695, 0.23841089010238647, 0.3571455478668213, 0.23522430658340454, 0.2539621889591217, 0.410888135433197, 0.3624620735645294, 0.43324339389801025, 0.4488670825958252, 0.3580838739871979, 0.3116995394229889, 0.43971019983291626, 0.4914705753326416, 0.3408508002758026, 0.2929301857948303, 0.12233719974756241, 0.22568096220493317, 0.2520015835762024, 0.42531564831733704, 0.30340611934661865, 0.16634824872016907, 0.2253793478012085, 0.2967568635940552, 0.4596787095069885, 0.4473002254962921, 0.5129324197769165, 0.47233888506889343, 0.2055780589580536, 0.32590898871421814, 0.31386351585388184, 0.32152673602104187, 0.2172923982143402, 0.3042333424091339, 0.23270201683044434, 0.38716042041778564, 0.16468693315982819, 0.28116732835769653, 0.3582528233528137, 0.31513845920562744, 0.3161343038082123, 0.30239784717559814, 0.34766504168510437, 0.4296269416809082, 0.43681707978248596, 0.39950358867645264, 0.36824342608451843, 0.3886769711971283, 0.27907583117485046, 0.366245836019516, 0.3908361494541168, 0.2732427418231964, 0.4790112376213074, 0.4068010747432709, 0.4873356521129608, 0.4669542610645294, 0.34881994128227234, 0.38480621576309204, 0.3039531111717224, 0.11980026960372925, 0.22701677680015564, 0.24887172877788544, 0.10966479033231735, 0.25514233112335205, 0.20783928036689758, 0.32916054129600525, 0.3078122138977051, 0.4117295444011688, 0.32602381706237793, 0.3535018265247345, 0.48123612999916077, 0.29969295859336853, 0.3920722007751465, 0.19481231272220612, 0.37173035740852356, 0.39461028575897217, 0.2657942473888397, 0.4914630651473999, 0.45463478565216064, 0.4511681795120239, 0.3333521783351898, 0.34001338481903076, 0.3534177541732788, 0.3661794066429138, 0.3145390450954437, 0.4116673767566681, 0.35036957263946533, 0.361366868019104, 0.3472066819667816, 0.2932739853858948, 0.4756444990634918, 0.268126904964447, 0.21396510303020477, 0.3000597655773163, 0.41343486309051514, 0.38601213693618774, 0.2789463996887207, 0.17153257131576538, 0.36466091871261597, 0.3011358678340912, 0.35519206523895264, 0.4006456434726715, 0.4746685028076172, 0.4649398922920227, 0.3590148687362671, 0.5013468265533447, 0.28065240383148193, 0.326151579618454, 0.27272021770477295, 0.19251134991645813, 0.2793397307395935, 0.17680826783180237, 0.2822760045528412, 0.2652857303619385, 0.21208319067955017, 0.38830259442329407, 0.4694691598415375, 0.46316075325012207, 0.4688861072063446, 0.35837340354919434, 0.2562844753265381, 0.19842429459095, 0.4124850630760193, 0.19890306890010834, 0.3029504120349884, 0.26893454790115356, 0.3668052852153778, 0.19989825785160065, 0.1838388442993164, 0.3528762459754944, 0.484905868768692, 0.6014637351036072, 0.48619207739830017, 0.3279974162578583, 0.453697144985199, 0.2699945569038391, 0.25770577788352966, 0.21768821775913239, 0.09875010699033737, 0.2676834166049957, 0.24902313947677612, 0.2772253155708313, 0.2725730240345001, 0.29521071910858154, 0.15772227942943573, 0.2587437629699707, 0.4369453191757202, 0.39197400212287903, 0.3624792993068695, 0.29601961374282837, 0.3997950851917267, 0.2794162631034851, 0.18933360278606415, 0.3373209834098816, 0.17187485098838806, 0.22857391834259033, 0.20108085870742798, 0.43294259905815125, 0.22928714752197266, 0.3772227466106415, 0.21934019029140472, 0.37222179770469666, 0.35067862272262573, 0.41835689544677734, 0.3811269700527191, 0.47584670782089233, 0.31256207823753357, 0.19244229793548584, 0.2490025907754898, 0.1590317189693451, 0.30810606479644775, 0.35008949041366577, 0.26340457797050476, 0.26248785853385925, 0.29844528436660767, 0.3504970669746399, 0.15062136948108673, 0.31610801815986633, 0.265983521938324, 0.32070741057395935, 0.22535111010074615, 0.3819747269153595, 0.3708136975765228, 0.30821534991264343, 0.40925177931785583, 0.32135528326034546, 0.3772510588169098, 0.3086983263492584, 0.21387827396392822, 0.38674095273017883, 0.25496917963027954, 0.2667960822582245, 0.21723416447639465, 0.3406103551387787, 0.5109556913375854, 0.41086477041244507, 0.3945882320404053, 0.4645686149597168, 0.4627523422241211, 0.3527285158634186, 0.37323233485221863, 0.2667170763015747, 0.3094733953475952, 0.3361145853996277, 0.37887755036354065, 0.3816749155521393, 0.25287914276123047, 0.27233850955963135, 0.2703664004802704, 0.4483448266983032, 0.37634703516960144, 0.3073174059391022, 0.38915014266967773, 0.27491673827171326, 0.40590986609458923, 0.36574816703796387, 0.2743295133113861, 0.3495056927204132, 0.28295955061912537, 0.2915912866592407, 0.466801255941391, 0.3167189955711365, 0.22644269466400146, 0.297686904668808, 0.2802014946937561, 0.24246253073215485, 0.23249489068984985, 0.3162614703178406, 0.43897107243537903, 0.39915478229522705, 0.5673304200172424, 0.4722703695297241, 0.5352498292922974, 0.5409910678863525, 0.4686930179595947, 0.2964782118797302, 0.2705950438976288, 0.31368106603622437, 0.247923344373703, 0.29170137643814087, 0.21326042711734772, 0.17195039987564087, 0.21313099563121796, 0.19351692497730255, 0.2431773841381073, 0.3231605887413025, 0.3091943860054016, 0.3547654151916504, 0.4633413255214691, 0.33851608633995056, 0.31606239080429077, 0.2498636692762375, 0.3031547963619232, 0.13071861863136292, 0.23599985241889954, 0.2977692186832428, 0.21806998550891876, 0.20410631597042084, 0.1975356787443161, 0.3010038137435913, 0.2439635843038559, 0.611072838306427, 0.29360318183898926, 0.554070234298706, 0.556873083114624, 0.5261618494987488, 0.4617040157318115, 0.35491254925727844, 0.3041548430919647, 0.3177862763404846, 0.24303777515888214, 0.34448882937431335, 0.1677238792181015, 0.4090786576271057, 0.3354487419128418, 0.24156984686851501, 0.28555506467819214, 0.345940500497818, 0.28614524006843567, 0.3989768624305725, 0.2543814778327942, 0.3910163640975952, 0.34447863698005676, 0.3946220874786377, 0.3474561274051666, 0.3714926540851593, 0.290716290473938, 0.3207092583179474, 0.37037479877471924, 0.3705063760280609, 0.38342639803886414, 0.31688371300697327, 0.41755297780036926, 0.4032014012336731, 0.2967548668384552, 0.20541049540042877, 0.22444464266300201, 0.1278127282857895, 0.09965245425701141, 0.09632692486047745, 0.2971816956996918, 0.208877831697464, 0.45216506719589233, 0.303006649017334, 0.4358949363231659, 0.37841182947158813, 0.41732946038246155, 0.4554349482059479, 0.40460941195487976, 0.23792165517807007, 0.19955749809741974, 0.49603569507598877, 0.22627350687980652, 0.28713259100914, 0.27695563435554504, 0.22740007936954498, 0.2569863200187683, 0.2047746628522873, 0.2716718316078186, 0.3071911931037903, 0.2571965456008911, 0.2814196050167084, 0.4030882716178894, 0.23677748441696167, 0.25883749127388, 0.1501617729663849, 0.20202451944351196, 0.23443461954593658, 0.2789665162563324, 0.3803717792034149, 0.3348580598831177, 0.14746488630771637, 0.22266757488250732, 0.2567827105522156, 0.295221745967865, 0.31822988390922546, 0.1473046988248825, 0.30969980359077454, 0.23080599308013916, 0.07945723831653595, 0.08694174140691757, 0.1159474104642868, 0.2972602844238281, 0.06870067864656448, 0.257307231426239, 0.40824171900749207, 0.25083139538764954, 0.2638048529624939, 0.4586506485939026, 0.33114033937454224, 0.36607304215431213, 0.38779136538505554, 0.350186824798584, 0.47373881936073303, 0.29275521636009216, 0.30536800622940063, 0.43137767910957336, 0.33458709716796875, 0.3425447642803192, 0.20056243240833282, 0.4220958650112152, 0.24523213505744934, 0.2893722951412201, 0.33409014344215393, 0.3080393970012665, 0.21607254445552826, 0.21196168661117554, 0.33916977047920227, 0.34354010224342346, 0.25342443585395813, 0.5824546217918396, 0.3695783317089081, 0.40208700299263, 0.30002066493034363, 0.33573585748672485, 0.2784770429134369, 0.3271139860153198, 0.35059037804603577, 0.12180888652801514, 0.1475744992494583, 0.13971595466136932, 0.1870655119419098, 0.34013962745666504, 0.326551616191864, 0.36957499384880066, 0.3611392080783844, 0.33770182728767395, 0.4087577760219574, 0.31119927763938904, 0.3229149281978607, 0.2707175314426422, 0.27174994349479675, 0.2820364534854889, 0.21476826071739197, 0.32594969868659973, 0.339495450258255, 0.36653003096580505, 0.22743624448776245, 0.3982776999473572, 0.1886003017425537, 0.2800668179988861, 0.22422540187835693, 0.27184194326400757, 0.36445069313049316, 0.11453275382518768, 0.20785975456237793, 0.44371137022972107, 0.36153000593185425, 0.3109327554702759, 0.29437679052352905, 0.2345236986875534, 0.23222419619560242, 0.32697466015815735, 0.2850092947483063, 0.2045682817697525, 0.28053897619247437, 0.3375741243362427, 0.30154529213905334, 0.2933070957660675, 0.3625084161758423, 0.45674964785575867, 0.29558080434799194, 0.36308884620666504, 0.3701992630958557, 0.2841929793357849, 0.36389395594596863, 0.252306193113327, 0.225367933511734, 0.24142934381961823, 0.3581445515155792, 0.3597884476184845, 0.30195626616477966, 0.2749703824520111, 0.3153165578842163, 0.3417305648326874, 0.15464842319488525, 0.09923495352268219, 0.18380992114543915, 0.32949745655059814, 0.12671194970607758, 0.38282737135887146, 0.329548180103302, 0.39061492681503296, 0.21991418302059174, 0.30787193775177, 0.2589106559753418, 0.33254170417785645, 0.17681699991226196, 0.3756914436817169, 0.39411497116088867, 0.425902396440506, 0.30679619312286377, 0.23970279097557068, 0.20204797387123108, 0.27705201506614685, 0.17955848574638367, 0.26532039046287537, 0.15990781784057617, 0.26773685216903687, 0.3532169461250305, 0.2685190439224243, 0.35288453102111816, 0.2109653204679489, 0.15535926818847656, 0.38509249687194824, 0.38304778933525085, 0.29445675015449524, 0.34091266989707947, 0.28516727685928345, 0.5129823684692383, 0.38332366943359375, 0.3766893446445465, 0.48410406708717346, 0.2774178385734558, 0.33108094334602356, 0.3961726725101471, 0.2564687430858612, 0.2050383985042572, 0.25448623299598694, 0.17716392874717712, 0.36786672472953796, 0.2788943946361542, 0.3234075903892517, 0.2366640865802765, 0.3338163197040558, 0.26828819513320923, 0.29443296790122986, 0.11866692453622818, 0.30160701274871826, 0.3219497799873352, 0.32079267501831055, 0.24832551181316376, 0.25760599970817566, 0.21181365847587585, 0.42482948303222656, 0.32062798738479614, 0.3565945625305176, 0.422892302274704, 0.43385210633277893, 0.40772774815559387, 0.25492456555366516, 0.24006778001785278, 0.3364957273006439, 0.380288690328598, 0.28080806136131287, 0.28760161995887756, 0.30068379640579224, 0.341011643409729, 0.37272700667381287, 0.3106461465358734, 0.2545597553253174, 0.15687228739261627, 0.1382591873407364, 0.2620275020599365, 0.24167951941490173, 0.3083866536617279, 0.19897396862506866, 0.2981719672679901, 0.45433154702186584, 0.41026607155799866, 0.2970951497554779, 0.255205363035202, 0.41495281457901, 0.27160730957984924]}, {\"line\": {\"color\": \"#86CE00\", \"width\": 1}, \"mode\": \"lines\", \"name\": \"matching categories\", \"textposition\": \"top center\", \"type\": \"scatter\", \"x\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020], \"y\": [0.5193313360214233, 0.5738556385040283, 0.7127704620361328, 0.6258682608604431, 0.509694516658783, 0.4897720515727997, 0.4814319610595703, 0.46475520730018616, 0.47973984479904175, 0.5067200660705566, 0.540315568447113, 0.5660682916641235, 0.568040132522583, 0.6034415364265442, 0.5987948179244995, 0.6116451621055603, 0.5876209735870361, 0.5716649293899536, 0.5493455529212952, 0.5378929972648621, 0.5286251902580261, 0.5011899471282959, 0.49097558856010437, 0.4687901437282562, 0.4482419490814209, 0.40737104415893555, 0.462107390165329, 0.4728107452392578, 0.4869508147239685, 0.47185826301574707, 0.49349161982536316, 0.47420036792755127, 0.46433788537979126, 0.4761273264884949, 0.46405214071273804, 0.43262168765068054, 0.42523297667503357, 0.43589040637016296, 0.4358343780040741, 0.3905319273471832, 0.4450991451740265, 0.4722098708152771, 0.48801037669181824, 0.5690760612487793, 0.5681980848312378, 0.6006150245666504, 0.6439813375473022, 0.6265384554862976, 0.5911027789115906, 0.5594252943992615, 0.45525574684143066, 0.36253228783607483, 0.4052249491214752, 0.4979919195175171, 0.540393054485321, 0.6009176969528198, 0.5413177013397217, 0.5629786252975464, 0.5221758484840393, 0.6725372672080994, 0.6893813014030457, 0.5770822167396545, 0.6143950819969177, 0.5874372124671936, 0.4929942190647125, 0.44450241327285767, 0.473535418510437, 0.4609333276748657, 0.4827326536178589, 0.5036461353302002, 0.5461346507072449, 0.5035988092422485, 0.5167676210403442, 0.5119495987892151, 0.5656031966209412, 0.5796912312507629, 0.5960319638252258, 0.5428081154823303, 0.5355143547058105, 0.506584107875824, 0.4863758087158203, 0.49377498030662537, 0.4534992277622223, 0.4852406680583954, 0.4689196050167084, 0.36880141496658325, 0.464918315410614, 0.5156660079956055, 0.5003925561904907, 0.5426703691482544, 0.5658835172653198, 0.5313928723335266, 0.5473400354385376, 0.5836769342422485, 0.5260082483291626, 0.5483206510543823, 0.5322491526603699, 0.5999546051025391, 0.5534077882766724, 0.49755236506462097, 0.529996395111084, 0.5568962097167969, 0.4713868498802185, 0.5165318250656128, 0.6097486019134521, 0.5665355324745178, 0.5682159662246704, 0.5468214750289917, 0.45900121331214905, 0.44077280163764954, 0.39434149861335754, 0.4988217055797577, 0.5653277039527893, 0.568184494972229, 0.5197402834892273, 0.724254310131073, 0.6925430297851562, 0.7407284379005432, 0.7477625608444214, 0.7404100894927979, 0.7570021748542786, 0.6785435080528259, 0.5440694689750671, 0.5456412434577942, 0.4417538344860077, 0.43431591987609863, 0.5828009843826294, 0.49603578448295593, 0.42066287994384766, 0.46532654762268066, 0.6084229946136475, 0.717208743095398, 0.7166493535041809, 0.7221494317054749, 0.7676676511764526, 0.793355405330658, 0.6793102622032166, 0.6188130974769592, 0.6511663794517517, 0.5669510960578918, 0.44921910762786865, 0.45656514167785645, 0.4061630666255951, 0.4087545871734619, 0.3976801931858063, 0.5561793446540833, 0.6524178981781006, 0.6898193955421448, 0.6968055367469788, 0.756683886051178, 0.7198779582977295, 0.7078709006309509, 0.6747127175331116, 0.5564582943916321, 0.5034624338150024, 0.5815414786338806, 0.5739433169364929, 0.6039912104606628, 0.5546473264694214, 0.5654279589653015, 0.5992684960365295, 0.5144686102867126, 0.5575482249259949, 0.6184263825416565, 0.5235593914985657, 0.5888288617134094, 0.6852630972862244, 0.6480417251586914, 0.6383350491523743, 0.6829314827919006, 0.6418062448501587, 0.6066423654556274, 0.6178747415542603, 0.5355367064476013, 0.6479588150978088, 0.5884680151939392, 0.6893740892410278, 0.6378549933433533, 0.7017253041267395, 0.5783039331436157, 0.8119946122169495, 0.6298471093177795, 0.742743730545044, 0.6243547201156616, 0.6674290895462036, 0.7343059778213501, 0.6052224636077881, 0.6066840887069702, 0.5976188778877258, 0.4229339361190796, 0.5175334215164185, 0.581770658493042, 0.6205500960350037, 0.6601703763008118, 0.642128586769104, 0.6335582733154297, 0.6087301969528198, 0.6104034185409546, 0.5792477130889893, 0.5098507404327393, 0.5074067711830139, 0.5683026909828186, 0.5659769773483276, 0.5477057695388794, 0.6244557499885559, 0.6370354890823364, 0.6939883828163147, 0.6530507206916809, 0.6083210706710815, 0.5616901516914368, 0.6410349011421204, 0.49217817187309265, 0.6150910258293152, 0.6264614462852478, 0.6341850161552429, 0.6071926951408386, 0.5261968374252319, 0.6012714505195618, 0.5711817145347595, 0.5760759115219116, 0.5622528791427612, 0.5762225985527039, 0.6468557119369507, 0.7034786939620972, 0.6923412680625916, 0.7022764682769775, 0.6857863664627075, 0.674187421798706, 0.6800127029418945, 0.5757670998573303, 0.530859112739563, 0.5554918646812439, 0.5416728854179382, 0.5139865875244141, 0.5626034140586853, 0.5729995965957642, 0.6373805999755859, 0.6375365257263184, 0.5852878093719482, 0.5969698429107666, 0.5872641801834106, 0.59979248046875, 0.6660168766975403, 0.6488758325576782, 0.6178638339042664, 0.685233473777771, 0.6925820708274841, 0.6501460671424866, 0.6243780255317688, 0.5773775577545166, 0.5104987621307373, 0.5585137009620667, 0.5308037400245667, 0.595231831073761, 0.6292819380760193, 0.7516724467277527, 0.6156512498855591, 0.6159460544586182, 0.7560685276985168, 0.5359318852424622, 0.6854244470596313, 0.6134024262428284, 0.6260133385658264, 0.6588701605796814, 0.6365209817886353, 0.6501638293266296, 0.610977053642273, 0.5444444417953491, 0.5270495414733887, 0.6771358251571655, 0.5880101323127747, 0.5562669634819031, 0.7063500285148621, 0.5819825530052185, 0.6019154787063599, 0.6650636196136475, 0.6565995216369629, 0.5919121503829956, 0.5979824066162109, 0.6500345468521118, 0.6592703461647034, 0.6836552619934082, 0.6475421786308289, 0.7103508114814758, 0.7119525671005249, 0.6882679462432861, 0.695167064666748, 0.6075568795204163, 0.6163492202758789, 0.5224123001098633, 0.601445198059082, 0.6295014023780823, 0.5712799429893494, 0.4679071009159088, 0.6556206345558167, 0.7846594452857971, 0.6430697441101074, 0.54091477394104, 0.5325447916984558, 0.6204916834831238, 0.5556153655052185, 0.5139690041542053, 0.6393873691558838, 0.593704342842102, 0.6673327684402466, 0.5807523131370544, 0.4786171019077301, 0.5443090200424194, 0.5941418409347534, 0.5008398294448853, 0.5401586890220642, 0.5044745206832886, 0.5697499513626099, 0.5191808342933655, 0.6066576838493347, 0.5475409030914307, 0.6827816367149353, 0.6879686117172241, 0.5823792219161987, 0.6240691542625427, 0.579422652721405, 0.5424898266792297, 0.5360051393508911, 0.48316770792007446, 0.5535950064659119, 0.5880706906318665, 0.5336111187934875, 0.5506443381309509, 0.5988211631774902, 0.6287009716033936, 0.6675804853439331, 0.701007068157196, 0.7242301106452942, 0.6812675595283508, 0.6902816295623779, 0.6713421940803528, 0.6530863642692566, 0.5841224789619446, 0.622163712978363, 0.5539774894714355, 0.4531954228878021, 0.5298120975494385, 0.5559441447257996, 0.6511581540107727, 0.552021861076355, 0.7001383900642395, 0.762711763381958, 0.7716627717018127, 0.7308738827705383, 0.7996091842651367, 0.7112131118774414, 0.6610260605812073, 0.49754056334495544, 0.44573357701301575, 0.37973761558532715, 0.4861803948879242, 0.37920287251472473, 0.4916903078556061, 0.5205273628234863, 0.5785279870033264, 0.6077967882156372, 0.6977876424789429, 0.6179742217063904, 0.6751132607460022, 0.6606292724609375, 0.5946465730667114, 0.5919414162635803, 0.5781630277633667, 0.5302702188491821, 0.5044053792953491, 0.5413429141044617, 0.5701311826705933, 0.6618627309799194, 0.6390209794044495, 0.6680158972740173, 0.7207306027412415, 0.5993737578392029, 0.6224351525306702, 0.6711656451225281, 0.6733301877975464, 0.4626523554325104, 0.5274888277053833, 0.635155439376831, 0.5212950110435486, 0.6082996129989624, 0.5683249235153198, 0.6201729774475098, 0.6653016209602356, 0.6254758238792419, 0.7190706133842468, 0.7360141277313232, 0.6838656067848206, 0.6444660425186157, 0.475711852312088, 0.6840492486953735, 0.5596474409103394, 0.5891099572181702, 0.5392711162567139, 0.6092140674591064, 0.6200777292251587, 0.593598484992981, 0.6171433329582214, 0.7593522071838379, 0.7329933643341064, 0.7028988003730774, 0.6583842039108276, 0.5922799706459045, 0.5198400616645813, 0.4714363217353821, 0.6108031272888184, 0.610394299030304, 0.6222438812255859, 0.6344477534294128, 0.5963348746299744, 0.5631452798843384, 0.5548543930053711, 0.5410410761833191, 0.47241783142089844, 0.5586610436439514, 0.4428776800632477, 0.5014371871948242, 0.5677763819694519, 0.6807053685188293, 0.7250492572784424, 0.6411949396133423, 0.6883558630943298, 0.7415750026702881, 0.7359389066696167, 0.7493336200714111, 0.6755514740943909, 0.616398811340332, 0.5175102949142456, 0.5425569415092468, 0.5701141357421875, 0.39652687311172485, 0.449358195066452, 0.5564835667610168, 0.7306598424911499, 0.7228108048439026, 0.7417564392089844, 0.6984809637069702, 0.7250429391860962, 0.7218302488327026, 0.7064366340637207, 0.6933375000953674, 0.5776614546775818, 0.5767771005630493, 0.5056746602058411, 0.6438955664634705, 0.6143375039100647, 0.6036598682403564, 0.5105059742927551, 0.6631780862808228, 0.581582248210907, 0.6483655571937561, 0.6568813920021057, 0.7090315818786621, 0.6705893874168396, 0.5957636833190918, 0.5877848863601685, 0.6328588724136353, 0.6614487171173096, 0.6597356796264648, 0.7468492984771729, 0.6730068922042847, 0.6722952723503113, 0.6312645077705383, 0.693732738494873, 0.6434707641601562, 0.6835150718688965, 0.6599968075752258, 0.746195912361145, 0.6811680197715759, 0.7095686197280884, 0.6742634177207947, 0.5811153650283813, 0.6005944013595581, 0.48288092017173767, 0.6536795496940613, 0.5943711996078491, 0.6218001842498779, 0.48315173387527466, 0.5241659879684448, 0.6437218189239502, 0.595461905002594, 0.5832322835922241, 0.6831303238868713, 0.6581138968467712, 0.6810888051986694, 0.7302910685539246, 0.6348477602005005, 0.5750985145568848, 0.6434349417686462, 0.6750340461730957, 0.5773386359214783, 0.600858747959137, 0.6765491366386414, 0.5152391195297241, 0.5676913857460022, 0.4519851505756378, 0.5383459329605103, 0.6949623823165894, 0.6330179572105408, 0.6988363862037659, 0.6692755818367004, 0.680120050907135, 0.6872071027755737, 0.6410611867904663, 0.5853517651557922, 0.698137104511261, 0.6775258183479309, 0.6400293707847595, 0.6040558218955994, 0.5308183431625366, 0.5893850326538086, 0.5856633186340332, 0.5923667550086975, 0.6447086930274963, 0.5848371386528015, 0.7271084785461426, 0.7740061283111572, 0.8182640671730042, 0.7011163830757141, 0.6973328590393066, 0.6492758989334106, 0.5759083032608032, 0.5826326012611389, 0.6333456039428711, 0.5921118855476379, 0.5110560655593872, 0.642916738986969, 0.5988876223564148, 0.5556828379631042, 0.6990620493888855, 0.576705813407898, 0.7441280484199524, 0.6231366991996765, 0.6620460152626038, 0.6889633536338806, 0.6395795345306396, 0.6689325571060181, 0.6140300035476685, 0.5375092029571533, 0.6340768337249756, 0.630782961845398, 0.5484883785247803, 0.6161980032920837, 0.5941250324249268, 0.694561243057251, 0.7389984726905823, 0.7715662717819214, 0.7288298010826111, 0.6847503185272217, 0.7130094766616821, 0.5803811550140381, 0.5404806137084961, 0.497993141412735, 0.5120125412940979, 0.4210367500782013, 0.41541093587875366, 0.493279367685318, 0.634606122970581, 0.6798611879348755, 0.6495592594146729, 0.7169026136398315, 0.6221262216567993, 0.6288367509841919, 0.5953750610351562, 0.5899324417114258, 0.6514636874198914, 0.577475368976593, 0.6645008325576782, 0.6308849453926086, 0.6754637360572815, 0.641887366771698, 0.7080479860305786, 0.7110974192619324, 0.5555166602134705, 0.587812066078186, 0.6093043684959412, 0.6250609159469604, 0.673966109752655, 0.6840843558311462, 0.6647323369979858, 0.6079150438308716, 0.5206407308578491, 0.48859405517578125, 0.45156750082969666, 0.6055567264556885, 0.6292208433151245, 0.7153627872467041, 0.6082150340080261, 0.5634680390357971, 0.5983328223228455, 0.5863475799560547, 0.5832158923149109, 0.689439058303833, 0.7033501863479614, 0.8461421728134155, 0.6846184730529785, 0.722996711730957, 0.7441881895065308, 0.7138354182243347, 0.5983745455741882, 0.580954372882843, 0.5011774301528931, 0.5123791098594666, 0.5227983593940735, 0.5789725184440613, 0.5782623887062073, 0.6426162123680115, 0.7088528871536255, 0.7386285066604614, 0.7610252499580383, 0.7778938412666321, 0.7547321915626526, 0.5906832814216614, 0.6456354856491089, 0.6587095260620117, 0.7003037929534912, 0.6472896933555603, 0.5665231943130493, 0.707427442073822, 0.589643657207489, 0.6438128352165222, 0.652219295501709, 0.6386806964874268, 0.6799800395965576, 0.6844552159309387, 0.7810744047164917, 0.7388801574707031, 0.6515094041824341, 0.6534197926521301, 0.5978875160217285, 0.5500941872596741, 0.6067878007888794, 0.633978545665741, 0.5218517780303955, 0.6479934453964233, 0.6580318212509155, 0.6926209330558777, 0.6847831010818481, 0.6983287930488586, 0.7531652450561523, 0.8025129437446594, 0.6431676745414734, 0.7119733691215515, 0.6648899912834167, 0.6980502009391785, 0.5963568091392517, 0.6516114473342896, 0.5390540957450867, 0.4955144226551056, 0.7462998628616333, 0.5742631554603577, 0.6660727262496948, 0.7106354236602783, 0.6644012331962585, 0.7221555709838867, 0.7015610337257385, 0.7705565690994263, 0.7712143063545227, 0.7016879320144653, 0.5749673843383789, 0.4515681266784668, 0.464407742023468, 0.5556451678276062, 0.7289296984672546, 0.6186197996139526, 0.590328574180603, 0.6082337498664856, 0.5757982134819031, 0.4662390649318695, 0.6051409244537354, 0.5357087850570679, 0.6474215984344482, 0.6484279632568359, 0.6629469990730286, 0.7628090381622314, 0.6531789898872375, 0.5212724804878235, 0.6430813670158386, 0.6686366200447083, 0.5705881118774414, 0.6171515583992004, 0.5890251994132996, 0.6141283512115479, 0.6417281031608582, 0.6511921286582947, 0.7182228565216064, 0.7772972583770752, 0.6590805649757385, 0.7426432967185974, 0.7400839924812317, 0.7238638401031494, 0.658021092414856, 0.6701734066009521, 0.7377878427505493, 0.655610203742981, 0.6689138412475586, 0.6239095330238342, 0.7151132822036743, 0.6390606164932251, 0.6336860656738281, 0.6230608820915222, 0.6471149325370789, 0.6049301624298096, 0.67104172706604, 0.693034291267395, 0.6633926630020142, 0.6036331057548523, 0.670190691947937, 0.6678110957145691, 0.7554426789283752, 0.6370723843574524, 0.6690182685852051, 0.6019428372383118, 0.565964937210083, 0.5963924527168274, 0.566483199596405, 0.5650309324264526, 0.7188448309898376, 0.6735749244689941, 0.7283256649971008, 0.622389554977417, 0.7126430869102478, 0.7968734502792358, 0.7716744542121887, 0.7580937147140503, 0.8169764876365662, 0.7511749863624573, 0.7018111944198608, 0.6341411471366882, 0.7544862031936646, 0.6953815817832947, 0.53743976354599, 0.6810132265090942, 0.5822969079017639, 0.6564446687698364, 0.6836219429969788, 0.643932580947876, 0.6436697840690613, 0.5838813781738281, 0.6707586050033569, 0.7792800068855286, 0.6462412476539612, 0.750248372554779, 0.8122757077217102, 0.7606887221336365, 0.6676992177963257, 0.6018256545066833, 0.7025662064552307, 0.6642495393753052, 0.6279819011688232, 0.5916821956634521, 0.5958724021911621, 0.657218337059021, 0.8081542253494263, 0.7391085028648376, 0.8074150681495667, 0.8732935190200806, 0.8448805809020996, 0.7765346765518188, 0.7844567894935608, 0.7005431056022644, 0.5645454525947571, 0.656329870223999, 0.5362328290939331, 0.4750739634037018, 0.722804069519043, 0.5697154402732849, 0.6247996091842651, 0.6953015923500061, 0.6242464184761047, 0.6706103682518005, 0.7303811311721802, 0.8048226237297058, 0.6853318810462952, 0.6462229490280151, 0.7189505696296692, 0.6897931098937988, 0.7408977746963501, 0.7021759748458862, 0.7126381993293762, 0.7517209649085999, 0.8029890060424805, 0.7260404825210571, 0.7222374081611633, 0.664667546749115, 0.7235367298126221, 0.6986477375030518, 0.6298570036888123, 0.5922613739967346, 0.5073866844177246, 0.5972436666488647, 0.4889724850654602, 0.6929143071174622, 0.6331827640533447, 0.7189714312553406, 0.6107993125915527, 0.7168808579444885, 0.7485995888710022, 0.7543405890464783, 0.7017452120780945, 0.7947680354118347, 0.7242359519004822, 0.5989217162132263, 0.7262867093086243, 0.6915738582611084, 0.5611348152160645, 0.6684984564781189, 0.642902135848999, 0.657572865486145, 0.7058557868003845, 0.63829106092453, 0.776714026927948, 0.5806516408920288, 0.8119320869445801, 0.6614069938659668, 0.654304027557373, 0.717124879360199, 0.5904311537742615, 0.5058774352073669, 0.7138675451278687, 0.7779788374900818, 0.6242305636405945, 0.7441469430923462, 0.7288732528686523, 0.6624383330345154, 0.7537272572517395, 0.7190056443214417, 0.6194194555282593, 0.7070202231407166, 0.8011043071746826, 0.7361092567443848, 0.5807758569717407, 0.45886924862861633, 0.46375489234924316, 0.5075592994689941, 0.5655834078788757, 0.5200819373130798, 0.7393684983253479, 0.8193274736404419, 0.6171349287033081, 0.7850344777107239, 0.7273386120796204, 0.791305422782898, 0.8278741240501404, 0.8034558296203613, 0.7406381368637085, 0.654872715473175, 0.6273970007896423, 0.6833749413490295, 0.6744703054428101, 0.68360435962677, 0.4856148660182953, 0.7980597615242004, 0.6586009860038757, 0.6433214545249939, 0.6381842494010925, 0.6457961797714233, 0.6928374171257019, 0.6289718747138977, 0.7133270502090454, 0.65655916929245, 0.7575414776802063, 0.6790936589241028, 0.8233972787857056, 0.7401402592658997, 0.765845537185669, 0.7153622508049011, 0.6788285374641418, 0.6064921617507935, 0.6002331376075745, 0.5839062333106995, 0.4657878875732422, 0.5364841222763062, 0.5570865273475647, 0.6042817831039429, 0.7109974026679993, 0.7819803357124329, 0.8523793816566467, 0.6929351687431335, 0.7285672426223755, 0.6313984394073486, 0.7667778730392456, 0.7236073613166809, 0.6884982585906982, 0.6975804567337036, 0.7086657285690308, 0.6486693024635315, 0.6829220056533813, 0.6952054500579834, 0.6955636143684387, 0.6382679343223572, 0.6697992086410522, 0.7007652521133423, 0.49073755741119385, 0.6950317025184631, 0.7569915652275085, 0.6369349956512451, 0.8003115653991699, 0.7271981239318848, 0.6621718406677246, 0.5998002290725708, 0.7312554717063904, 0.6812024712562561, 0.5692355632781982, 0.6798254251480103, 0.7240887880325317, 0.6567341089248657, 0.580255389213562, 0.6263195276260376, 0.7474761605262756, 0.7415852546691895, 0.6353551745414734, 0.6833171248435974, 0.6363576054573059, 0.7907704710960388, 0.743594765663147, 0.7154713869094849, 0.7777198553085327, 0.74069744348526, 0.6556127667427063, 0.6763851642608643, 0.727661669254303, 0.6029415726661682, 0.739631175994873, 0.6448849439620972, 0.6475189328193665, 0.7590152025222778, 0.5651054382324219, 0.5912523865699768, 0.5421602725982666, 0.6516836285591125, 0.6615561842918396, 0.6644067168235779, 0.6897562742233276, 0.7215195298194885, 0.6774879693984985, 0.7276028394699097, 0.6412890553474426, 0.6695975661277771, 0.573192298412323, 0.6910161375999451, 0.7575095295906067, 0.7102249264717102, 0.6158726215362549, 0.613641619682312, 0.6742244958877563, 0.6503293514251709, 0.6086623072624207, 0.6294978857040405, 0.5640441179275513, 0.61680668592453, 0.7376108169555664, 0.6437298655509949, 0.7587960958480835, 0.6406420469284058, 0.5582033395767212, 0.7168781161308289, 0.6927615404129028, 0.5923209190368652, 0.45992112159729004, 0.7359081506729126, 0.7121390700340271, 0.6703147888183594, 0.7678233981132507, 0.728247344493866, 0.7249262928962708, 0.7039833068847656, 0.7259783744812012, 0.5759364366531372, 0.6788124442100525, 0.5601868629455566, 0.6946224570274353, 0.6653900742530823, 0.6618170142173767, 0.6155283451080322, 0.7383094429969788, 0.7096027731895447, 0.6600502133369446, 0.7082244157791138, 0.7086256146430969, 0.6668732166290283, 0.6392607688903809, 0.6697993874549866, 0.7217531204223633, 0.7416875958442688, 0.7070459127426147, 0.7351645231246948, 0.7853437066078186, 0.7073889970779419, 0.7677183151245117, 0.8012679219245911, 0.590133786201477, 0.5758529305458069, 0.567701518535614, 0.7026025056838989, 0.651452362537384, 0.6695793271064758, 0.6914652585983276, 0.7189040184020996, 0.7324683666229248, 0.7557174563407898, 0.5927007794380188, 0.7478190660476685, 0.6704968810081482, 0.5917317867279053, 0.6485617756843567, 0.6594465374946594, 0.6316689252853394, 0.656002938747406, 0.6324373483657837, 0.7137107849121094, 0.7020926475524902, 0.6749241352081299, 0.7419701814651489, 0.6962780952453613, 0.672522783279419]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"x\": 1.35, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"Similarity Scores\", \"x\": 0.5}, \"width\": 900, \"xaxis\": {\"title\": {\"text\": \"Batch\"}}, \"yaxis\": {\"range\": [0, 1], \"title\": {\"text\": \"\"}}},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('6981cd48-7196-4dd9-9ae5-4c3bc8f71a6a');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"plot_similarity_scores(val_non_matching_similarity, val_matching_similarity)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
},
"id": "aZ1Fi4TUhOvB",
"outputId": "7b54874c-c54e-4b03-902a-6e8c8e4f833b"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"1b34d6cd-a21f-41e4-a82e-2952335d4871\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"1b34d6cd-a21f-41e4-a82e-2952335d4871\")) {\n",
" Plotly.newPlot(\n",
" '1b34d6cd-a21f-41e4-a82e-2952335d4871',\n",
" [{\"line\": {\"color\": \"#FC6955\", \"width\": 1}, \"mode\": \"lines\", \"name\": \"unmatching categories\", \"textposition\": \"top center\", \"type\": \"scatter\", \"x\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240], \"y\": [0.3559828996658325, 0.39102569222450256, 0.339267373085022, 0.38900384306907654, 0.35591384768486023, 0.3564867377281189, 0.3185098469257355, 0.40682315826416016, 0.2922704219818115, 0.33071795105934143, 0.21483075618743896, 0.22816608846187592, 0.29658544063568115, 0.2510223090648651, 0.22719119489192963, 0.2808871567249298, 0.19338348507881165, 0.23808105289936066, 0.20889945328235626, 0.14796055853366852, 0.22769324481487274, 0.23404459655284882, 0.23963358998298645, 0.3418959975242615, 0.39498478174209595, 0.4091305434703827, 0.39910322427749634, 0.2872757017612457, 0.27826955914497375, 0.3684285581111908, 0.2672210931777954, 0.21701140701770782, 0.3731054663658142, 0.30210864543914795, 0.29303303360939026, 0.3941035568714142, 0.30111807584762573, 0.40365827083587646, 0.377299040555954, 0.4106217920780182, 0.14099173247814178, 0.270905077457428, 0.2507230341434479, 0.19825300574302673, 0.22534412145614624, 0.30623847246170044, 0.20964637398719788, 0.25739240646362305, 0.30255335569381714, 0.23695039749145508, 0.2735758423805237, 0.2170298844575882, 0.3734596073627472, 0.24971388280391693, 0.19060440361499786, 0.23141273856163025, 0.1944686472415924, 0.20327432453632355, 0.28535521030426025, 0.24900677800178528, 0.24851877987384796, 0.26012730598449707, 0.33768460154533386, 0.4214096963405609, 0.188890278339386, 0.3861970007419586, 0.30112484097480774, 0.35952043533325195, 0.1821395307779312, 0.1939181238412857, 0.3030617833137512, 0.3117983341217041, 0.21014823019504547, 0.28186795115470886, 0.22326382994651794, 0.2543870508670807, 0.27156174182891846, 0.16125710308551788, 0.17571499943733215, 0.28127121925354004, 0.25449246168136597, 0.15777866542339325, 0.318900465965271, 0.2780182361602783, 0.2590752840042114, 0.2879420518875122, 0.30955132842063904, 0.3160591423511505, 0.19325992465019226, 0.3617543876171112, 0.16584138572216034, 0.2562722861766815, 0.2807061970233917, 0.23334982991218567, 0.1599644124507904, 0.28201860189437866, 0.2976880967617035, 0.19294404983520508, 0.27127742767333984, 0.15125198662281036, 0.30275264382362366, 0.13780196011066437, 0.1864364892244339, 0.17734616994857788, 0.2820340394973755, 0.3607911169528961, 0.16669172048568726, 0.2585870325565338, 0.2787470519542694, 0.10472181439399719, 0.26635050773620605, 0.03478308767080307, 0.17030967772006989, 0.21792055666446686, 0.26153841614723206, 0.3225262761116028, 0.3061487674713135, 0.2811487317085266, 0.31192123889923096, 0.2742515802383423, 0.1439514309167862, 0.2153942584991455, 0.2551587224006653, 0.22175350785255432, 0.26654836535453796, 0.17506703734397888, 0.21213629841804504, 0.026005998253822327, 0.3804173767566681, 0.28876155614852905, 0.40310680866241455, 0.1930028647184372, 0.12487334758043289, 0.14899879693984985, 0.2171320915222168, 0.07606562972068787, 0.2803410291671753, 0.36365658044815063, 0.2434314340353012, 0.2647782862186432, 0.32019200921058655, 0.30142131447792053, 0.2701709568500519, 0.34584832191467285, 0.22867703437805176, 0.2502942681312561, 0.2578132450580597, 0.13694711029529572, 0.2673966884613037, 0.2849258780479431, 0.18961110711097717, 0.29540255665779114, 0.2510450780391693, 0.2879873514175415, 0.17549902200698853, 0.3093673884868622, 0.14408640563488007, 0.2601920962333679, 0.2784183621406555, 0.16945889592170715, 0.20888128876686096, 0.3302619755268097, 0.15413057804107666, 0.19042125344276428, 0.24451495707035065, 0.20421576499938965, 0.17841221392154694, 0.2044321745634079, 0.1586226373910904, 0.1784421056509018, 0.15017281472682953, 0.12201950699090958, 0.18278567492961884, 0.16419391334056854, 0.27624204754829407, 0.028704067692160606, 0.3008898198604584, 0.15573996305465698, 0.29694509506225586, 0.22882074117660522, 0.15200157463550568, 0.12030535191297531, 0.35628741979599, 0.2368467003107071, 0.37872838973999023, 0.08443695306777954, 0.24783389270305634, 0.29795271158218384, 0.21781226992607117, 0.22327907383441925, 0.19297915697097778, 0.3822753429412842, 0.3185589015483856, 0.1709137111902237, 0.22035527229309082, 0.06358031928539276, 0.09314027428627014, 0.07832171767950058, 0.2749515175819397, 0.4775930941104889, 0.2251211255788803, 0.19392579793930054, 0.31756168603897095, 0.2129267007112503, 0.2316528856754303, 0.18655967712402344, 0.2143677920103073, 0.22454531490802765, 0.29412466287612915, 0.17273974418640137, 0.1378805786371231, 0.21883980929851532, 0.29381898045539856, 0.22076579928398132, 0.10641991347074509, 0.1695786714553833, 0.10360556840896606, 0.24130864441394806, 0.1398211419582367, 0.1180676743388176, 0.16812698543071747, 0.2215588390827179, 0.28329452872276306, 0.0200298260897398, 0.2896018624305725, 0.1584359109401703, 0.3973065912723541, 0.18441163003444672, 0.1706380844116211, 0.09945490956306458, 0.2388347089290619, 0.2141886055469513, 0.33189794421195984, 0.12706288695335388, 0.3286714553833008, 0.38660067319869995, 0.2650569677352905, 0.16182592511177063, 0.29959335923194885, 0.21216589212417603]}, {\"line\": {\"color\": \"#86CE00\", \"width\": 1}, \"mode\": \"lines\", \"name\": \"matching categories\", \"textposition\": \"top center\", \"type\": \"scatter\", \"x\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240], \"y\": [0.43277207016944885, 0.43957096338272095, 0.447356253862381, 0.46573522686958313, 0.42668473720550537, 0.4426831901073456, 0.4410444498062134, 0.44322383403778076, 0.36447837948799133, 0.3764543831348419, 0.3512871563434601, 0.38204658031463623, 0.48472699522972107, 0.44712984561920166, 0.4463847875595093, 0.2553621530532837, 0.3607109487056732, 0.368943452835083, 0.4001559019088745, 0.3965044319629669, 0.38728466629981995, 0.46921151876449585, 0.4440571963787079, 0.4892309308052063, 0.5334393978118896, 0.5384036898612976, 0.566923201084137, 0.5809803009033203, 0.49896982312202454, 0.5532493591308594, 0.5630651712417603, 0.6268147230148315, 0.5516470670700073, 0.5057368278503418, 0.4744850695133209, 0.517143964767456, 0.5449996590614319, 0.4397486746311188, 0.4765627086162567, 0.34952348470687866, 0.49946117401123047, 0.4652599096298218, 0.38468292355537415, 0.4648429751396179, 0.4394080936908722, 0.37626492977142334, 0.5238698124885559, 0.5066920518875122, 0.4903017282485962, 0.4833963215351105, 0.6119804978370667, 0.6002912521362305, 0.4818655848503113, 0.5159517526626587, 0.4986203908920288, null, 0.5689769387245178, 0.5915957093238831, 0.4268970489501953, 0.5184985995292664, 0.5064294934272766, 0.504481852054596, 0.5249751806259155, 0.3765750229358673, 0.4108833968639374, 0.523205578327179, 0.5020220279693604, 0.46772998571395874, 0.5426651835441589, 0.5048695206642151, 0.5155397653579712, 0.48593413829803467, 0.4538355767726898, 0.4586086869239807, 0.5134807229042053, 0.5042855143547058, 0.5026582479476929, 0.5449213981628418, 0.4703260362148285, 0.4759497344493866, 0.5034045577049255, 0.6999917030334473, 0.5542044043540955, 0.5189087390899658, 0.5475325584411621, 0.5100722312927246, 0.4238786995410919, 0.5898357033729553, 0.5473548173904419, 0.5335115194320679, 0.4323180615901947, 0.4813953936100006, 0.48012155294418335, 0.5121608972549438, 0.43748119473457336, 0.5338280200958252, 0.4987581968307495, 0.4739941954612732, 0.491146445274353, 0.6316860914230347, 0.6349759697914124, 0.5323505997657776, 0.5586004853248596, 0.5644069314002991, 0.4621744751930237, 0.49188703298568726, 0.5146875977516174, 0.5744472146034241, 0.5786999464035034, 0.4310908913612366, 0.504758358001709, 0.4120670258998871, 0.4877004027366638, 0.4209959805011749, 0.5582209825515747, 0.5499972701072693, 0.5735357999801636, 0.41412103176116943, 0.4419935941696167, 0.6335384845733643, 0.45590341091156006, 0.5219326019287109, 0.5265100598335266, 0.505065381526947, 0.43419769406318665, 0.48033034801483154, 0.47980019450187683, 0.5101103782653809, 0.46801260113716125, 0.5155333280563354, 0.5426541566848755, 0.5070914626121521, 0.5556235313415527, 0.4627644419670105, 0.45560330152511597, 0.5794879794120789, 0.5822611451148987, 0.6414685249328613, 0.5971364378929138, 0.6436337828636169, 0.6088041663169861, 0.6528757214546204, 0.5173975229263306, 0.520021378993988, 0.4898090362548828, 0.529341995716095, 0.6353151202201843, 0.49974003434181213, 0.5900285840034485, 0.5550777316093445, 0.5520214438438416, 0.7481997609138489, 0.5329755544662476, 0.5733270645141602, 0.540215015411377, 0.608998715877533, 0.5791889429092407, 0.6014644503593445, 0.467693954706192, 0.5289228558540344, 0.5736203193664551, 0.4953998327255249, 0.5416671633720398, 0.543779194355011, 0.5237918496131897, 0.5825363397598267, 0.5118021965026855, 0.4555845558643341, 0.46246227622032166, 0.620114803314209, 0.5071720480918884, 0.6070927381515503, 0.5211291909217834, 0.5810461640357971, 0.5628738403320312, 0.4386955201625824, 0.671056866645813, 0.602438747882843, 0.5672052502632141, 0.6966447234153748, 0.6436302065849304, 0.5128548741340637, 0.5102166533470154, 0.4891885817050934, 0.47515398263931274, 0.5435019135475159, 0.5083296895027161, 0.4863331913948059, 0.36414843797683716, 0.4433257281780243, 0.5272168517112732, 0.4632143974304199, 0.44985052943229675, 0.47287970781326294, 0.5275969505310059, 0.5219114422798157, 0.4217991530895233, 0.4612637162208557, 0.4480918347835541, 0.637259304523468, 0.46161505579948425, 0.5626660585403442, 0.6998075842857361, 0.6046919226646423, 0.5449293851852417, 0.519146740436554, 0.5479267239570618, 0.7052852511405945, 0.6026624441146851, 0.5510684847831726, 0.517638623714447, 0.5914168357849121, 0.5234471559524536, 0.76053786277771, 0.623907744884491, 0.568431556224823, 0.4623471796512604, 0.4408634603023529, 0.5260747075080872, 0.4628503620624542, 0.5202034711837769, 0.528294563293457, 0.352936714887619, 0.45462268590927124, 0.5849080085754395, 0.6300808787345886, 0.5393502116203308, 0.5243556499481201, 0.6084439754486084, 0.5990132689476013, 0.6598154306411743, 0.6641685366630554, 0.5906654000282288, 0.6078106760978699, 0.5743297338485718, 0.7084442377090454, 0.6294236779212952, 0.5569078922271729, 0.5929297208786011, 0.5183412432670593]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"x\": 1.35, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"Similarity Scores\", \"x\": 0.5}, \"width\": 900, \"xaxis\": {\"title\": {\"text\": \"Batch\"}}, \"yaxis\": {\"range\": [0, 1], \"title\": {\"text\": \"\"}}},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('1b34d6cd-a21f-41e4-a82e-2952335d4871');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Jun0WlpAizJ4"
},
"source": [
" **print all layers in the model that are participating in the learning process**\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "uMGbIxzSeUDh"
},
"outputs": [],
"source": [
"# print all layers in the model that are participating in the learning process\n",
"for name, param in SNN_model.named_parameters():\n",
" if param.requires_grad:\n",
" print(name)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "e7amIcxe1Vet"
},
"source": [
"# **Prototypes Selection**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "1jVrQ1gW3g0-"
},
"outputs": [],
"source": [
"def construct_train_matrix(SNN_model, trainLoader_simple):\n",
" \"\"\"\n",
" Embed the training data using the trained SNN model.\n",
" \"\"\"\n",
"\n",
" # Get intermidate layer output.\n",
" # Source: https://discuss.pytorch.org/t/how-can-i-extract-intermediate-layer-output-from-loaded-cnn-model/77301/2\n",
" activation = {}\n",
" def get_activation(name):\n",
" def hook(model, input, output):\n",
" activation[name] = output.detach()\n",
" return hook\n",
"\n",
" # SNN_model.bert_arch.fc1.register_forward_hook(get_activation('fc1'))\n",
" SNN_model.bert_arch.fc.register_forward_hook(get_activation('fc'))\n",
"\n",
" train_matrix = []\n",
" print(\"num batches:\", len(trainLoader_simple))\n",
" with torch.no_grad(): \n",
" for i, batch in enumerate(trainLoader_simple):\n",
" print(i, \"/\", len(trainLoader_simple), \" batches\")\n",
" seq1, mask1, label1 = batch\n",
" if device == 'cuda':\n",
" seq1, mask1, label1 = seq1.to(device), mask1.to(device), label1.to(device)\n",
"\n",
" SNN_model.eval()\n",
" output = SNN_model(seq1, seq1, mask1, mask1)\n",
" train_matrix.append(activation['fc'].cpu().numpy()) # activation['fc1'] return a tensor in cuda with size (batch_size, embedding_dim), so we move it to cpu, than to numpy array.\n",
"\n",
" return np.vstack(train_matrix) # we combine all the batches, so now we return matrix of size (num_samples_train, embedding_dim)\n",
"\n",
"def extract_prototypes(k, SNN_model, trainLoader_simple, train_labels, train_matrix):\n",
" \"\"\"\n",
" Compute kc (= k/num_classes_train) prototypes for each class in the trainset.\n",
" (if k % num_classes_train != 0 then take the highest k0 <= k which is divisable by num_classes_train)\n",
"\n",
" :param k: \n",
" :param train_matrix: size (num_samples_train, embedding_dim)\n",
" :return: \n",
" \"\"\"\n",
" train_labels = list(train_labels)\n",
" train_dataset = trainLoader_simple.dataset # contains triples of (seq, mask, label)\n",
"\n",
" # construct a hash table, each key is a class of diagnosis\n",
" # and the value is a list of the indexs of the sentences which belong to this class \n",
" hash_table = {} # format: {\"diagnosis\" : [i1, i2, ...]}\n",
" for i in range(len(train_labels)):\n",
" lbl = train_labels[i]\n",
" if lbl in hash_table:\n",
" hash_table[lbl].append(i)\n",
" else:\n",
" hash_table[lbl] = [i]\n",
"\n",
"\n",
" # Create prototypess\n",
" prototypes_list = {diagnosis:[] for diagnosis in hash_table.keys()}\n",
" num_classes_train = len(hash_table)\n",
" assert k >= num_classes_train, \"k should be greater than the numbrer of uniqe labels in the train set'\"\n",
" kc = int(k / num_classes_train)\n",
" print(\"kc:\", kc)\n",
"\n",
" for diagnosis in hash_table.keys():\n",
"\n",
" print(\"diagnosis:\", diagnosis)\n",
"\n",
" if len(hash_table[diagnosis]) <= 1 : # if there is only a single sentence in some diagnosis sentences list - take it as the prototype of this class\n",
" prototypes_list += list(train_matrix[hash_table[diagnosis]])\n",
" \n",
" else:\n",
" # fit on all sentences which belongs to the same class (diagnosis)\n",
" kmeans = KMeans(n_clusters=kc, init='k-means++').fit(train_matrix[hash_table[diagnosis]]) \n",
" # extract for each centroid the closest real sample, and add it as a prototype\n",
" for centroid in kmeans.cluster_centers_:\n",
" #print(train_matrix[hash_table[diagnosis]].shape)\n",
" best_match_index = None\n",
" best_match_dist = float('inf')\n",
" for sentence_index in hash_table[diagnosis]:\n",
" #print(sentence_index)\n",
" embedded_sent = train_matrix[sentence_index]\n",
" dist = distance.euclidean(centroid, embedded_sent)\n",
" #print(\"dist:\", best_match_dist)\n",
" if dist < best_match_dist:\n",
" best_match_dist = dist\n",
" best_match_index = sentence_index\n",
" #print(best_match_index)\n",
" prototypes_list[diagnosis].append(train_dataset[best_match_index])\n",
" \n",
" return prototypes_list\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "oQgt9aTfQxCc",
"outputId": "7455dad1-fe04-4bbc-a434-412123364e58"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"num batches: 34\n",
"0 / 34 batches\n",
"1 / 34 batches\n",
"2 / 34 batches\n",
"3 / 34 batches\n",
"4 / 34 batches\n",
"5 / 34 batches\n",
"6 / 34 batches\n",
"7 / 34 batches\n",
"8 / 34 batches\n",
"9 / 34 batches\n",
"10 / 34 batches\n",
"11 / 34 batches\n",
"12 / 34 batches\n",
"13 / 34 batches\n",
"14 / 34 batches\n",
"15 / 34 batches\n",
"16 / 34 batches\n",
"17 / 34 batches\n",
"18 / 34 batches\n",
"19 / 34 batches\n",
"20 / 34 batches\n",
"21 / 34 batches\n",
"22 / 34 batches\n",
"23 / 34 batches\n",
"24 / 34 batches\n",
"25 / 34 batches\n",
"26 / 34 batches\n",
"27 / 34 batches\n",
"28 / 34 batches\n",
"29 / 34 batches\n",
"30 / 34 batches\n",
"31 / 34 batches\n",
"32 / 34 batches\n",
"33 / 34 batches\n"
]
}
],
"source": [
"train_matrix = construct_train_matrix(SNN_model, trainLoader_simple)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ioKcSe_rMPbJ",
"outputId": "db2a1ccc-077f-4c70-dafa-2b5f7fb5435b"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"kc: 20\n",
"diagnosis: 26\n",
"diagnosis: 21\n",
"diagnosis: 3\n",
"diagnosis: 11\n",
"diagnosis: 18\n"
]
}
],
"source": [
"prototypes_list = extract_prototypes(100, SNN_model, trainLoader_simple, train_labels, train_matrix)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "37VtjFxt3F1A"
},
"source": [
"**Display train data in 3D**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "UmEeXFw-1BnL"
},
"outputs": [],
"source": [
"from sklearn.decomposition import PCA\n",
"from sklearn.manifold import LocallyLinearEmbedding\n",
"from sklearn.manifold import Isomap\n",
"from sklearn.manifold import TSNE\n",
"from sklearn.manifold import SpectralEmbedding\n",
"\n",
"def show_space(X, title, colors=None, color_by=\"\", show_3D=False):\n",
"\n",
" if show_3D:\n",
" dictionary = dict(zip(pd.DataFrame(X).columns, [\"COMP1\", \"COMP2\", \"COMP3\"]))\n",
" temp_df = pd.DataFrame(X).rename(columns=dictionary)\n",
" fig = px.scatter_3d(temp_df, x='COMP1', y='COMP2', z='COMP3',color=colors, template=\"plotly_dark\", labels={\"color\": color_by})\n",
" else:\n",
" dictionary = dict(zip(X.columns, [\"COMP1\", \"COMP2\"]))\n",
" temp_df = pd.DataFrame(X).rename(columns=dictionary)\n",
" fig = px.scatter(temp_df, x='COMP1', y='COMP2',color=colors, template=\"plotly_dark\", labels={\"color\": color_by})\n",
"\n",
" fig.update_traces(marker=dict(size=4, opacity=0.98), textposition='top center')\n",
" fig.update_layout(title_text=title, title_x=0.5, autosize=False,width=900, height=500, legend=dict(yanchor=\"top\",xanchor=\"right\", x=1.1, y=1))\n",
" fig.show()\n",
" #fig.write_html(\"file.html\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
},
"id": "BGL0Zur11R3r",
"outputId": "7c0b8b1b-a8bd-4441-ff39-2963f83535ef"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"a117ffce-1af0-4ec4-82b2-eee3e43fe6e9\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"a117ffce-1af0-4ec4-82b2-eee3e43fe6e9\")) {\n",
" Plotly.newPlot(\n",
" 'a117ffce-1af0-4ec4-82b2-eee3e43fe6e9',\n",
" [{\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Radiology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Radiology\", \"marker\": {\"color\": \"#636efa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Radiology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [1.3057003021240234, -7.133405685424805, -0.002263119677081704, 0.1255069375038147, -3.6098785400390625, -8.425776481628418, -1.9581040143966675, -7.13878870010376, 0.5716098546981812, 0.7228823304176331, 2.8901538848876953, 8.951851844787598, -8.214388847351074, -6.795628070831299, -5.151039123535156, -4.574892044067383, 0.224641352891922, 1.1318036317825317, -1.6827915906906128, 1.7543749809265137, -4.985836505889893, 0.06762345135211945, 0.671023964881897, 2.3904433250427246, -2.7511281967163086, 2.0485761165618896, -2.116560935974121, 3.005275249481201, -10.433792114257812, 3.32293438911438, -4.549291610717773, -8.28185749053955, 7.339562892913818, -6.828925132751465, 2.6939423084259033, 0.12218387424945831, 6.076406478881836, 3.217627763748169, 1.9327694177627563, 1.0790314674377441, -2.2354657649993896, -0.1406305879354477, 4.8861541748046875, 5.684402942657471, -2.5604429244995117, -0.3000229001045227, 7.135593891143799, -2.534407615661621, 1.4365571737289429, 2.580813407897949, -0.5653505325317383, 2.088209629058838, 2.344350814819336, -6.510407447814941, 1.6438400745391846, -0.3003341257572174, 1.7291626930236816, 0.8044218420982361, 6.4866414070129395, 4.740331649780273, -5.228573799133301, -0.88690185546875, 5.227266311645508, -8.655874252319336, 3.3598058223724365, 6.036691665649414, 3.2092509269714355, -5.9719438552856445, -2.8385767936706543, 1.5017204284667969, 1.9641374349594116, 1.1841446161270142, 2.4878664016723633, 6.80623722076416, 1.968193769454956, -11.494892120361328, -1.044973611831665, -2.272019386291504, -4.300118446350098, 1.0967395305633545, -4.1913299560546875, 2.284501552581787, -6.147070407867432, -9.42526912689209, 1.5669862031936646, -0.3009902834892273, 4.709508419036865, 9.833351135253906, -5.580099105834961, 11.53739070892334, 1.5837005376815796, -2.9021029472351074, -9.371478080749512, 1.0826915502548218, 2.0118191242218018, 3.5027830600738525, 2.2079436779022217, 2.916433334350586, 2.655592679977417, -6.46591329574585, -4.413750171661377, -1.5385719537734985, -2.1289894580841064, 4.451396942138672, -4.488983154296875, 1.050174593925476, -0.9472352862358093, -3.579413652420044, 2.874307155609131, -3.1902217864990234, -4.849088668823242, -0.22410716116428375, -2.1126708984375, 4.682689666748047, 3.4482717514038086, 7.8271355628967285, -0.60302734375, -4.274587154388428, 1.8484828472137451, -8.994576454162598, 1.3878666162490845, 4.244569778442383, -2.1728367805480957, -0.17489995062351227, -0.4510772228240967, -4.1074748039245605, -0.09365881234407425, 0.7475007772445679, 5.963131427764893, 1.1387253999710083, 0.8942864537239075, -1.0653371810913086, 1.2299343347549438, -1.7238833904266357, -2.0290896892547607, 6.91126012802124, 0.39597412943840027, -9.678394317626953, 5.608896255493164, -8.60189437866211, 5.31328010559082, 4.580058574676514, 1.506393313407898, -7.0568389892578125, 3.92122220993042, 3.4014484882354736, -1.9017276763916016, -8.843255043029785, -0.46138620376586914, 3.5617852210998535, 2.1103594303131104, 1.2333992719650269, -0.7136664986610413, -3.6421866416931152, 2.2112514972686768, 6.13176155090332, 4.2150444984436035, -9.309282302856445, 2.5708656311035156, -0.5398570895195007, 1.397991418838501, 0.6706889271736145, 0.9282721877098083, 2.567789316177368, 2.342977523803711, 0.8442988395690918, 7.03488826751709, 2.6686718463897705, -3.9442312717437744, 9.150976181030273, 0.6432090401649475, -6.432172775268555, 5.673300266265869, 0.15298320353031158, -3.695847511291504, 13.319427490234375, 3.5180823802948, -0.07684651017189026, 0.6053349375724792, -4.134840965270996, 2.564837694168091, -3.380260705947876, -5.127185821533203, 2.1830861568450928, 1.619752049446106, 2.0078542232513428, 2.467433214187622, 3.7209620475769043, -1.6128822565078735, 4.802590370178223, 2.4182353019714355], \"y\": [-6.650211811065674, -5.815560340881348, -5.003074645996094, -6.4355950355529785, 4.020202159881592, -0.7107759714126587, -4.548172950744629, -4.480023384094238, -6.4443440437316895, -5.7859272956848145, -7.133409023284912, 1.5671786069869995, -1.43345308303833, -2.8647515773773193, -2.612452983856201, -4.205787181854248, -4.659933567047119, -1.789272665977478, -2.3204121589660645, -4.880725383758545, 0.13306768238544464, -5.911178112030029, 0.6438729166984558, -2.4912900924682617, 4.5209059715271, -6.108455657958984, -0.6554114818572998, -5.5521321296691895, -3.363236427307129, -5.964987754821777, 4.702755928039551, -1.1419273614883423, 1.8369228839874268, -1.8404942750930786, -4.069944858551025, 0.7670159935951233, 0.20087413489818573, -3.212042808532715, -7.381058692932129, -7.107871055603027, -3.581122398376465, -3.1087300777435303, -2.33082914352417, -0.47586414217948914, -3.951795816421509, -5.869776725769043, 0.9554757475852966, -4.267852783203125, -6.2553277015686035, -7.535525321960449, -5.966818809509277, -7.0285820960998535, -0.49372598528862, -2.0976579189300537, -5.17377233505249, -1.8850198984146118, -6.062106132507324, -6.5837202072143555, 1.9010229110717773, -3.2293856143951416, -2.668386936187744, -5.046523571014404, -4.964348316192627, -0.7099533677101135, 2.2711734771728516, -0.40788576006889343, -5.783992767333984, -0.9076768755912781, -4.038829803466797, -7.540657997131348, -4.911163806915283, -5.878098964691162, -7.304193496704102, -0.5897006392478943, -2.878056526184082, -2.7477102279663086, -3.3248698711395264, -6.125892162322998, -1.4050781726837158, -5.8920135498046875, 4.764939308166504, -5.296650409698486, -4.298381328582764, -4.261350631713867, -5.968295574188232, -5.967648029327393, -4.490927219390869, 0.13799354434013367, -4.5529375076293945, 1.2878518104553223, -6.38967752456665, -5.875190734863281, -3.0682859420776367, -3.1474812030792236, -4.342831611633301, 1.1304903030395508, -5.884270191192627, -5.680354595184326, -8.117952346801758, -2.7050957679748535, -2.68155574798584, -3.804119110107422, -4.845552444458008, -2.7730932235717773, -2.89418888092041, -5.382380485534668, 3.059605121612549, -0.7196536064147949, -6.37245512008667, -0.3594079613685608, 0.2950148582458496, -4.192019939422607, -2.792616605758667, -4.426783084869385, -0.12180344015359879, -0.07370463013648987, -1.020570993423462, -2.2488012313842773, -5.396519184112549, -2.8581745624542236, -0.45310792326927185, -1.4735902547836304, -3.494696855545044, -3.0167267322540283, -2.532951593399048, -3.946945905685425, -3.4968268871307373, -5.573587417602539, 0.5600720643997192, -6.267812252044678, -3.9903643131256104, -1.075541377067566, -5.591588973999023, -6.273512840270996, 3.969467878341675, -1.4546573162078857, -5.357880592346191, -1.004169225692749, -2.060241937637329, -3.469268798828125, 0.6877540946006775, -0.6244969367980957, -6.92501163482666, -2.2023088932037354, -0.17607498168945312, -6.481030464172363, -4.295480728149414, -2.2890737056732178, -2.416940450668335, -2.3174288272857666, -4.239121913909912, -4.558136940002441, -3.6654162406921387, -3.4032044410705566, -4.237832069396973, 0.31731104850769043, -0.8760400414466858, -1.9190164804458618, -4.424962043762207, 1.461962342262268, -5.071569919586182, -2.659982919692993, -3.2128734588623047, -5.778807640075684, -6.41231632232666, -6.485716342926025, -0.7543466091156006, -8.113655090332031, -0.1322116106748581, 0.6674844026565552, -5.175980091094971, -3.3202476501464844, -2.3215129375457764, -2.1939377784729004, 1.4324455261230469, 3.3214118480682373, 0.2950247824192047, -5.849119186401367, -4.5739216804504395, 4.607054710388184, -1.8440934419631958, -4.3464508056640625, -1.5377676486968994, -3.5630950927734375, -8.298885345458984, -4.678307056427002, -6.209234237670898, -2.329923629760742, -5.862000942230225, -4.322843074798584, -4.9909987449646], \"z\": [0.11217031627893448, 0.4623444080352783, -2.043037176132202, 2.036395788192749, -4.393045902252197, 0.529044508934021, -2.7013421058654785, -0.5009774565696716, 1.0591813325881958, 0.115044504404068, 1.1528966426849365, -2.907747507095337, 2.286773920059204, -2.145009756088257, -2.635802745819092, 1.7004755735397339, -0.2619526982307434, -3.35783052444458, -3.3267083168029785, -1.4123605489730835, 0.3697391748428345, 0.2273370772600174, -6.12708854675293, -2.4711406230926514, -4.993322849273682, 2.085756778717041, -0.5627122521400452, -0.7440825700759888, 2.7629716396331787, 0.05497529357671738, -2.515209197998047, -1.1515388488769531, -4.575882434844971, 1.8235797882080078, -1.6025283336639404, -6.279042720794678, -2.828336477279663, -0.9890782833099365, 1.8927966356277466, 2.4372191429138184, -1.7657852172851562, -3.224909782409668, -2.2501230239868164, -4.390509128570557, -0.5939843654632568, 0.48091456294059753, -1.2894222736358643, -1.7097833156585693, 0.15349146723747253, 1.985005259513855, 0.43338412046432495, 1.8976689577102661, -3.9289133548736572, -0.661628246307373, -1.3659694194793701, -2.8254177570343018, -0.02421957068145275, 0.6758108735084534, -4.368211269378662, -1.56773841381073, -0.5794245600700378, -1.748481035232544, 0.6217586994171143, -1.3509562015533447, -2.1317036151885986, -2.8969228267669678, 0.3498068153858185, 1.4198838472366333, 0.36765971779823303, 1.8906093835830688, -0.12105101346969604, -0.06920378655195236, 2.124342918395996, -1.529799461364746, -2.8033246994018555, 4.1831536293029785, -3.1269450187683105, 1.7582273483276367, 0.7993279695510864, -0.40384507179260254, -2.759161949157715, -0.3925650715827942, 0.04793979972600937, 2.1672208309173584, -0.532919704914093, 0.2720496654510498, -1.4382578134536743, -1.4141371250152588, 1.4720872640609741, 1.7706130743026733, 1.7614635229110718, 2.3100595474243164, 1.1852551698684692, -3.1041715145111084, -2.206341505050659, -1.8969647884368896, -0.21181371808052063, -0.35008445382118225, 3.3622119426727295, 3.5493526458740234, 0.02942563407123089, 0.526245653629303, 1.2036266326904297, -2.777846574783325, -0.8581066131591797, -0.4107680916786194, -5.869949817657471, -4.237659931182861, 1.1875659227371216, -2.398721694946289, -4.542093276977539, -2.6932222843170166, -1.273175835609436, -0.786698043346405, -3.543004274368286, -2.2303075790405273, -1.493579626083374, 0.23390597105026245, 0.4428808093070984, 0.5898263454437256, -5.849166393280029, -3.411320924758911, -2.319532871246338, -4.6631059646606445, -2.848021984100342, 0.2607267200946808, -1.6985316276550293, -0.8122915625572205, -4.618338108062744, 0.4858852028846741, -2.012730836868286, -4.351638317108154, 0.31153297424316406, 0.2307324856519699, -4.406704425811768, -0.43149715662002563, -0.6853132247924805, 0.5377449989318848, -2.3987061977386475, 0.5421002507209778, -4.604483604431152, -2.3754115104675293, 1.1431318521499634, 1.780761480331421, -3.6338207721710205, 1.635022521018982, -1.3555760383605957, -0.028683379292488098, 1.5075381994247437, -3.306865930557251, -2.7827274799346924, 0.2564077377319336, -0.6409856081008911, 0.0036283577792346478, -1.1598246097564697, -1.8596335649490356, -3.7470810413360596, 0.8636128306388855, -0.29253748059272766, -5.671391487121582, -1.2968472242355347, -3.0004897117614746, -2.3202409744262695, 0.09018488228321075, 0.3756808936595917, 0.5808389782905579, 0.9099588394165039, 3.123520612716675, -1.364535927772522, 0.3040018081665039, -1.141595721244812, 1.7823078632354736, -1.2938909530639648, -2.8755862712860107, -2.6839568614959717, 0.11434972286224365, -1.722792387008667, -1.4866371154785156, -2.2735726833343506, -5.570767879486084, -3.5581912994384766, 0.5770175457000732, -0.05006448179483414, -2.6206929683685303, 3.5682199001312256, -1.7559623718261719, 0.1497991383075714, -3.6874003410339355, 0.06793434917926788, -0.6669600605964661, -0.6838437914848328]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Orthopedic<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Orthopedic\", \"marker\": {\"color\": \"#EF553B\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Orthopedic\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [6.076406478881836, 14.37260627746582, 13.179710388183594, 13.04811954498291, 16.710317611694336, 9.927842140197754, 13.871129989624023, 11.430083274841309, 6.271109580993652, 12.311304092407227, 13.120399475097656, 11.847689628601074, 10.923569679260254, 6.294369697570801, 3.7748758792877197, 9.145909309387207, 12.900898933410645, 4.580058574676514, 9.604662895202637, 14.49948787689209, 11.012834548950195, 6.648212432861328, 5.445250034332275, 10.192066192626953, 4.2150444984436035, 13.354065895080566, 11.007177352905273, 19.85613441467285, 10.284229278564453, 16.1478214263916, 17.73207664489746, 15.367980003356934, 11.273055076599121, 6.4866414070129395, 12.172194480895996, 16.370691299438477, 12.972624778747559, 17.57758903503418, 16.849519729614258, 9.837059020996094, 9.270455360412598, 8.648804664611816, 12.108307838439941, 11.183466911315918, 14.839487075805664, 11.726696014404297, 11.23526382446289, 10.442940711975098, 15.363255500793457, 14.990782737731934, 3.294666290283203, 12.208006858825684, 13.592735290527344, 7.535433769226074, 6.111438751220703, 12.292706489562988, 15.198041915893555, 10.192960739135742, 7.290373802185059, 14.969642639160156, 5.684402942657471, 13.387227058410645, 12.793931007385254, 13.541921615600586, 15.35891342163086, 16.109460830688477, 7.689935684204102, 18.810510635375977, 3.282987594604492, 14.47791862487793, 6.076406478881836, 11.82528305053711, 6.134410381317139, 12.498083114624023, 10.316920280456543, 15.043510437011719, 3.5027830600738525, 14.179046630859375, 9.638467788696289, 12.433451652526855, 9.999356269836426, 8.69054889678955, 13.356858253479004, 6.13176155090332, 14.711263656616211, 14.219259262084961, 6.529971122741699, 9.010008811950684, 10.667157173156738, 2.0118191242218018, 12.469259262084961, 2.344350814819336, 9.996667861938477, 10.726621627807617, 11.680289268493652, 13.185665130615234, 4.244569778442383, 9.108803749084473, 12.746797561645508, 17.512596130371094, 16.401866912841797, 6.430550575256348, 14.440669059753418, 5.637997150421143, 11.836776733398438, 9.996134757995605, 16.75992202758789, 15.523628234863281, 13.885750770568848, 14.394303321838379, 8.551021575927734, 12.927437782287598, 17.4150390625, 11.78368091583252, 13.784828186035156, 13.602081298828125, 13.93915843963623, 13.336691856384277, 6.078790187835693, 10.979738235473633, 18.94285011291504, 11.657134056091309, 3.3598058223724365, 11.282127380371094, 7.0464677810668945, 3.7209620475769043, 7.725292682647705, 11.679110527038574, 3.267165422439575, 8.058940887451172, 9.521178245544434, 16.410675048828125, 7.388197422027588, 15.381163597106934, 18.52178955078125, 9.74133014678955, 10.022283554077148, 12.73501968383789, 12.594104766845703, 16.311058044433594, 8.951851844787598, 8.82061767578125, 12.059745788574219, 7.363831043243408, 8.542675971984863, 5.222625732421875, 9.821484565734863, 16.662179946899414, 12.77806568145752, 11.748418807983398, 8.62086296081543, 14.015485763549805, 13.24366569519043, 15.726408958435059, 18.256332397460938, 16.883222579956055, 17.97203826904297, 15.161946296691895, 20.05400848388672, 8.729214668273926, 4.451396942138672, 13.301801681518555, 16.706466674804688, 12.683197021484375, 9.200091361999512, 10.307563781738281, 15.573546409606934, 15.168428421020508, 13.319427490234375, 13.279457092285156, 6.421281814575195, 5.5072221755981445, 9.399981498718262, 7.8271355628967285, 16.542856216430664, 14.4631929397583, 9.889910697937012, 5.963131427764893, 11.486570358276367, 12.555548667907715, 11.611320495605469, 20.13475799560547, 4.058948516845703, 14.998894691467285, 6.983436107635498, 13.049631118774414, 11.498835563659668, 15.280241966247559, 19.432239532470703, 11.427847862243652, 17.814783096313477, 11.699819564819336, 7.339562892913818, 9.572957038879395, 15.622014045715332, 0.9282721877098083, 16.42991065979004, 16.721879959106445, 5.575225353240967, 9.950824737548828, 16.514789581298828, 2.1830861568450928, 10.077964782714844, 16.162630081176758, 15.713791847229004, 16.1281795501709, 15.662972450256348, 14.406059265136719, 13.797869682312012, 13.871106147766113, 15.478779792785645, 10.23617172241211, 15.566265106201172, 9.948171615600586, 15.840753555297852, 13.140313148498535, 5.818444728851318, 15.809284210205078, 12.625457763671875, 10.675010681152344, 8.652594566345215, 15.851263046264648, 17.646421432495117, 2.284501552581787, 13.699078559875488, 8.406600952148438, 9.766350746154785, 12.405538558959961, 8.597819328308105, 12.052967071533203, 9.024767875671387, 14.320938110351562, 6.80623722076416, 5.64149808883667, 5.31328010559082, 6.682070732116699, 3.5617852210998535, 9.974177360534668, 16.541690826416016, 2.564837694168091, 12.139692306518555, 4.041558742523193, 5.207183837890625, 8.768083572387695, 12.123507499694824, 10.937499046325684, 9.19010066986084, 3.823331832885742], \"y\": [0.20087672770023346, 4.360479831695557, 3.526700496673584, 1.5176278352737427, 6.177562236785889, 0.7626397013664246, 4.221831798553467, 1.5234512090682983, 2.732848644256592, 5.059329032897949, 5.037367343902588, 4.266005039215088, 4.660990238189697, 1.5027745962142944, 0.3011299967765808, 1.813988208770752, 3.4929490089416504, -0.6244969367980957, 1.7076560258865356, 4.779767036437988, 4.459386825561523, -3.4159679412841797, 1.798579454421997, 3.058192491531372, -0.8760400414466858, 5.008751392364502, 2.021993637084961, 4.908262252807617, 1.1068482398986816, 5.52846622467041, 5.414266586303711, 6.8552775382995605, 3.217615842819214, 1.9010229110717773, 2.0111887454986572, 5.2846999168396, 4.45040225982666, 6.574946880340576, 4.789818286895752, 1.9066017866134644, 1.9767982959747314, 0.8939641118049622, 2.906888246536255, 2.723609685897827, 6.0481791496276855, 3.3691022396087646, 3.609572649002075, 0.5786228179931641, 6.177015781402588, 5.0376996994018555, -5.965881824493408, 2.7962775230407715, 3.267831802368164, 0.9092563390731812, 2.406402587890625, 3.4163765907287598, 4.70610237121582, 1.2396775484085083, 0.1700807809829712, 3.8194973468780518, -0.47586414217948914, 3.7273850440979004, 4.645291805267334, 3.8356449604034424, 5.892527103424072, 6.836884498596191, -0.03296666219830513, 7.2041730880737305, -1.5474976301193237, 2.9140756130218506, 0.20087413489818573, 0.9424912929534912, 0.6922240257263184, 5.233203411102295, 0.7551423907279968, 4.397882461547852, 1.1304903030395508, 3.5945656299591064, 1.6903942823410034, 4.362137794494629, 4.817756175994873, 2.3163254261016846, 3.7338552474975586, 0.31731104850769043, 5.271007537841797, 4.705608367919922, -1.3883312940597534, 1.5030372142791748, -0.8180574774742126, -4.342831611633301, 2.7127697467803955, -0.49372598528862, 4.09158182144165, 1.4696869850158691, 4.539372444152832, 5.030857086181641, -1.4735902547836304, 3.542065143585205, 4.100452423095703, 5.295340538024902, 5.791488170623779, -1.3633930683135986, 5.308457851409912, -3.59629225730896, 4.1696977615356445, 1.5934702157974243, 6.5355682373046875, 5.568091869354248, 3.4860332012176514, 3.797506332397461, -0.6578209400177002, 4.377491474151611, 4.776301860809326, 4.751454830169678, 1.7574421167373657, 3.932929754257202, 6.18269157409668, 4.447390556335449, 0.05610013008117676, 2.8487658500671387, 7.3956708908081055, 4.784975528717041, 2.2711734771728516, 3.644914388656616, -5.538724899291992, -2.329923391342163, -2.1162655353546143, 4.467660903930664, -0.1698399931192398, 2.1577956676483154, 1.382376790046692, 5.806384563446045, 1.5966696739196777, 3.7802820205688477, 6.517673969268799, 1.9899080991744995, 2.177676200866699, 7.120041370391846, 3.5940027236938477, 5.307531356811523, 1.5671786069869995, 0.9866312742233276, 3.992136001586914, -3.1183857917785645, 2.2432546615600586, -0.29409709572792053, 0.6124985218048096, 5.720088958740234, 2.2888286113739014, 4.105042934417725, 1.3980127573013306, 5.679673194885254, 4.8938212394714355, 6.421435356140137, 6.569790840148926, 5.3587212562561035, 5.973812103271484, 4.676568031311035, 6.092666149139404, 2.1282238960266113, -2.7730932235717773, 4.229689598083496, 4.874090671539307, 4.8738579750061035, -2.5437843799591064, 2.6149139404296875, 4.391718864440918, 5.06195068359375, 3.3214118480682373, 2.413494110107422, 2.483384609222412, -1.8755254745483398, 2.9215197563171387, -0.07370463013648987, 5.373226642608643, 5.178653717041016, 1.1285984516143799, 0.5600720643997192, 2.7189078330993652, 2.3620171546936035, 3.0991804599761963, 7.3972487449646, 1.254901647567749, 5.759446620941162, -1.4751042127609253, 4.363683700561523, 1.0164110660552979, 6.672623634338379, 6.789259910583496, 3.92073392868042, 5.634135723114014, 6.754571914672852, 1.8369228839874268, 3.911417245864868, 4.571135997772217, -3.2128734588623047, 6.56895637512207, 7.818178653717041, 0.7364668250083923, 2.3994455337524414, 4.257135391235352, -3.5630950927734375, 3.021805763244629, 4.027815818786621, 5.435884475708008, 5.751475811004639, 4.972734451293945, 4.8336405754089355, 4.224047660827637, 3.370232343673706, 6.102748394012451, 3.141490936279297, 4.938162326812744, 0.5377363562583923, 5.337752342224121, 5.884453773498535, 0.34233975410461426, 5.169594764709473, 4.686817169189453, 1.9180346727371216, 0.11449722200632095, 5.692644119262695, 7.361790180206299, -5.296650409698486, 5.494726181030273, -0.745838463306427, 1.642804741859436, 2.2859559059143066, 1.0955545902252197, 1.7501143217086792, 0.45490762591362, 1.5583750009536743, -0.5897006392478943, 3.6214022636413574, 0.6877540946006775, 2.308570623397827, -2.3174288272857666, 0.850237250328064, 5.138289451599121, -1.8440934419631958, 4.449405193328857, -1.3557461500167847, -0.29708191752433777, 1.1615368127822876, 2.1656081676483154, 3.5675973892211914, 0.853091835975647, 1.4440821409225464], \"z\": [-2.8283393383026123, 1.3873846530914307, 4.484188079833984, -0.7852139472961426, 7.720369338989258, 0.06045619398355484, 1.1629250049591064, -3.3744828701019287, -2.8990085124969482, -1.4226553440093994, -1.2207132577896118, -1.013084888458252, 0.4595979154109955, -3.5692028999328613, -4.697348117828369, -2.678464651107788, 1.2646151781082153, -2.3754115104675293, -4.0513715744018555, 4.818179130554199, 2.8240725994110107, 0.5785617232322693, -5.770432472229004, 0.33361756801605225, -3.7470810413360596, -0.7240232825279236, -2.3241894245147705, 9.143720626831055, -1.8943755626678467, 4.302191257476807, 5.731342315673828, 4.134064674377441, 0.2725844979286194, -4.368211269378662, -4.08484411239624, 3.5012495517730713, 0.8926703333854675, 4.740451812744141, 3.579508066177368, 0.24152661859989166, -2.5635616779327393, -2.28410267829895, 2.5361125469207764, -2.2464892864227295, 5.911239147186279, 1.4672878980636597, 0.7822228074073792, -3.460336446762085, 6.636984348297119, 2.176439046859741, 0.17655164003372192, -0.7457907199859619, -1.5647311210632324, -3.5005202293395996, -5.0176615715026855, -2.5859508514404297, 4.430882930755615, -5.632486820220947, -1.9592512845993042, 4.131414890289307, -4.390509128570557, -3.3832240104675293, 1.5345468521118164, 3.70672869682312, 2.6611509323120117, 5.31069278717041, -2.736870527267456, 2.871105909347534, -3.7579329013824463, -1.010276436805725, -2.828336477279663, -3.2175989151000977, -3.852609634399414, 3.8514997959136963, -1.2068244218826294, 5.629101276397705, -1.8969647884368896, -3.285071849822998, -4.7905473709106445, 1.5960105657577515, -0.0019618766382336617, -4.103935718536377, 0.6836020946502686, -1.8596335649490356, 2.6159629821777344, 0.18186397850513458, -2.071284055709839, 0.439214825630188, 3.6733906269073486, -2.206341505050659, -2.22392201423645, -3.9289133548736572, 1.583632230758667, -1.394333004951477, -1.594897747039795, -2.8903629779815674, -3.411320924758911, -0.8723560571670532, -3.0991718769073486, 5.204293727874756, 0.3841886818408966, -1.7024016380310059, 5.163386344909668, -1.8037643432617188, -0.04958081245422363, 0.9668038487434387, 2.833655834197998, 3.4545345306396484, 2.1845524311065674, 3.2746150493621826, -3.7091212272644043, 2.2684271335601807, 4.2010979652404785, 2.401743173599243, 1.023480772972107, 5.245724678039551, 5.081332683563232, 4.535669803619385, -4.898382663726807, -3.6152689456939697, 4.577077388763428, -2.0564706325531006, -2.1317036151885986, 0.8378527760505676, 1.3594481945037842, -3.6874003410339355, 0.26941999793052673, 0.4187683165073395, -5.343714714050293, -3.1717145442962646, -3.8550570011138916, 8.770085334777832, -1.5559537410736084, 4.226816177368164, 9.494284629821777, 1.7868900299072266, -1.882179617881775, 3.917466163635254, 1.1743731498718262, 5.146951675415039, -2.907747507095337, -2.406280994415283, 0.3197975158691406, -1.0390359163284302, -0.6199342012405396, -4.162632465362549, -1.272252082824707, 3.008892774581909, -1.7773127555847168, 0.6484665274620056, -2.8286380767822266, 0.8224930167198181, 5.029664993286133, 4.736007213592529, 7.204482078552246, 3.8387205600738525, 8.515549659729004, 5.709641456604004, 3.8358516693115234, -2.2039053440093994, -2.777846574783325, 2.817701816558838, 4.199094295501709, 1.3160523176193237, -0.9027385115623474, -3.3097846508026123, 7.358805179595947, 1.5239046812057495, 0.11434972286224365, 1.2642967700958252, -5.07519006729126, -2.2337987422943115, -3.8441109657287598, -2.2303075790405273, -0.45200058817863464, 4.38514518737793, -0.6027859449386597, -4.618338108062744, -1.3894577026367188, -3.3057024478912354, -2.428586006164551, 3.1711816787719727, -4.6603522300720215, 5.158782482147217, -0.9071625471115112, 0.7911074757575989, 3.1319403648376465, 3.394829273223877, 4.787298202514648, 2.9010722637176514, 4.311498641967773, 2.7322075366973877, -4.575882434844971, -1.4824960231781006, 4.499002456665039, -2.3202409744262695, 7.721888065338135, 7.582131385803223, -3.9393186569213867, -1.1708626747131348, 6.041369915008545, -2.6206929683685303, -1.3481245040893555, 2.5789432525634766, 5.367311477661133, 5.046514511108398, 0.09203537553548813, 2.4254658222198486, 5.973014831542969, -0.5542346239089966, 1.4374011754989624, 1.3558766841888428, 4.244072914123535, -2.3201394081115723, 3.175581216812134, 4.721795558929443, -4.583204746246338, 1.743351697921753, 0.5343264937400818, -1.4303200244903564, -2.726754665374756, 5.696448802947998, 5.721745491027832, -0.3925650715827942, 2.577573537826538, -3.4992733001708984, -1.530087947845459, 4.611427307128906, -3.431464433670044, -1.3617805242538452, -4.860976219177246, 1.6673376560211182, -1.529799461364746, -2.1739954948425293, -4.604483604431152, -4.759167194366455, -3.306865930557251, 0.5618981122970581, 3.8743343353271484, -3.5581912994384766, 1.4733339548110962, -3.3190371990203857, -4.53078031539917, -2.6458935737609863, 3.2842631340026855, -2.9661431312561035, -4.350675106048584, -5.780097007751465]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Cardiovascular / Pulmonary<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Cardiovascular / Pulmonary\", \"marker\": {\"color\": \"#00cc96\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Cardiovascular / Pulmonary\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-8.090023040771484, -6.795628070831299, -4.488983154296875, -9.608912467956543, -2.272019386291504, -9.69023609161377, -2.534407615661621, -8.158390045166016, -11.661532402038574, -6.829087734222412, -8.738700866699219, -10.527432441711426, -5.859574794769287, -10.045038223266602, -10.019522666931152, -9.035211563110352, -6.147070407867432, -8.66065502166748, -8.819775581359863, -9.860787391662598, -10.133308410644531, -4.912384510040283, -9.818387031555176, -10.549243927001953, -5.1867899894714355, -8.056561470031738, -2.5604429244995117, -9.668737411499023, -9.447122573852539, -9.922715187072754, -10.233739852905273, -9.531373977661133, -4.985836505889893, -6.098473072052002, -10.475930213928223, -10.779481887817383, -6.449323654174805, -6.828925132751465, -10.132678985595703, -6.46591329574585, -3.2305665016174316, -11.149535179138184, -10.648616790771484, -11.321435928344727, -9.751327514648438, -8.781417846679688, -9.783060073852539, -9.692573547363281, -10.207571983337402, -8.72481918334961, -8.605010032653809, -10.452606201171875, -10.433792114257812, -12.39470386505127, -9.836835861206055, -8.843255043029785, -8.50256061553955, -9.058199882507324, -11.305760383605957, -6.8196024894714355, -10.935068130493164, -13.564875602722168, -9.41866683959961, -10.538134574890137, -9.580806732177734, -4.108555793762207, -8.98828411102295, -9.345410346984863, -8.287388801574707, -7.5234174728393555, -9.698009490966797, -11.554998397827148, -9.13546371459961, -7.503582954406738, -9.625246047973633, -7.92617654800415, -10.552709579467773, -8.206220626831055, -1.5385719537734985, -9.371478080749512, -9.890575408935547, -9.050225257873535, -11.582756042480469, -9.302265167236328, -11.0470552444458, -12.113144874572754, -8.050004959106445, -9.63162899017334, -11.837414741516113, -4.1074748039245605, -12.06634521484375, -8.60189437866211, -8.141874313354492, -8.41805648803711, -7.6331281661987305, -8.655874252319336, -9.94682788848877, -10.985272407531738, -8.939862251281738, -3.161200523376465, -10.663902282714844, -12.004701614379883, -11.679484367370605, -8.392809867858887, -7.693056583404541, -5.8546905517578125, -8.19119930267334, -9.309282302856445, -10.540367126464844, -9.879660606384277, -8.60630989074707, -9.932717323303223, -7.050343036651611, -11.494892120361328, -10.878998756408691, -10.488882064819336, -9.297907829284668, -10.59583568572998, -9.855499267578125, -7.568593502044678, -10.697092056274414, -5.405908107757568, -10.093465805053711, -8.657510757446289, -8.510855674743652, -12.121896743774414, -10.041102409362793, -11.277091026306152, -6.8192644119262695, -10.909906387329102, -9.702402114868164, -10.86522102355957, -8.756412506103516, -9.749984741210938, -6.455760478973389, -9.53678035736084, -9.041339874267578, -9.240287780761719, -4.7347636222839355, -8.214388847351074, -7.0568389892578125, -8.870115280151367, -9.980992317199707, -6.612271785736084, -9.344061851501465, -10.625096321105957, -9.518782615661621, -10.628665924072266, -8.579818725585938, -3.3950915336608887, -9.81312084197998, -8.28185749053955, -10.202778816223145, -6.564685344696045, -9.407958030700684, -9.732306480407715, -8.867032051086426, -7.44019889831543, -8.701208114624023, -8.923264503479004, -9.51018238067627, -1.9017276763916016, -1.3913787603378296, -10.091697692871094, -6.0875773429870605, -11.672183990478516, -7.458024501800537, -9.900774955749512, -5.9719438552856445, -9.133264541625977, -7.133405685424805, -10.205166816711426, -11.18392276763916, -7.333609104156494, -11.382529258728027, -8.973954200744629, -4.413750171661377, -9.477482795715332, -7.29054594039917, -10.540653228759766, -10.365914344787598, -10.534524917602539, -0.22410716116428375, -10.960946083068848, -9.580076217651367, -11.546704292297363, -6.681729316711426, -7.026253700256348, -10.1643705368042, -10.89211654663086, -9.084463119506836, -10.207193374633789, -9.887063980102539, -10.13545036315918, -3.6421866416931152, -9.600916862487793, -8.58839225769043, -11.269964218139648, -9.013175964355469, -10.1531982421875, -12.546156883239746, -9.80412483215332, -7.840672969818115, -7.019237518310547, -10.664859771728516, -4.274587154388428, -9.818953514099121, -6.903474807739258, -8.008980751037598, -9.420989036560059, -8.499472618103027, -11.856745719909668, -8.538829803466797, -8.093342781066895, -7.185267448425293, -9.050225257873535, -11.508350372314453, -10.315107345581055, -7.519346714019775, -8.660160064697266, -2.1728367805480957, -11.080560684204102, -10.730976104736328, -2.742163896560669, -7.572378635406494, -9.679410934448242, -10.867996215820312, -9.552445411682129, -8.446206092834473, -9.110897064208984, -8.45849323272705, -4.574892044067383, -11.269906044006348, -10.209479331970215, -5.151039123535156, -8.541680335998535, -11.046051979064941, -10.894755363464355, -7.359510898590088, -1.7238833904266357, -9.965310096740723, -9.1781644821167, -11.572654724121094, -11.686147689819336, -10.392183303833008, -4.758172512054443, -7.876298904418945, -7.478940963745117, -8.40291976928711, -8.405861854553223, -8.91586971282959, -9.392358779907227, -9.571203231811523, -8.540000915527344, -9.777395248413086, -10.011958122253418, -9.068720817565918, -9.521496772766113, -6.884112358093262, -9.95545482635498], \"y\": [-2.6409881114959717, -2.8647515773773193, -2.89418888092041, -0.446392297744751, -6.125892162322998, 0.6594400405883789, -4.267852783203125, -1.5340982675552368, -3.1424336433410645, -1.9187743663787842, -1.3836716413497925, -1.8124691247940063, 0.0776536613702774, -1.9124746322631836, -2.2806127071380615, 0.8937918543815613, -4.298381328582764, -1.6159236431121826, -3.395892381668091, -1.166809320449829, -3.3627140522003174, -3.108349561691284, -2.672074556350708, -1.9870290756225586, -0.11103828996419907, -4.067821025848389, -3.951795816421509, -0.2507869005203247, -1.1952489614486694, -3.6773829460144043, -0.5131124258041382, -3.023151397705078, 0.13306768238544464, -1.5787901878356934, -3.520165205001831, -3.412860870361328, -1.5865453481674194, -1.8404942750930786, -0.7596968412399292, -2.7050957679748535, -3.0030019283294678, -0.6722846031188965, 2.053284168243408, 1.8968805074691772, -2.141995429992676, -1.9607343673706055, 1.7641347646713257, -2.3586411476135254, 0.44067907333374023, 0.22844626009464264, -3.092111349105835, 0.4866446554660797, -3.363236427307129, 4.32883358001709, -2.4811713695526123, -2.2890737056732178, -1.5488758087158203, -1.9453778266906738, -0.49527445435523987, -4.02202844619751, -2.3223910331726074, -1.855979084968567, -2.0830540657043457, -0.38932669162750244, -2.271467924118042, -2.75970458984375, -1.0257879495620728, -1.1709887981414795, -2.1183440685272217, -3.6333272457122803, 7.211120128631592, 0.27206793427467346, 3.75119686126709, -2.4992713928222656, -3.5554606914520264, 0.0398564338684082, -0.8913231492042542, -4.068359851837158, -3.804119110107422, -3.0682859420776367, 1.1386651992797852, -1.9555821418762207, -3.1977715492248535, -0.41184401512145996, 0.32015570998191833, -1.642311692237854, -3.4164366722106934, -5.638560771942139, -2.995511293411255, -3.946945905685425, -0.40906867384910583, -3.469268798828125, -1.7002418041229248, -3.626216173171997, -2.793161630630493, -0.7099533677101135, -0.12482772022485733, -2.309603452682495, -3.4098258018493652, -5.317574977874756, -1.4704139232635498, 2.3277738094329834, 4.7990336418151855, -2.721280574798584, -3.131289482116699, 2.6724283695220947, -2.933468818664551, -1.9190164804458618, -3.152895450592041, -0.8720510005950928, -1.197485327720642, -0.2600489854812622, -0.6253021359443665, -2.7477102279663086, -0.4910230040550232, -1.0781311988830566, -3.4507339000701904, -3.620131254196167, -1.7482181787490845, -1.072098731994629, 0.05070213973522186, -0.41954779624938965, -1.3125754594802856, -3.1100058555603027, 0.1332966536283493, -0.2058267742395401, -0.9796176552772522, -2.3778326511383057, -2.1681313514709473, -2.32206654548645, -1.5472416877746582, 1.995406985282898, -2.068965196609497, -2.820791721343994, -2.4490115642547607, -1.5416874885559082, -1.821689248085022, -2.6127662658691406, -5.871116638183594, -1.43345308303833, -2.2023088932037354, 3.3180148601531982, -2.134488344192505, -2.8607070446014404, -2.8152527809143066, -1.942260503768921, -0.9734646677970886, -2.9544241428375244, -1.0402134656906128, -3.5165059566497803, -1.6974700689315796, -1.1419273614883423, -2.744785785675049, -2.313291549682617, 3.4516639709472656, -1.6837873458862305, -3.3369691371917725, -0.5131956338882446, 0.597415566444397, -3.8831028938293457, -1.3339402675628662, -4.295480728149414, -3.982644557952881, -3.621351480484009, -4.045369625091553, -2.8695600032806396, -3.600017547607422, -2.083120346069336, -0.9076768755912781, -0.46237650513648987, -5.815560340881348, -2.4595437049865723, 1.2877517938613892, -1.8259862661361694, -2.829303026199341, -0.36501139402389526, -2.68155574798584, -2.4215316772460938, -4.227429389953613, -0.4863879680633545, -3.6821298599243164, -3.74131178855896, -4.192019939422607, 1.312537431716919, -0.18750235438346863, 2.469250440597534, 0.9991682171821594, -1.858171820640564, -0.622789740562439, -1.6171019077301025, -0.8794371485710144, 1.6666128635406494, -1.7928569316864014, -0.09622959047555923, -3.4032044410705566, -3.294562339782715, 2.4290084838867188, 0.5820193886756897, 0.1384539008140564, 1.029882788658142, 2.295645236968994, -2.1621649265289307, 0.6105543375015259, -3.6984989643096924, -1.3669360876083374, -2.2488012313842773, -3.129455327987671, 1.4702732563018799, -0.8280078768730164, -2.171767473220825, -3.0388877391815186, -2.513460636138916, -3.413079023361206, -0.8700230121612549, -3.29695463180542, -1.9555821418762207, 2.0706522464752197, 6.111715316772461, -2.7502529621124268, -0.17618365585803986, -3.494696855545044, -3.733482599258423, 0.7419547438621521, -1.8534263372421265, -4.338480472564697, -0.10020536929368973, 1.1338510513305664, -1.7934945821762085, -2.2159106731414795, -1.6031523942947388, -3.095909357070923, -4.205787181854248, -1.6390210390090942, -2.171722412109375, -2.612452983856201, -4.281619548797607, -1.4233092069625854, -0.08887101709842682, -1.3224155902862549, -6.273512840270996, -3.6757233142852783, -3.2087292671203613, -2.3128163814544678, -2.904167652130127, 1.0471361875534058, -2.860011339187622, -3.2649664878845215, -1.8076485395431519, 0.120045505464077, -1.2590696811676025, 0.9088326096534729, -2.2090394496917725, -1.8416264057159424, -2.0791730880737305, -2.9119884967803955, 1.8220700025558472, -3.1959900856018066, -1.8890316486358643, -3.192911148071289, -2.1437342166900635], \"z\": [-0.7035322785377502, -2.145009756088257, -0.8581066131591797, 0.23767012357711792, 1.7582273483276367, -0.19985273480415344, -1.7097833156585693, -1.0887893438339233, 4.095770835876465, -2.252868175506592, 1.1599348783493042, 1.8330880403518677, 0.20526348054409027, 1.179302453994751, 1.6226201057434082, -0.004776674322783947, 0.04793979972600937, -0.6811778545379639, 0.8527684807777405, 0.36162078380584717, 2.3608081340789795, -2.1066014766693115, 1.6075358390808105, 2.251798629760742, -2.2745025157928467, 0.2948305904865265, -0.5939843654632568, 0.7918036580085754, 2.0548503398895264, 2.643631935119629, 0.9241554737091064, 1.3820804357528687, 0.3697391748428345, -3.2946624755859375, 2.869917392730713, 3.2255873680114746, -2.1633739471435547, 1.8235797882080078, 0.8858389258384705, 3.5493526458740234, -0.4921366572380066, 3.454373359680176, 0.3982265591621399, 2.707597494125366, 1.116868257522583, -0.33346569538116455, -0.2534082531929016, 1.0929522514343262, 0.2788392901420593, -1.8121471405029297, 0.2765343487262726, 0.6774867177009583, 2.7629716396331787, 1.6793639659881592, 2.4160666465759277, -0.028683379292488098, -0.9824044704437256, -0.007161793764680624, 2.098790407180786, -0.5177820920944214, 4.124682426452637, 5.879844665527344, 0.6755040884017944, 2.090273857116699, 1.8115272521972656, -1.7261769771575928, 1.2235931158065796, -0.12055942416191101, -0.8500017523765564, -0.663982629776001, -0.5389477014541626, 5.042714595794678, 2.463355779647827, -1.5231502056121826, 1.8850584030151367, 4.0059990882873535, 1.690443992614746, 0.5187633037567139, 0.526245653629303, 1.1852551698684692, 2.20268177986145, -0.028066549450159073, 4.051983833312988, 1.4618949890136719, 2.7571728229522705, 3.7884998321533203, -0.15154048800468445, 3.4230880737304688, 4.32244348526001, 0.2607267200946808, 2.9086952209472656, 0.5421002507209778, -1.3315503597259521, 0.4195438027381897, -1.168345332145691, -1.3509562015533447, 2.0816447734832764, 2.6295418739318848, 0.9127456545829773, -1.627331256866455, 2.432420492172241, 3.4204483032226562, 1.7884193658828735, -0.29345446825027466, -0.8433825969696045, -0.5978451371192932, -0.1921905279159546, 0.8636128306388855, 2.766799211502075, 0.6189547181129456, -1.043210744857788, 0.31218886375427246, -2.777097463607788, 4.1831536293029785, 1.528367519378662, 1.4134235382080078, 1.2871137857437134, 3.300283193588257, 0.8443301320075989, -0.9707562923431396, 2.03102970123291, 0.2227577120065689, 1.1288104057312012, 0.34882211685180664, 0.8291058540344238, 3.7623250484466553, 4.2361602783203125, 4.527761936187744, 3.231783151626587, 2.563175916671753, 0.5061801075935364, -0.1467408537864685, -0.0028444654308259487, 1.5099515914916992, -0.01795627735555172, 0.2709334194660187, -0.12253133207559586, 1.0313042402267456, 1.2212646007537842, 2.286773920059204, 1.780761480331421, 0.23927932977676392, 1.6832993030548096, -1.456041693687439, 1.0082453489303589, 1.935028076171875, 2.9378769397735596, 2.6789636611938477, 1.2734355926513672, -2.2745628356933594, 0.9197392463684082, -1.1515388488769531, 1.996498703956604, -2.026895761489868, 0.7912482619285583, 1.8832221031188965, 0.8757242560386658, -0.04322097450494766, -0.5943691730499268, 4.358786106109619, 0.7140819430351257, -1.3555760383605957, 0.8449327945709229, 2.4916508197784424, -1.9791572093963623, 3.921151638031006, 1.5154001712799072, 1.1347843408584595, 1.4198838472366333, -1.0522887706756592, 0.46234437823295593, 1.8415288925170898, 1.3003228902816772, -2.2299842834472656, 3.7501349449157715, -0.706622838973999, 0.02942563407123089, 0.8430124521255493, 2.0871710777282715, 1.087626576423645, 2.890049934387207, 3.3500559329986572, -2.6932222843170166, 2.162456750869751, 0.985762894153595, 3.231621503829956, -1.2341978549957275, -2.2810428142547607, 0.8150948286056519, 2.6710970401763916, 0.03635489568114281, 0.67588871717453, 0.8903045654296875, 5.125619411468506, 0.0036283577792346478, 1.6649812459945679, -1.9337856769561768, 1.7865732908248901, 2.2084062099456787, 1.6525307893753052, 2.7517430782318115, 1.0743458271026611, -2.7705142498016357, -1.2723374366760254, 1.6581857204437256, 0.23390597105026245, 2.254422903060913, -3.3253884315490723, -1.233041524887085, 0.6011677384376526, 0.10394737124443054, 3.8744187355041504, 0.4279589056968689, -0.9356739521026611, 0.421083003282547, -0.028066549450159073, 2.6223089694976807, 2.4590697288513184, -0.17728914320468903, 2.140023708343506, -2.319532871246338, 3.837778091430664, 1.4969276189804077, -1.401219129562378, -0.07240034639835358, 0.8325280547142029, 2.0726776123046875, 0.7243515253067017, -0.5567612051963806, -0.20244517922401428, 0.08094105869531631, 1.7004755735397339, 2.5449767112731934, 1.6099454164505005, -2.635802745819092, 1.062949776649475, 2.193716049194336, 1.643200397491455, 3.4894661903381348, 0.2307324856519699, 2.3857686519622803, 1.0724108219146729, 3.6065526008605957, 3.962749719619751, 0.9964548945426941, 2.5949695110321045, 5.10171365737915, -1.949357032775879, -2.06242299079895, -1.106305718421936, -1.7129946947097778, 1.8305809497833252, 1.1608144044876099, -0.5441668033599854, 1.676587700843811, -0.4120495915412903, 0.9023623466491699, 0.5229540467262268, 0.506489098072052, 1.2611973285675049]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Gastroenterology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Gastroenterology\", \"marker\": {\"color\": \"#ab63fa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Gastroenterology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-8.955355644226074, -8.526191711425781, -8.955944061279297, -9.262224197387695, -11.544197082519531, -9.873199462890625, -8.684170722961426, -13.979632377624512, -10.315107345581055, -11.109681129455566, -7.533650875091553, -9.716192245483398, -8.231483459472656, -9.090669631958008, -8.023185729980469, -9.010834693908691, -10.176636695861816, -8.847626686096191, -7.169016361236572, -9.84465217590332, -10.850448608398438, -8.365754127502441, -8.320063591003418, -10.06677532196045, -11.754786491394043, -0.9472352862358093, -0.5398570895195007, -11.694145202636719, -9.822712898254395, -9.9886474609375, -10.950455665588379, -11.959484100341797, -9.383953094482422, -9.407958030700684, -8.473489761352539, -11.762630462646484, -7.26405143737793, -7.025725364685059, -5.0258097648620605, -2.7511281967163086, -0.9704912900924683, -8.952662467956543, -4.549291610717773, -11.504441261291504, -5.506677627563477, -10.221930503845215, -9.055254936218262, -11.122024536132812, -8.3670072555542, -9.459914207458496, -8.182377815246582, -12.089219093322754, -6.927871227264404, -9.977498054504395, -2.0290896892547607, -8.621509552001953, -8.137636184692383, -8.72930908203125, -9.309934616088867, -11.07611083984375, -8.876269340515137, -9.672734260559082, -6.781614303588867, -9.050189018249512, -9.24299430847168, -10.150012016296387, -7.185545444488525, -10.122950553894043, -10.327143669128418, -8.459739685058594, -11.345471382141113, -8.317973136901855, -10.44786548614502, -11.224383354187012, -8.63510799407959, -10.290797233581543, -8.943119049072266, -8.156176567077637, -10.472668647766113, -14.431570053100586, -8.602067947387695, -10.973515510559082, -10.624859809875488, -8.753830909729004, -4.1913299560546875, -8.988090515136719, -12.690157890319824, -8.747151374816895, -8.849874496459961, -14.920083999633789, -8.812017440795898, -9.276180267333984, -14.208958625793457, -11.245589256286621, -9.19528865814209, -9.534455299377441, -9.346517562866211, -10.819708824157715, -8.886892318725586, -10.590787887573242, -8.681468963623047, -8.64194393157959, -9.022261619567871, -9.88288402557373, -3.6098785400390625, -8.100728034973145, -8.193602561950684, -12.434971809387207, -11.485053062438965, -6.479215145111084, -8.415233612060547, -7.899393558502197, -4.849088668823242, -7.317935466766357, -12.315584182739258, -10.601813316345215, -9.354418754577637, -8.288702011108398, -7.169016361236572, -9.169243812561035, -10.56562328338623, -1.8180875778198242, -10.451325416564941, -4.134840965270996, -9.626051902770996, -8.942590713500977, -8.335100173950195, -9.092340469360352, -9.523344039916992, -13.733648300170898, -6.95494270324707, -11.554685592651367, -9.550341606140137, -10.047627449035645, -8.311100006103516, -6.328990459442139, -10.801081657409668, -9.781120300292969, -10.004929542541504, -7.737313270568848, -9.35623550415039, -8.517868041992188, -9.664584159851074, -10.730660438537598, -10.748847961425781, -8.337846755981445, -11.083626747131348, -10.630929946899414, -9.776667594909668, -9.600647926330566, -7.26140832901001, -6.521500587463379, -11.720755577087402, -10.807037353515625, -9.67783260345459, -9.421910285949707, -11.349159240722656], \"y\": [9.245820999145508, 4.728376865386963, 3.568950653076172, 7.203984260559082, 9.005953788757324, 8.370251655578613, 6.687880039215088, 10.844728469848633, 6.111715316772461, 8.830018043518066, 6.7399444580078125, 7.0879387855529785, 5.110275745391846, 8.50704288482666, 7.943552017211914, 9.884255409240723, 8.121416091918945, 7.4297332763671875, 5.887040138244629, 9.383759498596191, 8.256643295288086, 8.77492904663086, 5.140847206115723, 7.805397987365723, 10.274033546447754, 3.059605121612549, 1.461962342262268, 9.69385051727295, 8.150435447692871, 3.81941556930542, 9.370314598083496, 8.940686225891113, 10.414227485656738, 3.4516639709472656, 8.515462875366211, 10.147750854492188, 7.26151704788208, 4.332032680511475, 5.510958194732666, 4.5209059715271, 4.01912260055542, 7.613308429718018, 4.702755928039551, 7.303953647613525, 4.63363790512085, 8.574265480041504, 9.711810111999512, 9.068466186523438, 6.738785743713379, 10.118480682373047, 6.776304244995117, 9.674516677856445, 6.465272426605225, 8.296463012695312, 3.969467878341675, 6.037002086639404, 7.694523811340332, 6.844688415527344, 7.658478260040283, 8.713744163513184, 6.952575206756592, 9.197781562805176, 6.384332656860352, 7.350225448608398, 6.934945106506348, 8.551355361938477, 4.0314154624938965, 8.98194408416748, 7.283909797668457, 1.641013741493225, 7.085390090942383, 7.862493515014648, 4.012327194213867, 9.962084770202637, 8.690067291259766, 10.452573776245117, 6.4117512702941895, 8.756389617919922, 8.148167610168457, 10.71660327911377, 8.382643699645996, 8.49937915802002, 7.7950029373168945, 8.99206256866455, 4.764939308166504, 7.645227432250977, 10.260403633117676, 6.886683464050293, 6.226810932159424, 13.571962356567383, 7.95861291885376, 6.982654571533203, 11.281042098999023, 8.308262825012207, 8.035601615905762, 9.531731605529785, 8.950216293334961, 7.5408148765563965, 6.4414496421813965, 8.999577522277832, 6.883265972137451, 7.727503776550293, 7.268126964569092, 8.313047409057617, 4.020202159881592, 5.578618049621582, 7.87549352645874, 9.546954154968262, 8.778916358947754, 6.376453876495361, 8.097275733947754, 8.272700309753418, 0.2950148582458496, 9.122749328613281, 9.573741912841797, 11.092955589294434, 8.04794692993164, 8.264837265014648, 5.887040138244629, 9.21214771270752, 8.438782691955566, 4.299957752227783, 7.812918663024902, 4.607054710388184, 6.792174339294434, 8.36888599395752, 9.029982566833496, 8.590596199035645, 4.816731929779053, 11.459546089172363, 5.48588752746582, 10.592301368713379, 6.9883856773376465, 8.969428062438965, 5.87294864654541, 6.1248674392700195, 8.39862060546875, 7.544030666351318, 10.17528247833252, 5.821804523468018, 7.413732528686523, 4.797352313995361, 8.431228637695312, 6.958469390869141, 8.600634574890137, 6.1088714599609375, 8.359389305114746, 8.718864440917969, 8.094396591186523, 3.9275078773498535, 7.152789115905762, 3.2360196113586426, 7.5926055908203125, 7.837583065032959, 10.268586158752441, 5.328393459320068, 6.206122875213623], \"z\": [1.1161141395568848, -1.606512188911438, -1.8714637756347656, -0.9862569570541382, 2.593564748764038, 0.8462991714477539, -1.7137550115585327, 4.2372002601623535, 2.4590697288513184, 0.839457094669342, -2.8477134704589844, -1.251526951789856, -0.5762322545051575, 0.47136086225509644, -2.212362289428711, 1.378031611442566, 2.7769551277160645, -0.851370096206665, -3.5505590438842773, -0.06811053305864334, 0.5193567872047424, -2.0746712684631348, -2.166461944580078, 0.8222813606262207, 3.3295421600341797, -5.869949817657471, -5.671391487121582, 2.2108988761901855, -0.46599432826042175, -0.8969481587409973, -0.016984717920422554, 3.0387723445892334, 1.6920562982559204, 0.7912482619285583, -0.8947696089744568, 1.6337647438049316, -1.717848777770996, -1.7259591817855835, -4.4051923751831055, -4.993322849273682, -4.336152076721191, -0.8630244731903076, -2.515209197998047, 1.8470220565795898, -4.566386699676514, -0.24094434082508087, 0.900844395160675, 0.8467150926589966, -2.5253419876098633, 0.18038855493068695, -1.0621222257614136, 1.316257119178772, -3.543231725692749, 0.29062530398368835, -4.406704425811768, -1.102502703666687, -3.0661098957061768, -1.935802936553955, -1.452219843864441, 0.6984021067619324, -1.2918579578399658, -0.5179755091667175, -2.2427144050598145, 1.563616394996643, -0.9243355989456177, -0.4722796082496643, -2.5378735065460205, 3.1356232166290283, -0.5689783096313477, -2.5859570503234863, 1.052662968635559, 1.041374683380127, 0.30189311504364014, 2.5279197692871094, -1.404417634010315, 1.2919946908950806, -0.9625403881072998, -1.3686413764953613, -0.8483253121376038, 4.1108832359313965, -1.8460770845413208, 0.8680824041366577, -0.0288534015417099, 0.3621620237827301, -2.759161949157715, -0.24215522408485413, 2.7446789741516113, -2.1556010246276855, 1.6811648607254028, 6.0266594886779785, -1.849963903427124, -0.029328826814889908, 4.745604038238525, 0.22909870743751526, -1.7643893957138062, 2.5118377208709717, 0.20213031768798828, -0.24642980098724365, -1.402543544769287, -0.12133140116930008, -2.360182285308838, -0.5239845514297485, -2.1823341846466064, 0.14859217405319214, -4.393045902252197, -2.2093465328216553, -1.7140108346939087, 1.593104362487793, 0.356167197227478, -3.4341583251953125, -1.922831416130066, -1.9796775579452515, -4.542093276977539, -2.088871717453003, 2.7119364738464355, 1.1689033508300781, -0.9346657991409302, -1.0783222913742065, -3.5505590438842773, -1.1611846685409546, 1.1425215005874634, -4.041573524475098, 1.553489089012146, -5.570767879486084, -0.13485662639141083, -1.7572710514068604, -0.2852202355861664, 0.6293149590492249, -2.1838598251342773, 3.453212022781372, -3.8846235275268555, 0.9902160167694092, -1.699194312095642, -0.7662245035171509, -1.8053747415542603, -3.838320016860962, 1.0754860639572144, 0.9004551768302917, 1.42535400390625, -2.0348103046417236, -0.6046481132507324, -2.5957090854644775, 1.2482531070709229, 0.6069164276123047, 0.9109022617340088, -1.726291298866272, 1.921825885772705, 0.8419879674911499, 0.6289883852005005, -0.41200315952301025, -3.4403233528137207, -3.6536033153533936, 1.1198616027832031, 0.7155851721763611, 2.5277934074401855, -1.6768361330032349, 0.9542375802993774]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Neurology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Neurology\", \"marker\": {\"color\": \"#FFA15A\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Neurology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.580813407897949, 8.39101791381836, 11.183466911315918, 10.307563781738281, 7.725292682647705, 0.8442988395690918, 1.9327694177627563, 2.053946018218994, 2.0078542232513428, 2.93778133392334, 5.227266311645508, 3.3603429794311523, 7.0464677810668945, 6.271109580993652, 4.392671585083008, 4.839305400848389, -1.9888229370117188, 2.6939423084259033, 6.105360984802246, 4.337042808532715, 8.48067855834961, 3.9173619747161865, 0.23883028328418732, 5.219833850860596, -4.27662467956543, 0.6432090401649475, 2.215278387069702, 3.2063405513763428, 2.1169049739837646, 5.608896255493164, 3.993638753890991, 2.8901538848876953, 9.270455360412598, 4.783298015594482, 4.770660400390625, 3.311844825744629, 2.6259593963623047, 3.5617852210998535, 3.6685986518859863, 2.284501552581787, 8.961869239807129, 8.768083572387695, 8.351455688476562, 3.8058547973632812, -0.08492129296064377, 3.1635453701019287, 4.1782097816467285, 10.726621627807617, 7.005118370056152, 13.592735290527344, 2.6032872200012207, 11.430083274841309, 3.5027830600738525, 9.145909309387207, 5.194324016571045, -2.742163896560669, -7.737313270568848, 1.0967395305633545, 3.267165422439575, 2.776768684387207, 3.993638753890991, 2.2112514972686768, 9.010008811950684, 0.6053349375724792, 7.6387619972229, 4.417516708374023, 2.533163547515869, 1.7968125343322754, 4.078341484069824, 1.7867158651351929, -0.3000229001045227, -8.007909774780273, 4.789332389831543, 8.208389282226562, 15.798284530639648, 2.93558931350708, 2.9981045722961426, 5.963131427764893, 3.042865753173828, 2.5888683795928955, 1.856077790260315, 6.480684757232666, 7.947062969207764, 0.6405667066574097, 7.735305309295654, 2.6686718463897705, 3.7674028873443604, 4.880677223205566, 6.52018404006958, 3.803884744644165, 2.202000141143799, 2.467433214187622, 6.023039817810059, 2.564837694168091, -2.010946273803711, 3.1801435947418213, 8.388463973999023, 2.1048638820648193, 2.6783299446105957, 4.882016658782959, 2.6322948932647705, 3.005275249481201, 1.856732726097107, 3.048978805541992, 4.6902666091918945, 3.527012348175049, 3.294666290283203, 2.4205546379089355, 3.803884744644165, 2.652069568634033, -2.742163896560669, 4.417516708374023, 7.290373802185059, 2.389331102371216, 2.0485761165618896, 1.9697169065475464, 3.217627763748169, 9.948171615600586, 5.074995517730713, 7.689935684204102, 1.6375807523727417, 2.874307155609131, 1.5635381937026978, 2.7494266033172607, 3.0721113681793213, 9.766350746154785, 3.3598058223724365, 3.3311309814453125, 8.648804664611816, 3.6685986518859863, 2.655592679977417, 3.3311309814453125, 2.4205081462860107, 5.651114463806152, 10.470321655273438, 2.202000141143799, 4.082557201385498, 3.7209620475769043, 2.4145097732543945, 7.135593891143799, 3.5140035152435303, 5.074995517730713, 3.8857529163360596, 3.0922281742095947, 2.944018840789795, 4.2150444984436035, 4.235709190368652, 10.284229278564453, 4.3354411125183105, 2.9064829349517822, 2.998256206512451, 1.9426647424697876, 1.1387253999710083, 3.4014484882354736, 9.34960651397705, 4.783298015594482, 5.673300266265869, 0.39597412943840027, 6.833602428436279, 8.551021575927734, 2.318699359893799, 10.442940711975098, 10.937499046325684, 3.3603429794311523, 0.8339468836784363, 0.23793983459472656, 3.4264938831329346, 7.8271355628967285, 2.8399322032928467, 0.6705278754234314, -0.7136664986610413, 3.089137315750122, 7.080983638763428, 3.53102707862854, 4.45250940322876, 4.709508419036865, 2.263010263442993, 5.168553352355957, 3.5140035152435303, 6.64018440246582, -1.3913787603378296, 1.5669862031936646, 2.944018840789795, 6.529971122741699, 2.7973077297210693, 3.455227851867676, 4.558661460876465, 0.4550640881061554, 2.6322948932647705, 3.3293235301971436, 3.2092509269714355, 12.292706489562988, 6.036691665649414, 1.455407977104187, 4.308414936065674, 2.486447334289551, 1.649814248085022, 2.3730075359344482, 1.4595547914505005, 4.054810047149658, 3.961520195007324, 4.580058574676514, 2.7982680797576904, 6.078790187835693, 1.619752049446106, 3.6996536254882812, -0.5346336960792542, 9.889910697937012, 5.637997150421143, 1.4300410747528076, 2.4878664016723633, 3.489443778991699, 1.5837005376815796, 2.916433334350586, 8.652594566345215, 2.084681987762451, 4.438347339630127, 5.222625732421875, 0.5716098546981812, 3.32293438911438, 2.519648313522339, 5.123227119445801], \"y\": [-7.535525321960449, 2.3885791301727295, 2.723609685897827, 2.6149139404296875, -2.1162655353546143, -6.485716342926025, -7.381058692932129, -5.459153652191162, -4.678307056427002, -4.794370174407959, -4.964348316192627, -7.221992492675781, -5.538724899291992, 2.732848644256592, -7.314300537109375, -6.174216270446777, -4.653423309326172, -4.069944858551025, -0.33624616265296936, -4.523401737213135, 0.4988001883029938, -7.428771018981934, -6.148643970489502, -1.3595002889633179, -2.638033628463745, -5.175980091094971, -3.5333309173583984, -11.165604591369629, -3.925077199935913, -2.060241937637329, -5.619192600250244, -7.133409023284912, 1.9767982959747314, -3.7525436878204346, -3.762044668197632, -5.990165710449219, -5.216914653778076, -2.3174288272857666, -6.88873291015625, -5.296650409698486, 0.49622511863708496, 1.1615368127822876, -3.540329933166504, -6.495904445648193, 2.939307928085327, -5.165290832519531, -7.053136825561523, 1.4696869850158691, -2.496058464050293, 3.267831802368164, -7.724971294403076, 1.5234512090682983, 1.1304903030395508, 1.813988208770752, -5.223843097686768, -1.8534263372421265, 5.821804523468018, -5.8920135498046875, -0.1698399931192398, -6.395827770233154, -5.619192600250244, -4.237832069396973, 1.5030372142791748, -4.5739216804504395, -0.48559772968292236, -3.6300904750823975, -7.353206634521484, -6.822066307067871, -2.6163158416748047, -5.816775798797607, -5.869776725769043, -2.8705759048461914, -6.372429370880127, -3.252685546875, -0.6475638151168823, -8.359847068786621, -7.299055099487305, 0.5600720643997192, -1.4608463048934937, -5.975313186645508, -6.5870561599731445, -0.09056998044252396, 0.2639082968235016, -3.709240436553955, -0.3416072428226471, -8.113655090332031, -5.756784915924072, -2.65195369720459, -2.0547757148742676, -5.551257610321045, -5.542820453643799, -6.209234237670898, -3.254448890686035, -1.8440934419631958, -0.5217432975769043, -2.588880777359009, -4.61714506149292, -5.675932884216309, -6.3984174728393555, -5.633711338043213, -3.0469906330108643, -5.5521321296691895, -3.209623098373413, -7.479358196258545, -5.904368877410889, -5.732790470123291, -5.965881824493408, -2.8910701274871826, -5.551257610321045, -6.103462219238281, -1.8534263372421265, -3.6300904750823975, 0.1700807809829712, -6.198606967926025, -6.108455657958984, -5.623725414276123, -3.212042808532715, 0.5377363562583923, -5.971628665924072, -0.03296666219830513, -7.604159355163574, -6.37245512008667, -4.563398838043213, -7.010199069976807, -6.489516735076904, 1.642804741859436, 2.2711734771728516, -0.538820743560791, 0.8939641118049622, -6.88873291015625, -8.117952346801758, -0.538820743560791, -7.492079257965088, -8.217287063598633, 2.30465030670166, -5.542820453643799, -6.622918605804443, -2.329923391342163, -7.2184367179870605, 0.9554757475852966, -6.278040409088135, -5.971628665924072, -7.809990882873535, -6.482184886932373, -6.6497063636779785, -0.8760400414466858, -10.690913200378418, 1.1068482398986816, -5.842066764831543, -6.2901411056518555, -4.302888870239258, -6.396797180175781, -6.267812252044678, -6.481030464172363, 1.112484335899353, -3.7525436878204346, -2.3215129375457764, -5.357880592346191, 0.6659631729125977, -0.6578209400177002, -7.586158275604248, 0.5786228179931641, 3.5675971508026123, -7.221992492675781, 0.38741204142570496, -6.031796932220459, -7.651050567626953, -0.07370463013648987, -8.633548736572266, -3.265578508377075, -3.6654162406921387, -5.123659133911133, -0.366256445646286, -5.837766647338867, -8.074124336242676, -4.490927219390869, -0.7351671457290649, -3.0702085494995117, -6.278040409088135, -0.8886465430259705, -3.982644557952881, -5.968295574188232, -6.6497063636779785, -1.3883312940597534, -5.194705963134766, -5.701772212982178, -0.34196045994758606, -6.225912094116211, -3.0469906330108643, 0.3104408085346222, -5.783992767333984, 3.4163765907287598, -0.40788576006889343, -5.214901447296143, -7.482057571411133, -7.930642604827881, -0.9864752292633057, -5.889885902404785, -3.7542724609375, -7.766483783721924, -7.0106892585754395, -0.6244969367980957, -5.861414432525635, 0.05610013008117676, -8.298885345458984, -7.80214786529541, -4.664083003997803, 1.1285984516143799, -3.59629225730896, -3.995373249053955, -7.304193496704102, -4.818996906280518, -6.38967752456665, -5.680354595184326, 0.11449722200632095, -0.865405261516571, -4.454448223114014, -0.29409709572792053, -6.4443440437316895, -5.964987754821777, -7.499255657196045, -6.448750019073486], \"z\": [1.985005259513855, -3.375825881958008, -2.2464892864227295, -3.3097846508026123, 0.26941999793052673, 0.5808389782905579, 1.8927966356277466, 1.5021841526031494, -1.7559624910354614, -0.8866111040115356, 0.6217586994171143, 1.7151641845703125, 1.3594481945037842, -2.8990085124969482, 3.909559726715088, 2.5365653038024902, -2.3832972049713135, -1.6025283336639404, -3.3167169094085693, 0.25736987590789795, -3.1467809677124023, 2.8137686252593994, 4.817768096923828, -1.4639140367507935, 1.0806212425231934, -1.141595721244812, 2.2083499431610107, 6.725976467132568, 2.236356735229492, -2.3987061977386475, 1.9135185480117798, 1.1528966426849365, -2.5635616779327393, 0.258684366941452, -1.0501354932785034, 1.6260837316513062, 0.8056313991546631, -3.306865930557251, 1.2347347736358643, -0.3925650715827942, -1.8951191902160645, -2.6458935737609863, 0.880109965801239, 1.684070348739624, 2.114025592803955, 0.29820260405540466, 1.3462769985198975, -1.394333004951477, -1.85155189037323, -1.5647311210632324, 2.3417792320251465, -3.3744828701019287, -1.8969647884368896, -2.678464651107788, 0.8540126085281372, -1.401219129562378, -2.0348103046417236, -0.40384507179260254, -5.343714714050293, 0.08058976382017136, 1.9135185480117798, -1.1598246097564697, 0.439214825630188, -2.2735726833343506, -1.8937410116195679, -1.0866711139678955, 1.504580020904541, 0.6533749103546143, -2.766613483428955, -0.2557665705680847, 0.48091456294059753, 0.5293787121772766, 2.5347118377685547, -0.20689760148525238, 0.7088760733604431, 4.02327823638916, 4.726809024810791, -4.618338108062744, -4.372495174407959, -0.16241075098514557, 0.5522019267082214, -3.8748605251312256, -2.0867786407470703, -2.223883867263794, -1.6727806329727173, 3.123520612716675, 1.0827677249908447, -0.937542200088501, -0.40411892533302307, 1.3308676481246948, -0.42488110065460205, 0.14979903399944305, 0.6766741871833801, -3.5581912994384766, -2.2849531173706055, -2.795387029647827, 0.4718361496925354, 0.2325211614370346, 0.7951390743255615, 1.630300760269165, 0.22468802332878113, -0.7440825700759888, -2.8147988319396973, 1.9425599575042725, 2.357795238494873, 1.3378287553787231, 0.17655164003372192, -3.583477735519409, 1.3308676481246948, 0.7308779358863831, -1.401219129562378, -1.0866711139678955, -1.9592512845993042, 0.8252943158149719, 2.085756778717041, -0.6869493722915649, -0.9890782833099365, -2.3201394081115723, 1.5131275653839111, -2.736870527267456, 2.7759532928466797, 1.1875659227371216, -1.9597070217132568, 0.9209117293357849, 0.7097935080528259, -1.530087947845459, -2.1317036151885986, -3.217193603515625, -2.28410267829895, 1.2347347736358643, 3.3622119426727295, -3.217193603515625, 2.050234079360962, 4.239121437072754, -2.7962822914123535, -0.42488110065460205, 1.1208664178848267, -3.6874003410339355, 1.0059975385665894, -1.2894222736358643, 0.3752516508102417, 1.5131275653839111, 2.446934223175049, 1.3979772329330444, 0.6406893730163574, -3.7470810413360596, 6.579105377197266, -1.8943755626678467, 5.677778244018555, 1.5696375370025635, -1.198204755783081, 1.3585593700408936, 0.4858852028846741, 1.635022521018982, 0.0683920681476593, 0.258684366941452, -1.2938909530639648, -0.6853132247924805, -3.7455050945281982, -3.7091212272644043, 1.6030824184417725, -3.460336446762085, -2.9661431312561035, 1.7151641845703125, -4.989044189453125, 0.15780577063560486, 2.537080764770508, -2.2303075790405273, 3.467653512954712, -0.6626421213150024, -0.6409856081008911, -0.31365329027175903, -0.2810077965259552, 1.0363768339157104, 4.095093727111816, -1.4382578134536743, -3.335653781890869, -0.20026519894599915, 0.3752516508102417, 0.0016303486190736294, 0.8449327945709229, -0.532919704914093, 0.6406893730163574, -2.071284055709839, 0.3816888928413391, 0.20018969476222992, -0.8748242855072021, 0.2361009418964386, 0.22468802332878113, -2.1090848445892334, 0.3498068153858185, -2.5859508514404297, -2.8969228267669678, -0.17651605606079102, 2.972561836242676, 3.1450586318969727, -3.448699712753296, -0.19290126860141754, -2.7871687412261963, 5.268641948699951, 1.5816587209701538, -2.3754115104675293, 0.6205869317054749, -4.898382663726807, 3.5682199001312256, 2.444326639175415, -0.7210907340049744, -0.6027859449386597, -1.8037643432617188, -2.701906442642212, 2.124342918395996, -1.0973424911499023, 1.7614635229110718, -0.35008445382118225, -2.726754665374756, -4.230213165283203, -0.36424803733825684, -4.162632465362549, 1.0591813325881958, 0.05497533082962036, 2.714592933654785, 1.818081021308899]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"tracegroupgap\": 0, \"x\": 1.1, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"margin\": {\"t\": 60}, \"scene\": {\"domain\": {\"x\": [0.0, 1.0], \"y\": [0.0, 1.0]}, \"xaxis\": {\"title\": {\"text\": \"COMP1\"}}, \"yaxis\": {\"title\": {\"text\": \"COMP2\"}}, \"zaxis\": {\"title\": {\"text\": \"COMP3\"}}}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"3D Space\", \"x\": 0.5}, \"width\": 900},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('a117ffce-1af0-4ec4-82b2-eee3e43fe6e9');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
],
"source": [
"pca_alg = PCA(n_components=3)\n",
"X_pca = pca_alg.fit_transform(train_matrix) \n",
"show_space(X_pca, title=\"3D Space\", colors=pd.DataFrame(train_labels).replace(categories_mapping), color_by=\"category\", show_3D=True)"
]
},
{
"cell_type": "code",
"source": [
"print(\"Explained variance per component:\", pca_alg.explained_variance_ratio_)\n",
"print(\"Comulative explained variance:\", pca_alg.explained_variance_ratio_.cumsum())"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gUyJUESXcbxp",
"outputId": "b9078447-2d16-4823-a1f6-b51c5ce8b277"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Explained variance per component: [0.67148525 0.19894294 0.05936258]\n",
"Comulative explained variance: [0.67148525 0.8704282 0.9297908 ]\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8CSdpoTqcRaW"
},
"source": [
"# **Projection**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "DvTAnCdwcRol"
},
"outputs": [],
"source": [
"def project_to_dissimilarity_space(dataLoader, SNN_model, prototypes_list):\n",
" \"\"\"\n",
" \n",
" Parameters\n",
" ----------\n",
" dataLoader : \n",
" SNN_model : \n",
"\n",
" \n",
" Returns\n",
" -------\n",
" projected_data : numpy array of shape (num_samples_data, projection_dim)\n",
" \"\"\"\n",
"\n",
" projected_data = [] \n",
" with torch.no_grad(): \n",
" \n",
" for batch in dataLoader:\n",
" print(\"****new batch***\")\n",
"\n",
" projected_sentence = []\n",
" seq1, mask1, label1 = batch\n",
" if device == 'cuda':\n",
" seq1, mask1, label1 = seq1.to(device), mask1.to(device), label1.to(device)\n",
"\n",
" for diagnosis in prototypes_list:\n",
" #print(\"diagnosis:\", diagnosis)\n",
" for centroid in prototypes_list[diagnosis]: # centroid contains a triple of (seq, mask, label)\n",
" seq2, mask2 = centroid[0].repeat(seq1.shape[0], 1), centroid[1].repeat(mask1.shape[0], 1) # we stack to seq2 and mask2 replications of them such that they will fit the batch size of seq1 and mask2\n",
" if device == 'cuda':\n",
" seq2, mask2 = seq2.to(device), mask2.to(device)\n",
"\n",
" SNN_model.eval()\n",
" distance = SNN_model(seq1, seq2, mask1, mask2)\n",
" projected_sentence.append(distance.squeeze().cpu().numpy())\n",
" \n",
" projected_data.append(np.array(projected_sentence).T)\n",
" #break # TODO delete\n",
"\n",
" projected_data = np.vstack(projected_data)\n",
" return projected_data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "WJt7P_5D0sUW",
"outputId": "59296542-4a50-4c0a-a184-8c0f250b4311"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n"
]
}
],
"source": [
"projected_train = project_to_dissimilarity_space(trainLoader_simple, SNN_model, prototypes_list)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "It3WQhbhpz6F",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "2ce07161-6b96-4400-f158-94403ca936ba"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(1078, 100)"
]
},
"metadata": {},
"execution_count": 46
}
],
"source": [
"projected_train.shape"
]
},
{
"cell_type": "code",
"source": [
"X_pca = pca_alg.fit_transform(projected_train) \n",
"show_space(X_pca, title=\"3D Space\", colors=pd.DataFrame(train_labels).replace(categories_mapping), color_by=\"category\", show_3D=True)\n",
"print(\"Explained variance per component:\", pca_alg.explained_variance_ratio_)\n",
"print(\"Comulative explained variance:\", pca_alg.explained_variance_ratio_.cumsum())"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 552
},
"id": "y1xccZhFDS99",
"outputId": "9feadbe8-09fa-42b9-ada2-06176b9f874b"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"2c175c9f-a9a8-4f22-b566-0cc87aa987ac\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"2c175c9f-a9a8-4f22-b566-0cc87aa987ac\")) {\n",
" Plotly.newPlot(\n",
" '2c175c9f-a9a8-4f22-b566-0cc87aa987ac',\n",
" [{\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Radiology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Radiology\", \"marker\": {\"color\": \"#636efa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Radiology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [0.8333107233047485, -1.6555848121643066, 0.868812620639801, 0.7968619465827942, -2.187302589416504, -2.525251626968384, -0.17013466358184814, -1.9814198017120361, 0.8207362294197083, 1.02155601978302, 1.2499992847442627, 2.3668265342712402, -2.2785065174102783, -2.449861526489258, -2.08955454826355, -1.257616400718689, 0.7981029152870178, 1.3240463733673096, -0.23351293802261353, 1.4929594993591309, -1.7054277658462524, 0.7926541566848755, 1.1411844491958618, 1.6774852275848389, -1.8531134128570557, 1.5414327383041382, -0.5415141582489014, 1.4889545440673828, -2.1133975982666016, 1.1971246004104614, -2.1457669734954834, -2.6629886627197266, 2.7156481742858887, -2.000243663787842, 1.624747395515442, 0.680944561958313, 2.4031546115875244, 1.7444216012954712, 1.1509720087051392, 1.0260740518569946, -0.3980368375778198, 0.8747386336326599, 2.1820249557495117, 2.736258029937744, -0.4877987802028656, 0.6548051834106445, 2.568692207336426, -0.5250890851020813, 1.1809026002883911, 1.2580913305282593, 0.47345760464668274, 1.266176700592041, 1.7945847511291504, -2.1578407287597656, 1.4077919721603394, 0.4615204632282257, 1.2444795370101929, 0.9904757738113403, 2.6350927352905273, 2.031669855117798, -1.7569491863250732, 0.368158221244812, 1.7717605829238892, -2.780214786529541, 1.9913859367370605, 2.4386980533599854, 1.497448205947876, -1.9030227661132812, -0.45891284942626953, 0.94036865234375, 1.3359322547912598, 1.1273401975631714, 1.347395658493042, 2.3882148265838623, 1.6929075717926025, -2.3192825317382812, 0.3183957040309906, -0.13882951438426971, -1.2514359951019287, 1.1551060676574707, -2.041339635848999, 1.5247228145599365, -1.5567570924758911, -1.9948714971542358, 1.243600606918335, 0.6575872898101807, 1.8812416791915894, 2.405695915222168, -1.3774974346160889, 2.485341787338257, 1.1665738821029663, -0.358476459980011, -2.13728666305542, 1.4398372173309326, 1.6602721214294434, 1.772117018699646, 1.348846435546875, 1.4125386476516724, 1.2947216033935547, -1.977725625038147, -1.290330171585083, -0.01545482873916626, -0.1134863868355751, 2.158775568008423, -1.4960846900939941, 1.145647406578064, -0.6672289967536926, -1.818810224533081, 1.471048355102539, -1.293628215789795, -2.6812243461608887, 0.8417758345603943, -0.31833767890930176, 1.613410472869873, 2.0497145652770996, 2.4232892990112305, 0.2462492287158966, -1.2224115133285522, 1.3489270210266113, -2.2464756965637207, 1.8559257984161377, 2.359581232070923, -0.3962695896625519, 1.0137951374053955, 0.5357221364974976, -1.1804866790771484, 0.6983491778373718, 1.0863925218582153, 2.7010865211486816, 1.1025279760360718, 1.327444314956665, -0.07790989428758621, 1.235854983329773, 0.07553804665803909, -1.3893539905548096, 2.37095308303833, 0.9989381432533264, -2.472048044204712, 2.254741907119751, -2.101849317550659, 2.6010894775390625, 2.192897319793701, 1.1071960926055908, -2.0966293811798096, 2.3108091354370117, 1.409035325050354, -0.15244440734386444, -2.3793399333953857, 0.5289548635482788, 2.138014793395996, 1.7021905183792114, 1.26227605342865, 0.41157570481300354, -1.0380059480667114, 1.4946767091751099, 2.4009652137756348, 2.3558297157287598, -2.3522205352783203, 1.4332727193832397, 0.053569693118333817, 1.295033574104309, 1.189884066581726, 1.1978565454483032, 1.3684383630752563, 1.2619856595993042, 1.0423026084899902, 2.552530527114868, 1.339340090751648, -1.4281134605407715, 2.396322727203369, 1.0898715257644653, -1.8548239469528198, 2.200488805770874, 0.706525981426239, -1.7663042545318604, 1.9302208423614502, 1.734078049659729, 0.6873261332511902, 1.1512947082519531, -2.608497381210327, 1.9438599348068237, -0.6088823676109314, -1.648864984512329, 1.6864413022994995, 0.9635462760925293, 1.612105369567871, 1.3597444295883179, 2.438690423965454, 0.1024564877152443, 1.8228830099105835, 1.5040086507797241], \"y\": [1.6717537641525269, 0.44504550099372864, 2.0524837970733643, 1.9262663125991821, -0.322988361120224, 0.1411411166191101, 2.090881824493408, 0.49859270453453064, 1.8078103065490723, 1.900261640548706, 1.5053919553756714, -1.470625877380371, 0.49312159419059753, 0.5903496742248535, 0.9855198264122009, 1.3227719068527222, 1.9783990383148193, 1.9365705251693726, 1.7030459642410278, 1.8070493936538696, 0.7502745389938354, 1.9121605157852173, 0.6423918008804321, 1.5669302940368652, -0.36360806226730347, 1.9615825414657593, 1.3604297637939453, 1.553954005241394, 0.068824902176857, 1.588972806930542, -0.4433326721191406, 0.1700834035873413, -0.7310253381729126, 0.7722058296203613, 1.6372253894805908, 0.6461054682731628, -0.16098159551620483, 1.6598681211471558, 1.6829341650009155, 1.8477516174316406, 1.7622032165527344, 1.9596129655838013, 0.8258432745933533, 0.12478110194206238, 1.6304874420166016, 1.913586974143982, 0.1941225230693817, 1.87693452835083, 1.8182551860809326, 1.5999900102615356, 1.7632172107696533, 1.7382161617279053, 1.451514720916748, 0.548940896987915, 1.8330297470092773, 1.6039762496948242, 1.7724740505218506, 1.8479020595550537, -0.4719468951225281, 1.051642894744873, 0.8708180785179138, 1.9478142261505127, 1.0638346672058105, 0.01490276213735342, 0.8732777237892151, -0.013562464155256748, 1.5555709600448608, 0.8375628590583801, 1.5238401889801025, 1.6181689500808716, 1.8446552753448486, 1.8453824520111084, 1.6905137300491333, -0.019547436386346817, 1.573965072631836, 0.07001512497663498, 2.024354934692383, 1.9193121194839478, 1.256717562675476, 1.8934955596923828, -0.3807436227798462, 1.7005358934402466, 0.7379947304725647, 0.1564580500125885, 1.818476676940918, 1.9306182861328125, 1.0988905429840088, -0.9821714758872986, 0.9225500226020813, -1.3564053773880005, 1.8764593601226807, 1.6695252656936646, 0.1303505003452301, 1.7829303741455078, 1.7583158016204834, 1.1902705430984497, 1.6948399543762207, 1.5894259214401245, 1.6620711088180542, 1.165711760520935, 1.1357331275939941, 1.693599820137024, 1.687913179397583, 1.0591744184494019, 1.0802642107009888, 1.884957194328308, 0.005114642437547445, 0.9513339400291443, 1.618942379951477, 0.9447525143623352, 0.5023359656333923, 2.0870611667633057, 1.5976256132125854, 1.6952836513519287, 0.47006094455718994, -0.6173694729804993, 1.6045106649398804, 1.1526966094970703, 1.829159140586853, 0.16019000113010406, 0.909454882144928, 0.7120398283004761, 1.8330919742584229, 1.9835426807403564, 1.8742369413375854, 1.2884455919265747, 1.8858633041381836, 1.9402693510055542, -0.1257517784833908, 1.8420668840408325, 1.901922345161438, 1.4295399188995361, 1.9034487009048462, 1.8220064640045166, -0.16000695526599884, 0.7714690566062927, 1.9891678094863892, -0.030789220705628395, 0.6351108551025391, 0.22526712715625763, -0.2190483808517456, 0.4960774779319763, 1.7486823797225952, 0.6569186449050903, 0.23223759233951569, 1.5267044305801392, 1.9127402305603027, 0.1530786007642746, 2.384549617767334, 1.178145170211792, 1.7800943851470947, 1.9059287309646606, 1.8481162786483765, 1.3868074417114258, 1.7788808345794678, -0.5294867157936096, 0.5917672514915466, 0.10256528854370117, 1.9878625869750977, 0.4675336480140686, 1.875353455543518, 1.7290430068969727, 1.8147010803222656, 1.7256962060928345, 1.6814770698547363, 1.8941426277160645, -0.41607484221458435, 1.666599988937378, 0.9361157417297363, -1.3062046766281128, 1.9583346843719482, 0.8179311156272888, 1.2944906949996948, 1.716383457183838, 0.45942360162734985, -2.132396936416626, 0.8874479532241821, 1.9116222858428955, 1.993887186050415, -0.5425494909286499, 1.2239493131637573, 1.4102740287780762, 0.8772891759872437, 1.6928684711456299, 1.6835331916809082, 1.75446617603302, 1.6422078609466553, 1.006398320198059, 1.6459745168685913, 1.1403967142105103, 1.6788811683654785], \"z\": [0.3751603066921234, -1.3756176233291626, 0.14321543276309967, 0.26275748014450073, 1.126499056816101, -1.0007587671279907, -0.41470345854759216, -1.485970139503479, 0.3250458538532257, 0.3566385507583618, 0.4896324574947357, -0.2785792350769043, -1.3511018753051758, -1.2468518018722534, -0.9269976615905762, -1.0297985076904297, 0.25544121861457825, 0.2863328456878662, -0.07157488912343979, 0.440194696187973, -0.44203105568885803, 0.2390935719013214, 0.6105109453201294, 0.4430825114250183, 1.1370116472244263, 0.5115743279457092, -0.12048857659101486, 0.5026624798774719, -1.4391762018203735, 0.4929698705673218, 1.1433982849121094, -1.0785245895385742, -0.02499137632548809, -1.2771649360656738, 0.4933093190193176, 0.6891355514526367, 0.15369410812854767, 0.5140369534492493, 0.463637113571167, 0.3954898416996002, -0.415269672870636, 0.14055263996124268, 0.4015904664993286, 0.20682880282402039, -0.4950648844242096, 0.16394823789596558, 0.2901391088962555, -0.5675880908966064, 0.437304824590683, 0.4931027889251709, 0.12286242842674255, 0.4900992214679718, 0.3699229061603546, -1.157674789428711, 0.4282209277153015, 0.20468191802501678, 0.4600459039211273, 0.36880791187286377, 0.05597981438040733, 0.4532933831214905, -1.0367727279663086, -0.04919920861721039, 0.4785325229167938, -0.8504565954208374, 0.2670915424823761, 0.208073228597641, 0.5216788649559021, -0.8974406719207764, -0.4701637923717499, 0.4067743122577667, 0.47829878330230713, 0.41257038712501526, 0.5086748600006104, 0.21132883429527283, 0.40761539340019226, -1.431428074836731, -0.06154400855302811, -0.4140319526195526, -0.6624537110328674, 0.39646512269973755, 1.0458941459655762, 0.4975149631500244, -1.2945789098739624, -1.4634324312210083, 0.4393678605556488, 0.1541842520236969, 0.4541536867618561, -0.09917310625314713, -1.124422311782837, -0.19033418595790863, 0.4459838271141052, -0.48524659872055054, -1.4592467546463013, 0.3232235908508301, 0.4293608069419861, 0.37310677766799927, 0.4865944981575012, 0.5083470344543457, 0.5002350807189941, -1.2993910312652588, -0.8964963555335999, -0.21126948297023773, -0.26517337560653687, 0.42792055010795593, -0.9291190505027771, 0.3956727087497711, 1.0356061458587646, 0.03373101353645325, 0.5263108611106873, 0.0048644524067640305, 0.1785336136817932, 0.07976516336202621, -0.2929602265357971, 0.5293623208999634, 0.31366869807243347, 0.025769462808966637, 0.09938588738441467, -0.7535572648048401, 0.48568442463874817, -1.4361828565597534, 0.4464260935783386, 0.3418034017086029, -0.376161128282547, 0.14664246141910553, 0.08592373877763748, -0.9250108599662781, 0.15649408102035522, 0.33600354194641113, 0.1464921087026596, 0.4120050072669983, 0.32734090089797974, 0.2540479302406311, 0.4268447458744049, -0.22668103873729706, 0.8946821689605713, 0.4417792856693268, 0.2735205292701721, -1.095428466796875, 0.36516639590263367, -1.4973273277282715, 0.12429706752300262, 0.32641085982322693, 0.4391217827796936, -1.2815524339675903, 0.2766793668270111, 0.525371253490448, -0.3576449155807495, -1.3561757802963257, 0.06493980437517166, 0.41791290044784546, 0.4169837534427643, 0.4197567105293274, 0.048746880143880844, -0.786438524723053, 0.4804864525794983, 0.08341821283102036, 0.3155069947242737, -1.3429322242736816, 0.5102978348731995, 0.9365342259407043, 0.4087417721748352, 0.2877969443798065, 0.31688880920410156, 0.5085862278938293, 0.4908565580844879, 0.3730230927467346, 0.13627180457115173, 0.5059579610824585, -0.3976099491119385, -0.1764349788427353, 0.3097646236419678, -1.3169081211090088, 0.5066450238227844, 0.2142907977104187, 0.2883451581001282, -0.5469686985015869, 0.4173281788825989, 0.15933841466903687, 0.2552371919155121, 1.3743524551391602, 0.39108598232269287, -0.5952432751655579, -0.8608353734016418, 0.42700374126434326, 0.4000300168991089, 0.44617676734924316, 0.49714741110801697, 0.366717666387558, -0.13254499435424805, 0.4831681251525879, 0.5033033490180969]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Orthopedic<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Orthopedic\", \"marker\": {\"color\": \"#EF553B\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Orthopedic\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.4031546115875244, 1.7573908567428589, 2.3313605785369873, 2.093949794769287, 2.0917141437530518, 2.601757049560547, 1.8295800685882568, 2.488112211227417, 2.1126465797424316, 1.9839298725128174, 1.9794251918792725, 2.521420955657959, 1.986559510231018, 2.514869451522827, 2.5104057788848877, 2.284581184387207, 2.271301507949829, 2.192897319793701, 2.721461296081543, 2.0586276054382324, 2.245828628540039, 2.104588747024536, 2.8332197666168213, 2.2087666988372803, 2.3558297157287598, 1.9562509059906006, 2.089210033416748, 1.8699283599853516, 2.2772531509399414, 1.9890681505203247, 1.6324936151504517, 1.724239468574524, 2.0694313049316406, 2.6350927352905273, 2.704124927520752, 1.8155887126922607, 1.8902225494384766, 1.9878075122833252, 1.8533625602722168, 2.4626760482788086, 2.3690195083618164, 2.367121934890747, 2.409799575805664, 1.9869887828826904, 2.0620338916778564, 2.246081829071045, 2.060898542404175, 3.217827081680298, 2.2288894653320312, 1.8707689046859741, 1.4355695247650146, 2.5989270210266113, 2.1568713188171387, 2.6853561401367188, 2.4418141841888428, 1.8979086875915527, 2.0669867992401123, 3.2842953205108643, 2.401780843734741, 2.168175458908081, 2.736258029937744, 2.155454397201538, 1.9929803609848022, 2.2540016174316406, 1.7803982496261597, 1.5655733346939087, 2.5037643909454346, 1.8227945566177368, 2.175048589706421, 1.6695798635482788, 2.4031546115875244, 3.2660579681396484, 2.534201145172119, 2.0238852500915527, 2.2486281394958496, 1.926434874534607, 1.772117018699646, 1.9282385110855103, 2.817946672439575, 1.9187779426574707, 1.87758469581604, 2.481987714767456, 2.0264155864715576, 2.4009652137756348, 1.9860255718231201, 1.7365902662277222, 2.3507676124572754, 2.6614267826080322, 2.7386844158172607, 1.6602721214294434, 2.0048038959503174, 1.7945847511291504, 2.23317289352417, 2.4005074501037598, 1.9360268115997314, 1.9217058420181274, 2.359581232070923, 2.472669839859009, 2.3852078914642334, 2.134681224822998, 1.7871674299240112, 2.332876682281494, 2.021347999572754, 2.0193777084350586, 1.9100722074508667, 2.450730085372925, 1.766371488571167, 1.880700945854187, 2.1597487926483154, 1.9705387353897095, 2.7693958282470703, 1.8513725996017456, 1.8134769201278687, 2.158750057220459, 2.1143877506256104, 2.301851272583008, 1.8252897262573242, 2.068805456161499, 2.9675211906433105, 2.3937692642211914, 1.8698517084121704, 1.96388578414917, 1.9913859367370605, 2.2151455879211426, 1.555598497390747, 2.438690423965454, 2.248445987701416, 1.8809409141540527, 2.573664426803589, 2.366933584213257, 2.534400224685669, 2.150883913040161, 2.3182830810546875, 2.2652931213378906, 2.0004239082336426, 2.719735860824585, 2.3533551692962646, 1.6673790216445923, 1.9757165908813477, 1.784497618675232, 2.3668265342712402, 2.4574196338653564, 1.9313244819641113, 2.1296732425689697, 2.2878894805908203, 2.628932476043701, 2.308673858642578, 1.4756420850753784, 2.0707926750183105, 2.009345054626465, 2.3918466567993164, 1.8934288024902344, 2.2692856788635254, 1.8014042377471924, 1.6662262678146362, 1.867618441581726, 1.698551893234253, 1.8636901378631592, 1.6179622411727905, 2.3604557514190674, 2.158775568008423, 1.9188834428787231, 1.8807355165481567, 1.9706207513809204, 2.239572048187256, 2.2170426845550537, 2.2982397079467773, 1.8107759952545166, 1.9302208423614502, 1.9387810230255127, 2.478285789489746, 2.2194325923919678, 2.861339807510376, 2.4232892990112305, 1.7192418575286865, 2.1799557209014893, 2.2575125694274902, 2.7010865211486816, 2.3261380195617676, 2.296370506286621, 2.019449234008789, 1.6928457021713257, 2.224114418029785, 1.9267035722732544, 2.2993111610412598, 1.8919025659561157, 2.7675974369049072, 1.3734807968139648, 1.6669442653656006, 2.2529470920562744, 1.481031060218811, 1.4932329654693604, 2.7156481742858887, 1.9869829416275024, 1.6298046112060547, 1.1978565454483032, 1.6937869787216187, 1.3009445667266846, 2.538287401199341, 2.3062961101531982, 1.945000171661377, 1.6864413022994995, 2.039174795150757, 2.1547603607177734, 2.2493793964385986, 1.608636736869812, 1.6194549798965454, 1.9255400896072388, 2.4423534870147705, 2.1538124084472656, 1.883842945098877, 2.365445852279663, 1.8723918199539185, 2.41204833984375, 1.7523607015609741, 1.746876835823059, 2.971792221069336, 1.8338963985443115, 1.9040950536727905, 2.323962688446045, 2.4777612686157227, 1.6869558095932007, 1.642869234085083, 1.5247228145599365, 1.8646509647369385, 2.7409520149230957, 2.6617937088012695, 2.9131875038146973, 2.5273165702819824, 2.5515215396881104, 3.1493170261383057, 2.6458115577697754, 2.3882148265838623, 1.7217158079147339, 2.6010894775390625, 2.5245277881622314, 2.138014793395996, 2.5159788131713867, 1.7407053709030151, 1.9438599348068237, 1.8783797025680542, 2.243932008743286, 2.8750367164611816, 2.508622884750366, 2.4989144802093506, 2.1319799423217773, 2.893425464630127, 2.4418246746063232], \"y\": [-0.16098082065582275, -2.2030704021453857, -2.198289155960083, -1.9315710067749023, -2.349079132080078, -0.7743567228317261, -2.187058448791504, -1.7858644723892212, -0.9994677305221558, -2.088548421859741, -2.14501953125, -1.738181233406067, -2.0237560272216797, -0.3318542242050171, 0.4374985992908478, -1.6403682231903076, -1.9139882326126099, 0.4960774779319763, -1.4746745824813843, -2.2737014293670654, -2.0724477767944336, 0.6097040176391602, -0.3549935519695282, -2.0037786960601807, 0.5917672514915466, -2.1616997718811035, -2.0587148666381836, -2.187161445617676, -1.5703150033950806, -2.26847767829895, -2.2361338138580322, -2.211242198944092, -2.1001527309417725, -0.4719468951225281, -1.7651089429855347, -2.2159266471862793, -2.1707301139831543, -2.2491142749786377, -2.174699544906616, -1.9915270805358887, -1.4412214756011963, -1.2023911476135254, -1.7832472324371338, -2.1697568893432617, -2.280784845352173, -1.8577572107315063, -2.0876848697662354, -0.5959766507148743, -2.2469401359558105, -2.197911500930786, 1.5261107683181763, -1.6177879571914673, -2.102531909942627, -0.6646474003791809, -0.9169528484344482, -2.2645506858825684, -2.269049644470215, -1.0469835996627808, -0.4997515082359314, -2.1071698665618896, 0.12478110194206238, -2.205451250076294, -2.1547372341156006, -2.1939985752105713, -2.2125251293182373, -2.200002908706665, -0.7574847340583801, -2.213840961456299, 0.9827141761779785, -2.2817351818084717, -0.16098159551620483, -0.8460065722465515, -0.4819287061691284, -2.165703058242798, -1.504467487335205, -2.268094539642334, 1.1902705430984497, -2.3192877769470215, -1.4406810998916626, -2.203953981399536, -2.0048296451568604, -1.493380069732666, -2.092989921569824, -0.5294867157936096, -2.1463146209716797, -2.2306172847747803, 0.03695891425013542, -1.7058802843093872, -0.7113451957702637, 1.7583158016204834, -2.180727958679199, 1.451514720916748, -2.0020570755004883, -1.439624309539795, -2.0969104766845703, -2.252330780029297, 0.7120398283004761, -1.2480199337005615, -2.066617488861084, -2.228541135787964, -2.22700572013855, 0.04450782760977745, -2.280348300933838, 0.9227792024612427, -2.1376254558563232, -1.357370376586914, -2.194422721862793, -2.2347283363342285, -2.02581524848938, -2.233752489089966, -0.6739948391914368, -2.256969451904297, -2.164910316467285, -2.095399856567383, -1.8326762914657593, -2.239685297012329, -2.182067394256592, -2.235473394393921, 0.022465895861387253, -1.9292995929718018, -2.230196714401245, -2.0696847438812256, 0.8732777237892151, -1.8679500818252563, 0.9224755764007568, 1.006398320198059, 0.0430070236325264, -2.148728370666504, 0.4708612859249115, -1.220585584640503, -1.6304165124893188, -2.136104106903076, -0.9873276948928833, -2.087456703186035, -2.3732287883758545, -1.7707831859588623, -1.5147209167480469, -2.0530076026916504, -2.1599884033203125, -2.2697134017944336, -1.470625877380371, -1.0257198810577393, -2.1433191299438477, 0.42245668172836304, -1.4934160709381104, 0.13063079118728638, -1.3052009344100952, -2.1680562496185303, -2.0833001136779785, -2.0996434688568115, -1.2972816228866577, -2.174246072769165, -2.2075865268707275, -2.230161190032959, -2.2621796131134033, -2.210066795349121, -2.2520055770874023, -2.267782211303711, -2.1199190616607666, -1.2431719303131104, 1.0591744184494019, -2.2620646953582764, -2.221195936203003, -2.1444878578186035, 0.07941246032714844, -1.9630517959594727, -2.2963433265686035, -2.1943442821502686, -2.132396936416626, -2.1151185035705566, -1.0313642024993896, 0.7622794508934021, -1.1402928829193115, -0.6173694729804993, -2.2420754432678223, -2.263212203979492, -1.5367214679718018, -0.1257517784833908, -1.752730131149292, -2.042757034301758, -2.1428184509277344, -2.1945133209228516, -0.17040996253490448, -2.209080457687378, 0.20964446663856506, -2.170531749725342, -1.0933663845062256, -2.1158273220062256, -2.164417028427124, -2.135897397994995, -2.1486306190490723, -2.0288312435150146, -0.7310253381729126, -1.9371541738510132, -2.3002352714538574, 1.8147010803222656, -2.1857852935791016, -2.0193593502044678, -0.4834856390953064, -1.520269751548767, -2.128201484680176, 1.6928684711456299, -2.022897481918335, -2.129476547241211, -2.2944228649139404, -2.196082592010498, -2.2302815914154053, -2.2046375274658203, -2.2277371883392334, -2.0805819034576416, -2.2023749351501465, -1.9892021417617798, -2.2475597858428955, -1.3194376230239868, -2.2064452171325684, -2.161196231842041, -0.1765780746936798, -2.188622236251831, -2.1472535133361816, -1.6088801622390747, -1.0611779689788818, -2.2487194538116455, -2.233642578125, 1.7005358934402466, -2.204098701477051, -0.6233188509941101, -0.9753789901733398, -1.4506072998046875, -1.206191897392273, -1.5799204111099243, -0.7743350863456726, -1.4272464513778687, -0.019547436386346817, -0.08561808615922928, -0.2190483808517456, -0.8261108994483948, 1.178145170211792, -0.9555730223655701, -2.2416915893554688, 1.2239493131637573, -2.2479934692382812, 0.7527005076408386, 0.43668845295906067, -1.0070184469223022, -2.036858320236206, -2.0043931007385254, -1.0394965410232544, -0.18670020997524261], \"z\": [0.1536943018436432, -0.5872007608413696, -0.4913620054721832, -0.47326070070266724, -0.5841036438941956, 0.002172306180000305, -0.5735622048377991, -0.40088310837745667, -0.08772362023591995, -0.525803804397583, -0.5520680546760559, -0.32944685220718384, -0.47085729241371155, 0.10945501923561096, 0.2915269136428833, -0.3446929156780243, -0.40688642859458923, 0.32641085982322693, -0.26882076263427734, -0.5617060661315918, -0.44995349645614624, 0.3866255283355713, 0.07679875940084457, -0.43910637497901917, 0.3155069947242737, -0.5558678507804871, -0.525641143321991, -0.5504434704780579, -0.3191501796245575, -0.5719598531723022, -0.6074944138526917, -0.5786190629005432, -0.5109090209007263, 0.05597981438040733, -0.38384750485420227, -0.578663170337677, -0.554112434387207, -0.5642808079719543, -0.5628278851509094, -0.4245014488697052, -0.26567575335502625, -0.1790037751197815, -0.3287825286388397, -0.5741801261901855, -0.5582851767539978, -0.37871649861335754, -0.495097279548645, 0.012150728143751621, -0.5080475807189941, -0.5678331255912781, 0.5125855207443237, -0.3037410080432892, -0.5325572490692139, 0.0112758195027709, -0.09716257452964783, -0.626665472984314, -0.5640223026275635, -0.1354164034128189, 0.06566841155290604, -0.4871212840080261, 0.20682880282402039, -0.5807675123214722, -0.528066098690033, -0.5062598586082458, -0.5761459469795227, -0.5989401340484619, -0.028650762513279915, -0.5824508666992188, 0.37933024764060974, -0.654593288898468, 0.15369410812854767, -0.049169015139341354, 0.05380507931113243, -0.5227227210998535, -0.2892521619796753, -0.590035080909729, 0.37310677766799927, -0.6527057886123657, -0.26467910408973694, -0.5564208030700684, -0.4780624806880951, -0.29239240288734436, -0.5140542984008789, 0.08341821283102036, -0.5273038148880005, -0.6051162481307983, 0.22160270810127258, -0.27809789776802063, 0.04509498178958893, 0.4293608069419861, -0.5824589133262634, 0.3699229061603546, -0.42604947090148926, -0.25276151299476624, -0.5343106985092163, -0.6126760840415955, 0.3418034017086029, -0.14023035764694214, -0.4979016184806824, -0.5416627526283264, -0.6038180589675903, 0.22945918142795563, -0.5683401226997375, 0.42616045475006104, -0.5406169891357422, -0.18355503678321838, -0.5729131102561951, -0.5727205276489258, -0.46139946579933167, -0.5631364583969116, -0.007575374562293291, -0.5903128981590271, -0.5640561580657959, -0.4694823920726776, -0.4153417646884918, -0.5204322934150696, -0.5564908981323242, -0.5571983456611633, 0.17982763051986694, -0.4525578022003174, -0.5714829564094543, -0.5236304402351379, 0.2670915424823761, -0.3863528072834015, 0.4308936893939972, 0.366717666387558, 0.2299650013446808, -0.542518138885498, 0.2877316176891327, -0.18979553878307343, -0.3384888172149658, -0.4798291027545929, -0.07633990049362183, -0.4713262617588043, -0.6103938817977905, -0.27301767468452454, -0.28513863682746887, -0.5133491158485413, -0.5435158014297485, -0.601075291633606, -0.2785792350769043, -0.10983504354953766, -0.54076087474823, 0.32695290446281433, -0.24467124044895172, 0.20897416770458221, -0.21204756200313568, -0.6036915183067322, -0.537539541721344, -0.5090860724449158, -0.212916299700737, -0.5540738105773926, -0.49928057193756104, -0.5793050527572632, -0.6108522415161133, -0.5721681714057922, -0.6101500988006592, -0.6008262634277344, -0.5727495551109314, -0.181494802236557, 0.42792055010795593, -0.5810157656669617, -0.5753358602523804, -0.5249131321907043, 0.22873234748840332, -0.47987210750579834, -0.5378956198692322, -0.5778902769088745, -0.5469686985015869, -0.5346731543540955, -0.1328730434179306, 0.39501768350601196, -0.13659439980983734, 0.025769462808966637, -0.6250086426734924, -0.5364667177200317, -0.2886003851890564, 0.1464921087026596, -0.36976146697998047, -0.5114812850952148, -0.5609946846961975, -0.5914363861083984, 0.15373066067695618, -0.5422353744506836, 0.2857930660247803, -0.556577742099762, -0.0725293681025505, -0.5943214893341064, -0.5735572576522827, -0.48687106370925903, -0.5934527516365051, -0.5410212278366089, -0.02499137632548809, -0.45412808656692505, -0.6490765810012817, 0.31688880920410156, -0.5825961232185364, -0.5628016591072083, 0.06295545399188995, -0.27481359243392944, -0.5158206224441528, 0.42700374126434326, -0.48922082781791687, -0.5154808163642883, -0.5449041128158569, -0.593509316444397, -0.6253257393836975, -0.559756338596344, -0.4837910532951355, -0.5126027464866638, -0.5689945816993713, -0.40150782465934753, -0.5746951103210449, -0.22699414193630219, -0.5840264558792114, -0.5702557563781738, 0.1378382444381714, -0.5756649374961853, -0.5418622493743896, -0.32222744822502136, -0.1301823854446411, -0.6079627871513367, -0.5994277000427246, 0.4975149631500244, -0.5581558346748352, 0.010671251453459263, -0.06917061656713486, -0.15406137704849243, -0.18085452914237976, -0.3035063147544861, -0.04439857229590416, -0.2216416299343109, 0.21132883429527283, 0.19085434079170227, 0.12429706752300262, -0.06354846805334091, 0.41791290044784546, -0.04800443723797798, -0.5960695147514343, 0.39108598232269287, -0.5823009610176086, 0.36126258969306946, 0.27533960342407227, -0.10343551635742188, -0.4142340421676636, -0.4958735406398773, -0.12406376004219055, 0.16645444929599762]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Cardiovascular / Pulmonary<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Cardiovascular / Pulmonary\", \"marker\": {\"color\": \"#00cc96\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Cardiovascular / Pulmonary\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-2.3852901458740234, -2.449861526489258, -1.4960846900939941, -2.5485336780548096, -0.13882951438426971, -2.712357759475708, -0.5250890851020813, -2.5655112266540527, -2.1209726333618164, -2.613940477371216, -2.4664480686187744, -2.259427547454834, -2.0595202445983887, -2.311734199523926, -2.2416388988494873, -2.655817985534668, -1.5567570924758911, -2.5540621280670166, -2.0823206901550293, -2.4680063724517822, -2.072003126144409, -1.7688405513763428, -2.1749179363250732, -2.26609206199646, -2.1005442142486572, -2.023320436477661, -0.4877987802028656, -2.520965099334717, -2.549668550491333, -2.0805511474609375, -2.468895196914673, -2.1804122924804688, -1.7054277658462524, -2.7522056102752686, -2.0115182399749756, -2.1156585216522217, -2.55729341506958, -2.000243663787842, -2.4437527656555176, -1.977725625038147, -0.882789134979248, -2.555537223815918, -2.6670892238616943, -2.801805019378662, -2.3129401206970215, -2.473587989807129, -2.7397401332855225, -2.292553186416626, -2.607041120529175, -2.983222723007202, -2.2315430641174316, -2.563239574432373, -2.1133975982666016, -2.5887644290924072, -2.235591411590576, -2.3793399333953857, -2.6262545585632324, -2.4374992847442627, -2.4241325855255127, -2.008821725845337, -2.340294122695923, -2.3395228385925293, -2.324989080429077, -2.5755224227905273, -2.2556045055389404, -1.2946199178695679, -2.475787878036499, -2.5399670600891113, -2.4915003776550293, -2.2024378776550293, -2.6147687435150146, -2.943361520767212, -3.2275493144989014, -2.5137457847595215, -2.075218677520752, -2.5871050357818604, -2.4035868644714355, -2.0226008892059326, -0.01545482873916626, -2.13728666305542, -2.8830275535583496, -2.420753240585327, -2.135904550552368, -2.5462896823883057, -2.6297783851623535, -2.244009256362915, -2.2401983737945557, -1.8083291053771973, -2.202775478363037, -1.1804866790771484, -2.3895936012268066, -2.101849317550659, -2.6376326084136963, -2.1010003089904785, -2.3954460620880127, -2.780214786529541, -2.639162302017212, -2.1758294105529785, -2.1130177974700928, -0.6260408163070679, -2.3364169597625732, -2.855205535888672, -2.7131247520446777, -2.3105387687683105, -2.296506643295288, -2.484311580657959, -2.2544448375701904, -2.3522205352783203, -2.2128543853759766, -2.4715635776519775, -2.6656839847564697, -2.565274477005005, -2.928861141204834, -2.3192825317382812, -2.4611504077911377, -2.4092857837677, -2.0829339027404785, -2.070303440093994, -2.385876417160034, -2.514557361602783, -2.5428173542022705, -1.8375017642974854, -2.410154104232788, -2.2138943672180176, -2.523507833480835, -2.5666680335998535, -2.77911114692688, -2.3661773204803467, -2.093657970428467, -2.199152946472168, -2.442105293273926, -2.7528774738311768, -2.3881947994232178, -2.213521957397461, -2.0261778831481934, -2.444993257522583, -2.4641668796539307, -2.2521326541900635, -1.1155117750167847, -2.2785065174102783, -2.0966293811798096, -2.896505355834961, -2.28684663772583, -2.325723171234131, -2.2203850746154785, -2.2722856998443604, -2.653153419494629, -2.1255786418914795, -2.520237445831299, -1.0363332033157349, -2.3538591861724854, -2.6629886627197266, -2.1667158603668213, -2.4055306911468506, -2.876253366470337, -2.374732494354248, -2.1266884803771973, -2.3871264457702637, -2.8432228565216064, -2.1709072589874268, -2.4231128692626953, -0.15244440734386444, 0.08704620599746704, -2.0228466987609863, -2.056544303894043, -2.164454698562622, -1.9136927127838135, -2.3039276599884033, -1.9030227661132812, -2.7772059440612793, -1.6555848121643066, -2.227206230163574, -2.5998904705047607, -2.727928400039673, -2.130687713623047, -2.663938283920288, -1.290330171585083, -2.2654075622558594, -1.6912912130355835, -2.4638187885284424, -2.040358304977417, -1.9878580570220947, 0.8417758345603943, -2.6869213581085205, -2.547987937927246, -2.929839849472046, -2.5213496685028076, -2.641461133956909, -2.4801671504974365, -2.315152406692505, -2.533818006515503, -2.7698233127593994, -2.348867177963257, -2.896012783050537, -1.0380059480667114, -2.123141288757324, -2.9376988410949707, -2.5064010620117188, -2.6517035961151123, -2.6534206867218018, -2.5791807174682617, -2.3012137413024902, -3.1545016765594482, -2.192490577697754, -2.347731113433838, -1.2224115133285522, -2.146494150161743, -3.0785350799560547, -2.644179582595825, -2.3370490074157715, -2.2515385150909424, -2.1746344566345215, -2.16038179397583, -2.600229501724243, -1.9408618211746216, -2.420753240585327, -2.822126626968384, -3.230313539505005, -2.245884895324707, -2.67891263961792, -0.3962695896625519, -2.1001503467559814, -2.5721426010131836, -0.705740213394165, -2.0044703483581543, -2.5819528102874756, -2.677011251449585, -2.3908634185791016, -2.4664011001586914, -2.500028610229492, -2.2277889251708984, -1.257616400718689, -2.3350002765655518, -2.2646777629852295, -2.08955454826355, -1.959199070930481, -2.3035688400268555, -2.4799134731292725, -2.185476779937744, 0.07553804665803909, -2.0341663360595703, -2.1550357341766357, -2.25203800201416, -2.1599576473236084, -2.603851556777954, -1.1530578136444092, -2.1172916889190674, -2.6720998287200928, -3.0102920532226562, -2.638119697570801, -2.967686414718628, -2.3336398601531982, -2.338576555252075, -2.4842004776000977, -2.1684072017669678, -2.7619450092315674, -2.134031057357788, -2.3881006240844727, -1.8982855081558228, -2.306020498275757], \"y\": [0.28469008207321167, 0.5903496742248535, 1.0802642107009888, -0.06154987961053848, 1.9193121194839478, -0.1986173838376999, 1.87693452835083, 0.20333948731422424, 0.017605984583497047, 0.46358340978622437, 0.27040278911590576, 0.0032657424453645945, 0.521171510219574, 0.020123006775975227, 0.053714849054813385, -0.17008690536022186, 0.7379947304725647, 0.11890236288309097, 0.20670795440673828, -0.006690322421491146, 0.08027233928442001, 1.0832523107528687, 0.08649109303951263, 0.026179403066635132, 0.6092894077301025, 0.3144720196723938, 1.6304874420166016, -0.0527016781270504, 0.31345003843307495, 0.13644519448280334, -0.10029347985982895, 0.11314664036035538, 0.7502745389938354, 0.5780210494995117, 0.07217365503311157, 0.05465400218963623, 0.5174073576927185, 0.7722058296203613, -0.060169246047735214, 1.165711760520935, 1.3829220533370972, 0.05493129417300224, -0.47940051555633545, -0.23274226486682892, 0.05651518702507019, 0.13453133404254913, -0.4292110502719879, 0.06958729773759842, -0.25174057483673096, -0.1607818305492401, 0.21902523934841156, -0.2485685795545578, 0.068824902176857, -0.710702121257782, 0.1824554204940796, 0.1530786007642746, 0.13004374504089355, 0.10199833661317825, -0.1402171552181244, 0.5793018937110901, 0.19521702826023102, -0.02850855141878128, 0.08528377115726471, -0.04146784916520119, 0.15444312989711761, 1.249634027481079, 0.13853976130485535, -0.0005444232374429703, 0.2196533977985382, 0.4293997585773468, -1.0851908922195435, 0.17258954048156738, -0.07435903698205948, 0.3842484652996063, 0.12061754614114761, 0.9453197717666626, -0.052124761044979095, 0.285846471786499, 1.693599820137024, 0.1303505003452301, -0.012639841996133327, 0.10985149443149567, 0.02124236337840557, 0.10630596429109573, -0.05698482319712639, -0.03070201352238655, 0.32563766837120056, 0.1639406830072403, 0.01724999025464058, 1.2884455919265747, -0.11633752286434174, 0.22526712715625763, 0.1997424215078354, 0.25499194860458374, 0.3787357807159424, 0.01490276213735342, 0.07327987253665924, -0.0015834595542401075, 0.18166345357894897, 1.5476816892623901, 0.03642353042960167, -0.2417452186346054, -0.7465067505836487, 0.2451850324869156, 0.3799402415752411, 0.26855817437171936, 0.27911075949668884, 0.10256528854370117, 0.0625665932893753, -0.057797472923994064, 0.07734906673431396, -0.13234484195709229, 0.21944253146648407, 0.07001512497663498, -0.14562134444713593, -0.06890343129634857, 0.1383979171514511, 0.08897875994443893, 0.013869130052626133, 0.23891164362430573, -0.1094067171216011, 0.6775412559509277, -0.027776798233389854, 0.2116905003786087, 0.13321349024772644, -0.05863087996840477, 0.4334282875061035, 0.17428675293922424, 0.9511435627937317, -0.0017996412934735417, 0.0058302623219788074, -0.5283246040344238, 0.15121057629585266, 0.08840398490428925, 0.6079689264297485, 0.02916807122528553, 0.09440399706363678, 0.14039075374603271, 1.1387650966644287, 0.49312159419059753, 0.6569186449050903, -0.44903478026390076, 0.06049497798085213, 0.6033874154090881, 0.12194093316793442, -0.013056810945272446, 0.3641638159751892, 0.04037706181406975, 0.2887064814567566, 1.5535616874694824, 0.0894569531083107, 0.1700834035873413, 0.053342971950769424, 0.5777834057807922, -0.4568817615509033, 0.15802602469921112, 0.19360220432281494, 0.4041386544704437, -0.08362593501806259, 0.629722535610199, 0.030487852171063423, 1.9127402305603027, 1.8752297163009644, 0.0895337387919426, 0.8627973794937134, 0.004416952840983868, 0.5236676335334778, 0.03892390429973602, 0.8375628590583801, -0.04193533584475517, 0.44504550099372864, 0.04141911491751671, -0.35089775919914246, 0.36097609996795654, 0.04454422742128372, -0.06523924320936203, 1.1357331275939941, 0.09590776264667511, 0.6076297163963318, -0.10196511447429657, 0.07890485972166061, 0.11286848038434982, 2.0870611667633057, -0.22784854471683502, -0.037685416638851166, -0.23460280895233154, 0.13129407167434692, 0.48097142577171326, -0.10094956308603287, 0.028396490961313248, 0.008759482763707638, -0.3305390775203705, 0.023509187623858452, 0.468783974647522, 1.3868074417114258, 0.11568279564380646, -0.5302280187606812, -0.23272804915905, 0.2912798225879669, -0.14244772493839264, -0.40209639072418213, 0.05079431086778641, -0.09520185738801956, 0.5545763969421387, -0.05192960426211357, 1.1526966094970703, 0.13469214737415314, -0.22044527530670166, 0.10509458184242249, 0.08436592668294907, 0.2330370843410492, -0.015924857929348946, 0.23512805998325348, 0.11457343399524689, 0.5505788922309875, 0.10985149443149567, -0.259348064661026, -0.5972718000411987, 0.40213364362716675, 0.3465977907180786, 1.8330919742584229, 0.0578623004257679, -0.24571886658668518, 1.3791978359222412, 0.4031835198402405, -0.03724683076143265, -0.2019813060760498, 0.07798755168914795, 0.20025384426116943, 0.06897171586751938, 0.24060139060020447, 1.3227719068527222, -0.05979759618639946, 0.024410001933574677, 0.9855198264122009, 0.23889432847499847, -0.05450787395238876, -0.15832307934761047, 1.0756924152374268, 1.8220064640045166, 0.09928908944129944, 0.15099652111530304, 0.0008599830325692892, 0.005743617657572031, -0.2671046853065491, 1.551446557044983, 1.108092188835144, 0.32063964009284973, -0.08780311793088913, 0.11032117903232574, -0.286051869392395, 0.17246268689632416, 0.08055037260055542, 0.17609161138534546, 0.09334491193294525, -0.4624268114566803, 0.16438360512256622, 0.053397733718156815, 0.6029099225997925, 0.03702111169695854], \"z\": [-1.371649146080017, -1.2468518018722534, -0.9291190505027771, -0.9889247417449951, -0.4140319526195526, -0.6176038980484009, -0.5675880908966064, -1.1745332479476929, -1.39590322971344, -1.0118498802185059, -1.330811619758606, -1.330627679824829, -0.5630912184715271, -1.324588418006897, -1.3839082717895508, -0.4839586317539215, -1.2945789098739624, -1.1658612489700317, -1.4995218515396118, -1.2084739208221436, -1.4393277168273926, -1.029154658317566, -1.4306014776229858, -1.3448930978775024, -0.4860270321369171, -1.4941173791885376, -0.4950648844242096, -0.9792671203613281, -1.396283507347107, -1.478010654449463, -1.0171152353286743, -1.4396450519561768, -0.44203105568885803, -0.6149380803108215, -1.4365571737289429, -1.429016351699829, -0.9125891923904419, -1.2771649360656738, -1.1137895584106445, -1.2993910312652588, -0.6071052551269531, -1.2314534187316895, -0.011926781386137009, -0.4507541060447693, -1.3512552976608276, -1.2608270645141602, -0.02003367245197296, -1.375985860824585, -0.604434072971344, -0.40206143260002136, -1.4541592597961426, -0.6418392062187195, -1.4391762018203735, 0.569720983505249, -1.4856101274490356, -1.3561757802963257, -1.0987522602081299, -1.283045768737793, -1.0280637741088867, -1.4577627182006836, -1.468680739402771, -1.292891263961792, -1.3617539405822754, -1.0794739723205566, -1.451398491859436, -0.8489691019058228, -1.1373350620269775, -1.0932393074035645, -1.2741769552230835, -1.470089077949524, 1.8183674812316895, -1.0495127439498901, 0.3563188314437866, -1.2506468296051025, -1.456702709197998, -1.1269878149032593, -1.1677190065383911, -1.493795394897461, -0.21126948297023773, -1.4592467546463013, -0.6441047787666321, -1.310009479522705, -1.4004548788070679, -1.1119906902313232, -0.9903196096420288, -1.3036105632781982, -1.4602142572402954, -1.4130653142929077, -1.3959585428237915, -0.9250108599662781, -1.1037942171096802, -1.4973273277282715, -1.1162610054016113, -1.4922754764556885, -1.369340419769287, -0.8504565954208374, -1.0790092945098877, -1.3506113290786743, -1.4745216369628906, -0.687747597694397, -1.332912802696228, -0.4470215439796448, 0.8343510031700134, -1.43647301197052, -1.4365277290344238, 0.05098576843738556, -1.4508311748504639, -1.3429322242736816, -1.430568814277649, -1.0715479850769043, -1.0161116123199463, -0.8723601698875427, -0.5542780160903931, -1.431428074836731, -0.9801791906356812, -1.1414827108383179, -1.4631675481796265, -1.45430326461792, -1.2654021978378296, -0.982681155204773, -0.937280535697937, -0.6176536083221436, -1.185274362564087, -1.4596446752548218, -0.8625749349594116, -1.1244944334030151, -1.239546537399292, -1.4664252996444702, -1.2697912454605103, -1.3455140590667725, -1.2080023288726807, 0.06551221013069153, -1.319357991218567, -1.4216867685317993, -1.2141985893249512, -1.2362970113754272, -1.2546062469482422, -1.4282313585281372, -0.9986774921417236, -1.3511018753051758, -1.2815524339675903, 0.46732082962989807, -1.3701980113983154, -1.2360903024673462, -1.4310029745101929, -1.3049850463867188, -1.310502290725708, -1.4061528444290161, -1.207818627357483, -0.713834285736084, -1.4124250411987305, -1.0785245895385742, -1.408065915107727, -1.134995937347412, 0.4275077283382416, -1.4173625707626343, -1.4750664234161377, -0.9946886897087097, -0.4953004717826843, -1.552286148071289, -1.209677815437317, -0.3576449155807495, -0.11892155557870865, -1.4406166076660156, -1.3634860515594482, -1.37960946559906, -1.444237232208252, -1.3444905281066895, -0.8974406719207764, -0.8539926409721375, -1.3756176233291626, -1.380408525466919, -0.386516809463501, -1.015555500984192, -1.4128994941711426, -0.8105385899543762, -0.8964963555335999, -1.408637285232544, -1.3539475202560425, -1.0530635118484497, -1.4401549100875854, -1.4633808135986328, 0.07976516336202621, -0.5460609197616577, -0.9465973377227783, -0.3375675082206726, -0.2831568121910095, -1.0763493776321411, -1.0059186220169067, -1.3508191108703613, -1.0314173698425293, -0.25707149505615234, -1.3085055351257324, -1.1961984634399414, -0.786438524723053, -1.4517383575439453, 0.4817160964012146, -0.734222948551178, -1.0425419807434082, -0.6620551347732544, -0.28048521280288696, -1.356803059577942, -0.18491137027740479, -1.4575579166412354, -1.2165091037750244, -0.7535572648048401, -1.4723693132400513, 0.3136466443538666, -0.8906540870666504, -1.3598119020462036, -1.449061632156372, -1.3506540060043335, -1.477351427078247, -0.9399713277816772, -1.4268817901611328, -1.310009479522705, -0.42821159958839417, 1.1167083978652954, -1.3611526489257812, -1.04739511013031, -0.376161128282547, -1.4354708194732666, -0.6101200580596924, -0.361595094203949, -1.491532564163208, -0.9665188789367676, -0.6311067938804626, -1.3377903699874878, -1.2848173379898071, -1.2064826488494873, -1.4631942510604858, -1.0297985076904297, -1.2324717044830322, -1.3490633964538574, -0.9269976615905762, -1.4715256690979004, -1.2367955446243286, -0.9216778874397278, -1.3755412101745605, -0.22668103873729706, -1.4481767416000366, -1.4567950963974, -1.357965111732483, -1.3816355466842651, -0.5155347585678101, -0.9495507478713989, -1.5211682319641113, -1.059849500656128, -0.4758095145225525, -1.0423887968063354, -0.18677668273448944, -1.397571325302124, -1.3401403427124023, -1.2628140449523926, -1.434547781944275, 0.005224018357694149, -1.4736162424087524, -1.300514817237854, -1.3957786560058594, -1.342472791671753]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Gastroenterology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Gastroenterology\", \"marker\": {\"color\": \"#ab63fa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Gastroenterology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-2.5932159423828125, -2.7795140743255615, -2.906970977783203, -2.560309648513794, -2.7791290283203125, -2.7202305793762207, -2.612759590148926, -2.8191535472869873, -3.230313539505005, -2.5660064220428467, -2.577061653137207, -2.554206371307373, -2.9827144145965576, -2.7264130115509033, -2.484829902648926, -2.5843505859375, -2.9646034240722656, -2.5452816486358643, -2.749321222305298, -2.461296558380127, -2.5719006061553955, -2.3614325523376465, -2.781742572784424, -2.647158622741699, -2.814188003540039, -0.6672289967536926, 0.053569693118333817, -2.5914158821105957, -2.535072088241577, -2.783609628677368, -2.3160202503204346, -2.826572895050049, -2.5664303302764893, -2.876253366470337, -2.5469613075256348, -2.421687602996826, -2.4710490703582764, -2.658226490020752, -2.5528619289398193, -1.8531134128570557, -0.9017294645309448, -2.627927303314209, -2.1457669734954834, -2.7642407417297363, -2.814054012298584, -2.404421091079712, -2.5518791675567627, -2.5483906269073486, -2.61830735206604, -2.415130376815796, -2.8182756900787354, -2.42167067527771, -2.6118721961975098, -2.6450729370117188, -1.3893539905548096, -2.704564094543457, -2.484544038772583, -2.6093764305114746, -2.5185694694519043, -2.5247626304626465, -2.636282205581665, -2.3394758701324463, -2.5899014472961426, -2.923473596572876, -2.609321355819702, -2.397521495819092, -2.8338370323181152, -3.101659059524536, -2.5143446922302246, -3.1530632972717285, -2.6686317920684814, -2.773594617843628, -2.7108399868011475, -2.753516435623169, -2.4398248195648193, -2.370471715927124, -2.7291226387023926, -2.3807287216186523, -2.4159414768218994, -2.683339834213257, -2.42081356048584, -2.561793804168701, -2.5245864391326904, -2.9152638912200928, -2.041339635848999, -2.625079870223999, -2.678086280822754, -2.601450204849243, -3.0464484691619873, -2.9595606327056885, -2.474029302597046, -2.742213726043701, -2.73258376121521, -2.4392855167388916, -2.450425624847412, -2.943821907043457, -2.444243907928467, -2.5086569786071777, -2.6798648834228516, -2.4099690914154053, -2.6018495559692383, -2.519315004348755, -2.5441839694976807, -2.5778541564941406, -2.187302589416504, -2.748016119003296, -2.5352561473846436, -2.400291681289673, -2.358698844909668, -2.6181538105010986, -2.3829948902130127, -2.4549453258514404, -2.6812243461608887, -2.3722524642944336, -2.6760616302490234, -2.313849687576294, -2.462679862976074, -2.5742671489715576, -2.749321222305298, -2.3656511306762695, -2.611762285232544, -1.254652976989746, -2.769512414932251, -2.608497381210327, -2.647705554962158, -2.4241416454315186, -2.385071277618408, -2.535698175430298, -2.919060468673706, -2.474583387374878, -2.881990909576416, -2.292938232421875, -2.564272165298462, -2.3687164783477783, -2.696308135986328, -2.674624443054199, -2.657055616378784, -2.7817678451538086, -2.5160903930664062, -2.9365196228027344, -2.602015972137451, -2.8914313316345215, -2.709280490875244, -2.6491236686706543, -2.612558603286743, -2.695591449737549, -2.7740554809570312, -2.6491496562957764, -2.673383951187134, -2.742002010345459, -2.565924644470215, -3.1451714038848877, -2.628417491912842, -2.616135835647583, -2.7142174243927, -2.8526878356933594, -2.653163433074951], \"y\": [-1.0660289525985718, -0.8639768958091736, -0.7456605434417725, -1.1146882772445679, -1.037795901298523, -1.0497921705245972, -1.0942951440811157, -1.0413025617599487, -0.5972718000411987, -1.110088586807251, -1.0513004064559937, -1.1305201053619385, -0.7124478816986084, -1.0595123767852783, -1.1074609756469727, -1.066354751586914, -0.8751542568206787, -1.1058506965637207, -0.9776212573051453, -1.1388565301895142, -1.1146399974822998, -1.1291990280151367, -0.93083256483078, -1.0589017868041992, -1.0484437942504883, 0.005114642437547445, 0.4675336480140686, -1.1007487773895264, -1.1265360116958618, -0.7856665849685669, -1.1471810340881348, -1.0006816387176514, -1.086280345916748, -0.4568817615509033, -1.0926687717437744, -1.1247586011886597, -1.020649790763855, -0.7004486918449402, -0.7507032752037048, -0.36360806226730347, 0.0694984719157219, -1.0846585035324097, -0.4433326721191406, -0.9724658727645874, -0.6991845369338989, -1.153093934059143, -1.0891469717025757, -1.1275368928909302, -1.0969369411468506, -1.1217849254608154, -0.9772583842277527, -1.128326654434204, -1.0117831230163574, -1.107550024986267, -0.16000695526599884, -0.9604966044425964, -1.1327491998672485, -1.0986883640289307, -1.1405680179595947, -1.124616265296936, -1.0845947265625, -1.1411950588226318, -0.9252302050590515, -0.8393011689186096, -1.0875149965286255, -1.1566416025161743, -0.7068145275115967, -0.8302127718925476, -1.1329153776168823, -0.3970772624015808, -1.024813175201416, -0.9288667440414429, -0.7610872983932495, -1.0735085010528564, -1.1265498399734497, -1.1245660781860352, -1.0189422369003296, -1.109556794166565, -1.1603336334228516, -1.0400158166885376, -1.1357967853546143, -1.1047589778900146, -1.1260868310928345, -1.0244648456573486, -0.3807436227798462, -1.0682954788208008, -1.0865168571472168, -1.114679217338562, -0.6224247813224792, -1.008186936378479, -1.1384226083755493, -1.001507043838501, -1.0509780645370483, -1.127984881401062, -1.1531295776367188, -0.9097180366516113, -1.1297146081924438, -1.1198922395706177, -1.0492782592773438, -1.1541215181350708, -1.1173344850540161, -1.0856608152389526, -1.1412324905395508, -1.107321858406067, -0.322988361120224, -0.9686334133148193, -1.0923997163772583, -1.1139847040176392, -1.1434872150421143, -0.9458908438682556, -1.1341311931610107, -1.094497799873352, 0.5023359656333923, -1.0772929191589355, -1.0557160377502441, -1.1190868616104126, -1.140064001083374, -1.0909183025360107, -0.9776212573051453, -1.1378698348999023, -1.0889418125152588, -0.1755659282207489, -0.9958509206771851, -0.5425494909286499, -1.0543862581253052, -1.1491848230361938, -1.089898705482483, -1.079916000366211, -0.9481374025344849, -1.0938464403152466, -0.8949835300445557, -1.1315784454345703, -1.139063835144043, -1.1572139263153076, -1.0128768682479858, -0.9284956455230713, -1.0916701555252075, -0.9959049224853516, -1.1063543558120728, -0.8878263235092163, -1.0926740169525146, -0.918923020362854, -1.0352156162261963, -1.0295376777648926, -1.0944331884384155, -1.0114108324050903, -1.0110307931900024, -1.1051310300827026, -1.0844589471817017, -0.7235239744186401, -1.0637540817260742, -0.47854653000831604, -1.0692439079284668, -1.074256181716919, -1.0292466878890991, -0.9692817330360413, -0.9513319134712219], \"z\": [1.9798240661621094, 1.3635393381118774, 0.946596622467041, 1.901353120803833, 1.8478009700775146, 1.858809232711792, 1.8622421026229858, 1.803779125213623, 1.1167083978652954, 1.8699339628219604, 1.8417606353759766, 1.8845685720443726, 1.2814794778823853, 1.9864403009414673, 1.9310798645019531, 1.9883694648742676, 1.7367337942123413, 1.9190107583999634, 1.7612873315811157, 1.9708448648452759, 1.8849315643310547, 1.9171104431152344, 1.5084292888641357, 1.847595453262329, 1.9556517601013184, 1.0356061458587646, 0.9365342259407043, 1.9126176834106445, 1.9237024784088135, 0.9072720408439636, 1.8951176404953003, 1.7574161291122437, 2.007869005203247, 0.4275077283382416, 1.9149185419082642, 1.89515221118927, 1.8213493824005127, 1.2477346658706665, 1.516120195388794, 1.1370116472244263, 0.6131743788719177, 1.8993107080459595, 1.1433982849121094, 1.5863921642303467, 1.4801025390625, 1.954466462135315, 1.9977178573608398, 1.9282208681106567, 1.8813287019729614, 1.9588812589645386, 1.7511718273162842, 1.8666504621505737, 1.7929962873458862, 1.9561734199523926, 0.8946821689605713, 1.6115299463272095, 1.9377596378326416, 1.8775177001953125, 1.9448872804641724, 1.902010202407837, 1.8550872802734375, 1.9376074075698853, 1.6905639171600342, 1.648371696472168, 1.8420648574829102, 1.9542100429534912, 1.2206178903579712, 1.7511532306671143, 1.8749923706054688, 0.2572553753852844, 1.6052157878875732, 1.838730812072754, 0.8983044028282166, 1.9818097352981567, 1.9443265199661255, 1.9486873149871826, 1.7005850076675415, 1.9213449954986572, 1.9210920333862305, 1.6851028203964233, 1.941404938697815, 1.872422218322754, 1.881327748298645, 1.938025951385498, 1.0458941459655762, 1.8933141231536865, 1.8693280220031738, 1.9074523448944092, 1.3118826150894165, 1.8847401142120361, 1.951134443283081, 1.7317156791687012, 1.793529748916626, 1.8432228565216064, 1.9562480449676514, 1.8628921508789062, 1.981182336807251, 1.8217371702194214, 1.7816286087036133, 1.9459848403930664, 1.906875729560852, 1.9175450801849365, 1.9231417179107666, 1.9229094982147217, 1.126499056816101, 1.65120530128479, 1.9132596254348755, 1.8047678470611572, 1.86961829662323, 1.7757798433303833, 1.9457415342330933, 1.901894211769104, 0.1785336136817932, 1.8657418489456177, 1.799796462059021, 1.9036813974380493, 1.9551399946212769, 1.9500950574874878, 1.7612873315811157, 1.9286202192306519, 1.8917791843414307, 0.8309887647628784, 1.7466737031936646, 1.3743524551391602, 1.7747278213500977, 1.9593701362609863, 1.9222310781478882, 1.945513129234314, 1.3863706588745117, 1.8011618852615356, 1.5880123376846313, 1.8729093074798584, 1.8952454328536987, 1.9465874433517456, 1.7292648553848267, 1.6946618556976318, 1.9021450281143188, 1.7525743246078491, 1.9915595054626465, 1.6172617673873901, 1.8777780532836914, 1.457362413406372, 1.9083454608917236, 1.6706069707870483, 1.8630006313323975, 1.746288776397705, 1.741026759147644, 1.933397889137268, 1.922922968864441, 0.8610281348228455, 1.8828538656234741, 0.9569489359855652, 1.693769931793213, 1.7926636934280396, 2.0085301399230957, 1.453142523765564, 1.4005025625228882]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Neurology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Neurology\", \"marker\": {\"color\": \"#FFA15A\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Neurology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [1.2580913305282593, 2.3365893363952637, 1.9869887828826904, 2.2170426845550537, 2.248445987701416, 1.0423026084899902, 1.1509720087051392, 1.1753180027008057, 1.612105369567871, 1.645588994026184, 1.7717605829238892, 1.3312588930130005, 1.555598497390747, 2.1126465797424316, 1.6623470783233643, 1.5811249017715454, -0.14210212230682373, 1.624747395515442, 2.5134634971618652, 1.9403151273727417, 2.541499614715576, 1.495219111442566, 0.8657070398330688, 2.1970386505126953, -1.051316261291504, 1.0898715257644653, 1.702326774597168, 1.2805386781692505, 1.3859995603561401, 2.254741907119751, 1.8565737009048462, 1.2499992847442627, 2.3690195083618164, 1.9338079690933228, 2.0826287269592285, 1.3480751514434814, 1.4216805696487427, 2.138014793395996, 1.3652234077453613, 1.5247228145599365, 2.3970513343811035, 2.508622884750366, 2.011383533477783, 1.5599052906036377, 0.1682305783033371, 1.6321920156478882, 1.05223548412323, 2.4005074501037598, 2.2915468215942383, 2.1568713188171387, 1.2274285554885864, 2.488112211227417, 1.772117018699646, 2.284581184387207, 1.613485336303711, -0.705740213394165, -2.9365196228027344, 1.1551060676574707, 2.573664426803589, 1.3409490585327148, 1.8565737009048462, 1.4946767091751099, 2.6614267826080322, 1.1512947082519531, 2.396451473236084, 1.8542485237121582, 1.1966770887374878, 1.1694386005401611, 2.1988041400909424, 1.3093675374984741, 0.6548051834106445, -2.069068431854248, 1.7249187231063843, 2.030384063720703, 1.3698362112045288, 1.467721700668335, 1.392392635345459, 2.7010865211486816, 2.3006558418273926, 1.4142677783966064, 1.2240768671035767, 2.67648983001709, 2.424499273300171, 1.0861512422561646, 2.5894434452056885, 1.339340090751648, 1.4779784679412842, 2.0472073554992676, 2.204833745956421, 1.7877733707427979, 1.4524964094161987, 1.3597444295883179, 2.1417055130004883, 1.9438599348068237, -0.42479515075683594, 1.920548915863037, 1.6939342021942139, 1.198103904724121, 1.393005132675171, 1.5988075733184814, 1.623376488685608, 1.4889545440673828, 1.6566057205200195, 1.2859396934509277, 1.5634472370147705, 1.5021753311157227, 1.4355695247650146, 1.9106966257095337, 1.7877733707427979, 1.3761711120605469, -0.705740213394165, 1.8542485237121582, 2.401780843734741, 1.4212291240692139, 1.5414327383041382, 1.385474681854248, 1.7444216012954712, 2.41204833984375, 1.6098185777664185, 2.5037643909454346, 1.301037311553955, 1.471048355102539, 1.481515884399414, 1.233717918395996, 1.3891209363937378, 2.6617937088012695, 1.9913859367370605, 2.090029001235962, 2.367121934890747, 1.3652234077453613, 1.2947216033935547, 2.090029001235962, 1.274129033088684, 1.4960578680038452, 2.204155206680298, 1.4524964094161987, 1.3799210786819458, 2.438690423965454, 1.1744141578674316, 2.568692207336426, 1.3246451616287231, 1.6098185777664185, 1.2907044887542725, 1.3258637189865112, 1.3139628171920776, 2.3558297157287598, 1.4092625379562378, 2.2772531509399414, 1.988512635231018, 1.200008511543274, 1.8443782329559326, 1.3895524740219116, 1.1025279760360718, 1.409035325050354, 2.7119717597961426, 1.9338079690933228, 2.200488805770874, 0.9989381432533264, 2.5975613594055176, 2.7693958282470703, 1.1592681407928467, 3.217827081680298, 2.1319799423217773, 1.3312588930130005, 1.0164587497711182, 0.7795848250389099, 1.363590121269226, 2.4232892990112305, 1.267311453819275, 0.8621633052825928, 0.41157570481300354, 1.6612330675125122, 2.4686262607574463, 1.5820960998535156, 1.5440738201141357, 1.8812416791915894, 1.742344617843628, 2.110013246536255, 1.3246451616287231, 2.3846068382263184, 0.08704620599746704, 1.243600606918335, 1.3139628171920776, 2.3507676124572754, 1.6438400745391846, 1.5952937602996826, 2.169159412384033, 0.9001442790031433, 1.623376488685608, 2.079497814178467, 1.497448205947876, 1.8979086875915527, 2.4386980533599854, 1.3485468626022339, 1.5018575191497803, 1.2372641563415527, 1.4686774015426636, 1.405800700187683, 1.4806169271469116, 1.7836582660675049, 1.3558496236801147, 2.192897319793701, 1.5296422243118286, 2.9675211906433105, 0.9635462760925293, 1.2946916818618774, 0.6430096626281738, 2.2575125694274902, 2.0193777084350586, 1.4312013387680054, 1.347395658493042, 1.8306233882904053, 1.1665738821029663, 1.4125386476516724, 2.4777612686157227, 2.0525550842285156, 1.837642788887024, 2.628932476043701, 0.8207362294197083, 1.1971246004104614, 1.4090473651885986, 1.3872978687286377], \"y\": [1.5999900102615356, -1.4361621141433716, -2.1697568893432617, -1.9630517959594727, 0.0430070236325264, 1.8941426277160645, 1.6829341650009155, 1.9830358028411865, 1.75446617603302, 1.5691423416137695, 1.0638346672058105, 1.4486749172210693, 0.9224755764007568, -0.9994677305221558, 1.5332019329071045, 1.4966143369674683, 2.04504132270813, 1.6372253894805908, -0.10273906588554382, 1.1651934385299683, -1.1165317296981812, 1.4515615701675415, 2.428325891494751, 0.6324781775474548, 1.364058256149292, 1.9583346843719482, 2.0141561031341553, 1.5376678705215454, 2.3152153491973877, 0.6351108551025391, 1.4851685762405396, 1.5053919553756714, -1.4412214756011963, 1.1998097896575928, 1.1844898462295532, 1.7237590551376343, 1.7638561725616455, 1.178145170211792, 1.3727561235427856, 1.7005358934402466, -1.071819543838501, -1.0070184469223022, -0.027524873614311218, 1.4288362264633179, 2.176784038543701, 1.549208164215088, 1.483569860458374, -1.439624309539795, 0.7826951146125793, -2.102531909942627, 1.5843051671981812, -1.7858644723892212, 1.1902705430984497, -1.6403682231903076, 1.3423832654953003, 1.3791978359222412, -0.8878263235092163, 1.8934955596923828, 0.4708612859249115, 1.5623984336853027, 1.4851685762405396, 1.7788808345794678, -1.7058802843093872, 1.993887186050415, -0.42645204067230225, 1.3506587743759155, 1.5620006322860718, 1.7178303003311157, 1.4182735681533813, 1.7991793155670166, 1.913586974143982, 0.4115363657474518, 1.4445799589157104, 0.0019656505901366472, -1.715520977973938, 1.7217744588851929, 2.0992417335510254, -0.1257517784833908, 0.989559531211853, 1.6239604949951172, 1.7373024225234985, -0.2538807690143585, -1.0699986219406128, 1.958107829093933, 0.04517053812742233, 1.666599988937378, 1.5002726316452026, 1.003801703453064, 0.5390551686286926, 1.442073941230774, 1.7154643535614014, 1.6422078609466553, 1.1248664855957031, 1.2239493131637573, 1.686610460281372, 1.3664846420288086, 0.4073178768157959, 1.7717336416244507, 1.6173371076583862, 1.3326616287231445, 1.8739585876464844, 1.553954005241394, 1.8284528255462646, 1.5035693645477295, 1.5700736045837402, 1.646992802619934, 1.5261107683181763, 1.6257249116897583, 1.442073941230774, 1.6679513454437256, 1.3791978359222412, 1.3506587743759155, -0.4997515082359314, 1.706644058227539, 1.9615825414657593, 1.7592287063598633, 1.6598681211471558, -1.3194376230239868, 1.2162221670150757, -0.7574847340583801, 1.920393705368042, 1.618942379951477, 1.8489705324172974, 1.5275987386703491, 1.5126107931137085, -0.9753789901733398, 0.8732777237892151, 1.2524701356887817, -1.2023911476135254, 1.3727561235427856, 1.6620711088180542, 1.2524701356887817, 1.652899146080017, 1.134289026260376, -1.9132394790649414, 1.7154643535614014, 1.328965663909912, 1.006398320198059, 1.5716379880905151, 0.1941225230693817, 1.587349534034729, 1.2162221670150757, 1.325398564338684, 1.569188117980957, 1.525503158569336, 0.5917672514915466, 1.47916841506958, -1.5703150033950806, 2.2590246200561523, 1.75954270362854, 1.4651912450790405, 1.8463283777236938, 1.8420668840408325, 1.5267044305801392, -0.5376057028770447, 1.1998097896575928, 1.2944906949996948, 1.9891678094863892, -0.5678999423980713, -0.6739948391914368, 1.5869855880737305, -0.5959766507148743, -2.0043928623199463, 1.4486749172210693, 0.9771652817726135, 1.8378002643585205, 1.4787628650665283, -0.6173694729804993, 1.578275203704834, 2.121105194091797, 1.8481162786483765, 1.5169726610183716, 0.15170662105083466, 1.5032235383987427, 1.4250282049179077, 1.0988905429840088, 1.6074261665344238, 0.8498188853263855, 1.587349534034729, 0.06539340317249298, 1.8752297163009644, 1.818476676940918, 1.525503158569336, 0.03695891425013542, 1.6225241422653198, 1.4385483264923096, 1.4383121728897095, 1.8875213861465454, 1.8739585876464844, 1.3408863544464111, 1.5555709600448608, -2.2645506858825684, -0.013562464155256748, 1.8658568859100342, 1.3955966234207153, 1.6640995740890503, 1.5603196620941162, 1.6725066900253296, 1.910712718963623, 1.7712376117706299, 1.3417693376541138, 0.4960774779319763, 1.6213889122009277, 0.022465895861387253, 1.6835331916809082, 1.370295524597168, 2.1215884685516357, -1.5367214679718018, 0.9227792024612427, 1.8826524019241333, 1.6905137300491333, 1.3769654035568237, 1.8764593601226807, 1.5894259214401245, -1.0611779689788818, 1.662028431892395, 1.177554726600647, 0.13063079118728638, 1.8078103065490723, 1.588972806930542, 1.7485319375991821, 1.228383183479309], \"z\": [0.4931027889251709, -0.2706739604473114, -0.5741801261901855, -0.47987210750579834, 0.2299650013446808, 0.3730230927467346, 0.463637113571167, 0.45309120416641235, 0.44617676734924316, 0.5078642964363098, 0.4785325229167938, 0.5019420981407166, 0.4308936893939972, -0.08772362023591995, 0.551236629486084, 0.5370501279830933, -0.39098215103149414, 0.4933093190193176, 0.1667117327451706, 0.5084649920463562, -0.14888471364974976, 0.5228859782218933, 0.15862582623958588, 0.37891921401023865, -0.7928147912025452, 0.3097646236419678, 0.4961528480052948, 0.45913514494895935, 0.43827635049819946, 0.36516639590263367, 0.5563628673553467, 0.4896324574947357, -0.26567575335502625, 0.5147433876991272, 0.49061310291290283, 0.5225900411605835, 0.5265399813652039, 0.41791290044784546, 0.4973079562187195, 0.4975149631500244, -0.1315796971321106, -0.10343551635742188, 0.19780634343624115, 0.5273520946502686, 0.2632579803466797, 0.5377225875854492, 0.4660763144493103, -0.25276151299476624, 0.4048480689525604, -0.5325572490692139, 0.48770272731781006, -0.40088310837745667, 0.37310677766799927, -0.3446929156780243, 0.5165010094642639, -0.361595094203949, 1.6172617673873901, 0.39646512269973755, 0.2877316176891327, 0.49485617876052856, 0.5563628673553467, 0.4804864525794983, -0.27809789776802063, 0.2552371919155121, 0.0847441703081131, 0.5155804753303528, 0.48199906945228577, 0.4563007354736328, 0.4680629074573517, 0.46420425176620483, 0.16394823789596558, -1.5047279596328735, 0.5432113409042358, 0.20372876524925232, -0.46687859296798706, 0.5249942541122437, 0.4799628257751465, 0.1464921087026596, 0.35266879200935364, 0.49931949377059937, 0.46624064445495605, 0.11729037016630173, -0.1214604526758194, 0.27916330099105835, 0.244949609041214, 0.5059579610824585, 0.5307961106300354, 0.466806560754776, 0.3784261643886566, 0.543425977230072, 0.4895666241645813, 0.49714741110801697, 0.5116034746170044, 0.39108598232269287, 0.020621325820684433, 0.45636704564094543, 0.3025463819503784, 0.4637051820755005, 0.5108588933944702, 0.519439160823822, 0.5103841423988342, 0.5026624798774719, 0.41365161538124084, 0.49799084663391113, 0.5353056788444519, 0.5225112438201904, 0.5125855207443237, 0.4059585630893707, 0.543425977230072, 0.51655113697052, -0.361595094203949, 0.5155804753303528, 0.06566841155290604, 0.5108429789543152, 0.5115743279457092, 0.4692878723144531, 0.5140369534492493, -0.22699414193630219, 0.4965282082557678, -0.028650762513279915, 0.46293339133262634, 0.5263108611106873, 0.40302127599716187, 0.48627224564552307, 0.5075958967208862, -0.06917061656713486, 0.2670915424823761, 0.42215055227279663, -0.1790037751197815, 0.4973079562187195, 0.5002350807189941, 0.42215055227279663, 0.49449479579925537, 0.4725092053413391, -0.4592572748661041, 0.4895666241645813, 0.4935804307460785, 0.366717666387558, 0.4735400676727295, 0.2901391088962555, 0.5129852294921875, 0.4965282082557678, 0.4822978079319, 0.5161135196685791, 0.49877670407295227, 0.3155069947242737, 0.4828633964061737, -0.3191501796245575, 0.541366457939148, 0.4917830526828766, 0.5027503371238708, 0.49407801032066345, 0.4120050072669983, 0.525371253490448, 0.09229503571987152, 0.5147433876991272, 0.5066450238227844, 0.2735205292701721, 0.021625187247991562, -0.007575374562293291, 0.4717734158039093, 0.012150728143751621, -0.49587348103523254, 0.5019420981407166, 0.43410927057266235, 0.2751774787902832, 0.5085708498954773, 0.025769462808966637, 0.49030596017837524, 0.2816547155380249, 0.048746880143880844, 0.5191156268119812, 0.29145747423171997, 0.536125659942627, 0.523239016532898, 0.4541536867618561, 0.4005051553249359, 0.44550010561943054, 0.5129852294921875, 0.2669624388217926, -0.11892155557870865, 0.4393678605556488, 0.49877670407295227, 0.22160270810127258, 0.5337311625480652, 0.5181178450584412, 0.49420610070228577, 0.31028005480766296, 0.5103841423988342, 0.4296936094760895, 0.5216788649559021, -0.626665472984314, 0.208073228597641, 0.4439568519592285, 0.5170204639434814, 0.4890378415584564, 0.37302106618881226, 0.49480336904525757, 0.36870071291923523, 0.5617213845252991, 0.49421989917755127, 0.32641085982322693, 0.5253121256828308, 0.17982763051986694, 0.4000300168991089, 0.4883124828338623, 0.06274449080228806, -0.2886003851890564, 0.42616045475006104, 0.3645023703575134, 0.5086748600006104, 0.4971182346343994, 0.4459838271141052, 0.5083470344543457, -0.1301823854446411, 0.3736981153488159, 0.4979698956012726, 0.20897416770458221, 0.3250458538532257, 0.4929698705673218, 0.5193641185760498, 0.4823693037033081]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"tracegroupgap\": 0, \"x\": 1.1, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"margin\": {\"t\": 60}, \"scene\": {\"domain\": {\"x\": [0.0, 1.0], \"y\": [0.0, 1.0]}, \"xaxis\": {\"title\": {\"text\": \"COMP1\"}}, \"yaxis\": {\"title\": {\"text\": \"COMP2\"}}, \"zaxis\": {\"title\": {\"text\": \"COMP3\"}}}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"3D Space\", \"x\": 0.5}, \"width\": 900},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('2c175c9f-a9a8-4f22-b566-0cc87aa987ac');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Explained variance per component: [0.5718724 0.22398916 0.11776582]\n",
"Comulative explained variance: [0.5718724 0.7958616 0.91362745]\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BQsXk8fsIKG6"
},
"source": [
"# **SVM**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jMLhlI0OIKQ4"
},
"outputs": [],
"source": [
"def ensemble_of_classifiers(projected_train, train_y):\n",
" \"\"\"\n",
" For each category a classifier is trained to discriminate between this category and all the other categories put together.\n",
" \n",
" Parameters\n",
" ----------\n",
" projected_train : shape (num_samples_train, projection_dim)\n",
" train_y : shape (num_samples_train)\n",
"\n",
" \n",
" Returns\n",
" -------\n",
" classifiers_list : a list of trained classifiers. The it'h classifier desined to predict the i'th category. \n",
" diagnosis_list : list of the categories order as the classifiers. \n",
" \"\"\"\n",
"\n",
" classifiers_list = []\n",
"\n",
" diagnosis_list = np.sort(list(Counter(list(train_y)).keys())) # orderd by increasing order: (0,1,2,..)\n",
"\n",
" for diagnosis in diagnosis_list:\n",
" print(diagnosis)\n",
" \n",
" y = np.zeros(len(train_y))\n",
" is_diagnosis = train_y == diagnosis\n",
" y[is_diagnosis] = 1\n",
" y = y.astype('int')\n",
" if y.sum() == 0: # TODO delete\n",
" continue\n",
" classifier = SVC(gamma='auto', probability=True)\n",
" classifier.fit(projected_train, y)\n",
"\n",
" classifiers_list.append(classifier)\n",
"\n",
" return classifiers_list, diagnosis_list\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "HfDiANsKK2Zf",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "ee891bee-a37e-420f-ed70-3aab85057f58"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"3\n",
"11\n",
"18\n",
"21\n",
"26\n"
]
}
],
"source": [
"classifiers, categories_order = ensemble_of_classifiers(projected_train, train_labels)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "wXC95RVyUgrZ"
},
"source": [
"# **Test** - Seen categories"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "LQTq-qVmUgzg",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "fe4f87ac-5962-49f4-e83c-387ab1c97680"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n"
]
}
],
"source": [
"projected_test = project_to_dissimilarity_space(testLoader_simple, SNN_model, prototypes_list)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "7MH3vk1hr2_T",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "65d17600-dadf-4665-9d6d-759ca1e35ed1"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(231, 100)"
]
},
"metadata": {},
"execution_count": 49
}
],
"source": [
"projected_test.shape"
]
},
{
"cell_type": "code",
"source": [
"X_pca = pca_alg.fit_transform(projected_test) \n",
"show_space(X_pca, title=\"3D Space\", colors=pd.DataFrame(test_labels).replace(categories_mapping), color_by=\"category\", show_3D=True)\n",
"print(\"Explained variance per component:\", pca_alg.explained_variance_ratio_)\n",
"print(\"Comulative explained variance:\", pca_alg.explained_variance_ratio_.cumsum())"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 552
},
"id": "_r11pAqPDmS8",
"outputId": "0694e648-5512-419c-fe43-88854d2c5e5a"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"af83762f-ecce-442e-8e20-e2e6968858fc\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"af83762f-ecce-442e-8e20-e2e6968858fc\")) {\n",
" Plotly.newPlot(\n",
" 'af83762f-ecce-442e-8e20-e2e6968858fc',\n",
" [{\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Cardiovascular / Pulmonary<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Cardiovascular / Pulmonary\", \"marker\": {\"color\": \"#636efa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Cardiovascular / Pulmonary\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [1.9928381443023682, 2.799199104309082, 2.049440860748291, 2.1469287872314453, 2.5702898502349854, 2.55613112449646, 2.2627453804016113, 3.2253901958465576, 2.351065158843994, 2.3312127590179443, 1.8518612384796143, 2.3878426551818848, 2.5165419578552246, 1.9275377988815308, 2.374520778656006, 2.380650520324707, 2.1234962940216064, 1.9747648239135742, 2.2926430702209473, 2.5123603343963623, 2.488579034805298, 2.374098777770996, -0.2676832675933838, 1.9008457660675049, 2.4687936305999756, 2.23663330078125, 2.525998830795288, 2.132065773010254, 3.0031979084014893, 1.965664029121399, 1.9517359733581543, 2.3695566654205322, 1.082778811454773, 2.082639217376709, 2.4096415042877197, 1.4907664060592651, 2.4492886066436768, -0.17301028966903687, 2.3398919105529785, 1.9146347045898438, -0.659653902053833, 2.544971227645874, 2.3312230110168457, 2.165254592895508, 2.381286859512329, 2.533397912979126, 2.2004642486572266, 2.1420416831970215, 2.703162670135498, 1.9451844692230225, 2.6986234188079834, 2.270167827606201, 2.5403025150299072, 2.3145029544830322, 2.46030855178833, 2.8443431854248047], \"y\": [-0.11007100343704224, 0.18180613219738007, 0.030505985021591187, -0.06324788928031921, 0.43415290117263794, -0.5323325395584106, -0.011923050507903099, -0.15763817727565765, 0.09291607141494751, -0.2191668301820755, -0.7766312956809998, -0.20119430124759674, -0.09897824376821518, -1.0752835273742676, 0.20100238919258118, 0.03635015711188316, -0.9936366081237793, -0.7088464498519897, -0.4848718047142029, 0.3352503180503845, -0.1750127226114273, 0.25985395908355713, -1.967203974723816, -0.9108414649963379, -0.05648886412382126, -0.11580165475606918, 0.4569891095161438, -0.0420459620654583, -0.16058817505836487, -0.6409599184989929, -0.4479101896286011, 0.13487783074378967, -1.0858114957809448, -0.38697895407676697, 0.24619561433792114, -0.8127391934394836, 0.02382584847509861, -1.903106927871704, -0.036615416407585144, -0.783924400806427, -1.7966995239257812, 0.38328132033348083, 0.17602108418941498, 0.11770149320363998, -0.1980624496936798, 0.1797761768102646, 0.03790789842605591, -0.01247542817145586, 0.5620819926261902, -0.62090003490448, 0.14502854645252228, -0.7599686980247498, -0.0478140227496624, 0.08390188217163086, -0.03995846211910248, 0.4719844460487366], \"z\": [-1.3360227346420288, -0.6540493369102478, -1.331858515739441, -1.335369348526001, -0.4975382685661316, 0.2913690209388733, -1.342095971107483, -0.6334740519523621, -1.2119343280792236, -1.2750108242034912, -0.8563475608825684, -1.2406535148620605, -1.104617714881897, -0.8384290337562561, -1.109246015548706, -1.2202377319335938, -0.6170412302017212, -1.1413747072219849, -0.7023107409477234, -0.7521586418151855, -1.1264493465423584, -1.0174360275268555, 0.06435126066207886, -1.0490620136260986, -1.182196855545044, -1.3548345565795898, -0.4629681408405304, -1.3305631875991821, -0.2838481366634369, -0.8616638779640198, -1.3392441272735596, -1.1615434885025024, -0.8763847351074219, -1.322119951248169, -1.0036289691925049, -1.0011496543884277, -1.1624255180358887, -0.07107105106115341, -1.261715054512024, -0.9733689427375793, 0.20377331972122192, -0.6490193009376526, -1.1461559534072876, -1.274276852607727, -1.347885012626648, -0.9040619730949402, -1.3262865543365479, -1.326191782951355, 0.22153529524803162, -0.7480911016464233, -0.7055114507675171, -0.44178280234336853, -1.0747206211090088, -1.2420445680618286, -1.285062313079834, 0.0037533086724579334]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Radiology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Radiology\", \"marker\": {\"color\": \"#EF553B\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Radiology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.287014961242676, 2.3384501934051514, -1.550878882408142, -1.61687433719635, 0.9202088713645935, -0.7835646867752075, -1.0900133848190308, 1.8082705736160278, -2.2929093837738037, -1.3347628116607666, -1.4357768297195435, 2.3717846870422363, -2.411175489425659, -1.337363839149475, 2.1420416831970215, -1.4330657720565796, -1.7057290077209473, 2.1831119060516357, -1.3574302196502686, -2.3175249099731445, -2.300593137741089, -2.351168394088745, -1.6515569686889648, -2.123836040496826, 1.3103907108306885, 2.4324097633361816, -0.5307846069335938, -1.0113415718078613, -0.9725518822669983, -0.6946932077407837, -1.6817996501922607, -2.5259766578674316, 2.2000722885131836, 2.6867940425872803, -1.850860834121704, -1.3980128765106201, -0.8703266978263855, -2.5691418647766113, 1.914504885673523, -1.1570123434066772, 2.5403032302856445], \"y\": [0.6242585182189941, -0.2857874035835266, -1.4352612495422363, -1.199887752532959, -1.3056198358535767, -1.8883180618286133, -1.852678894996643, -0.48413166403770447, 1.8211873769760132, -1.7496224641799927, -1.3920552730560303, 0.09004401415586472, 0.2627353370189667, -1.579992651939392, -0.01247543003410101, -1.6552971601486206, 2.215456485748291, 1.3541475534439087, -1.8880188465118408, -0.07627929747104645, -0.6599436402320862, 1.3218251466751099, -1.663811445236206, -0.465328574180603, -1.1972323656082153, -0.4484948515892029, -1.8698170185089111, -1.9205759763717651, -2.0056838989257812, -1.9565712213516235, -1.3278225660324097, 0.0897308960556984, -0.10412585735321045, -0.0043279314413666725, -0.8841859102249146, -1.2866235971450806, -1.7693930864334106, -0.4268452227115631, -0.568577229976654, -1.5869344472885132, -0.04781400412321091], \"z\": [1.3303818702697754, -1.1685972213745117, 0.4836200773715973, 0.4550500214099884, -0.3338693082332611, 0.19376911222934723, 0.32340922951698303, -1.224991798400879, -0.4888736605644226, 0.4316987097263336, 0.46458864212036133, -1.203526496887207, 0.05186474323272705, 0.48578786849975586, -1.326191782951355, 0.43780678510665894, -0.6916540861129761, 2.0220530033111572, 0.2829011380672455, 0.18237754702568054, 0.3217044770717621, -0.2510702610015869, 0.41263657808303833, 0.29355570673942566, -0.7888800501823425, -0.35891884565353394, 0.10710073262453079, 0.2670624554157257, 0.21546205878257751, 0.14294299483299255, 0.48084986209869385, 0.10140296071767807, -1.3275723457336426, -0.8688367009162903, 0.5115031599998474, 0.454501748085022, 0.3134499192237854, 0.25139814615249634, -0.441329687833786, 0.42824432253837585, -1.0747205018997192]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Neurology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Neurology\", \"marker\": {\"color\": \"#00cc96\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Neurology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-1.6817995309829712, -1.48220956325531, -2.2609217166900635, -1.4940069913864136, -2.4551453590393066, -1.1086031198501587, -1.283490777015686, -3.0620341300964355, -2.3196661472320557, -2.364182710647583, -2.2195749282836914, -1.3586995601654053, -0.8610125184059143, -1.321581244468689, -2.73935866355896, -1.6302224397659302, -1.1863116025924683, -1.2540388107299805, 2.4084410667419434, 3.0134692192077637, -1.8631843328475952, -2.1083874702453613, -1.5245760679244995, 0.23027296364307404, -2.300421953201294, -0.02489302307367325, -2.0563619136810303, -0.8388425707817078, -2.5259766578674316, -1.6709105968475342, -1.342333197593689, -1.773982048034668, -2.363255023956299, -1.266495943069458, -1.398012638092041, -1.2421290874481201, -1.585925579071045, -1.254961371421814, -2.3529090881347656, 0.32270845770835876, -1.482208490371704, -2.338893413543701, -1.5930705070495605, -1.90636146068573, -2.437108278274536, -1.4921594858169556, -2.3823840618133545, -1.3382055759429932], \"y\": [-1.3278229236602783, -1.3453824520111084, 2.0920562744140625, -1.775084137916565, 0.3774007558822632, -1.725192666053772, -1.3589884042739868, 0.2587120532989502, -0.1475038379430771, 1.1386573314666748, -0.5794676542282104, -1.194885492324829, -1.7458522319793701, -1.720910668373108, 0.6951785087585449, -1.4628417491912842, -1.7851402759552002, -1.5491509437561035, -1.06661856174469, 0.6035636067390442, -0.9225824475288391, 1.0905423164367676, -1.0475918054580688, -1.145228385925293, 1.5509834289550781, -1.6840033531188965, 2.1192352771759033, -1.8970400094985962, 0.0897308960556984, -1.4639244079589844, -1.5706381797790527, -0.9852257370948792, 1.3096143007278442, -1.5119516849517822, -1.2866235971450806, -1.7867313623428345, -1.3639711141586304, -1.5996650457382202, 1.3380587100982666, -2.3703620433807373, -1.3453829288482666, 1.6013528108596802, -0.8755306005477905, 2.1907551288604736, 1.232282042503357, -1.3778796195983887, 1.3797610998153687, -1.469285249710083], \"z\": [0.4808495342731476, 0.45895078778266907, -0.6417669653892517, 0.4893743693828583, 0.016565503552556038, 0.39973053336143494, 0.4501626491546631, 0.02112329751253128, 0.20225131511688232, -0.22343724966049194, 0.3230399191379547, 0.435807466506958, 0.2911294996738434, 0.45591455698013306, -0.10514477640390396, 0.4764610528945923, 0.3928682208061218, 0.456011027097702, -0.5063542723655701, 0.8262273073196411, 0.40999963879585266, -0.2007489651441574, 0.41951459646224976, 0.6259254217147827, -0.4011475443840027, -0.02503867633640766, -0.6576895713806152, 0.21992860734462738, 0.10140296071767807, 0.4191817045211792, 0.4531148076057434, 0.4220126271247864, -0.3128274977207184, 0.4572586119174957, 0.45450180768966675, 0.41607603430747986, 0.4842963218688965, 0.459625780582428, -0.30774879455566406, 0.1582283079624176, 0.45895007252693176, -0.41571924090385437, 0.3824623227119446, -0.6668763756752014, -0.26530328392982483, 0.47852835059165955, -0.3401015102863312, 0.46085208654403687]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Orthopedic<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Orthopedic\", \"marker\": {\"color\": \"#ab63fa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Orthopedic\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-2.457761764526367, -2.5970733165740967, -2.2128570079803467, -2.1944963932037354, -2.0263051986694336, -1.7421581745147705, -2.386965751647949, -2.1810009479522705, -2.4371085166931152, -2.421431303024292, -2.6533796787261963, -2.397937297821045, -2.351168394088745, -2.023082733154297, -1.8352848291397095, 3.429091215133667, -2.1339032649993896, -1.990970492362976, -1.5013062953948975, -2.415944814682007, -2.7219815254211426, -1.8571629524230957, -1.9681743383407593, -1.2904447317123413, -2.3196661472320557, -2.340837001800537, -2.6272478103637695, -2.598994255065918, -2.679814577102661, -2.306652307510376, -2.503380298614502, -1.708946704864502, 2.704521894454956, -2.363255023956299, -2.36163592338562, -2.2677431106567383, -1.892127275466919, -2.1754660606384277, -2.8320536613464355, -1.9352784156799316, -0.7088075280189514, -1.9977085590362549, -2.5731160640716553, -1.9686033725738525, -1.9111818075180054, -1.915297508239746, -2.2747700214385986, -2.4309444427490234, -2.300421714782715, -1.7959753274917603, -1.4679208993911743, -2.0812056064605713, -2.426111936569214], \"y\": [2.0912015438079834, 0.6455811858177185, -0.5067489147186279, -0.7154355049133301, -1.1482847929000854, -1.537147879600525, -0.6305839419364929, 1.8760684728622437, 1.2322816848754883, 0.19817592203617096, 1.3316638469696045, 1.4123562574386597, 1.3218251466751099, 1.9706205129623413, -1.0091607570648193, -0.1428702175617218, 2.1221847534179688, 2.21240496635437, -1.5578182935714722, 1.0563136339187622, 0.6569036841392517, 2.0719947814941406, 2.2021050453186035, -1.85447096824646, -0.1475038379430771, -1.0485246181488037, 1.7603429555892944, 0.07041613757610321, 0.330361545085907, -0.46292006969451904, 0.11826563626527786, 2.268289566040039, -0.3822970390319824, 1.3096143007278442, 1.6141960620880127, -0.5234043598175049, -0.9806659817695618, 1.9763673543930054, 0.8563624620437622, 2.196035623550415, -0.40042245388031006, 2.2932534217834473, 1.719239592552185, 2.0129339694976807, 2.2182810306549072, 2.371161699295044, 1.7516824007034302, 2.1400198936462402, 1.5509830713272095, 2.2644970417022705, -1.7530361413955688, 2.257812976837158, 1.1611132621765137], \"z\": [-0.5577548146247864, -0.08848705142736435, 0.29590144753456116, 0.3249938488006592, 0.4265962541103363, 0.4826916754245758, 0.3546401858329773, -0.4947146475315094, -0.26530322432518005, 0.0985301211476326, -0.24123281240463257, -0.31071850657463074, -0.25107020139694214, -0.5616750121116638, 0.4131872355937958, 1.1313226222991943, -0.6035444736480713, -0.6995113492012024, 0.468418687582016, -0.21666385233402252, -0.02812211401760578, -0.6274430155754089, -0.6506089568138123, 0.32811057567596436, 0.2022514045238495, 0.33483991026878357, -0.4858139753341675, 0.13954702019691467, 0.01314070075750351, 0.25967127084732056, 0.16655762493610382, -0.7172964215278625, 0.6987863779067993, -0.3128274977207184, -0.409204363822937, 0.2800203859806061, 0.3838411569595337, -0.5903509259223938, -0.03215547651052475, -0.6595085859298706, 0.4379117786884308, -0.6867066025733948, -0.47730743885040283, -0.5802187323570251, -0.6927090883255005, -0.7170974016189575, -0.4529322385787964, -0.5642439126968384, -0.40114763379096985, -0.6917646527290344, 0.39492905139923096, -0.6516180634498596, -0.24980700016021729]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Gastroenterology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Gastroenterology\", \"marker\": {\"color\": \"#FFA15A\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Gastroenterology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.5846433639526367, 2.6468775272369385, 2.4919955730438232, 2.1550562381744385, 2.3006348609924316, -0.6941848993301392, 2.341461420059204, 2.8290979862213135, 2.6321449279785156, 2.515599250793457, 2.520054817199707, 2.7711565494537354, 2.615408182144165, 2.3675670623779297, 3.49951434135437, 2.3576982021331787, 2.771778106689453, 2.420541524887085, -1.1518480777740479, 2.543541669845581, 2.5719997882843018, 0.6827616095542908, 2.5934948921203613, 2.9810984134674072, 1.497058629989624, 2.686335325241089, 2.576508045196533, -1.1479758024215698, 2.671637535095215, 2.4262337684631348, 2.8000285625457764, 2.2366483211517334, 2.339040756225586], \"y\": [1.1421444416046143, 0.008833048865199089, 1.313191294670105, 1.3675521612167358, 1.3399419784545898, -0.6085495948791504, 1.3639531135559082, 1.0862969160079956, 1.2244253158569336, 1.286823034286499, 1.2755932807922363, 0.9413381218910217, 1.278260350227356, 1.340112328529358, -0.018041551113128662, 1.3495944738388062, 1.0745431184768677, 1.33001708984375, -0.25180932879447937, 1.2923721075057983, 1.2781718969345093, -1.3995089530944824, -0.003829867811873555, 0.5495826005935669, -0.840757429599762, 1.1684596538543701, 1.1243127584457397, -0.6104283332824707, 1.2606583833694458, 1.3066309690475464, 1.0456068515777588, 1.3585541248321533, 1.2693859338760376], \"z\": [1.8976986408233643, 0.3672550618648529, 1.993371844291687, 2.031873941421509, 2.0816006660461426, 0.8286636471748352, 2.0940351486206055, 1.7344266176223755, 1.8811936378479004, 1.9709688425064087, 2.042905807495117, 1.7386913299560547, 2.1155951023101807, 2.077976942062378, 0.3499116897583008, 2.0436859130859375, 1.5723539590835571, 2.174283027648926, 1.1513714790344238, 2.08056902885437, 2.1641933917999268, -0.33787453174591064, -0.7899782657623291, 0.5254637002944946, -0.23585551977157593, 1.7305481433868408, 1.9494949579238892, 0.7168751358985901, 2.064791679382324, 2.062751054763794, 1.64139723777771, 2.034802198410034, 2.0198652744293213]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"tracegroupgap\": 0, \"x\": 1.1, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"margin\": {\"t\": 60}, \"scene\": {\"domain\": {\"x\": [0.0, 1.0], \"y\": [0.0, 1.0]}, \"xaxis\": {\"title\": {\"text\": \"COMP1\"}}, \"yaxis\": {\"title\": {\"text\": \"COMP2\"}}, \"zaxis\": {\"title\": {\"text\": \"COMP3\"}}}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"3D Space\", \"x\": 0.5}, \"width\": 900},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('af83762f-ecce-442e-8e20-e2e6968858fc');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Explained variance per component: [0.5856723 0.19591992 0.109155 ]\n",
"Comulative explained variance: [0.5856723 0.78159225 0.89074725]\n"
]
}
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "AmW8hryhVDM5"
},
"outputs": [],
"source": [
"def predict(projected_test, classifiers_list, categories_order, test_labels):\n",
"\n",
" pred_y = []\n",
" \n",
" for classifier in classifiers_list:\n",
" pred_y.append(classifier.predict_proba(projected_test)[:,1]) # predict_proba returns probabiltiy for class==0 and for class==1, so we take only the probabilities of class==1\n",
" \n",
" pred_y = np.vstack(pred_y) # (num_classifiers, num_samples_test)\n",
" highest_predictions = categories_order[np.argmax(pred_y, axis=0)]\n",
" print(pred_y)\n",
" print(highest_predictions)\n",
" return highest_predictions\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "9SUsw-WJr8Im",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "2863397d-ccf1-461d-f783-5f81fdb96267"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[[9.06497518e-01 4.22945484e-02 9.27972309e-01 ... 9.91558353e-03\n",
" 8.29207502e-03 9.44201879e-01]\n",
" [3.17179475e-04 7.99165297e-01 2.41063025e-03 ... 4.50768144e-03\n",
" 3.92028214e-03 6.13502205e-04]\n",
" [7.86471885e-02 3.16745531e-02 3.57406547e-02 ... 9.97267539e-02\n",
" 7.16640304e-01 3.55695892e-02]\n",
" [4.13659613e-02 2.78985410e-02 2.95260976e-02 ... 7.18281033e-01\n",
" 1.45186659e-02 3.10082280e-02]\n",
" [1.26413458e-01 1.16556337e-01 1.06317467e-01 ... 1.32821917e-01\n",
" 2.14410045e-01 1.22298769e-01]]\n",
"[ 3 11 3 18 3 21 18 11 21 18 21 18 18 18 18 26 21 18 18 3 3 11 3 18\n",
" 18 3 3 21 3 21 21 18 26 18 26 3 3 21 11 11 21 3 21 18 21 3 26 18\n",
" 18 3 3 11 21 3 11 3 21 21 18 3 21 18 18 21 3 18 3 18 11 3 21 3\n",
" 21 18 11 21 3 3 18 3 18 3 21 11 21 3 3 3 18 21 3 26 11 11 21 21\n",
" 18 26 21 18 11 3 18 18 26 26 3 3 21 21 11 26 21 26 21 18 18 3 21 3\n",
" 21 18 21 21 11 11 11 26 3 26 3 11 3 21 21 21 3 18 11 18 3 18 3 3\n",
" 18 26 3 18 21 26 18 21 3 21 3 26 3 21 26 26 21 3 26 21 18 3 3 18\n",
" 26 3 3 18 11 26 26 11 21 26 3 3 18 18 21 3 3 21 26 18 21 18 18 21\n",
" 3 26 11 11 3 11 3 21 21 11 21 3 21 3 18 3 3 3 3 21 3 3 21 11\n",
" 18 3 3 21 21 26 18 18 18 21 21 3 21 18 3]\n"
]
}
],
"source": [
"preds = predict(projected_test, classifiers, categories_order, test_labels)"
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import confusion_matrix\n",
"\n",
"def plot_confusion_matrix(mat,fig_size, labels):\n",
"\n",
" fig = plt.figure(figsize=(fig_size,fig_size))\n",
" ax= fig.add_subplot(1,1,1)\n",
" sns.heatmap(mat, annot=True, cmap=\"Blues\",ax = ax,fmt='g'); #annot=True to annotate cells\n",
"\n",
" # labels, title and ticks\n",
" ax.set_xlabel('Predicted labels');ax.set_ylabel('True labels'); \n",
" ax.set_title('Confusion Matrix'); \n",
" ax.xaxis.set_ticklabels(labels); ax.yaxis.set_ticklabels(labels);\n",
" plt.setp(ax.get_yticklabels(), rotation=30, horizontalalignment='right')\n",
" plt.setp(ax.get_xticklabels(), rotation=30, horizontalalignment='right') \n",
" plt.show()\n",
"\n",
"c_matrix = confusion_matrix(test_labels, preds)\n",
"plot_confusion_matrix(c_matrix, fig_size=7, labels=[categories_mapping[c] for c in categories_order])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 526
},
"id": "jVOccpX3XhJN",
"outputId": "2b326899-770c-4844-d7ba-51eed8a7dd88"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x504 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import classification_report\n",
"categories_labels = [categories_mapping[c] for c in categories_order]\n",
"print(classification_report(test_labels, preds, target_names=categories_labels))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3Hg_FFCXS6OH",
"outputId": "6c5a1d00-e6aa-4d26-b24c-e5ca6d86b8e1"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" precision recall f1-score support\n",
"\n",
"Cardiovascular / Pulmonary 0.74 0.93 0.83 56\n",
" Gastroenterology 0.92 0.73 0.81 33\n",
" Neurology 0.50 0.54 0.52 48\n",
" Orthopedic 0.62 0.68 0.65 53\n",
" Radiology 0.36 0.22 0.27 41\n",
"\n",
" accuracy 0.64 231\n",
" macro avg 0.63 0.62 0.62 231\n",
" weighted avg 0.62 0.64 0.62 231\n",
"\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# **Test** - Unseen categories"
],
"metadata": {
"id": "bZlOtnT1Vaj1"
}
},
{
"cell_type": "code",
"source": [
"unseen_train_matrix = construct_train_matrix(SNN_model, unseen_trainLoader_simple)\n",
"unseen_prototypes_list = extract_prototypes(100, SNN_model, unseen_trainLoader_simple, unseen_train_labels, unseen_train_matrix)\n",
"unseen_projected_train = project_to_dissimilarity_space(unseen_trainLoader_simple, SNN_model, unseen_prototypes_list)\n",
"unseen_classifiers, unseen_categories_order = ensemble_of_classifiers(unseen_projected_train, unseen_train_labels)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "fsqi10BIcvKd",
"outputId": "f3bed510-92cc-480e-c358-78064640d0e3"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"num batches: 10\n",
"0 / 10 batches\n",
"1 / 10 batches\n",
"2 / 10 batches\n",
"3 / 10 batches\n",
"4 / 10 batches\n",
"5 / 10 batches\n",
"6 / 10 batches\n",
"7 / 10 batches\n",
"8 / 10 batches\n",
"9 / 10 batches\n",
"kc: 12\n",
"diagnosis: 30\n",
"diagnosis: 19\n",
"diagnosis: 17\n",
"diagnosis: 9\n",
"diagnosis: 12\n",
"diagnosis: 25\n",
"diagnosis: 22\n",
"diagnosis: 20\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"9\n",
"12\n",
"17\n",
"19\n",
"20\n",
"22\n",
"25\n",
"30\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"unseen_projected_test = project_to_dissimilarity_space(unseen_testLoader_simple, SNN_model, unseen_prototypes_list)\n",
"unseen_preds = predict(unseen_projected_test, unseen_classifiers, unseen_categories_order, unseen_test_labels)\n",
"\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "RT5uDoYWZpmQ",
"outputId": "f7e447e3-9e1c-42eb-a7ea-ad96338a2052"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"****new batch***\n",
"****new batch***\n",
"****new batch***\n",
"[[0.13516332 0.11761123 0.0899896 ... 0.1198466 0.07635645 0.06433335]\n",
" [0.11573274 0.11413227 0.1137885 ... 0.11313168 0.11453109 0.11515506]\n",
" [0.08127978 0.10720222 0.09822605 ... 0.17820996 0.01015258 0.06119408]\n",
" ...\n",
" [0.1293576 0.08853877 0.09636341 ... 0.07968307 0.08177174 0.08200888]\n",
" [0.01948808 0.0194217 0.01577369 ... 0.03695012 0.07372426 0.01107365]\n",
" [0.14440057 0.18258117 0.17624414 ... 0.20070883 0.1626611 0.23553353]]\n",
"[19 19 19 30 9 9 19 9 19 19 30 19 30 19 17 9 9 19 9 30 9 19 30 20\n",
" 19 30 30 19 30 9 20 19 19 19 30 20 30 19 30 9 30 19 9 30 30 30 19 19\n",
" 20 30 9 30 20 9 20 30 19 30 9 17 17 19 19 9 19 25 30 9 30 30 30 19\n",
" 20 30 17 30 20 30 19 19 19 19 30 19 19 30 30 20 9 19 30 20 19 19 30 30\n",
" 20 30 9 19 30 19 30 19 19 17 19 20 19 30 19 22 19 17 9 19 17 9 30 19\n",
" 30 30 30 20 30 30 30 30 19 30 19 19 20 19 9 17 19 19 19 30 19 9 19 19\n",
" 9 19 19 19 30 19 19 19 19 19 30 19 30]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"len(unseen_projected_test)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "DDOlEJZIrpl9",
"outputId": "047d373b-0dcc-494d-bb28-120321d258f3"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"157"
]
},
"metadata": {},
"execution_count": 57
}
]
},
{
"cell_type": "code",
"source": [
"unseen_c_matrix = confusion_matrix(unseen_test_labels, unseen_preds)\n",
"plot_confusion_matrix(unseen_c_matrix, fig_size=10, labels=[unseen_categories_mapping[c] for c in unseen_categories_order])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 680
},
"id": "NuS0Jr-PdPAl",
"outputId": "38655a8d-5350-4512-baf0-6785cf09825f"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"Counter(unseen_train_labels)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8JFpNhA_zCfr",
"outputId": "a7b6097b-3c7e-458f-e997-51504682d1a1"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Counter({0: 6,\n",
" 1: 6,\n",
" 2: 14,\n",
" 4: 11,\n",
" 5: 22,\n",
" 6: 22,\n",
" 7: 23,\n",
" 8: 8,\n",
" 9: 77,\n",
" 10: 15,\n",
" 11: 179,\n",
" 12: 72,\n",
" 13: 5,\n",
" 14: 13,\n",
" 15: 6,\n",
" 16: 18,\n",
" 18: 124,\n",
" 19: 66,\n",
" 21: 56,\n",
" 22: 17,\n",
" 23: 38,\n",
" 24: 43,\n",
" 26: 8,\n",
" 27: 16,\n",
" 28: 7})"
]
},
"metadata": {},
"execution_count": 190
}
]
},
{
"cell_type": "code",
"source": [
"unseen_categories_labels = [unseen_categories_mapping[c] for c in unseen_categories_order]\n",
"print(classification_report(unseen_test_labels, unseen_preds, target_names=unseen_categories_labels))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gLWKc2C8dRrb",
"outputId": "bc22c089-6a4c-4a80-c701-f4f53b2944fa"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" precision recall f1-score support\n",
"\n",
" ENT - Otolaryngology 0.23 0.26 0.24 19\n",
" Hematology - Oncology 0.00 0.00 0.00 18\n",
" Nephrology 0.25 0.12 0.17 16\n",
"Obstetrics / Gynecology 0.26 0.52 0.34 31\n",
" Ophthalmology 0.71 0.59 0.65 17\n",
" Pediatrics - Neonatal 0.00 0.00 0.00 14\n",
"Psychiatry / Psychology 1.00 0.09 0.17 11\n",
" Urology 0.31 0.48 0.38 31\n",
"\n",
" accuracy 0.31 157\n",
" macro avg 0.34 0.26 0.24 157\n",
" weighted avg 0.31 0.31 0.27 157\n",
"\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning:\n",
"\n",
"Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
"\n",
"/usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning:\n",
"\n",
"Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
"\n",
"/usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning:\n",
"\n",
"Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"X_pca = pca_alg.fit_transform(unseen_projected_train) \n",
"show_space(X_pca, title=\"3D Space\", colors=pd.DataFrame(unseen_train_labels).replace(categories_mapping), color_by=\"category\", show_3D=True)\n",
"print(\"Explained variance per component:\", pca_alg.explained_variance_ratio_)\n",
"print(\"Comulative explained variance:\", pca_alg.explained_variance_ratio_.cumsum())"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 552
},
"id": "FPkM30UrD9YE",
"outputId": "d4fb9619-3ee6-42a9-8b37-81d8543f3dfe"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"2cde3de0-9687-4edf-9428-422209059a91\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"2cde3de0-9687-4edf-9428-422209059a91\")) {\n",
" Plotly.newPlot(\n",
" '2cde3de0-9687-4edf-9428-422209059a91',\n",
" [{\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Urology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Urology\", \"marker\": {\"color\": \"#636efa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Urology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-1.7212491035461426, 1.5111773014068604, 2.6866419315338135, -0.3225805163383484, -1.081329107284546, 2.5050694942474365, -1.3681304454803467, 1.7592796087265015, -2.230875015258789, 1.3507490158081055, -2.362480878829956, -1.4932903051376343, 2.3787221908569336, -2.135443925857544, 1.8705856800079346, -1.8408266305923462, -0.5401941537857056, -2.3373687267303467, -1.538455843925476, -2.4444408416748047, -2.262754440307617, 0.05360310897231102, -2.3998427391052246, -0.06672627478837967, -2.4434986114501953, 2.7748775482177734, -2.2784173488616943, 0.9615586996078491, 0.5392005443572998, -2.431716203689575, -2.202096939086914, -2.015932559967041, -0.9383068084716797, -1.0180178880691528, 1.3957056999206543, 1.889197587966919, -1.9648147821426392, 0.8161887526512146, -0.21898066997528076, -2.370396137237549, -1.8585318326950073, -2.3461055755615234, 2.2031493186950684, -1.3095645904541016, -2.345235824584961, -2.2497942447662354, 0.036920979619026184, -1.993791103363037, -1.8118500709533691, -1.9291062355041504, -1.7220804691314697, -2.4361908435821533, 0.08682412654161453, 2.1181282997131348, 0.8223637938499451, -2.2958664894104004, -2.180791139602661, -2.332892894744873, -2.075024127960205, -2.314739227294922, -1.3731732368469238, -2.1972169876098633, -2.3203787803649902, -2.007878541946411, -2.568035840988159, -1.522456169128418, -1.3680297136306763, -1.8310770988464355, -2.432467222213745, -1.9157507419586182, -2.275167465209961, -2.4688327312469482, -2.364429235458374, -1.792818307876587, 2.8829867839813232, 0.7862794995307922, 2.2354907989501953, -2.516774892807007, -2.1815600395202637, -1.8967034816741943, -2.124467372894287, 1.5156124830245972, -1.9361125230789185, -2.2017149925231934, 2.718109130859375, 2.400670289993286, 2.412959575653076, -2.357468366622925, -2.381606101989746, -0.8825152516365051, -2.341715097427368, -2.235643148422241, -0.7816363573074341, -2.2518997192382812, -2.3039815425872803, -2.310307025909424, 1.1274986267089844, -2.1652984619140625, -1.9401055574417114, -1.7002605199813843, 2.385202646255493, -2.335002899169922, -2.1471853256225586, -0.6597983241081238, -1.642917275428772, -2.185993194580078, 0.7041155099868774, -2.4574637413024902, 0.3941732943058014, -2.5035197734832764, -2.481606960296631, 2.227167844772339, 1.6195718050003052, -0.8947026133537292, 0.13100498914718628, 0.509673535823822, -0.6746761202812195, -2.214585065841675, -1.9895445108413696, -1.4397540092468262, 2.3224213123321533, -2.368194818496704, -2.2255003452301025, -2.5144758224487305, -2.423039197921753], \"y\": [0.24754109978675842, 0.4794620871543884, 0.5061240196228027, 1.1345643997192383, 0.3741098940372467, 0.25489720702171326, 1.1262346506118774, 0.6413538455963135, -0.5411182045936584, 0.6107062697410583, -0.666922390460968, -1.3472834825515747, 0.406879186630249, 0.27782541513442993, 0.3150480091571808, -2.202749729156494, 0.9569078683853149, 0.38255274295806885, -0.3819846510887146, 0.22421739995479584, -0.041377563029527664, 1.809982419013977, -1.0026935338974, 1.805594563484192, 0.5360783934593201, -0.9748327136039734, -0.42381805181503296, 1.1519768238067627, -0.6611037254333496, -0.7710265517234802, -1.1251472234725952, -1.7629271745681763, -0.12045827507972717, 1.0856544971466064, 1.7480723857879639, -0.9586282968521118, -2.207261085510254, 1.221834421157837, 1.3824238777160645, -1.5620828866958618, -2.2685859203338623, -0.6582393050193787, 0.5320734977722168, 1.0001518726348877, -0.44462287425994873, -0.5779588222503662, -0.8948490619659424, -0.9969071745872498, 1.127604365348816, -1.7136740684509277, 1.1469686031341553, -0.6536511182785034, 1.6904973983764648, -0.12052693217992783, 1.1789661645889282, -1.5427383184432983, 0.055004946887493134, -0.9381082057952881, -1.7384542226791382, -0.4860312044620514, 1.2499686479568481, -0.5433834195137024, 0.16909590363502502, -1.879262924194336, -0.8050326704978943, 0.09148718416690826, 0.8827790021896362, -0.25685933232307434, -1.108242154121399, 0.8344447016716003, -0.3576802611351013, 0.01960202492773533, -0.4290046989917755, 0.39144569635391235, 0.1932901293039322, 0.12468012422323227, 0.5303542613983154, -0.3344791531562805, -1.2157788276672363, 0.5287452936172485, 0.19789473712444305, 0.5739216208457947, 0.8826155066490173, 0.4510606527328491, -1.3737925291061401, -1.0949612855911255, 1.1427819728851318, -1.2359392642974854, -0.5300427675247192, 1.6397145986557007, -1.1666796207427979, -1.727278232574463, -0.8334519267082214, -0.10657022893428802, -1.577993631362915, -1.5784953832626343, 0.4418374001979828, -1.1162514686584473, 0.29064705967903137, 0.48897987604141235, 0.7879748344421387, 0.09825687110424042, 1.1771559715270996, 0.32397085428237915, 0.4760344326496124, 0.4448879063129425, 1.438308596611023, -0.41263580322265625, 1.6275599002838135, -0.6271882057189941, -0.5474314093589783, 0.4179365336894989, 1.0179425477981567, 0.933844804763794, 1.4866939783096313, 0.6560227274894714, 1.2598693370819092, -1.676999568939209, -2.007105588912964, 1.251059889793396, 1.1937448978424072, -0.3236478567123413, -1.7614458799362183, -0.7815577983856201, -1.1630122661590576], \"z\": [1.2016714811325073, 0.5267586708068848, 0.746204137802124, 0.053595446050167084, 0.36420515179634094, 0.4474903345108032, -0.13390418887138367, 0.5734020471572876, 0.8159664273262024, 0.3140914738178253, -0.3292502760887146, 0.29428282380104065, 0.2714402675628662, -0.9271568059921265, 0.7728062272071838, 0.6620782017707825, 0.2410700023174286, 0.19993121922016144, 1.2126953601837158, 0.206304669380188, -0.49045178294181824, -0.8662009239196777, 0.2389661818742752, 0.6791689395904541, 0.5139316320419312, -0.14823636412620544, -0.4459531307220459, 0.7873133420944214, 0.26245325803756714, -0.0015320522943511605, 0.9288816452026367, 0.7803125977516174, 0.5354962944984436, -0.46681493520736694, -0.7495015859603882, 0.36202847957611084, 0.26462888717651367, -0.19198203086853027, -0.12508948147296906, 0.261200487613678, 0.45856747031211853, -0.4161584675312042, 0.14935778081417084, -0.2938382923603058, 0.52528315782547, 0.8597779273986816, -0.22997219860553741, 1.1568394899368286, 0.17567428946495056, 0.6873365640640259, 0.15206539630889893, 1.1219630241394043, 0.22544962167739868, -0.7022217512130737, -0.1587672233581543, 0.08094101399183273, -0.4283048212528229, 0.8197863698005676, 0.5729642510414124, 0.7336968183517456, -0.5155317187309265, 0.9041098356246948, 0.9644437432289124, 0.7113234996795654, 1.0304038524627686, 0.22259818017482758, -0.0997086688876152, 1.192976713180542, 0.5585300326347351, 0.9594298005104065, 0.1174064502120018, 0.18055135011672974, 0.9184447526931763, 0.9564886093139648, 0.7670356631278992, 0.16162414848804474, -0.020991569384932518, 0.5829347372055054, 0.8343539834022522, -0.5011460781097412, 0.24766699969768524, 0.2801831066608429, -0.008066777139902115, 0.062300004065036774, -0.09588650614023209, 0.3162877857685089, 0.755580723285675, 0.487172931432724, 0.9587963223457336, 0.9207882881164551, 1.0598876476287842, -0.02971121110022068, 0.7644134163856506, -0.40460315346717834, 0.30435311794281006, 0.658114492893219, 0.5150240063667297, 0.557817816734314, 0.7471169829368591, 0.2852250933647156, 0.550588846206665, 1.3081586360931396, 1.6780511140823364, 0.178561270236969, 0.0912093073129654, 0.7335302829742432, 0.40865087509155273, 1.0827218294143677, 1.2345874309539795, 0.7162874341011047, 0.22340305149555206, 0.1563127040863037, 0.4180337190628052, -0.2578893005847931, -0.818550169467926, 0.43352746963500977, -0.012742852792143822, -0.19443418085575104, 0.5583176016807556, -0.19396497309207916, 1.0345115661621094, -0.1413320004940033, 0.2964603900909424, 0.6830585598945618, 0.5446720719337463]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Obstetrics / Gynecology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Obstetrics / Gynecology\", \"marker\": {\"color\": \"#EF553B\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Obstetrics / Gynecology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-1.7929811477661133, -2.1267459392547607, 1.6627737283706665, 2.6142494678497314, -2.300032615661621, 0.3405763506889343, -0.41139674186706543, 1.4174638986587524, -0.35338062047958374, -2.4379067420959473, -0.08648306131362915, 0.05038362368941307, 0.14657822251319885, -2.1771633625030518, 2.174086570739746, -0.17392808198928833, 1.3287965059280396, 1.4168591499328613, -2.466500997543335, 0.28698164224624634, 2.2313029766082764, 2.6105833053588867, -0.6073277592658997, 2.406909465789795, -2.1683480739593506, -1.8808804750442505, 2.3283274173736572, 2.3821616172790527, 2.231229066848755, 1.0835325717926025, -2.435504913330078, 2.6830363273620605, 2.442732334136963, -2.390321731567383, 2.9884071350097656, 1.3240435123443604, 1.0959752798080444, -0.18801380693912506, 1.7950167655944824, 2.7964534759521484, 2.288527727127075, 1.9456602334976196, -0.2736101448535919, -0.4239136278629303, -1.9032245874404907, 0.5316795110702515, 2.338716983795166, -1.2583106756210327, -2.0138907432556152, 2.5736045837402344, 2.1007323265075684, -2.0568323135375977, 1.8176624774932861, -1.5198017358779907, -2.2954282760620117, 0.2760140895843506, -2.433803081512451, -2.0024256706237793, -0.9849075078964233, 2.509084701538086, -1.5368125438690186, 0.8970962762832642, -1.740482211112976, -2.5035197734832764, -1.8866180181503296, 1.8642759323120117, 1.1931334733963013, -2.2462069988250732, 2.7566912174224854, 2.731456995010376, 2.666268825531006, -2.493183135986328, -1.951751470565796, 0.5850903987884521, -0.46561840176582336, -0.8352283835411072, -1.4655810594558716, -2.375619411468506, -2.341205358505249, 0.9344632029533386, 0.33290091156959534, -2.149716377258301, -0.7026745676994324, -2.3989429473876953, -0.7860182523727417, 1.0418586730957031, 2.781827449798584, 1.8469568490982056, -2.540276050567627, -1.5540883541107178, -2.4920947551727295, -2.3790953159332275, -1.2498825788497925, -0.2688376009464264, 0.9736657738685608, 1.7421472072601318, -2.179762125015259, 0.9351724982261658, -0.6316142678260803, -2.5932106971740723, -2.13740873336792, 1.9761099815368652, -1.910335659980774, -2.40408992767334, -2.478505849838257, -2.6168625354766846, -2.048051357269287, -1.5111467838287354, 0.39786073565483093, 1.334161400794983, -0.9239559769630432, -2.3834197521209717, 1.4686710834503174, -2.4285287857055664, -0.361882746219635, -0.9057469367980957, 2.8707573413848877, 2.932694673538208, -0.17796263098716736, 2.8071389198303223, -2.2765414714813232, -2.291004180908203, 2.2038233280181885, 1.325661063194275], \"y\": [1.1188617944717407, -1.9779372215270996, 0.7469077706336975, 0.6895766258239746, -1.573927879333496, 1.2604140043258667, 0.570419430732727, 1.1469972133636475, 1.8468014001846313, -0.5130088329315186, 1.2294584512710571, 1.5807605981826782, 1.3136539459228516, -1.8433661460876465, 0.605867326259613, 1.1600487232208252, 0.7064976096153259, 1.4769935607910156, -0.9803023338317871, 0.8232862949371338, -0.8097232580184937, 0.13773037493228912, 1.0781255960464478, 0.7429743409156799, 0.6166822910308838, -0.0026266141794621944, -0.7685085535049438, -0.18672436475753784, 0.23758278787136078, 0.482342392206192, -0.15717719495296478, -0.2273210883140564, 0.4484328329563141, -1.1896995306015015, -0.41973593831062317, 0.8431389927864075, 1.138190746307373, 1.3289942741394043, 0.14756964147090912, 1.0176146030426025, -0.4758946895599365, 1.6298469305038452, 1.2079097032546997, 1.3631683588027954, 0.492496520280838, 1.1921333074569702, 0.8232256174087524, 0.9698036313056946, -1.7325525283813477, -0.21685153245925903, -0.08100579679012299, 1.0999383926391602, 0.8398699164390564, 0.293362021446228, -1.5585039854049683, 1.3042824268341064, -1.5070786476135254, 0.9920275211334229, 1.0622408390045166, -0.83769291639328, 0.4554654061794281, 0.7664507031440735, 0.7400079965591431, -0.6271882057189941, -2.328974723815918, 0.4379119277000427, 1.2139737606048584, -0.6351907253265381, -0.021192602813243866, -0.011785013601183891, -0.2947365939617157, -1.1910014152526855, 0.524979829788208, 0.9070993065834045, 1.7805544137954712, 1.1855756044387817, 1.587369680404663, -0.25874871015548706, -1.1128629446029663, 1.335559368133545, 2.5536787509918213, -1.9302418231964111, 1.1598683595657349, -1.0117881298065186, 1.2241895198822021, 1.0147126913070679, -0.9767575263977051, 0.7567481994628906, 0.18656368553638458, 0.3901614248752594, -0.3221770226955414, -0.41022777557373047, 1.383554220199585, 1.2774966955184937, 0.7543158531188965, 0.643500030040741, -1.3514528274536133, 1.4393607378005981, 0.6755951642990112, -0.07392488420009613, 0.24145463109016418, 0.8968111872673035, -0.8727613687515259, -0.5236150026321411, -0.515318751335144, -0.9012389779090881, 0.3933241069316864, 1.5327014923095703, 0.8016431927680969, 0.2939741611480713, 1.332340121269226, -0.9780808687210083, 0.9350977540016174, -0.31340694427490234, 2.814243793487549, 1.073606252670288, 1.022068977355957, -0.7988241314888, 0.9626415371894836, -0.47665274143218994, -0.9366388320922852, -0.6009005904197693, -0.7819618582725525, 0.8581045269966125], \"z\": [0.29347026348114014, 0.29041746258735657, 0.5106698274612427, 0.6505405306816101, 0.5735435485839844, 1.488349199295044, -1.3690764904022217, -0.4160573482513428, 0.564536988735199, 0.2796247899532318, -0.41151031851768494, -0.7039303779602051, -0.628471851348877, 0.2603631615638733, 0.2581450343132019, 0.6941996216773987, 0.2229079157114029, 0.2584337592124939, -0.03192541003227234, -1.210134744644165, -0.6544760465621948, -0.2708079516887665, -0.1080082356929779, 0.49996572732925415, -0.08503980934619904, 0.4707871079444885, -0.692202627658844, -0.4246559739112854, -0.48015859723091125, -0.7703576683998108, 0.7388322353363037, 0.45581620931625366, 0.13423438370227814, 0.6891014575958252, -0.00233148573897779, -0.23410971462726593, -0.018966631963849068, -0.7994437217712402, -0.6915814280509949, 1.057368278503418, -0.5755038857460022, -0.5033977031707764, -0.27550238370895386, -0.3791044354438782, -0.599089503288269, 0.3428955078125, 0.6158480048179626, -0.42807596921920776, 0.30602169036865234, 0.09056870639324188, -0.2172025740146637, 0.37582916021347046, -0.2145502269268036, 0.15868787467479706, 0.6528336405754089, -0.4329221844673157, 0.694424569606781, 0.23632854223251343, -0.20734165608882904, -0.2428097128868103, 0.15104006230831146, -0.7157825231552124, -0.10535670071840286, 0.7162874341011047, 0.45646753907203674, -0.20849324762821198, -0.42107492685317993, 1.2261319160461426, 0.28287452459335327, 0.37414005398750305, 0.8674159646034241, 0.6040915846824646, 0.4134014844894409, 0.4164574146270752, -0.4587092995643616, -0.039830613881349564, 0.5054196119308472, -0.4940422773361206, 0.8252369165420532, -0.10711885243654251, 1.7978428602218628, 0.3394714295864105, 0.3183314800262451, 0.5676712989807129, 0.16358450055122375, -0.9448742270469666, -0.014378740452229977, 0.20896443724632263, 0.5809535384178162, 0.008823183365166187, 0.4652283489704132, 0.054595351219177246, -0.557009756565094, -0.34741801023483276, -1.1463673114776611, -0.18564411997795105, 0.5194884538650513, 0.004581359215080738, 0.7158094644546509, 1.265987753868103, -1.1330773830413818, 0.796701192855835, 1.266044020652771, 0.12375539541244507, 0.02554227039217949, 0.7197620272636414, 0.6419245600700378, 1.0725616216659546, -1.0141795873641968, -0.7935722470283508, 0.7007043957710266, 0.00881248153746128, -0.7135640382766724, 0.10727088153362274, -0.4905238747596741, 0.26623067259788513, 0.9937573671340942, 0.3668341040611267, 0.653032660484314, 0.23232252895832062, 0.19318071007728577, 0.19106358289718628, -0.5875625610351562, -0.5110419392585754]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Nephrology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Nephrology\", \"marker\": {\"color\": \"#00cc96\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Nephrology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-2.3537416458129883, -2.2614097595214844, 1.6038517951965332, -2.458925485610962, -2.0648531913757324, -2.3027682304382324, -1.6564747095108032, -1.961396336555481, -2.3951194286346436, 1.989348292350769, -2.4594719409942627, -2.1617343425750732, -2.4890406131744385, -1.5408707857131958, -1.9637006521224976, -2.341715097427368, -2.0100436210632324, -2.383026361465454, -1.3009662628173828, -2.535090208053589, -2.153186321258545, -2.431716203689575, -2.4652748107910156, -2.1691012382507324, -2.1471853256225586, 0.6416988968849182, -0.877723753452301, -2.448887825012207, -2.3031020164489746, -1.6574742794036865, -2.187610149383545, -2.1830196380615234, 1.2207111120224, -0.9950417280197144, -1.8977128267288208, -0.826858639717102, -2.096001625061035, -1.8814951181411743, -2.1857757568359375, 1.5248268842697144, -0.9063441753387451, -2.269075632095337, -1.9535119533538818, -2.3454642295837402, -1.8361546993255615, -2.021901845932007, -0.5401941537857056, -1.9895445108413696, -2.432467222213745, -2.1113927364349365, -2.3511600494384766, -1.6804088354110718, -0.1252792477607727, -2.2518997192382812, -2.288381338119507, -2.573878049850464, -0.43860775232315063, 0.5964306592941284, -2.333134889602661, -2.19722580909729, -2.119938611984253, -2.3039815425872803, -2.3353431224823, -1.9401897192001343, -1.7751290798187256], \"y\": [-0.5996163487434387, 0.7626084089279175, 0.5420758724212646, -0.49190181493759155, 0.254312127828598, -0.8824719786643982, -0.9021292924880981, -0.6677821278572083, 0.6415518522262573, -1.557904601097107, -1.1707662343978882, -0.5453729033470154, -0.38853511214256287, 0.12254432588815689, -0.5255849957466125, -1.1666796207427979, -0.5820477604866028, -0.5822430849075317, -0.8507251143455505, -0.21219858527183533, -0.2997080385684967, -0.7710265517234802, -0.8769946098327637, -0.07696745544672012, 1.1771559715270996, 0.8406672477722168, -0.7536985278129578, 0.15462082624435425, -0.22052261233329773, -0.40500330924987793, -0.35481610894203186, -1.02639639377594, 0.7070762515068054, 1.335148572921753, 0.6911495327949524, 1.1679010391235352, 0.1689211130142212, -1.5824018716812134, 0.5436040163040161, 0.9251405596733093, -0.6554912328720093, -0.3098942041397095, 1.1279301643371582, -0.698513925075531, 0.7058717012405396, -0.547356128692627, 0.9569078683853149, -2.007105588912964, -1.108242154121399, 0.5299288630485535, -0.661763072013855, 0.7105599045753479, 0.142148956656456, -0.10657022893428802, -0.8331120610237122, -0.28399157524108887, 1.3898853063583374, 0.6560431122779846, -1.3710905313491821, -0.43710118532180786, -0.8053984045982361, -1.577993631362915, -0.4187852442264557, -0.4016675055027008, -1.0277884006500244], \"z\": [1.148823618888855, 0.36429810523986816, 1.5057566165924072, -0.2609550654888153, -0.41842523217201233, -0.743246853351593, 0.3669010400772095, -1.291638970375061, 1.145248532295227, 0.10814540088176727, 0.9000125527381897, 1.2553601264953613, 1.2486512660980225, -1.098585605621338, -1.1311973333358765, 1.0598876476287842, -1.0806262493133545, -0.19242918491363525, 0.923397958278656, -0.5595906972885132, -0.7523713111877441, -0.0015320522943511605, 0.7799474596977234, -0.5051915645599365, 1.6780511140823364, -0.0875464379787445, 0.5306264758110046, 0.5061421394348145, -1.2261768579483032, 0.13840746879577637, -0.6345042586326599, -1.0451922416687012, 1.5755935907363892, -0.030931556597352028, -0.24742422997951508, -0.40407419204711914, -1.2105907201766968, 0.8993343710899353, -0.45533615350723267, 0.3521306812763214, 0.7288306951522827, -0.6967097520828247, 0.28026124835014343, 1.1377718448638916, -0.2308277189731598, -1.0429270267486572, 0.2410700023174286, 0.5583176016807556, 0.5585300326347351, -0.2052590250968933, 1.310523509979248, -0.01751645654439926, 1.4506200551986694, -0.40460315346717834, -1.000074863433838, 0.4845743477344513, -0.09646608680486679, 1.6031203269958496, 0.5047191977500916, -0.6323651075363159, -0.9411129951477051, 0.30435311794281006, -0.514651358127594, -1.1236169338226318, 0.4398561418056488]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=ENT - Otolaryngology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=ENT - Otolaryngology\", \"marker\": {\"color\": \"#ab63fa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=ENT - Otolaryngology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.2758424282073975, 1.9470402002334595, 1.3420623540878296, -2.0070979595184326, -2.3144924640655518, -2.184142589569092, 2.6098978519439697, 2.2800374031066895, 2.589780569076538, -2.3144924640655518, -2.359071731567383, -0.03531856834888458, 2.343136787414551, 2.852813482284546, -0.8100534081459045, -2.304752826690674, -0.9755870699882507, 2.8226475715637207, -1.5434017181396484, 2.618243932723999, -1.6769074201583862, 2.3358681201934814, 1.0461267232894897, -1.9733740091323853, -1.0025770664215088, -1.694534420967102, 2.0364840030670166, -2.131824254989624, -0.9513904452323914, -1.597489595413208, 2.127864360809326, -2.078752040863037, 2.8189899921417236, -1.5214613676071167, -0.18007023632526398, 1.9073880910873413, -0.22904951870441437, 0.8332411050796509, -0.9965096116065979, -1.2926318645477295, -1.9511082172393799, -1.1231189966201782, 1.3336530923843384, -0.31592464447021484, 2.69458270072937, -2.134697675704956, 1.0467922687530518, 2.3074400424957275, -1.3577091693878174, 1.0570746660232544, -0.7634127736091614, -1.8645819425582886, -2.015688896179199, 1.2159764766693115, 1.720831036567688, 2.5581235885620117, -1.9072644710540771, -2.2767956256866455, 2.530850887298584, 2.223731279373169, 2.6062183380126953, -2.5717215538024902, 2.443645477294922, -2.2658042907714844, 2.97782826423645, 1.1849415302276611, -2.087707281112671, 0.7146252393722534, 2.816636323928833, 2.9860520362854004, 2.539952278137207, 2.380300998687744, 2.6153500080108643, -1.993485450744629, 2.3160345554351807, -1.8880739212036133, 2.455601215362549], \"y\": [0.29955118894577026, 1.3101563453674316, 1.056713581085205, -0.8183355927467346, -0.13136020302772522, -0.8796387910842896, -1.6396251916885376, 0.7012045979499817, 0.21428753435611725, -0.13136020302772522, -0.044899579137563705, 1.3000510931015015, -1.634246826171875, -0.3648633062839508, 1.5457286834716797, -0.3776187300682068, 1.2374496459960938, -1.2342464923858643, 0.8496202826499939, 0.4071929454803467, 1.1080859899520874, 0.6308790445327759, 1.1049453020095825, -0.9071926474571228, 1.1251721382141113, 0.07079485058784485, 0.7038902044296265, 0.10526206344366074, 1.1113135814666748, 1.2347475290298462, 0.8926038146018982, 1.3461750745773315, -0.36642494797706604, 0.6830551624298096, 1.3568878173828125, 0.4465322494506836, 1.3506439924240112, -2.5951931476593018, 1.2862520217895508, 0.42023515701293945, 0.06275048851966858, 1.2252991199493408, 0.9799168109893799, 1.1361267566680908, -0.20548509061336517, -0.13373322784900665, 1.048897385597229, 0.26309436559677124, 0.7496869564056396, 0.9505952000617981, 1.1286497116088867, 0.47761157155036926, -0.5371419787406921, 1.0128237009048462, 0.8738145232200623, -1.2316642999649048, 0.7640705108642578, -0.07312946766614914, -0.3577270805835724, 0.5010163187980652, -0.7898078560829163, -0.5154789090156555, 0.40459001064300537, 0.09177842736244202, -0.7285146117210388, 1.7728110551834106, 0.6330702304840088, 1.3530163764953613, -0.8118926286697388, -0.5801042318344116, 0.24084167182445526, 1.252163290977478, -0.8284578919410706, -0.6675111055374146, -0.5108120441436768, -0.46394169330596924, 0.21220944821834564], \"z\": [-0.04046827554702759, 0.5455295443534851, -0.08603067696094513, -1.2639415264129639, -0.1804501712322235, -0.9659686088562012, -0.3448072075843811, 0.28476643562316895, 0.28017809987068176, -0.1804501712322235, -0.06618893146514893, -0.4985002875328064, -0.30399999022483826, 0.5546837449073792, -1.0864259004592896, -0.8078212738037109, -0.37953752279281616, -0.507858395576477, -0.6484285593032837, 0.6180315017700195, -0.0743177980184555, 0.26464006304740906, -0.3743175268173218, -1.3025563955307007, -0.3017515242099762, -1.0798770189285278, -0.01768631301820278, -0.6121441721916199, -0.7540363073348999, 0.06716606020927429, 0.017922796308994293, -1.0825974941253662, 0.15428772568702698, -0.7917059063911438, -0.8676404356956482, 0.2923796474933624, -0.8186075687408447, -0.5657902359962463, 0.19096598029136658, -0.9788443446159363, -0.8895472884178162, 0.14165589213371277, -0.2522376775741577, 0.04413745552301407, 0.1931380182504654, -0.5957825779914856, 0.4275200366973877, 0.7980614900588989, -1.0991034507751465, 0.10105045884847641, -0.6077736616134644, -0.5003678202629089, -1.1148015260696411, -0.501894474029541, -0.03774727135896683, -0.00303305359557271, -1.3844797611236572, -1.0065841674804688, -0.3373982906341553, -0.006091573275625706, 0.65534508228302, 0.35537075996398926, 0.2643160820007324, -0.19735312461853027, 0.012193750590085983, 0.37393999099731445, -0.09276805073022842, -0.3931121826171875, 0.0001744752808008343, 0.018218761309981346, 0.22019445896148682, 0.9745399355888367, 0.10097883641719818, -1.2208881378173828, 0.4947115182876587, -1.2310199737548828, 0.023500429466366768]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Hematology - Oncology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Hematology - Oncology\", \"marker\": {\"color\": \"#FFA15A\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Hematology - Oncology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.610356569290161, 2.486736297607422, 0.9439558386802673, 0.5316795110702515, 0.619849681854248, 2.3861777782440186, 2.4564735889434814, -2.1683480739593506, 1.9761099815368652, -1.9361546039581299, 2.896989583969116, -1.3889731168746948, -1.9558569192886353, -1.3577091693878174, -2.2238101959228516, -2.3295445442199707, 0.21432708203792572, -2.2772274017333984, -0.31705644726753235, 0.3405763506889343, -0.18678851425647736, 2.3659422397613525, 0.861096203327179, -2.5466508865356445, -2.6923556327819824, -2.416585683822632, 0.23682381212711334, -1.6040065288543701, 2.6788463592529297, -2.217503786087036, -1.9321542978286743, -2.3778326511383057, -1.9648147821426392, -0.35402488708496094, -2.0866873264312744, -2.009694814682007, 2.563565254211426, -0.35338062047958374, -2.466500997543335, -0.12916934490203857, -0.5361264944076538, 2.499199867248535, -1.8254059553146362, -2.0355052947998047, -1.8752667903900146, 0.44155803322792053, -1.949032187461853, -2.1468827724456787, 0.25074338912963867, -1.5111467838287354, -1.054007649421692, 1.1790043115615845, 2.812319755554199, -2.304752826690674, -1.5458030700683594, 2.7374539375305176, 3.1116013526916504, 0.5399731993675232, 1.9578919410705566, -1.5340580940246582, -2.5179994106292725, -1.6669648885726929, -2.0683462619781494, 2.817479133605957, 2.826143980026245, -0.6316142678260803, -2.246769905090332, -1.8285897970199585, -2.2856061458587646, 2.760239362716675, 2.2357161045074463, 2.2823758125305176], \"y\": [0.7913917303085327, -0.21558497846126556, 2.068021297454834, 1.1921333074569702, 1.923940896987915, 1.1865150928497314, -1.2428029775619507, 0.6166822910308838, 0.8968111872673035, 0.794203519821167, -1.1903992891311646, 0.6562179923057556, -0.5943650603294373, 0.7496869564056396, -0.47010594606399536, -1.311535358428955, 0.8533408641815186, -0.391728937625885, 1.329648494720459, 1.2604140043258667, 1.7141236066818237, 1.0013419389724731, 1.2741813659667969, 0.12444039434194565, -0.3186758756637573, -0.8001312017440796, 0.939724326133728, 0.1868760734796524, -0.6646332144737244, -0.4314959943294525, 0.11631935089826584, -0.5755830407142639, -2.207261085510254, 1.2298270463943481, -0.027779914438724518, -0.2245328724384308, 0.14656932651996613, 1.8468014001846313, -0.9803023338317871, 1.3300127983093262, 0.4076114594936371, -0.20773884654045105, -0.6250245571136475, -2.0293467044830322, 0.6420595049858093, 1.2269810438156128, -0.07711577415466309, -0.6801130175590515, -2.7989416122436523, 1.5327014923095703, -0.310604453086853, 1.9453879594802856, -0.1538264900445938, -0.3776187300682068, 1.6577279567718506, -0.8213813304901123, -0.877709686756134, 1.1759778261184692, 1.3274431228637695, 0.7271907925605774, -0.9895499348640442, 0.9184387922286987, -0.8606178164482117, -0.6264833807945251, -0.09824071824550629, 0.6755951642990112, 0.4266516864299774, 1.3794068098068237, 0.6798806190490723, -1.3871278762817383, 0.28667038679122925, 0.8480977416038513], \"z\": [0.843970775604248, -0.6393712162971497, 1.8363107442855835, 0.3428955078125, -0.12527011334896088, 0.9113156199455261, -0.6884680390357971, -0.08503980934619904, 0.796701192855835, -0.1295951008796692, -0.3215070366859436, 0.2234618365764618, -1.4747265577316284, -1.0991034507751465, -0.9798568487167358, 0.41308215260505676, -0.6620479822158813, -0.589850664138794, -0.11865504831075668, 1.488349199295044, -1.0023365020751953, 0.7221971154212952, -0.443469762802124, 0.3807477653026581, 1.0121840238571167, 0.044755566865205765, -0.965154230594635, -1.192690372467041, 0.31469130516052246, -1.222395896911621, -0.8178375959396362, -0.4782070517539978, 0.26462888717651367, -0.36276423931121826, -0.5952940583229065, -0.8371492624282837, 0.006791245192289352, 0.564536988735199, -0.03192541003227234, 0.7610563635826111, 0.9474642276763916, -0.2327137589454651, -1.5233550071716309, 0.28292205929756165, -0.7254301905632019, -0.7148195505142212, -0.8202078342437744, -0.9944347143173218, -0.7373977303504944, 1.0725616216659546, -1.4113095998764038, 0.9817175269126892, 0.2857208251953125, -0.8078212738037109, -1.18899405002594, 0.162068173289299, -0.27728813886642456, -0.8402700424194336, 0.5499516725540161, -0.5706741809844971, -0.13239140808582306, -0.26693040132522583, -1.077530860900879, -0.4242793619632721, -0.5321426391601562, 0.7158094644546509, 0.8577471971511841, -1.2460490465164185, 0.5421546101570129, -0.3734058737754822, -0.6664215326309204, 0.7104979753494263]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Psychiatry / Psychology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Psychiatry / Psychology\", \"marker\": {\"color\": \"#19d3f3\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Psychiatry / Psychology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.831784725189209, 2.1699390411376953, 2.8019778728485107, 1.2503000497817993, 2.1041946411132812, -0.12740331888198853, 3.0047807693481445, -2.2614097595214844, 1.741876482963562, 2.819700002670288, 2.813103437423706, 2.882473945617676, 0.6221318244934082, 3.0187907218933105, 2.814307928085327, 2.8489246368408203, 2.844599962234497, 2.5071611404418945, 2.8041059970855713, 2.9156863689422607, 2.7350666522979736, 2.6622157096862793, 2.393491506576538, 2.4952304363250732, 1.4649848937988281, 1.7227884531021118, 2.200305938720703, -1.4779703617095947, -0.10393362492322922, 2.4510347843170166, 2.2633392810821533, 2.605621337890625, 2.67144775390625, 2.499643325805664, 2.7812440395355225, 2.5704505443573, 2.6448981761932373, -0.4480094909667969, 2.3429160118103027, -2.383026361465454, 2.8005120754241943, 1.3551896810531616], \"y\": [-1.0469306707382202, -1.9504351615905762, -0.8339493274688721, 0.902681827545166, -0.09887908399105072, 1.158347487449646, 0.10535172373056412, 0.7626084089279175, 1.1927275657653809, 0.5204066634178162, -0.9944197535514832, -1.422197699546814, 1.0883744955062866, -0.6882654428482056, -0.849748432636261, 0.4397616684436798, -1.1561528444290161, 1.0677107572555542, -0.9868682622909546, 0.2310611754655838, -0.15824316442012787, -1.560617446899414, -0.14587433636188507, -0.2628461420536041, 0.9678520560264587, 0.8549452424049377, 0.4568435847759247, 1.6874058246612549, 2.066192150115967, 0.07494344562292099, -2.006618022918701, -0.5268990993499756, -1.111631989479065, -0.44743722677230835, -1.143622636795044, -0.7272100448608398, -1.5183902978897095, 1.3882310390472412, -0.4004284739494324, -0.5822430849075317, -0.6385788321495056, 1.0512020587921143], \"z\": [0.13268111646175385, -0.6339392066001892, -0.1185619980096817, -0.2426432967185974, -0.3641962707042694, -0.4569292664527893, 0.8057361841201782, 0.36429810523986816, 0.4655363857746124, 0.2139689028263092, -0.16870248317718506, -0.09127426147460938, -0.2641508877277374, 0.04443373531103134, 0.11249682307243347, 0.5856567025184631, -0.459270179271698, 0.005999000743031502, -0.259750634431839, 0.5214291214942932, 0.19073466956615448, -0.15931151807308197, -0.220107764005661, -0.1676284521818161, -0.24660781025886536, 0.011191860772669315, 0.07449889928102493, 0.4903821647167206, 0.4553675055503845, -0.0788932517170906, -0.4940628409385681, -0.10341321676969528, -0.35228344798088074, -0.43358707427978516, -0.38874951004981995, -0.5455208420753479, -0.36570319533348083, 0.022582918405532837, -0.33005571365356445, -0.19242918491363525, -0.27568283677101135, -0.10764412581920624]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Pediatrics - Neonatal<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Pediatrics - Neonatal\", \"marker\": {\"color\": \"#FF6692\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Pediatrics - Neonatal\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [1.237585186958313, 2.5470223426818848, -1.694534420967102, 3.0828938484191895, 2.6870083808898926, -0.7450354099273682, -2.1634678840637207, 2.8946144580841064, 2.8914036750793457, -1.505418062210083, 2.817479133605957, -1.993528127670288, -1.9378894567489624, 1.7605187892913818, 0.6782903075218201, -0.11555369943380356, 0.3542952835559845, 2.127864360809326, 2.1133830547332764, -2.1905128955841064, -1.9526702165603638, -1.6040065288543701, -2.1400067806243896, -0.6845076084136963, -1.8628473281860352, -1.2793991565704346, 2.2953288555145264, -1.8101204633712769, -1.9494221210479736, -2.2776119709014893, 2.8471038341522217, -1.8078492879867554, -2.0959014892578125, 0.896114706993103, 0.4413599669933319, -1.8562732934951782, -2.153203010559082, -1.081329107284546, -2.358988046646118, -1.7756328582763672, -1.5037784576416016, 2.3358681201934814, 2.1715967655181885, 1.690308690071106, -2.157067060470581, 2.7276861667633057, 2.2476577758789062, 0.9235883355140686, -2.3203787803649902, 1.2931885719299316, 1.5629768371582031, 1.521345853805542, -2.046466588973999, 2.792755365371704, -2.1473448276519775, -0.6951793432235718], \"y\": [-2.242832660675049, -0.7999235391616821, 0.07079485058784485, -0.5296179056167603, -0.7931530475616455, 1.651133418083191, -0.9506859183311462, 0.2330189049243927, -0.0377822145819664, 1.1537058353424072, -0.6264833807945251, -1.365930438041687, -0.6531793475151062, 0.7653844952583313, 2.0393192768096924, 0.8814558386802673, 1.238789677619934, 0.8926038146018982, -2.211831569671631, -1.8493269681930542, -0.6045861840248108, 0.1868760734796524, -1.8465553522109985, 1.1816033124923706, -0.513480007648468, 1.3711555004119873, 1.0194916725158691, -0.35494324564933777, 1.237330675125122, -1.6752657890319824, -0.3233634829521179, 0.7202998399734497, 1.3610138893127441, 1.6186753511428833, 2.3918724060058594, 0.5845546126365662, -0.07837735116481781, 0.3741098940372467, -0.2816590964794159, -2.420815944671631, 0.489010214805603, 0.6308790445327759, 0.32526206970214844, 0.8532620072364807, 0.18850471079349518, 0.606198787689209, 0.32139989733695984, 1.8710980415344238, 0.16909590363502502, 1.176438331604004, 0.5567502379417419, -2.434701919555664, 0.4063449203968048, -1.13461172580719, 0.565768301486969, 1.9435189962387085], \"z\": [-0.2544595003128052, -0.43049976229667664, -1.0798770189285278, -0.4852025806903839, -0.2711372971534729, -0.9737062454223633, -1.0413004159927368, 0.6802411675453186, 0.656907856464386, -1.1925418376922607, -0.4242793619632721, 0.9775606989860535, -1.3880640268325806, -0.1268446445465088, -0.8131972551345825, -1.0108273029327393, -0.5027461647987366, 0.017922796308994293, -0.30605483055114746, 0.18478360772132874, -1.410136342048645, -1.192690372467041, 0.45417675375938416, -1.0339852571487427, -1.374443769454956, -1.282430648803711, 1.4820139408111572, -1.2411388158798218, -0.7328531742095947, 0.2671264410018921, -0.10336486250162125, -0.7929795384407043, 1.2027907371520996, -0.41457951068878174, 0.8345626592636108, -1.3543707132339478, -0.7976810336112976, 0.36420515179634094, -0.6816854476928711, 0.20181050896644592, -1.6404582262039185, 0.26464006304740906, -0.06839445978403091, -0.054346393793821335, -0.8891767263412476, 0.6605481505393982, -0.009787636809051037, 0.8095277547836304, 0.9644437432289124, -0.8546790480613708, -0.3902590572834015, -0.3966968059539795, -0.9172880053520203, -0.04219882935285568, 0.060939740389585495, -1.0523573160171509]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Ophthalmology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Ophthalmology\", \"marker\": {\"color\": \"#B6E880\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Ophthalmology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.869608163833618, 2.717181444168091, 2.7810537815093994, 1.1468435525894165, 2.7248332500457764, 2.743468999862671, 2.5632741451263428, 2.482313394546509, 2.789759874343872, 2.732928514480591, 2.7522571086883545, 2.513244152069092, 2.9029102325439453, 2.563565254211426, 2.8013522624969482, 2.712348222732544, 2.8804056644439697, 2.689700126647949, -1.7987116575241089, 2.8713369369506836, 2.6994528770446777, 1.6802215576171875, 2.653550863265991, 2.3782799243927, -0.1242792084813118, 2.6168572902679443, 2.69661021232605, 2.7422006130218506, -1.0608129501342773, 2.0635619163513184, 2.6497538089752197, 2.8882148265838623, 2.5704503059387207, 2.482313394546509, 2.431610584259033, 2.7434937953948975, 2.713120460510254, 2.779064655303955, 2.674893617630005, 2.348262310028076, 2.710087537765503, 2.246640682220459, 2.8645012378692627, 2.8682570457458496, 2.6528847217559814, 2.2158310413360596, 2.4623048305511475, 2.704310178756714, 2.543858051300049, 1.4296947717666626, 2.785883665084839, 2.7719078063964844, 2.484649896621704, 1.9050981998443604, 2.6594858169555664, 2.782116413116455, 2.7232255935668945, 0.579917848110199, 2.7883150577545166, 2.3789029121398926, 2.649658203125, 1.674019694328308, 2.6927287578582764, 2.8201253414154053, 2.704519748687744, 2.8207287788391113], \"y\": [-0.5416637659072876, -0.47396647930145264, -1.0940073728561401, 1.966156005859375, -0.7239899635314941, -0.8916839957237244, -1.3642462491989136, -1.7755972146987915, -1.0880037546157837, -0.8110872507095337, -1.1806397438049316, -1.5881516933441162, -0.9637622833251953, 0.14656932651996613, -1.2387306690216064, -1.1932371854782104, -0.7109915614128113, -1.4073518514633179, 0.4136473834514618, -1.240252137184143, -1.4287662506103516, -2.0323352813720703, -0.9763500690460205, -1.8289986848831177, 1.4593185186386108, -0.446119487285614, -1.09048593044281, -1.2795045375823975, 1.5597219467163086, -1.7903951406478882, -0.6945629119873047, -1.1815564632415771, -0.7218374609947205, -1.7755972146987915, -1.6541094779968262, -1.2122788429260254, -1.4005649089813232, -0.2053546905517578, -1.2749481201171875, -1.6748782396316528, -1.3360399007797241, -1.7792779207229614, -0.6065042614936829, -1.0063689947128296, -1.4221607446670532, -1.7918657064437866, 0.7643660306930542, -0.6667656302452087, -0.12072473764419556, 0.34633979201316833, -0.6933357119560242, -1.093258023262024, -0.9787320494651794, -1.783420205116272, -1.3922767639160156, -1.0038669109344482, -1.2217841148376465, 2.151754379272461, -1.3061013221740723, -0.11914552748203278, -0.38515621423721313, -2.209383726119995, -0.5077705979347229, -0.08454273641109467, -0.8352178335189819, -0.8864613771438599], \"z\": [0.3569832146167755, -0.12013854086399078, -0.15409992635250092, -0.040339913219213486, -0.2534710466861725, 0.03485286608338356, -0.4284626543521881, -0.035513464361429214, -0.21094854176044464, -0.18454864621162415, -0.012203947640955448, -0.5449694395065308, -0.17671725153923035, 0.006791245192289352, -0.34049931168556213, -0.2290901392698288, 0.2711505591869354, -0.2664434015750885, -0.6733751893043518, -0.32101693749427795, -0.33708953857421875, -0.2828453779220581, -0.4321208894252777, -0.3814719021320343, -0.24407193064689636, -0.17343711853027344, -0.24468585848808289, -0.48161935806274414, 0.18503201007843018, -0.03884119167923927, 0.7369706034660339, -0.23269011080265045, -0.4442622661590576, -0.035513464361429214, -0.22615113854408264, -0.21422623097896576, -0.1651618927717209, 0.5642626285552979, -0.3467363119125366, -0.21135908365249634, 0.13176773488521576, -0.2226054072380066, 0.3886928856372833, -0.17314642667770386, -0.2121383398771286, -0.3319023549556732, 0.786084771156311, -0.2169492244720459, -0.18062618374824524, 0.458827942609787, -0.24083071947097778, -0.08225125819444656, 0.54071044921875, 0.14692096412181854, -0.07287157326936722, -0.11880218982696533, -0.26950985193252563, 0.19934576749801636, -0.47272923588752747, 0.37695249915122986, -0.4367086887359619, -0.5277196168899536, 0.1637752801179886, 0.4249832332134247, -0.3109405040740967, -0.040153563022613525]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"tracegroupgap\": 0, \"x\": 1.1, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"margin\": {\"t\": 60}, \"scene\": {\"domain\": {\"x\": [0.0, 1.0], \"y\": [0.0, 1.0]}, \"xaxis\": {\"title\": {\"text\": \"COMP1\"}}, \"yaxis\": {\"title\": {\"text\": \"COMP2\"}}, \"zaxis\": {\"title\": {\"text\": \"COMP3\"}}}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"3D Space\", \"x\": 0.5}, \"width\": 900},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('2cde3de0-9687-4edf-9428-422209059a91');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Explained variance per component: [0.6529172 0.17009008 0.06527393]\n",
"Comulative explained variance: [0.6529172 0.8230073 0.8882812]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"X_pca = pca_alg.fit_transform(unseen_projected_test) \n",
"show_space(X_pca, title=\"3D Space\", colors=pd.DataFrame(unseen_test_labels).replace(categories_mapping), color_by=\"category\", show_3D=True)\n",
"print(\"Explained variance per component:\", pca_alg.explained_variance_ratio_)\n",
"print(\"Comulative explained variance:\", pca_alg.explained_variance_ratio_.cumsum())"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 552
},
"id": "SBzM6ETkD1tN",
"outputId": "c760cf05-1a91-4ed2-af8d-fe0d41ffec3c"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div>\n",
" <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>\n",
" <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-latest.min.js\"></script> \n",
" <div id=\"0c39ac76-f835-45e4-b5ef-46b99283d934\" class=\"plotly-graph-div\" style=\"height:500px; width:900px;\"></div>\n",
" <script type=\"text/javascript\">\n",
" \n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"0c39ac76-f835-45e4-b5ef-46b99283d934\")) {\n",
" Plotly.newPlot(\n",
" '0c39ac76-f835-45e4-b5ef-46b99283d934',\n",
" [{\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Obstetrics / Gynecology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Obstetrics / Gynecology\", \"marker\": {\"color\": \"#636efa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Obstetrics / Gynecology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-1.9442929029464722, -2.2060625553131104, 0.00835513137280941, -0.5831798315048218, -1.2829681634902954, 2.7446951866149902, -2.0545856952667236, -2.4501514434814453, 1.325818419456482, -2.3762662410736084, 2.818814516067505, -1.9514433145523071, -2.1789376735687256, -1.90884268283844, -2.18784761428833, -2.16660213470459, 2.7025928497314453, 0.28784966468811035, -0.3748462498188019, -2.2085280418395996, -1.5712907314300537, -2.3006908893585205, -1.990313172340393, 1.856896996498108, -1.9758998155593872, -2.115657329559326, -1.8857967853546143, -1.6912965774536133, -2.096937417984009, 1.7952277660369873, -1.668123483657837], \"y\": [-1.097151279449463, 1.6990097761154175, -1.7353715896606445, -1.1501919031143188, -1.1579244136810303, 0.11066021025180817, 1.5343339443206787, 0.8417325615882874, -0.8872814774513245, 1.2232366800308228, 0.376891553401947, -0.47890686988830566, 0.5384613275527954, 0.11405760049819946, 1.7460812330245972, 1.6976568698883057, -0.1854805052280426, -2.082719564437866, -2.312715530395508, 0.8385149240493774, -0.6442855596542358, 0.7956258058547974, 1.8588217496871948, -0.4343242645263672, -0.7222362160682678, -0.015975644811987877, -1.0064359903335571, -0.4180923104286194, 0.33050957322120667, -0.522890567779541, 2.461970806121826], \"z\": [-0.36374330520629883, 0.25805824995040894, -0.5756284594535828, 0.021840199828147888, -0.4848204553127289, 0.12430703639984131, 0.682403564453125, 0.26707616448402405, 0.13028618693351746, 0.2169601321220398, -0.0346791073679924, -0.1766452193260193, 0.42496734857559204, 0.634097695350647, 0.07304032146930695, 0.4791904091835022, 0.446390837430954, 0.2138751745223999, 1.6224902868270874, 0.5497355461120605, -1.0388901233673096, 0.6082693934440613, 0.21231681108474731, -0.3763073682785034, -0.207241490483284, 0.7914671897888184, 0.04636142775416374, 0.7629496455192566, 0.3699031472206116, -0.40690937638282776, -0.04883750528097153]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Hematology - Oncology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Hematology - Oncology\", \"marker\": {\"color\": \"#EF553B\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Hematology - Oncology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-2.0417866706848145, 1.6574499607086182, -2.1665427684783936, 2.307438850402832, 2.304558277130127, 1.7795454263687134, 2.0606634616851807, -2.254352569580078, -1.89252769947052, 2.653526782989502, -1.8617901802062988, -2.208630084991455, -1.3854037523269653, -1.4788024425506592, 0.748153805732727, 0.3611380457878113, -1.9726207256317139, -2.1080026626586914], \"y\": [2.0777039527893066, -0.8044036626815796, 0.1585649847984314, -0.8116586804389954, -0.5588132739067078, -0.8395977020263672, -0.34703996777534485, 1.5783107280731201, -1.080718755722046, 0.8792353868484497, 0.3531615436077118, 0.2533392608165741, -1.3799865245819092, -0.5765103101730347, -1.302984595298767, -1.4100308418273926, 0.38685256242752075, -0.7925792932510376], \"z\": [0.1411503404378891, -0.6151560544967651, -0.9577941298484802, 0.3141460716724396, -0.04460843652486801, 1.3143011331558228, -0.561724066734314, 0.2627032399177551, 0.32872235774993896, 0.033791761845350266, -1.4142247438430786, -0.5276703834533691, -0.1586773544549942, -0.9636446833610535, 0.3017357587814331, -0.38329410552978516, -1.1534761190414429, 0.17833161354064941]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Ophthalmology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Ophthalmology\", \"marker\": {\"color\": \"#00cc96\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Ophthalmology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.9232962131500244, 2.781911849975586, 2.9039840698242188, 2.4779701232910156, 2.9596974849700928, 2.6163644790649414, 2.891345262527466, 2.943671703338623, 2.5502519607543945, 2.7259318828582764, 2.005650520324707, 2.126063108444214, 2.184220790863037, 2.5100290775299072, 2.684772491455078, 2.6899914741516113, 2.844758987426758], \"y\": [0.7849854230880737, 1.0719289779663086, 0.43875938653945923, 1.3712282180786133, 1.0064737796783447, 0.5941497087478638, 0.3097899556159973, 0.9665910601615906, 1.4558216333389282, 1.1400843858718872, 2.0386080741882324, 2.0347886085510254, 1.8746803998947144, -1.123917579650879, 0.9565133452415466, 0.6895240545272827, 0.8098216652870178], \"z\": [-0.22474734485149384, -0.5283705592155457, 0.09801847487688065, -0.05590891093015671, -0.3730986714363098, 0.1308196634054184, 0.5382692217826843, -0.3487487733364105, -0.3984300494194031, -0.571381688117981, -0.8765523433685303, -0.7619796991348267, -0.6070998311042786, 0.950529932975769, -0.5258046984672546, 0.1407570242881775, -0.19703157246112823]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=ENT - Otolaryngology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=ENT - Otolaryngology\", \"marker\": {\"color\": \"#ab63fa\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=ENT - Otolaryngology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-0.950812041759491, -1.184045433998108, -2.297853946685791, 1.3291606903076172, 2.8777577877044678, 2.908782482147217, 2.901482105255127, 2.98974347114563, -0.3665984869003296, 2.393559217453003, -1.8148901462554932, -2.1978182792663574, 1.150846242904663, -1.7039673328399658, 0.7664071917533875, 2.209124803543091, -1.3764634132385254, 0.6171417832374573, -1.1078290939331055], \"y\": [-1.4241359233856201, -1.0066595077514648, 0.28061923384666443, -1.21341872215271, 0.5240027904510498, 0.5438703298568726, 0.30914542078971863, 0.4615064561367035, -1.1162569522857666, 1.691516637802124, -0.19120825827121735, 0.6115939617156982, -1.0277916193008423, -0.6635730266571045, 2.4598445892333984, -1.105147361755371, -1.6130247116088867, -1.4075064659118652, -1.244767665863037], \"z\": [-0.31507763266563416, -0.6964682936668396, -0.5254762768745422, -0.6679959297180176, 0.2210896909236908, 0.052827123552560806, -0.18919119238853455, 0.16031795740127563, -0.9011734127998352, -0.6559156775474548, -1.3077657222747803, -0.7197930812835693, -0.4389137029647827, -0.7059476971626282, -0.909381628036499, 0.5135070085525513, -0.424242228269577, -0.20535007119178772, 0.18657881021499634]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Nephrology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Nephrology\", \"marker\": {\"color\": \"#FFA15A\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Nephrology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [0.8106235265731812, -1.9800359010696411, -2.3117027282714844, -0.6017614603042603, -2.310380220413208, 2.5139811038970947, 2.4578511714935303, -2.078054428100586, 2.4578511714935303, -2.1053574085235596, 2.6497106552124023, 1.0417131185531616, -2.342480421066284, -1.8845103979110718, 1.3481687307357788, -2.035781145095825], \"y\": [-0.9101935029029846, -1.1986005306243896, 0.4062393009662628, -0.25466614961624146, 1.3585160970687866, -0.3466671109199524, -0.29993298649787903, -0.33278313279151917, -0.29993298649787903, 1.9091025590896606, 1.1556459665298462, -1.329695224761963, 0.7552143931388855, 1.0374892950057983, -1.4441901445388794, 0.6404526233673096], \"z\": [0.2937925159931183, 1.2111713886260986, 0.5484346151351929, 0.2763409912586212, 0.5538432598114014, -0.008099730126559734, 1.3376158475875854, -0.40240082144737244, 1.3376158475875854, 0.3996967375278473, 0.17671895027160645, 0.5143135190010071, -0.287946879863739, 0.38017067313194275, 0.09521251916885376, -1.0938247442245483]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Pediatrics - Neonatal<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Pediatrics - Neonatal\", \"marker\": {\"color\": \"#19d3f3\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Pediatrics - Neonatal\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-0.9334189891815186, -1.8311446905136108, 2.7774956226348877, -1.4129596948623657, -1.854530930519104, -1.5183439254760742, -0.8685581684112549, 1.9672743082046509, 1.7990063428878784, 1.111783742904663, -1.4973641633987427, -1.041791558265686, -2.31762433052063, -0.32969141006469727], \"y\": [-1.2025612592697144, 0.3509204685688019, 0.39035069942474365, -0.5662608742713928, -0.9629586935043335, -0.8291893601417542, -1.2483081817626953, -1.0933459997177124, -0.8992104530334473, -1.322864294052124, -1.6965843439102173, -1.545312762260437, 0.9813152551651001, -1.2971688508987427], \"z\": [-0.3893556296825409, -1.4520516395568848, -0.0933464840054512, -1.2496875524520874, -1.159290075302124, -0.8614007234573364, 0.7349314093589783, 0.753562867641449, -0.0342823751270771, 0.3020557165145874, -0.7173014283180237, -0.026183830574154854, -0.2085369974374771, -0.9537738561630249]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Psychiatry / Psychology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Psychiatry / Psychology\", \"marker\": {\"color\": \"#FF6692\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Psychiatry / Psychology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [2.5397045612335205, 2.7709505558013916, 3.048062801361084, -1.4599761962890625, 2.758478879928589, 2.4991960525512695, 2.8793017864227295, -1.8308491706848145, 1.5433156490325928, 2.5631582736968994, 3.0875415802001953], \"y\": [-0.03783639147877693, -0.07086304575204849, -0.2738392949104309, -1.0810309648513794, 0.581821084022522, 0.5982073545455933, 1.5493006706237793, -1.2454605102539062, -0.7382802963256836, -0.10616428405046463, 0.7541772723197937], \"z\": [-0.14297951757907867, -0.5703272819519043, 0.6647761464118958, -0.4134121537208557, -0.28749480843544006, -0.5629029273986816, -0.01135835237801075, 0.3508930504322052, -0.639467179775238, -0.026818564161658287, 0.34834858775138855]}, {\"hoverlabel\": {\"namelength\": 0}, \"hovertemplate\": \"category=Urology<br>COMP1=%{x}<br>COMP2=%{y}<br>COMP3=%{z}\", \"legendgroup\": \"category=Urology\", \"marker\": {\"color\": \"#B6E880\", \"opacity\": 0.98, \"size\": 4, \"symbol\": \"circle\"}, \"mode\": \"markers\", \"name\": \"category=Urology\", \"scene\": \"scene\", \"showlegend\": true, \"textposition\": \"top center\", \"type\": \"scatter3d\", \"x\": [-1.590907096862793, 0.2299448847770691, -2.2706971168518066, -0.712291955947876, 0.3028215765953064, -1.4549258947372437, -1.8737263679504395, -2.2784953117370605, 2.6496989727020264, -2.2535691261291504, -2.317394971847534, 2.9947214126586914, -2.277092218399048, -1.3541204929351807, 0.21427108347415924, -1.6767994165420532, -2.322089195251465, -2.377728223800659, 2.198913097381592, -2.0960536003112793, 2.1409924030303955, -2.211825370788574, -2.186030387878418, 1.5787670612335205, -2.0552825927734375, -2.236135721206665, -0.20014595985412598, -1.797226071357727, 2.6266682147979736, -2.027228832244873, -2.281230926513672], \"y\": [-0.9546365141868591, 0.40690886974334717, 1.0340306758880615, -1.631991982460022, -1.3240708112716675, -1.0261681079864502, 2.2990827560424805, 0.6582367420196533, -0.13609685003757477, 0.7098045945167542, 0.5188348889350891, -0.1546880602836609, 0.5012949109077454, -0.9061569571495056, -1.2735592126846313, 0.526648759841919, 1.1307709217071533, 0.7448320388793945, -0.25036951899528503, -0.3574153184890747, -0.009259584359824657, 1.0290783643722534, 1.121609091758728, 0.11001398414373398, -0.6490989923477173, 1.6282389163970947, -1.5255621671676636, -1.1874113082885742, -0.16771279275417328, -0.4513782560825348, 1.3644678592681885], \"z\": [0.07234873622655869, 0.2016577571630478, 0.8868319392204285, 1.297145962715149, -0.15797707438468933, 0.6339564919471741, 0.09980813413858414, 0.3919711410999298, -0.03693348541855812, 1.1923154592514038, 0.6984339952468872, 0.6552474498748779, 0.5714207291603088, -0.7328218221664429, -0.46618881821632385, 0.3423052430152893, 0.5068061947822571, 0.5697055459022522, 1.567882776260376, -0.780753493309021, 0.7360013723373413, 0.816645622253418, 0.46352630853652954, 0.24962523579597473, 0.14076687395572662, 0.4407006800174713, -0.7213476300239563, 1.154015302658081, 0.08908464014530182, -0.13354799151420593, 0.38634973764419556]}],\n",
" {\"autosize\": false, \"height\": 500, \"legend\": {\"tracegroupgap\": 0, \"x\": 1.1, \"xanchor\": \"right\", \"y\": 1, \"yanchor\": \"top\"}, \"margin\": {\"t\": 60}, \"scene\": {\"domain\": {\"x\": [0.0, 1.0], \"y\": [0.0, 1.0]}, \"xaxis\": {\"title\": {\"text\": \"COMP1\"}}, \"yaxis\": {\"title\": {\"text\": \"COMP2\"}}, \"zaxis\": {\"title\": {\"text\": \"COMP3\"}}}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#f2f5fa\"}, \"error_y\": {\"color\": \"#f2f5fa\"}, \"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"rgb(17,17,17)\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"baxis\": {\"endlinecolor\": \"#A2B1C6\", \"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"minorgridcolor\": \"#506784\", \"startlinecolor\": \"#A2B1C6\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"line\": {\"color\": \"#283442\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#506784\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"header\": {\"fill\": {\"color\": \"#2a3f5f\"}, \"line\": {\"color\": \"rgb(17,17,17)\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#f2f5fa\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#f2f5fa\"}, \"geo\": {\"bgcolor\": \"rgb(17,17,17)\", \"lakecolor\": \"rgb(17,17,17)\", \"landcolor\": \"rgb(17,17,17)\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"#506784\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"dark\"}, \"paper_bgcolor\": \"rgb(17,17,17)\", \"plot_bgcolor\": \"rgb(17,17,17)\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"radialaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"yaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}, \"zaxis\": {\"backgroundcolor\": \"rgb(17,17,17)\", \"gridcolor\": \"#506784\", \"gridwidth\": 2, \"linecolor\": \"#506784\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"#C8D4E3\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#f2f5fa\"}}, \"sliderdefaults\": {\"bgcolor\": \"#C8D4E3\", \"bordercolor\": \"rgb(17,17,17)\", \"borderwidth\": 1, \"tickwidth\": 0}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}, \"bgcolor\": \"rgb(17,17,17)\", \"caxis\": {\"gridcolor\": \"#506784\", \"linecolor\": \"#506784\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"updatemenudefaults\": {\"bgcolor\": \"#506784\", \"borderwidth\": 0}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"#283442\", \"linecolor\": \"#506784\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"#283442\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"3D Space\", \"x\": 0.5}, \"width\": 900},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('0c39ac76-f835-45e4-b5ef-46b99283d934');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" \n",
" </script>\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Explained variance per component: [0.65645283 0.17914838 0.05965929]\n",
"Comulative explained variance: [0.65645283 0.8356012 0.8952605 ]\n"
]
}
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "Medical_Transcriptions_version2.ipynb",
"toc_visible": true,
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
},
"accelerator": "GPU",
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"775bcd5cf9184e0c87acd7ff1a36eb1a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_d3a42c6c788c4c6e941387f2dc1166f6",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_dac72c0e94484ca38175d01cc56652f8",
"IPY_MODEL_692b491ae3bb40419b3030689a92bb06",
"IPY_MODEL_a5730ed02bbc4cf3ab2d3009b9f0d416"
]
}
},
"d3a42c6c788c4c6e941387f2dc1166f6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"dac72c0e94484ca38175d01cc56652f8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_0a2d9d795c274e5399f078cd718af4a2",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": "Downloading: 100%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_fcaaffd670774e5bb8045eab2c195498"
}
},
"692b491ae3bb40419b3030689a92bb06": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_7379f5a332b8410aa512862ce11041d3",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 226150,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 226150,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_97e6b8fbaac544de922da51d8a6d46f2"
}
},
"a5730ed02bbc4cf3ab2d3009b9f0d416": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_2b2a38a5db8e476884c07b13686624a4",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 221k/221k [00:00<00:00, 293kB/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_25c73f63b9784a7fa080a68746674f4b"
}
},
"0a2d9d795c274e5399f078cd718af4a2": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"fcaaffd670774e5bb8045eab2c195498": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"7379f5a332b8410aa512862ce11041d3": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"97e6b8fbaac544de922da51d8a6d46f2": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"2b2a38a5db8e476884c07b13686624a4": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"25c73f63b9784a7fa080a68746674f4b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"bff90e3c2e3944edb07065388a12ddc8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_2e34fe920768463c8595e07d0af9ebec",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_5c322073112c4d6083eb39d3ced0d847",
"IPY_MODEL_d5a7fcfc90174c229b2512a222a088fe",
"IPY_MODEL_3e6cc80498c04949ad2a1a907c215292"
]
}
},
"2e34fe920768463c8595e07d0af9ebec": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"5c322073112c4d6083eb39d3ced0d847": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_5925f130fa3e45999e8589a10a840c8a",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": "Downloading: 100%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_fa912ad358484f6bb06121cac10a4f4a"
}
},
"d5a7fcfc90174c229b2512a222a088fe": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_41e305f3d4cb4d58b8cf14a840ad6de2",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_85bad92f464c4257a627b447c8b2529b"
}
},
"3e6cc80498c04949ad2a1a907c215292": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_1d12064a6eaa49878233fa7e7ec3a9a2",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 28.0/28.0 [00:00<00:00, 719B/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_b10223fdadea45b4ba6cb020f86e32cf"
}
},
"5925f130fa3e45999e8589a10a840c8a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"fa912ad358484f6bb06121cac10a4f4a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"41e305f3d4cb4d58b8cf14a840ad6de2": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"85bad92f464c4257a627b447c8b2529b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"1d12064a6eaa49878233fa7e7ec3a9a2": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"b10223fdadea45b4ba6cb020f86e32cf": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"69e008667ece48a08bb00d625e63aa7c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_6dee499d7cd643f5b1326253abd876ff",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_612edcef03c24cc18517b9b5091be38a",
"IPY_MODEL_bb1a0b451f02400a8802af2c737df802",
"IPY_MODEL_0ef237d4e93e4d3ca99aac29e802ace8"
]
}
},
"6dee499d7cd643f5b1326253abd876ff": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"612edcef03c24cc18517b9b5091be38a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_bd566f2730a740ddbedd20863c1aea6c",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": "Downloading: 100%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_647c97c1068449e3aa8e6d26a4394cf9"
}
},
"bb1a0b451f02400a8802af2c737df802": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_60cad1fa99954b9c82a3009edc100328",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 385,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 385,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_53ac2c24165946bf97cb0a49c9c78048"
}
},
"0ef237d4e93e4d3ca99aac29e802ace8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_3f77ae8baa294138ad70ee1b0f881faf",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 385/385 [00:00<00:00, 10.8kB/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_dd9631bf29164744b17f29383ab11d91"
}
},
"bd566f2730a740ddbedd20863c1aea6c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"647c97c1068449e3aa8e6d26a4394cf9": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"60cad1fa99954b9c82a3009edc100328": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"53ac2c24165946bf97cb0a49c9c78048": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"3f77ae8baa294138ad70ee1b0f881faf": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"dd9631bf29164744b17f29383ab11d91": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
}
}
}
},
"nbformat": 4,
"nbformat_minor": 0
}