{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Slide 0: Instructions\n", "* These are not ordinary slides: many are interactive and *fully executable*\n", "* You'll want to be on a laptop or desktop. *(For mobile, wait until I finish writing the blog version of this.)* \n", "* Make sure your browser is in full screen mode (F11) and zoom=100%\n", "* Press the space bar to advance to the next slide\n", "* To exit the slideshow and see the code, press `Alt-R` or click the \"x\"" ] }, { "cell_type": "markdown", "metadata": { "id": "vY1GKEo098Ym", "slideshow": { "slide_type": "slide" } }, "source": [ "# The Joy of 3D 🎉<br>*Visualizations for Teaching about Classification*\n", "## Scott H. Hawley\n", "Department of Chemistry & Physics<br>\n", "College of Sciences and Mathematics\n", "<p style=\"font-size:75%;\">\n", " Re:Teaching PHY/BSA 3895: \"Deep Learning and AI Ethics,\" Fall 2021.</p>\n", "<br><br><br><br><br>\n", "<p style=\"font-size:75%; text-align:center; color:gray\">Scholarship of Teaching & Learning Symposium, Belmont University, April 28, 2021\n", "</p>" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import numpy as np \n", "from mrspuff.viz import *\n", "from mrspuff.utils import calc_prob, one_hot, softmax\n", "from mrspuff.scrape import exhibit_urls" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Intro\n", "If your field is related to any of these... <p style=\"font-size:200%\">🎜👩⚕️⚕️⚖️👮📚🎹👩🎤🛒☣️🧑🚀🧬🎥🧑🎓☢️🧳🧑🏫📦🎧🕵️♀️♂️<a href=\"https://hedges.belmont.edu/~shawley/naughty/\">🎅</a>💲📖🧑🍳⚗️📡👩🏭🔬🖧🧫🧑⚖️📈🎮🧑🌾📉💉🧑🔬💊🗣️♟️🎸</p>\n", "\n", "...then automated classification increasingly \"a big deal.\"" ] }, { "cell_type": "markdown", "metadata": { "id": "pdzG_hRy8vlo", "slideshow": { "slide_type": "subslide" } }, "source": [ "## Motivation\n", "<br>\n", "<div style=\"float:left; width:60%\"><b>Classification</b> is fascinating to me. Physicists don't do it much but the rest of society relies on it.\n", "\n", "I like & teach machine learning (ML), esp. deep learning (DL). *Lots* of ML is classification. How humans & machines do it differently is the topic of my *popular-level* eBook-in-progess that uses interactive visualizations (instead of \"math\").</div>\n", "<img src=\"https://thumbor.forbes.com/thumbor/960x0/https%3A%2F%2Fblogs-images.forbes.com%2Folliebarder%2Ffiles%2F2018%2F05%2Fpigeon_meme_fighbird-1200x806.jpg\" style=\"float:right; width:35%\"><br>\n", "\n", "<div style=\"float:left;\"><br>Recently many research papers (e.g., ML-audio) use \"contrastive losses\" -- ??<br>\n", "Turns out you can relate these to traditional (DL-based) classification if you view the latter a <i>certain way</i> -- \"view\" being the operative word!</div>" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "**TODO:shorten** We'll compare & contrast \"traditional\" machine learning (ML) classification with so-called \"zero-shot\" classifiers that rely on [embedding](https://arxiv.org/abs/1604.06737) semantically meaningful features as clusters in space by means of contrastive losses. These \"zero-shot\" methods are increasingly prevalent in the literature, and have the nice property that, unlike traditional ML classifiers, they don't need to be re-trained when new classes are added. If we want to understand zero-shot methods, we may consider traditional classification *as an embedding method* of it own." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Teaching ML: Viz, and Why 3D\n", "<br>\n", "<div style=\"display:inline-block; width:66%; float:left\">In teaching ML, it's common to teach <i>binary classification</i>* and then jump immediately into <i>multi-class</i> problems with large numbers of classes. This misses an opportunity for <i>visualization</i> -- the case of <b>3 classes</b>.<br><br>\n", "<p style=\"font-size:75%;\">*see my blog post <a href=\"https://hedges.belmont.edu/naughty\">\"Naughty by Numbers: Classifications at Christmas\"</a></p></div>\n", "<a href=\"https://hedges.belmont.edu/naughty\"><img src=\"images/naughty.png\" width=30% style=\"float:right\"></a>" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "<p style=\"color:#666; font-size:73%\"><br><br>I said \"no math,\" but: \n", "${\\rm softmax}(x_i) = {e^{x_i} \\over \\sum\\limits_j e^{x_j}} $.<br> 3D gives you all of softmax's complexity & you can still picture it!</p>" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Viz Matters for Teaching\n", "Data/sound viz has been an big part of my career, further influenced by Yang Hann Kim's 2016 Rossing Prize Lecture in Acoustics Education on viz in teaching STEM. \n", "<center><img src=\"images/my_viz_apps.png\" width=55%></center>\n", "Today I want to show you new work, including my \"Triangle Diagram\"! " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Viz for > 3D = 😢\n", "<div style=\"float:right; width:50%; text-align:center; font-size:70%\"><a href=\"href=\"https://drscotthawley.github.io/blog/2019/12/21/PCA-From-Scratch.html\"\"><img src=\"https://i.imgur.com/vKiH8As.png\" style=\"\"></a>\n", "My blog post, \"<a href=\"https://drscotthawley.github.io/blog/2019/12/21/PCA-From-Scratch.html\">PCA from Scratch</a>\"\n", "</div>\n", "<br>\n", "<div style=\"width:65%\">Humans can only visualize up to 3 dimensions, so for > 3 features we rely on <i>projections</i> via PCA or nonlinear embedding methods like t-SNE or UMAP. But with PCA data points tend to overlap, and other methods twist/distort/rip so global structure is lost.</div>\n", "\n", "\n", "In 3D the representations are *exact*!" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## New Code Library: [mrspuff](https://github.com/drscotthawley/mrspuff) \n", "\n", "For teaching via visualization and running on [Google Colab](https://colab.research.google.com), and leveraging [fast.ai](https://github.com/fastai/fastai).\n", "<center>\n", " \n", "<img src=\"https://github.com/drscotthawley/mrspuff/raw/master/images/mrspuff_logo.png\" width=\"80%\">\n", " <!--<p style=\"font-size:22pt; text-align:center;\"><a href=\"https://github.com/drscotthawley/mrspuff\">https://github.com/drscotthawley/mrspuff</a></p>-->\n", "</center>" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "labels = ['cat','dog','horse']\n", "data = np.array([[0.7,0.2,0.1],[0.15,0.6,0.25],[0.05,0.15,0.8],[1,0,0],[0,1,0],[0,0,1]])\n", "\n", "# made the following to generate images to be loaded in the next cell. and save them to ./images/\n", "# You can ignore it\n", "if False:\n", " from plotly.io import write_image\n", " for i in range(len(labels)):\n", " fig = image_and_bars(data[i], labels, CDH_SAMPLE_URLS[i]).show()\n", " fname = f'images/{labels[i]}_bars.png'\n", " try:\n", " write_image(fig, fname) \n", " except ValueError:\n", " print(\"Sorry, you need the plotly-orca binary installed to auto-save images.\")\n", " print(\"Click on the camera icon above to save manually to \",fname)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "# save cropped versions; ignore it\n", "if False:\n", " from PIL import Image\n", " for i in range(len(labels)):\n", " f = f'images/{labels[i]}'\n", " fin = f+'_bars.png'\n", " img = Image.open(fin)\n", " img = img.crop((15,25,250,200))\n", " img.save(f+'.png')" ] }, { "cell_type": "markdown", "metadata": { "id": "gA3XbAPN8-f_", "slideshow": { "slide_type": "slide" } }, "source": [ "## Dimensions and Embeddings\n", "\n", "Traditionally, we use triplets of numbers to denote 3 classes. \n", "\n", "\"Ground truth\" values are \"one-hot encoded\":<br>\n", "<pre> cat: (1,0,0) dog: (0,1,0) horse: (0,0,1)</pre>\n", "\n", "Model predictics class probabilities for images:\n", "<div><img style=\"display:inline-block\" src=\"images/cat_bars.png\" width=\"32%\">\n", " <img style=\"display:inline-block\" src=\"images/dog_bars.png\" width=\"33%\">\n", " <img style=\"display:inline-block\" src=\"images/horse_bars.png\" width=\"33%\"></div>\n", "</p>\n", "...the 3 numbers always have to add up to 1 (probability)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "People who are not mathematicians, physicists, data scientists, etc. may be unaccustomed to this talk of \"dimensions\" when dealing with data. Let's dive in to the specific case of *three-class classification*. Say we're developing a computer program to guess (\"predict\") whether given image contains a cat, a dog, or a horse. Traditionally we produce a set of 3 probabilities for each class, say...\n", "**TODO:** describe one-hot encoding of target values" ] }, { "cell_type": "markdown", "metadata": { "id": "dhI52sWD9Lm-", "slideshow": { "slide_type": "notes" } }, "source": [ "These numbers can be viewed as the strength of an attribute in an image, e.g. measures of cat-ness, dog-ness, and horse-ness (or measure of the likelihood of being a cat, dog, or horse, respectively), where a value of 1 means 100% of that property. Notice in each case, the three \"class\" probabilities add up to 1. This is always the case: probabilities always have to sum up to 1, i.e. 1 is \"100% certainty\" that gets split among the 3 classes. (This summing to 1 is an important property that we'll come back to in a bit.)\n", "\n", "One thing that scientists like to do is take different variables and view them as *coordinates of a single point in a multi-dimensional space*. So for 3 classes we have 3 coordinates for 3 dimensions. We could make the \"cat-ness\" prediction probability be the \"x\" coordinate, and \"dog-ness\" be the \"y\" values, and \"horse-ness\" could be along the \"z\" axis. Then instead of drawing bar graphs, we could plot points in 3D space, where the coordinates of each point tell us the predictions:\n", "\n", "*All the 3D plots in this post can be rotated & zoomed with the mouse or your finger. Try it!*\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\"Embedding\": treat each triplet as the (x,y,z) coordinates of a *point* in 3D space:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 542 }, "id": "by32Mz4y9IRw", "outputId": "4a652786-4905-4bc0-c706-63d429306998", "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "<script src=\"https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js\" integrity=\"sha512-c3Nl8+7g4LMSTdrm621y7kf9v3SDPnhxLNhcjFJbKECVnmZHTdo+IRO05sNLTH/D3vA6u1X32ehoLC7WFVdheg==\" crossorigin=\"anonymous\"></script>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ " <script type=\"text/javascript\">\n", " window.PlotlyConfig = {MathJaxConfig: 'local'};\n", " if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n", " if (typeof require !== 'undefined') {\n", " require.undef(\"plotly\");\n", " requirejs.config({\n", " paths: {\n", " 'plotly': ['https://cdn.plot.ly/plotly-latest.min']\n", " }\n", " });\n", " require(['plotly'], function(Plotly) {\n", " window._Plotly = Plotly;\n", " });\n", " }\n", " </script>\n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "<div> <div id=\"93c5ae7c-e9c0-4ecd-a4da-c280ae6d6027\" class=\"plotly-graph-div\" style=\"height:525px; width:700px;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"93c5ae7c-e9c0-4ecd-a4da-c280ae6d6027\")) { Plotly.newPlot( \"93c5ae7c-e9c0-4ecd-a4da-c280ae6d6027\", [{\"marker\": {\"color\": [[0.7, 0.2, 0.1], [0.15, 0.6, 0.25], [0.05, 0.15, 0.8], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]], \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"type\": \"scatter3d\", \"x\": [0.7, 0.15, 0.05, 1.0, 0.0, 0.0], \"y\": [0.2, 0.6, 0.15, 0.0, 1.0, 0.0], \"z\": [0.1, 0.25, 0.8, 0.0, 0.0, 1.0]}], {\"margin\": {\"b\": 10, \"l\": 10, \"r\": 20, \"t\": 0}, \"scene\": {\"annotations\": [{\"text\": \"cat\", \"x\": 1.0, \"xanchor\": \"center\", \"y\": 0.0, \"z\": 0.0}, {\"text\": \"dog\", \"x\": 0.0, \"xanchor\": \"center\", \"y\": 1.0, \"z\": 0.0}, {\"text\": \"horse\", \"x\": 0.0, \"xanchor\": \"center\", \"y\": 0.0, \"z\": 1.0}], \"xaxis\": {\"title\": {\"text\": \"cat - ness\"}}, \"yaxis\": {\"title\": {\"text\": \"dog - ness\"}}, \"zaxis\": {\"title\": {\"text\": \"horse - ness\"}}}, \"showlegend\": false, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"autotypenumbers\": \"strict\", \"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\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"width\": 700}, {\"responsive\": true} ).then(function(){\n", " \n", "var gd = document.getElementById('93c5ae7c-e9c0-4ecd-a4da-c280ae6d6027');\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", " }) }; }); </script> </div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# All the 3D plots in this talk are interactive. Use your mouse to rotate, etc!\n", "TrianglePlot3D_Plotly(data, targ=None, labels=labels*2, show_bounds=False).do_plot()" ] }, { "cell_type": "markdown", "metadata": { "id": "18OLvGLS9QX7", "slideshow": { "slide_type": "skip" } }, "source": [ "(Here we also used the 3 class probabilities to set the R,G,B color values of the points. There's no new information contained in this; it just looks cool.)\n", "\n", "What scientists tend to do is, even in cases where there are more then 3 variables (say, 10), we regard these as dimensions in some fancy abstract mathematical space where the laws may or may not conform to those of our universe -- for example, the idea of \"distance\" may be totally up for grabs. In cases where the number of values is infinite (say, as coefficients in a infinite series, or as a function of a continuous variable) we might even work in *infinite* dimensions! Often when we talk like this, it doesn't mean that we're actually picturing geometrical spaces in our heads -- we can't, for anything beyond 3 dimensions -- but it's a handy way of encapsulating a particular way of viewing the data or functions involved. And sometimes we *do* try to see what kinds of geometrical insights we can glean -- which is what we're going to do here!\n", "\n", "Remember when we said that the individual class probabilities have to add up to 1? Look what happens when we plot a *lot* of such points..." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Let's plot LOTS of points..." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 542 }, "hideCode": false, "id": "bz1dP26B9NyU", "outputId": "b73ad350-ff2f-43d0-cd32-93f8a80137de", "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "<div> <div id=\"90ef0fda-6b6b-477b-a5a2-f038ac522492\" class=\"plotly-graph-div\" style=\"height:525px; width:700px;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"90ef0fda-6b6b-477b-a5a2-f038ac522492\")) { Plotly.newPlot( \"90ef0fda-6b6b-477b-a5a2-f038ac522492\", [{\"marker\": {\"color\": [[0.21900776702542984, 0.19580581057958737, 0.5851864223949828], [0.34483828700827523, 0.26373732417723206, 0.3914243888144927], [0.3600842132747904, 0.1667411270625192, 0.4731746596626903], [0.3973104564438061, 0.21688352864714583, 0.3858060149090481], [0.8429963046352271, 0.14026933603952993, 0.016734359325243052], [0.2330136187731495, 0.3757994602946816, 0.3911869209321689], [0.7803778005532015, 0.04167028262426619, 0.17795191682253236], [0.9592516941056423, 0.010894072648478236, 0.029854233245879606], [0.8471845149494865, 0.13291911050215294, 0.01989637454836065], [0.3367565079030964, 0.44060288184879876, 0.22264061024810486], [0.19733809157606536, 0.5150314830764153, 0.28763042534751926], [0.45100826401182753, 0.40050074918291273, 0.14849098680525963], [0.6440372371460337, 0.006728957584964703, 0.34923380526900166], [0.7277206212682319, 0.015986159274287554, 0.25629321945748057], [0.04875162694345038, 0.05610086887857684, 0.8951475041779727], [0.6470543526272118, 0.16679791721668286, 0.1861477301561054], [0.5386840740295443, 0.13524368030438824, 0.3260722456660673], [0.9183474175791996, 0.05558636695979382, 0.026066215461006632], [0.0470634512353354, 0.04637165635191953, 0.9065648924127451], [0.6831976611950524, 0.06397125347285432, 0.25283108533209336], [0.6610766743128761, 0.03454533591648106, 0.3043779897706429], [0.6091381401010244, 0.2514524353608221, 0.13940942453815347], [0.2487676787016985, 0.04860337436761183, 0.7026289469306897], [0.16300885784720445, 0.05035451443828238, 0.7866366277145131], [0.028147983638787955, 0.8646160048669287, 0.10723601149428336], [0.3680917350818293, 0.038793277180725644, 0.5931149877374451], [0.24861697887733752, 0.6174207332597604, 0.133962287862902], [0.40518607938371864, 0.04113373017112971, 0.5536801904451517], [0.027991805556310166, 0.44508223524138146, 0.5269259592023083], [0.1627565303491206, 0.7525780322980046, 0.08466543735287468], [0.6672864711574349, 0.07956470898878283, 0.2531488198537823], [0.03101083584224072, 0.7361238662712697, 0.23286529788648966], [0.9713510909626827, 0.019727191406576736, 0.008921717630740641], [0.027144069147580885, 0.7976941300206675, 0.17516180083175162], [0.08075070245904002, 0.9050976893510787, 0.014151608189881235], [0.05848436639157412, 0.6443491702974127, 0.2971664633110132], [0.41318509167462203, 0.553991089172677, 0.03282381915270084], [0.5072021018468424, 0.012663892133399558, 0.48013400601975786], [0.2116000361693008, 0.09989724878254198, 0.6885027150481573], [0.28335934314526245, 0.3631403103401466, 0.35350034651459095], [0.15045619746067743, 0.7775302323439333, 0.07201357019538937], [0.15810072083011537, 0.053022332369551235, 0.7888769468003335], [0.949595077573625, 0.026980766258237535, 0.023424156168137582], [0.06173934264853011, 0.6442109852616648, 0.29404967208980526], [0.15342444002720668, 0.12957395707528907, 0.7170016028975044], [0.18837366992566795, 0.03853349148563847, 0.7730928385886936], [0.7843831109948146, 0.10937794967666263, 0.10623893932852284], [0.03535511600982397, 0.6450113644601063, 0.31963351953006985], [0.412584968646052, 0.5230087160371498, 0.06440631531679818], [0.06629101683979838, 0.8448976022936887, 0.08881138086651308], [0.5010624825280245, 0.16994281958503998, 0.32899469788693547], [0.9439731183141566, 0.01519321683292033, 0.040833664852922946], [0.48501607743430575, 0.49140197287550724, 0.023581949690187096], [0.039413832919119866, 0.9135592275027449, 0.04702693957813534], [0.043460054018014, 0.9296866040840275, 0.02685334189795849], [0.17047699032015548, 0.7023471395069066, 0.127175870172938], [0.008319742403381111, 0.5694735575409622, 0.4222067000556568], [0.3328567837844822, 0.6156127786478884, 0.05153043756762936], [0.02494666450366026, 0.9025646167801502, 0.07248871871618968], [0.0343443099770148, 0.950499413954886, 0.015156276068099316], [0.22843128517963074, 0.7254078609977146, 0.04616085382265461], [0.3703915737560636, 0.46845718006789233, 0.16115124617604415], [0.13756251982641862, 0.0385763896723018, 0.8238610905012796], [0.5820766101293132, 0.23957612869426595, 0.17834726117642086], [0.7564110251665619, 0.018074734422889184, 0.22551424041054888], [0.9321513623509742, 0.014541920178449942, 0.05330671747057586], [0.14056058469032762, 0.05311417827130055, 0.8063252370383718], [0.45061419546663545, 0.501046604185841, 0.04833920034752349], [0.06152097546982072, 0.34070602302705066, 0.5977730015031286], [0.08369121383525946, 0.7916517264795464, 0.12465705968519407], [0.27401122863631405, 0.1257277518654077, 0.6002610194982784], [0.10127461422421309, 0.46188564219466577, 0.4368397435811211], [0.06135538177868797, 0.41753212958725866, 0.5211124886340534], [0.33792858082636146, 0.12010285973276735, 0.5419685594408711], [0.9702362302636526, 0.014403065534082556, 0.01536070420226474], [0.24087334882029637, 0.4394366242761282, 0.3196900269035755], [0.2528939787789238, 0.6124915086513388, 0.13461451256973744], [0.06820736852331846, 0.0623526274819663, 0.8694400039947152], [0.11821946680738322, 0.5011699395172364, 0.3806105936753803], [0.7036059097854281, 0.1402481899790625, 0.15614590023550942], [0.13203040677692904, 0.7861498788786602, 0.08181971434441085], [0.349836382454607, 0.23614687176868537, 0.41401674577670766], [0.026747609803425273, 0.054758507266557996, 0.9184938829300168], [0.1116621531056509, 0.16514123844354955, 0.7231966084507995], [0.37964481897009955, 0.4059519306460842, 0.21440325038381625], [0.37803487493647125, 0.19547636063172175, 0.42648876443180705], [0.06681983511263452, 0.8681875544386828, 0.0649926104486827], [0.6108094012404596, 0.32820078725985835, 0.06098981149968189], [0.26129089874340666, 0.029789665684856786, 0.7089194355717365], [0.0756971023052166, 0.04764600574222773, 0.8766568919525556], [0.09175302833029046, 0.2672572264211731, 0.6409897452485364], [0.07844725444184966, 0.4527713645391303, 0.46878138101902006], [0.16615076313997343, 0.6965774417015429, 0.13727179515848364], [0.41159424631543134, 0.2005255651945485, 0.3878801884900202], [0.09053714021498371, 0.6733698824549879, 0.2360929773300286], [0.4314060985467254, 0.038968352817964305, 0.5296255486353103], [0.4027188928377071, 0.3168711927736836, 0.2804099143886092], [0.07849757292904566, 0.07442746907555974, 0.8470749579953946], [0.09660647133787982, 0.8934289964257071, 0.009964532236413227], [0.8949671488591975, 0.09258891383467263, 0.01244393730612998], [0.6925839743217869, 0.1549556884524634, 0.15246033722574975], [0.8086339657302001, 0.15891835904765111, 0.03244767522214886], [0.022640988793934034, 0.3668144269159466, 0.6105445842901194], [0.43593687228313566, 0.018920004323312416, 0.545143123393552], [0.7613244087361242, 0.20791030377541456, 0.030765287488461156], [0.01831503203816539, 0.030971297559415897, 0.9507136704024186], [0.02629997418708561, 0.4070031901687072, 0.5666968356442073], [0.0769262432866887, 0.8989892528823336, 0.024084503830977776], [0.20983573954650694, 0.5427968389943432, 0.2473674214591499], [0.3423897177716454, 0.5431795570996807, 0.1144307251286739], [0.16981398492559613, 0.7410961916965279, 0.0890898233778761], [0.01204501720351408, 0.8489380329833497, 0.13901694981313625], [0.39679989447400943, 0.5765912976796459, 0.026608807846344694], [0.07849589757353577, 0.9105742714566607, 0.01092983096980365], [0.5029380248082143, 0.38246271012423816, 0.11459926506754756], [0.012396093096139085, 0.7353618352381637, 0.2522420716656974], [0.9352630755276331, 0.03576495038794998, 0.028971974084416867], [0.03983555512226514, 0.03520665493459014, 0.9249577899431447], [0.16564850979512727, 0.6481146259461099, 0.18623686425876296], [0.029673916967602406, 0.5241107435803553, 0.44621533945204234], [0.43630557567014117, 0.029965213106552552, 0.5337292112233063], [0.5868322335763777, 0.4030615461089986, 0.010106220314623751], [0.8957591013541689, 0.06883799643478296, 0.03540290221104834], [0.606165104283323, 0.012077082958662284, 0.3817578127580147], [0.9182065128589523, 0.06864386766636528, 0.013149619474682472], [0.05363151504625089, 0.038984159822634395, 0.9073843251311148], [0.9149102356625238, 0.05415566140615563, 0.03093410293132066], [0.575047697235857, 0.03607962157838829, 0.38887268118575474], [0.5664711875003778, 0.08916634718803691, 0.34436246531158526], [0.06004057375091708, 0.8289602087700826, 0.11099921747900035], [0.2495094505338773, 0.5980490092645548, 0.15244154020156797], [0.2052349462779329, 0.7505655521559663, 0.04419950156610083], [0.41487639966062456, 0.5636573127004998, 0.02146628763887561], [0.9313788901399217, 0.015698780471581082, 0.05292232938849731], [0.10541459289339236, 0.06383969871727393, 0.8307457083893336], [0.036919610761565955, 0.43972754735487324, 0.5233528418835608], [0.797570128385372, 0.14414151615373852, 0.058288355460889583], [0.20517654469712626, 0.578270875888171, 0.21655257941470266], [0.3928830482461855, 0.5124381014372783, 0.09467885031653617], [0.11408168345994552, 0.5183429987191579, 0.3675753178208966], [0.9464306065963205, 0.027405823852131975, 0.026163569551547555], [0.03864938310290299, 0.7204420037516704, 0.24090861314542655], [0.8757979032005963, 0.08226576871189412, 0.04193632808750978], [0.8159757288553083, 0.09392473223525001, 0.09009953890944158], [0.25444580223770735, 0.011267921967928383, 0.7342862757943643], [0.08166959112454134, 0.6864852484387813, 0.23184516043667727], [0.5333331944295041, 0.3178560958461997, 0.1488107097242962], [0.34481310620143796, 0.6046372313265523, 0.0505496624720097], [0.2200690245244383, 0.1129796312117425, 0.6669513442638193], [0.06113401966761446, 0.08758872714472021, 0.8512772531876653], [0.10110894493580769, 0.07282298657764365, 0.8260680684865487], [0.1913814819891874, 0.3073072805670743, 0.5013112374437383], [0.13469322220910046, 0.19478453714652907, 0.6705222406443705], [0.27586545634198445, 0.06653846882705448, 0.657596074830961], [0.07254040864280241, 0.9147792567666989, 0.012680334590498584], [0.44668161355130276, 0.520245333591648, 0.03307305285704912], [0.9007786039619142, 0.0846424033121646, 0.014578992725921138], [0.4789586306698481, 0.008904598158222088, 0.5121367711719298], [0.1403153282644382, 0.7891805477480288, 0.07050412398753302], [0.902807395443939, 0.05889673893086592, 0.03829586562519513], [0.059148879508943195, 0.08560578146183573, 0.8552453390292211], [0.26756171238264753, 0.37600008952984193, 0.35643819808751054], [0.5545525803771995, 0.38068357038229, 0.06476384924051046], [0.5678461915543387, 0.2587145239416835, 0.17343928450397778], [0.09543945307526606, 0.8230006397966257, 0.08155990712810811], [0.20331755867450757, 0.30893906742434674, 0.48774337390114575], [0.5002945114666171, 0.30189272660534416, 0.19781276192803873], [0.4829856567481619, 0.06928244572520215, 0.44773189752663584], [0.2058895282113646, 0.026825069262077266, 0.7672854025265582], [0.03426598716445659, 0.028920961896617022, 0.9368130509389263], [0.10709815981438363, 0.3095315783136772, 0.5833702618719391], [0.09829244677737466, 0.0819579374742781, 0.8197496157483471], [0.13322790164580683, 0.1512233143095073, 0.715548784044686], [0.432972845450382, 0.052776078025779403, 0.5142510765238386], [0.1824413033589121, 0.018303040837183673, 0.7992556558039043], [0.887967858470575, 0.07891474298096679, 0.03311739854845821], [0.6699981020083127, 0.11867917298516545, 0.21132272500652186], [0.6410463441082532, 0.127758566880928, 0.23119508901081884], [0.21820219009881825, 0.24617136498918005, 0.5356264449120017], [0.04845606810717697, 0.05801071320465038, 0.8935332186881727], [0.07298672822547447, 0.1952449236393933, 0.7317683481351323], [0.2850123564469691, 0.2814538684810783, 0.4335337750719526], [0.7901726816960338, 0.1030074689573014, 0.10681984934666482], [0.2479241878288827, 0.5202400068169322, 0.23183580535418508], [0.012105904643089306, 0.4066467376937976, 0.5812473576631131], [0.14024089626408803, 0.05953869762359107, 0.8002204061123209], [0.038229993289425286, 0.6025648091722999, 0.35920519753827473], [0.4929646879492798, 0.3796728838784261, 0.12736242817229407], [0.637318907568282, 0.2648366576653669, 0.09784443476635112], [0.2883928983994529, 0.5120062453554451, 0.19960085624510202], [0.2938436573795177, 0.5909933188126807, 0.11516302380780166], [0.07061105967401418, 0.02123295854053902, 0.9081559817854468], [0.06678609916901002, 0.3113458339219163, 0.6218680669090737], [0.49697092500293627, 0.1588637220083262, 0.34416535298873746], [0.07364999801151502, 0.8860794968300594, 0.040270505158425625], [0.1769219628089677, 0.7293439321585281, 0.09373410503250433], [0.3332743023895264, 0.010141307107712655, 0.6565843905027609], [0.47058947445316374, 0.07251738025548997, 0.45689314529134634], [0.4682223795674969, 0.21200393375836302, 0.31977368667414025], [0.608694163652242, 0.3692592000460067, 0.02204663630175128], [0.06113882055444497, 0.41418507723882614, 0.524676102206729], [0.012716664155080371, 0.013506645043505749, 0.9737766908014138], [0.7350743499711292, 0.1147217428011417, 0.15020390722772914], [0.3403642698401749, 0.6524235129406839, 0.007212217219141135], [0.6483409639141101, 0.2741188766070074, 0.07754015947888249], [0.30505324507368137, 0.01909513463766865, 0.67585162028865], [0.19749119008797705, 0.11676532454638458, 0.6857434853656383], [0.03395870771705883, 0.0428899092945417, 0.9231513829883996], [0.6393534966224377, 0.057437986756624225, 0.30320851662093823], [0.050190489224488904, 0.9089040210438795, 0.040905489731631724], [0.594560663058576, 0.011633244370828254, 0.39380609257059573], [0.3554767309995595, 0.5639842289552914, 0.08053904004514907], [0.8480130591075197, 0.06311589486757577, 0.0888710460249046], [0.8927168627343774, 0.03368531539303095, 0.07359782187259167], [0.03432379832682235, 0.03147246227345258, 0.9342037393997251], [0.2246289156780634, 0.16925066320647064, 0.606120421115466], [0.19995328141232305, 0.719480044051521, 0.0805666745361559], [0.804234405433039, 0.07406339891487941, 0.12170219565208153], [0.7561735058815933, 0.1107361706000973, 0.1330903235183094], [0.0343648248733423, 0.9548790827469871, 0.01075609237967056], [0.8682627117533513, 0.06840984804296653, 0.06332744020368222], [0.4165216416134422, 0.2029574107107313, 0.38052094767582645], [0.15951341543806408, 0.48436713089068373, 0.3561194536712523], [0.31682175047729394, 0.6522619265490278, 0.030916322973678318], [0.4497602811246123, 0.4524419596914845, 0.09779775918390318], [0.34121038552248306, 0.10916997594472055, 0.5496196385327964], [0.013969358426587905, 0.03314957092790228, 0.9528810706455098], [0.9379892097760537, 0.015246951546186962, 0.04676383867775945], [0.17318590084238616, 0.6983832994733161, 0.1284307996842978], [0.07328178983292889, 0.36196083637773085, 0.5647573737893402], [0.8864198703622499, 0.015837671329988996, 0.09774245830776129], [0.7573329179103478, 0.20420035991954522, 0.038466722170107034], [0.20541746585092663, 0.23222184022589068, 0.5623606939231827], [0.02224861496549978, 0.7906905116772931, 0.18706087335720722], [0.7166858260712701, 0.23638617741683043, 0.04692799651189945], [0.09784354529008414, 0.03142188653383345, 0.8707345681760824], [0.3058262202337419, 0.5050844768868543, 0.18908930287940387], [0.016680720077380907, 0.08085734103274508, 0.902461938889874], [0.20334257344220577, 0.2215828310722111, 0.575074595485583], [0.7644095937713216, 0.15199802707025148, 0.08359237915842703], [0.04184886828545887, 0.27062982333192426, 0.6875213083826168], [0.5203693651707718, 0.4690353231588327, 0.010595311670395435], [0.020150722443188177, 0.050432224700354904, 0.9294170528564569], [0.7841754492141704, 0.09118833799938778, 0.12463621278644174], [0.3720527941310953, 0.37449659324067597, 0.2534506126282287], [0.02658326807381491, 0.9429104896423965, 0.030506242283788353], [0.23046100727636734, 0.2712337831172945, 0.4983052096063381], [0.32567738118024325, 0.5366861043238256, 0.137636514495931], [0.37179453086340697, 0.2587266856121315, 0.36947878352446156], [0.020883963582842037, 0.5165785993974629, 0.462537437019695], [0.09736970462382015, 0.7479298903534066, 0.15470040502277316], [0.2913098897336355, 0.6730063143109776, 0.03568379595538699], [0.695291885810194, 0.18834692026836378, 0.11636119392144237], [0.7909876792678934, 0.05078950108576279, 0.1582228196463439], [0.39088897358610103, 0.08648016246177127, 0.5226308639521277], [0.03346193356208075, 0.6181438453622963, 0.34839422107562285], [0.28232880433014124, 0.2975524971215039, 0.4201186985483548], [0.8246350598938015, 0.1215418919275174, 0.05382304817868109], [0.04582438147391751, 0.8395490037411631, 0.11462661478491934], [0.11880361218224368, 0.3010154002534047, 0.5801809875643517], [0.06144331276788053, 0.8946024113018188, 0.04395427593030056], [0.17916013344211254, 0.1739570148777991, 0.6468828516800884], [0.3918072053902693, 0.5800213271726162, 0.028171467437114472], [0.057077552777534936, 0.2277931943313481, 0.715129252891117], [0.5449474967266729, 0.009863643150761334, 0.44518886012256575], [0.6104914653086739, 0.22492226745269914, 0.1645862672386269], [0.18242092803827062, 0.6106270571998924, 0.2069520147618369], [0.144768423152708, 0.8444152086246152, 0.010816368222676776], [0.06924576471997648, 0.913235840269088, 0.017518395010935554], [0.6121257509487736, 0.2953248424553732, 0.09254940659585315], [0.780488918808581, 0.05637908714941671, 0.1631319940420023], [0.11502489699558159, 0.7839809656584258, 0.10099413734599265], [0.09276309205580242, 0.30387762543937213, 0.6033592825048254], [0.09592494691832315, 0.2895727456534807, 0.6145023074281962], [0.9059771621521296, 0.03508617198559944, 0.058936665862270865], [0.39192375932866014, 0.48361669676070973, 0.12445954391063015], [0.5592841584310498, 0.43455647139319187, 0.006159370175758332], [0.027915284145248142, 0.33804381247302234, 0.6340409033817296], [0.8741122230204867, 0.11731491018124757, 0.008572866798265655], [0.3239156550416848, 0.018782983831075167, 0.6573013611272399], [0.5663463897129439, 0.07444522681986673, 0.3592083834671893], [0.7333193664273102, 0.1511067280848463, 0.11557390548784352], [0.4672038116088164, 0.10415139698069427, 0.4286447914104892], [0.02019494855008778, 0.03276211786919281, 0.9470429335807193], [0.8057596796326586, 0.12290519753414111, 0.07133512283320026], [0.6005351993665222, 0.14705825889775337, 0.25240654173572435], [0.15715029911941727, 0.06670698848213537, 0.7761427123984475], [0.08603811314035739, 0.010444168146241585, 0.903517718713401], [0.5372049490959221, 0.1446299229626693, 0.31816512794140867], [0.1273975396635594, 0.055642731534497565, 0.816959728801943], [0.06234884236439526, 0.4307157246841302, 0.5069354329514745], [0.7880879142228845, 0.0686069498748548, 0.14330513590226074], [0.33551325618163186, 0.5921414813774487, 0.07234526244091936], [0.10128090250677182, 0.10495965799706874, 0.7937594394961595], [0.5479574375161732, 0.05242911583967038, 0.3996134466441564], [0.025340712353496334, 0.8960435746532329, 0.0786157129932707], [0.23328008242104525, 0.7133818964186198, 0.0533380211603349], [0.7495304554669445, 0.07625239485267202, 0.17421714968038343], [0.31112175702092776, 0.2921196069296334, 0.3967586360494388], [0.047202791444046606, 0.8178915933701328, 0.1349056151858205], [0.10861569204074145, 0.045417979603417646, 0.8459663283558408], [0.6914602558343713, 0.27601795262748013, 0.03252179153814847], [0.021544236837407728, 0.7655430099165804, 0.212912753246012], [0.21761526896413996, 0.653773621503782, 0.12861110953207805], [0.5147315029680711, 0.223186222609412, 0.2620822744225168], [0.10618865907898534, 0.011993216757357983, 0.8818181241636567], [0.5568845949862743, 0.19586028120944862, 0.24725512380427708], [0.32914031623781576, 0.5194728034091662, 0.151386880353018], [0.5418724965605737, 0.021209629890419263, 0.436917873549007], [0.3615851966256301, 0.043864363547407255, 0.5945504398269625], [0.14572222908188132, 0.7953696111046321, 0.058908159813486516], [0.49662987542833587, 0.137312057489953, 0.3660580670817112], [0.7793407737648609, 0.00827724493132542, 0.21238198130381364], [0.4685754789188664, 0.42345851539506274, 0.10796600568607077], [0.02325567855338983, 0.7044343711273328, 0.27230995031927757], [0.7152959959215397, 0.2726996419712519, 0.012004362107208342], [0.22188849771192304, 0.25969669258130074, 0.5184148097067762], [0.43158588718415963, 0.1611740699165457, 0.4072400428992948], [0.013124434257918809, 0.06661081129567575, 0.9202647544464055], [0.023116446098780857, 0.5059037256119461, 0.4709798282892731], [0.6585740124012288, 0.3015630104387937, 0.03986297715997749], [0.03535837870675018, 0.08856507863161822, 0.8760765426616315], [0.6018970154323329, 0.36834889469437415, 0.029754089873292932], [0.08501595458002603, 0.25648628964920833, 0.6584977557707657], [0.212765718209217, 0.7206720271332344, 0.0665622546575486], [0.4417880446849418, 0.21833293308449464, 0.3398790222305634], [0.7390349472309201, 0.02601445686364299, 0.23495059590543693], [0.5355724201411151, 0.017709944746488432, 0.4467176351123966], [0.25778254116376204, 0.06836708135116776, 0.6738503774850703], [0.27311831129754016, 0.6263617969253025, 0.10051989177715719], [0.009571168590758978, 0.9601447394797084, 0.030284091929532735], [0.2114486772582078, 0.7368295789808502, 0.051721743760942025], [0.020806332222364096, 0.02746297152994758, 0.9517306962476882], [0.03128102254522129, 0.030885710860480226, 0.9378332665942984], [0.9435408864872301, 0.0083658173125454, 0.04809329620022459], [0.7373508695444754, 0.13580134242423403, 0.1268477880312906], [0.04591622557840022, 0.4632152453230466, 0.49086852909855316], [0.12211921293686909, 0.4264871895849289, 0.4513935974782019], [0.24619824353445288, 0.6124760544072886, 0.14132570205825848], [0.15042411802445457, 0.2978847202851177, 0.5516911616904278], [0.10389051722039118, 0.5432003377759834, 0.3529091450036254], [0.1862762997107295, 0.7907403174114828, 0.022983382877787815], [0.010540175195799164, 0.45951094181959085, 0.5299488829846101], [0.42356599784187493, 0.2675321224301813, 0.3089018797279437], [0.589939895525056, 0.0694100509677049, 0.3406500535072391], [0.9805169511638052, 0.009238019217948265, 0.010245029618246467], [0.18114663394489156, 0.5643638879346647, 0.25448947812044376], [0.25965536129810135, 0.5822137937459392, 0.15813084495595936], [0.7693928854195483, 0.06291654317421329, 0.16769057140623825], [0.21604323754539717, 0.7531267112477062, 0.03083005120689654], [0.18422398243815158, 0.2965105270266721, 0.5192654905351765], [0.07137381653419364, 0.5345947213437505, 0.39403146212205586], [0.5435478308493694, 0.32543085382661024, 0.1310213153240204], [0.6278642724905599, 0.02283833125105519, 0.3492973962583851], [0.8087474364738771, 0.05104691475127554, 0.1402056487748473], [0.11488169768324916, 0.18956595802990348, 0.6955523442868474], [0.10040752594059191, 0.07845246438759904, 0.8211400096718091], [0.2278804298853178, 0.614629733817139, 0.1574898362975432], [0.04369928421062687, 0.22744053189125887, 0.7288601838981142], [0.03276849011509824, 0.053167876542909734, 0.9140636333419921], [0.19235246862354327, 0.7281487825373004, 0.07949874883915624], [0.4417875542362767, 0.4256313484619982, 0.1325810973017252], [0.10994878182928425, 0.5031091202875507, 0.3869420978831651], [0.39531326468605293, 0.521609546613795, 0.083077188700152], [0.8541048905408544, 0.06226938494400362, 0.08362572451514189], [0.04118083200263943, 0.10140029377608567, 0.8574188742212749], [0.9655745960060391, 0.01649306145323617, 0.01793234254072483], [0.42263078112111474, 0.5426853980213802, 0.03468382085750526], [0.9393938307911059, 0.02989343241081845, 0.030712736798075624], [0.09998062953187296, 0.6786876734243438, 0.22133169704378333], [0.06770879778540513, 0.9227873951703967, 0.00950380704419819], [0.03317897282094567, 0.11171987053925837, 0.855101156639796], [0.9152009872400105, 0.03257020168648973, 0.05222881107349969], [0.28668956687337027, 0.11263299977298609, 0.6006774333536435], [0.6229126913530532, 0.1784041260422105, 0.19868318260473625], [0.5077834283873344, 0.022456133205772548, 0.4697604384068931], [0.14507550693011467, 0.6088348358778765, 0.24608965719200895], [0.18039321830142319, 0.3065723594617712, 0.5130344222368056], [0.6646260959209023, 0.057546428996490755, 0.2778274750826071], [0.3097215995624734, 0.5442554624334622, 0.14602293800406443], [0.06292826369055957, 0.8590137804932276, 0.07805795581621265], [0.0811582850722222, 0.5249978231621547, 0.3938438917656231], [0.21381762714418687, 0.15149337894837026, 0.6346889939074428], [0.31001527281710306, 0.6660695342274668, 0.023915192955430143], [0.047980777145367935, 0.3039419525319844, 0.6480772703226476], [0.3713655148808507, 0.1376605390403559, 0.49097394607879347], [0.39574560431592926, 0.3006095755036461, 0.3036448201804246], [0.015217098990111573, 0.33954326422614206, 0.6452396367837464], [0.04306546222766055, 0.8795783654300992, 0.07735617234224024], [0.8164396937569355, 0.13363203333240486, 0.04992827291065974], [0.9101762456624406, 0.052346554787795006, 0.03747719954976437], [0.06798524307222166, 0.029373132876210364, 0.9026416240515679], [0.06868038293507786, 0.3828203356600623, 0.5484992814048598], [0.0365172969278529, 0.1063967416156678, 0.8570859614564792], [0.5424739369027866, 0.10001395736195277, 0.3575121057352607], [0.42222669556574327, 0.17862767454853984, 0.39914562988571695], [0.05186907836310691, 0.8254345256873917, 0.12269639594950148], [0.2715058903232301, 0.40272144819710226, 0.3257726614796676], [0.29327001653092444, 0.23322509663797852, 0.47350488683109704], [0.8996434720362195, 0.07587842705436305, 0.024478100909417502]], \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"type\": \"scatter3d\", \"x\": [0.21900776702542984, 0.34483828700827523, 0.3600842132747904, 0.3973104564438061, 0.8429963046352271, 0.2330136187731495, 0.7803778005532015, 0.9592516941056423, 0.8471845149494865, 0.3367565079030964, 0.19733809157606536, 0.45100826401182753, 0.6440372371460337, 0.7277206212682319, 0.04875162694345038, 0.6470543526272118, 0.5386840740295443, 0.9183474175791996, 0.0470634512353354, 0.6831976611950524, 0.6610766743128761, 0.6091381401010244, 0.2487676787016985, 0.16300885784720445, 0.028147983638787955, 0.3680917350818293, 0.24861697887733752, 0.40518607938371864, 0.027991805556310166, 0.1627565303491206, 0.6672864711574349, 0.03101083584224072, 0.9713510909626827, 0.027144069147580885, 0.08075070245904002, 0.05848436639157412, 0.41318509167462203, 0.5072021018468424, 0.2116000361693008, 0.28335934314526245, 0.15045619746067743, 0.15810072083011537, 0.949595077573625, 0.06173934264853011, 0.15342444002720668, 0.18837366992566795, 0.7843831109948146, 0.03535511600982397, 0.412584968646052, 0.06629101683979838, 0.5010624825280245, 0.9439731183141566, 0.48501607743430575, 0.039413832919119866, 0.043460054018014, 0.17047699032015548, 0.008319742403381111, 0.3328567837844822, 0.02494666450366026, 0.0343443099770148, 0.22843128517963074, 0.3703915737560636, 0.13756251982641862, 0.5820766101293132, 0.7564110251665619, 0.9321513623509742, 0.14056058469032762, 0.45061419546663545, 0.06152097546982072, 0.08369121383525946, 0.27401122863631405, 0.10127461422421309, 0.06135538177868797, 0.33792858082636146, 0.9702362302636526, 0.24087334882029637, 0.2528939787789238, 0.06820736852331846, 0.11821946680738322, 0.7036059097854281, 0.13203040677692904, 0.349836382454607, 0.026747609803425273, 0.1116621531056509, 0.37964481897009955, 0.37803487493647125, 0.06681983511263452, 0.6108094012404596, 0.26129089874340666, 0.0756971023052166, 0.09175302833029046, 0.07844725444184966, 0.16615076313997343, 0.41159424631543134, 0.09053714021498371, 0.4314060985467254, 0.4027188928377071, 0.07849757292904566, 0.09660647133787982, 0.8949671488591975, 0.6925839743217869, 0.8086339657302001, 0.022640988793934034, 0.43593687228313566, 0.7613244087361242, 0.01831503203816539, 0.02629997418708561, 0.0769262432866887, 0.20983573954650694, 0.3423897177716454, 0.16981398492559613, 0.01204501720351408, 0.39679989447400943, 0.07849589757353577, 0.5029380248082143, 0.012396093096139085, 0.9352630755276331, 0.03983555512226514, 0.16564850979512727, 0.029673916967602406, 0.43630557567014117, 0.5868322335763777, 0.8957591013541689, 0.606165104283323, 0.9182065128589523, 0.05363151504625089, 0.9149102356625238, 0.575047697235857, 0.5664711875003778, 0.06004057375091708, 0.2495094505338773, 0.2052349462779329, 0.41487639966062456, 0.9313788901399217, 0.10541459289339236, 0.036919610761565955, 0.797570128385372, 0.20517654469712626, 0.3928830482461855, 0.11408168345994552, 0.9464306065963205, 0.03864938310290299, 0.8757979032005963, 0.8159757288553083, 0.25444580223770735, 0.08166959112454134, 0.5333331944295041, 0.34481310620143796, 0.2200690245244383, 0.06113401966761446, 0.10110894493580769, 0.1913814819891874, 0.13469322220910046, 0.27586545634198445, 0.07254040864280241, 0.44668161355130276, 0.9007786039619142, 0.4789586306698481, 0.1403153282644382, 0.902807395443939, 0.059148879508943195, 0.26756171238264753, 0.5545525803771995, 0.5678461915543387, 0.09543945307526606, 0.20331755867450757, 0.5002945114666171, 0.4829856567481619, 0.2058895282113646, 0.03426598716445659, 0.10709815981438363, 0.09829244677737466, 0.13322790164580683, 0.432972845450382, 0.1824413033589121, 0.887967858470575, 0.6699981020083127, 0.6410463441082532, 0.21820219009881825, 0.04845606810717697, 0.07298672822547447, 0.2850123564469691, 0.7901726816960338, 0.2479241878288827, 0.012105904643089306, 0.14024089626408803, 0.038229993289425286, 0.4929646879492798, 0.637318907568282, 0.2883928983994529, 0.2938436573795177, 0.07061105967401418, 0.06678609916901002, 0.49697092500293627, 0.07364999801151502, 0.1769219628089677, 0.3332743023895264, 0.47058947445316374, 0.4682223795674969, 0.608694163652242, 0.06113882055444497, 0.012716664155080371, 0.7350743499711292, 0.3403642698401749, 0.6483409639141101, 0.30505324507368137, 0.19749119008797705, 0.03395870771705883, 0.6393534966224377, 0.050190489224488904, 0.594560663058576, 0.3554767309995595, 0.8480130591075197, 0.8927168627343774, 0.03432379832682235, 0.2246289156780634, 0.19995328141232305, 0.804234405433039, 0.7561735058815933, 0.0343648248733423, 0.8682627117533513, 0.4165216416134422, 0.15951341543806408, 0.31682175047729394, 0.4497602811246123, 0.34121038552248306, 0.013969358426587905, 0.9379892097760537, 0.17318590084238616, 0.07328178983292889, 0.8864198703622499, 0.7573329179103478, 0.20541746585092663, 0.02224861496549978, 0.7166858260712701, 0.09784354529008414, 0.3058262202337419, 0.016680720077380907, 0.20334257344220577, 0.7644095937713216, 0.04184886828545887, 0.5203693651707718, 0.020150722443188177, 0.7841754492141704, 0.3720527941310953, 0.02658326807381491, 0.23046100727636734, 0.32567738118024325, 0.37179453086340697, 0.020883963582842037, 0.09736970462382015, 0.2913098897336355, 0.695291885810194, 0.7909876792678934, 0.39088897358610103, 0.03346193356208075, 0.28232880433014124, 0.8246350598938015, 0.04582438147391751, 0.11880361218224368, 0.06144331276788053, 0.17916013344211254, 0.3918072053902693, 0.057077552777534936, 0.5449474967266729, 0.6104914653086739, 0.18242092803827062, 0.144768423152708, 0.06924576471997648, 0.6121257509487736, 0.780488918808581, 0.11502489699558159, 0.09276309205580242, 0.09592494691832315, 0.9059771621521296, 0.39192375932866014, 0.5592841584310498, 0.027915284145248142, 0.8741122230204867, 0.3239156550416848, 0.5663463897129439, 0.7333193664273102, 0.4672038116088164, 0.02019494855008778, 0.8057596796326586, 0.6005351993665222, 0.15715029911941727, 0.08603811314035739, 0.5372049490959221, 0.1273975396635594, 0.06234884236439526, 0.7880879142228845, 0.33551325618163186, 0.10128090250677182, 0.5479574375161732, 0.025340712353496334, 0.23328008242104525, 0.7495304554669445, 0.31112175702092776, 0.047202791444046606, 0.10861569204074145, 0.6914602558343713, 0.021544236837407728, 0.21761526896413996, 0.5147315029680711, 0.10618865907898534, 0.5568845949862743, 0.32914031623781576, 0.5418724965605737, 0.3615851966256301, 0.14572222908188132, 0.49662987542833587, 0.7793407737648609, 0.4685754789188664, 0.02325567855338983, 0.7152959959215397, 0.22188849771192304, 0.43158588718415963, 0.013124434257918809, 0.023116446098780857, 0.6585740124012288, 0.03535837870675018, 0.6018970154323329, 0.08501595458002603, 0.212765718209217, 0.4417880446849418, 0.7390349472309201, 0.5355724201411151, 0.25778254116376204, 0.27311831129754016, 0.009571168590758978, 0.2114486772582078, 0.020806332222364096, 0.03128102254522129, 0.9435408864872301, 0.7373508695444754, 0.04591622557840022, 0.12211921293686909, 0.24619824353445288, 0.15042411802445457, 0.10389051722039118, 0.1862762997107295, 0.010540175195799164, 0.42356599784187493, 0.589939895525056, 0.9805169511638052, 0.18114663394489156, 0.25965536129810135, 0.7693928854195483, 0.21604323754539717, 0.18422398243815158, 0.07137381653419364, 0.5435478308493694, 0.6278642724905599, 0.8087474364738771, 0.11488169768324916, 0.10040752594059191, 0.2278804298853178, 0.04369928421062687, 0.03276849011509824, 0.19235246862354327, 0.4417875542362767, 0.10994878182928425, 0.39531326468605293, 0.8541048905408544, 0.04118083200263943, 0.9655745960060391, 0.42263078112111474, 0.9393938307911059, 0.09998062953187296, 0.06770879778540513, 0.03317897282094567, 0.9152009872400105, 0.28668956687337027, 0.6229126913530532, 0.5077834283873344, 0.14507550693011467, 0.18039321830142319, 0.6646260959209023, 0.3097215995624734, 0.06292826369055957, 0.0811582850722222, 0.21381762714418687, 0.31001527281710306, 0.047980777145367935, 0.3713655148808507, 0.39574560431592926, 0.015217098990111573, 0.04306546222766055, 0.8164396937569355, 0.9101762456624406, 0.06798524307222166, 0.06868038293507786, 0.0365172969278529, 0.5424739369027866, 0.42222669556574327, 0.05186907836310691, 0.2715058903232301, 0.29327001653092444, 0.8996434720362195], \"y\": [0.19580581057958737, 0.26373732417723206, 0.1667411270625192, 0.21688352864714583, 0.14026933603952993, 0.3757994602946816, 0.04167028262426619, 0.010894072648478236, 0.13291911050215294, 0.44060288184879876, 0.5150314830764153, 0.40050074918291273, 0.006728957584964703, 0.015986159274287554, 0.05610086887857684, 0.16679791721668286, 0.13524368030438824, 0.05558636695979382, 0.04637165635191953, 0.06397125347285432, 0.03454533591648106, 0.2514524353608221, 0.04860337436761183, 0.05035451443828238, 0.8646160048669287, 0.038793277180725644, 0.6174207332597604, 0.04113373017112971, 0.44508223524138146, 0.7525780322980046, 0.07956470898878283, 0.7361238662712697, 0.019727191406576736, 0.7976941300206675, 0.9050976893510787, 0.6443491702974127, 0.553991089172677, 0.012663892133399558, 0.09989724878254198, 0.3631403103401466, 0.7775302323439333, 0.053022332369551235, 0.026980766258237535, 0.6442109852616648, 0.12957395707528907, 0.03853349148563847, 0.10937794967666263, 0.6450113644601063, 0.5230087160371498, 0.8448976022936887, 0.16994281958503998, 0.01519321683292033, 0.49140197287550724, 0.9135592275027449, 0.9296866040840275, 0.7023471395069066, 0.5694735575409622, 0.6156127786478884, 0.9025646167801502, 0.950499413954886, 0.7254078609977146, 0.46845718006789233, 0.0385763896723018, 0.23957612869426595, 0.018074734422889184, 0.014541920178449942, 0.05311417827130055, 0.501046604185841, 0.34070602302705066, 0.7916517264795464, 0.1257277518654077, 0.46188564219466577, 0.41753212958725866, 0.12010285973276735, 0.014403065534082556, 0.4394366242761282, 0.6124915086513388, 0.0623526274819663, 0.5011699395172364, 0.1402481899790625, 0.7861498788786602, 0.23614687176868537, 0.054758507266557996, 0.16514123844354955, 0.4059519306460842, 0.19547636063172175, 0.8681875544386828, 0.32820078725985835, 0.029789665684856786, 0.04764600574222773, 0.2672572264211731, 0.4527713645391303, 0.6965774417015429, 0.2005255651945485, 0.6733698824549879, 0.038968352817964305, 0.3168711927736836, 0.07442746907555974, 0.8934289964257071, 0.09258891383467263, 0.1549556884524634, 0.15891835904765111, 0.3668144269159466, 0.018920004323312416, 0.20791030377541456, 0.030971297559415897, 0.4070031901687072, 0.8989892528823336, 0.5427968389943432, 0.5431795570996807, 0.7410961916965279, 0.8489380329833497, 0.5765912976796459, 0.9105742714566607, 0.38246271012423816, 0.7353618352381637, 0.03576495038794998, 0.03520665493459014, 0.6481146259461099, 0.5241107435803553, 0.029965213106552552, 0.4030615461089986, 0.06883799643478296, 0.012077082958662284, 0.06864386766636528, 0.038984159822634395, 0.05415566140615563, 0.03607962157838829, 0.08916634718803691, 0.8289602087700826, 0.5980490092645548, 0.7505655521559663, 0.5636573127004998, 0.015698780471581082, 0.06383969871727393, 0.43972754735487324, 0.14414151615373852, 0.578270875888171, 0.5124381014372783, 0.5183429987191579, 0.027405823852131975, 0.7204420037516704, 0.08226576871189412, 0.09392473223525001, 0.011267921967928383, 0.6864852484387813, 0.3178560958461997, 0.6046372313265523, 0.1129796312117425, 0.08758872714472021, 0.07282298657764365, 0.3073072805670743, 0.19478453714652907, 0.06653846882705448, 0.9147792567666989, 0.520245333591648, 0.0846424033121646, 0.008904598158222088, 0.7891805477480288, 0.05889673893086592, 0.08560578146183573, 0.37600008952984193, 0.38068357038229, 0.2587145239416835, 0.8230006397966257, 0.30893906742434674, 0.30189272660534416, 0.06928244572520215, 0.026825069262077266, 0.028920961896617022, 0.3095315783136772, 0.0819579374742781, 0.1512233143095073, 0.052776078025779403, 0.018303040837183673, 0.07891474298096679, 0.11867917298516545, 0.127758566880928, 0.24617136498918005, 0.05801071320465038, 0.1952449236393933, 0.2814538684810783, 0.1030074689573014, 0.5202400068169322, 0.4066467376937976, 0.05953869762359107, 0.6025648091722999, 0.3796728838784261, 0.2648366576653669, 0.5120062453554451, 0.5909933188126807, 0.02123295854053902, 0.3113458339219163, 0.1588637220083262, 0.8860794968300594, 0.7293439321585281, 0.010141307107712655, 0.07251738025548997, 0.21200393375836302, 0.3692592000460067, 0.41418507723882614, 0.013506645043505749, 0.1147217428011417, 0.6524235129406839, 0.2741188766070074, 0.01909513463766865, 0.11676532454638458, 0.0428899092945417, 0.057437986756624225, 0.9089040210438795, 0.011633244370828254, 0.5639842289552914, 0.06311589486757577, 0.03368531539303095, 0.03147246227345258, 0.16925066320647064, 0.719480044051521, 0.07406339891487941, 0.1107361706000973, 0.9548790827469871, 0.06840984804296653, 0.2029574107107313, 0.48436713089068373, 0.6522619265490278, 0.4524419596914845, 0.10916997594472055, 0.03314957092790228, 0.015246951546186962, 0.6983832994733161, 0.36196083637773085, 0.015837671329988996, 0.20420035991954522, 0.23222184022589068, 0.7906905116772931, 0.23638617741683043, 0.03142188653383345, 0.5050844768868543, 0.08085734103274508, 0.2215828310722111, 0.15199802707025148, 0.27062982333192426, 0.4690353231588327, 0.050432224700354904, 0.09118833799938778, 0.37449659324067597, 0.9429104896423965, 0.2712337831172945, 0.5366861043238256, 0.2587266856121315, 0.5165785993974629, 0.7479298903534066, 0.6730063143109776, 0.18834692026836378, 0.05078950108576279, 0.08648016246177127, 0.6181438453622963, 0.2975524971215039, 0.1215418919275174, 0.8395490037411631, 0.3010154002534047, 0.8946024113018188, 0.1739570148777991, 0.5800213271726162, 0.2277931943313481, 0.009863643150761334, 0.22492226745269914, 0.6106270571998924, 0.8444152086246152, 0.913235840269088, 0.2953248424553732, 0.05637908714941671, 0.7839809656584258, 0.30387762543937213, 0.2895727456534807, 0.03508617198559944, 0.48361669676070973, 0.43455647139319187, 0.33804381247302234, 0.11731491018124757, 0.018782983831075167, 0.07444522681986673, 0.1511067280848463, 0.10415139698069427, 0.03276211786919281, 0.12290519753414111, 0.14705825889775337, 0.06670698848213537, 0.010444168146241585, 0.1446299229626693, 0.055642731534497565, 0.4307157246841302, 0.0686069498748548, 0.5921414813774487, 0.10495965799706874, 0.05242911583967038, 0.8960435746532329, 0.7133818964186198, 0.07625239485267202, 0.2921196069296334, 0.8178915933701328, 0.045417979603417646, 0.27601795262748013, 0.7655430099165804, 0.653773621503782, 0.223186222609412, 0.011993216757357983, 0.19586028120944862, 0.5194728034091662, 0.021209629890419263, 0.043864363547407255, 0.7953696111046321, 0.137312057489953, 0.00827724493132542, 0.42345851539506274, 0.7044343711273328, 0.2726996419712519, 0.25969669258130074, 0.1611740699165457, 0.06661081129567575, 0.5059037256119461, 0.3015630104387937, 0.08856507863161822, 0.36834889469437415, 0.25648628964920833, 0.7206720271332344, 0.21833293308449464, 0.02601445686364299, 0.017709944746488432, 0.06836708135116776, 0.6263617969253025, 0.9601447394797084, 0.7368295789808502, 0.02746297152994758, 0.030885710860480226, 0.0083658173125454, 0.13580134242423403, 0.4632152453230466, 0.4264871895849289, 0.6124760544072886, 0.2978847202851177, 0.5432003377759834, 0.7907403174114828, 0.45951094181959085, 0.2675321224301813, 0.0694100509677049, 0.009238019217948265, 0.5643638879346647, 0.5822137937459392, 0.06291654317421329, 0.7531267112477062, 0.2965105270266721, 0.5345947213437505, 0.32543085382661024, 0.02283833125105519, 0.05104691475127554, 0.18956595802990348, 0.07845246438759904, 0.614629733817139, 0.22744053189125887, 0.053167876542909734, 0.7281487825373004, 0.4256313484619982, 0.5031091202875507, 0.521609546613795, 0.06226938494400362, 0.10140029377608567, 0.01649306145323617, 0.5426853980213802, 0.02989343241081845, 0.6786876734243438, 0.9227873951703967, 0.11171987053925837, 0.03257020168648973, 0.11263299977298609, 0.1784041260422105, 0.022456133205772548, 0.6088348358778765, 0.3065723594617712, 0.057546428996490755, 0.5442554624334622, 0.8590137804932276, 0.5249978231621547, 0.15149337894837026, 0.6660695342274668, 0.3039419525319844, 0.1376605390403559, 0.3006095755036461, 0.33954326422614206, 0.8795783654300992, 0.13363203333240486, 0.052346554787795006, 0.029373132876210364, 0.3828203356600623, 0.1063967416156678, 0.10001395736195277, 0.17862767454853984, 0.8254345256873917, 0.40272144819710226, 0.23322509663797852, 0.07587842705436305], \"z\": [0.5851864223949828, 0.3914243888144927, 0.4731746596626903, 0.3858060149090481, 0.016734359325243052, 0.3911869209321689, 0.17795191682253236, 0.029854233245879606, 0.01989637454836065, 0.22264061024810486, 0.28763042534751926, 0.14849098680525963, 0.34923380526900166, 0.25629321945748057, 0.8951475041779727, 0.1861477301561054, 0.3260722456660673, 0.026066215461006632, 0.9065648924127451, 0.25283108533209336, 0.3043779897706429, 0.13940942453815347, 0.7026289469306897, 0.7866366277145131, 0.10723601149428336, 0.5931149877374451, 0.133962287862902, 0.5536801904451517, 0.5269259592023083, 0.08466543735287468, 0.2531488198537823, 0.23286529788648966, 0.008921717630740641, 0.17516180083175162, 0.014151608189881235, 0.2971664633110132, 0.03282381915270084, 0.48013400601975786, 0.6885027150481573, 0.35350034651459095, 0.07201357019538937, 0.7888769468003335, 0.023424156168137582, 0.29404967208980526, 0.7170016028975044, 0.7730928385886936, 0.10623893932852284, 0.31963351953006985, 0.06440631531679818, 0.08881138086651308, 0.32899469788693547, 0.040833664852922946, 0.023581949690187096, 0.04702693957813534, 0.02685334189795849, 0.127175870172938, 0.4222067000556568, 0.05153043756762936, 0.07248871871618968, 0.015156276068099316, 0.04616085382265461, 0.16115124617604415, 0.8238610905012796, 0.17834726117642086, 0.22551424041054888, 0.05330671747057586, 0.8063252370383718, 0.04833920034752349, 0.5977730015031286, 0.12465705968519407, 0.6002610194982784, 0.4368397435811211, 0.5211124886340534, 0.5419685594408711, 0.01536070420226474, 0.3196900269035755, 0.13461451256973744, 0.8694400039947152, 0.3806105936753803, 0.15614590023550942, 0.08181971434441085, 0.41401674577670766, 0.9184938829300168, 0.7231966084507995, 0.21440325038381625, 0.42648876443180705, 0.0649926104486827, 0.06098981149968189, 0.7089194355717365, 0.8766568919525556, 0.6409897452485364, 0.46878138101902006, 0.13727179515848364, 0.3878801884900202, 0.2360929773300286, 0.5296255486353103, 0.2804099143886092, 0.8470749579953946, 0.009964532236413227, 0.01244393730612998, 0.15246033722574975, 0.03244767522214886, 0.6105445842901194, 0.545143123393552, 0.030765287488461156, 0.9507136704024186, 0.5666968356442073, 0.024084503830977776, 0.2473674214591499, 0.1144307251286739, 0.0890898233778761, 0.13901694981313625, 0.026608807846344694, 0.01092983096980365, 0.11459926506754756, 0.2522420716656974, 0.028971974084416867, 0.9249577899431447, 0.18623686425876296, 0.44621533945204234, 0.5337292112233063, 0.010106220314623751, 0.03540290221104834, 0.3817578127580147, 0.013149619474682472, 0.9073843251311148, 0.03093410293132066, 0.38887268118575474, 0.34436246531158526, 0.11099921747900035, 0.15244154020156797, 0.04419950156610083, 0.02146628763887561, 0.05292232938849731, 0.8307457083893336, 0.5233528418835608, 0.058288355460889583, 0.21655257941470266, 0.09467885031653617, 0.3675753178208966, 0.026163569551547555, 0.24090861314542655, 0.04193632808750978, 0.09009953890944158, 0.7342862757943643, 0.23184516043667727, 0.1488107097242962, 0.0505496624720097, 0.6669513442638193, 0.8512772531876653, 0.8260680684865487, 0.5013112374437383, 0.6705222406443705, 0.657596074830961, 0.012680334590498584, 0.03307305285704912, 0.014578992725921138, 0.5121367711719298, 0.07050412398753302, 0.03829586562519513, 0.8552453390292211, 0.35643819808751054, 0.06476384924051046, 0.17343928450397778, 0.08155990712810811, 0.48774337390114575, 0.19781276192803873, 0.44773189752663584, 0.7672854025265582, 0.9368130509389263, 0.5833702618719391, 0.8197496157483471, 0.715548784044686, 0.5142510765238386, 0.7992556558039043, 0.03311739854845821, 0.21132272500652186, 0.23119508901081884, 0.5356264449120017, 0.8935332186881727, 0.7317683481351323, 0.4335337750719526, 0.10681984934666482, 0.23183580535418508, 0.5812473576631131, 0.8002204061123209, 0.35920519753827473, 0.12736242817229407, 0.09784443476635112, 0.19960085624510202, 0.11516302380780166, 0.9081559817854468, 0.6218680669090737, 0.34416535298873746, 0.040270505158425625, 0.09373410503250433, 0.6565843905027609, 0.45689314529134634, 0.31977368667414025, 0.02204663630175128, 0.524676102206729, 0.9737766908014138, 0.15020390722772914, 0.007212217219141135, 0.07754015947888249, 0.67585162028865, 0.6857434853656383, 0.9231513829883996, 0.30320851662093823, 0.040905489731631724, 0.39380609257059573, 0.08053904004514907, 0.0888710460249046, 0.07359782187259167, 0.9342037393997251, 0.606120421115466, 0.0805666745361559, 0.12170219565208153, 0.1330903235183094, 0.01075609237967056, 0.06332744020368222, 0.38052094767582645, 0.3561194536712523, 0.030916322973678318, 0.09779775918390318, 0.5496196385327964, 0.9528810706455098, 0.04676383867775945, 0.1284307996842978, 0.5647573737893402, 0.09774245830776129, 0.038466722170107034, 0.5623606939231827, 0.18706087335720722, 0.04692799651189945, 0.8707345681760824, 0.18908930287940387, 0.902461938889874, 0.575074595485583, 0.08359237915842703, 0.6875213083826168, 0.010595311670395435, 0.9294170528564569, 0.12463621278644174, 0.2534506126282287, 0.030506242283788353, 0.4983052096063381, 0.137636514495931, 0.36947878352446156, 0.462537437019695, 0.15470040502277316, 0.03568379595538699, 0.11636119392144237, 0.1582228196463439, 0.5226308639521277, 0.34839422107562285, 0.4201186985483548, 0.05382304817868109, 0.11462661478491934, 0.5801809875643517, 0.04395427593030056, 0.6468828516800884, 0.028171467437114472, 0.715129252891117, 0.44518886012256575, 0.1645862672386269, 0.2069520147618369, 0.010816368222676776, 0.017518395010935554, 0.09254940659585315, 0.1631319940420023, 0.10099413734599265, 0.6033592825048254, 0.6145023074281962, 0.058936665862270865, 0.12445954391063015, 0.006159370175758332, 0.6340409033817296, 0.008572866798265655, 0.6573013611272399, 0.3592083834671893, 0.11557390548784352, 0.4286447914104892, 0.9470429335807193, 0.07133512283320026, 0.25240654173572435, 0.7761427123984475, 0.903517718713401, 0.31816512794140867, 0.816959728801943, 0.5069354329514745, 0.14330513590226074, 0.07234526244091936, 0.7937594394961595, 0.3996134466441564, 0.0786157129932707, 0.0533380211603349, 0.17421714968038343, 0.3967586360494388, 0.1349056151858205, 0.8459663283558408, 0.03252179153814847, 0.212912753246012, 0.12861110953207805, 0.2620822744225168, 0.8818181241636567, 0.24725512380427708, 0.151386880353018, 0.436917873549007, 0.5945504398269625, 0.058908159813486516, 0.3660580670817112, 0.21238198130381364, 0.10796600568607077, 0.27230995031927757, 0.012004362107208342, 0.5184148097067762, 0.4072400428992948, 0.9202647544464055, 0.4709798282892731, 0.03986297715997749, 0.8760765426616315, 0.029754089873292932, 0.6584977557707657, 0.0665622546575486, 0.3398790222305634, 0.23495059590543693, 0.4467176351123966, 0.6738503774850703, 0.10051989177715719, 0.030284091929532735, 0.051721743760942025, 0.9517306962476882, 0.9378332665942984, 0.04809329620022459, 0.1268477880312906, 0.49086852909855316, 0.4513935974782019, 0.14132570205825848, 0.5516911616904278, 0.3529091450036254, 0.022983382877787815, 0.5299488829846101, 0.3089018797279437, 0.3406500535072391, 0.010245029618246467, 0.25448947812044376, 0.15813084495595936, 0.16769057140623825, 0.03083005120689654, 0.5192654905351765, 0.39403146212205586, 0.1310213153240204, 0.3492973962583851, 0.1402056487748473, 0.6955523442868474, 0.8211400096718091, 0.1574898362975432, 0.7288601838981142, 0.9140636333419921, 0.07949874883915624, 0.1325810973017252, 0.3869420978831651, 0.083077188700152, 0.08362572451514189, 0.8574188742212749, 0.01793234254072483, 0.03468382085750526, 0.030712736798075624, 0.22133169704378333, 0.00950380704419819, 0.855101156639796, 0.05222881107349969, 0.6006774333536435, 0.19868318260473625, 0.4697604384068931, 0.24608965719200895, 0.5130344222368056, 0.2778274750826071, 0.14602293800406443, 0.07805795581621265, 0.3938438917656231, 0.6346889939074428, 0.023915192955430143, 0.6480772703226476, 0.49097394607879347, 0.3036448201804246, 0.6452396367837464, 0.07735617234224024, 0.04992827291065974, 0.03747719954976437, 0.9026416240515679, 0.5484992814048598, 0.8570859614564792, 0.3575121057352607, 0.39914562988571695, 0.12269639594950148, 0.3257726614796676, 0.47350488683109704, 0.024478100909417502]}], {\"margin\": {\"b\": 10, \"l\": 10, \"r\": 20, \"t\": 0}, \"scene\": {\"annotations\": [{\"text\": \"cat\", \"x\": 1.0, \"xanchor\": \"center\", \"y\": 0.0, \"z\": 0.0}, {\"text\": \"dog\", \"x\": 0.0, \"xanchor\": \"center\", \"y\": 1.0, \"z\": 0.0}, {\"text\": \"horse\", \"x\": 0.0, \"xanchor\": \"center\", \"y\": 0.0, \"z\": 1.0}], \"xaxis\": {\"title\": {\"text\": \"cat - ness\"}}, \"yaxis\": {\"title\": {\"text\": \"dog - ness\"}}, \"zaxis\": {\"title\": {\"text\": \"horse - ness\"}}}, \"showlegend\": false, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"autotypenumbers\": \"strict\", \"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\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"width\": 700}, {\"responsive\": true} ).then(function(){\n", " \n", "var gd = document.getElementById('90ef0fda-6b6b-477b-a5a2-f038ac522492');\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", " }) }; }); </script> </div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "prob, targ = calc_prob(n=400)\n", "TrianglePlot3D_Plotly(prob, targ=None, labels=labels, show_bounds=False).do_plot()" ] }, { "cell_type": "markdown", "metadata": { "id": "JtKuxjw5udRX", "slideshow": { "slide_type": "notes" } }, "source": [ "Note that even though these are points in 3D space, they make up a *triangle* which lies along a *plane* -- a 2D :subspace\" of 3D. This is a consequence of having the \"constraint\" that all class probabilities add up to 1. \n", "\n", "We can color the points by their expected class values by choosing the triangle point (or \"pole\") that they're nearest to -- i.e. by which \"bar\" is largest among the class probabilities. And we can include the boundaries between classes:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Let's color them by their target value / label, and show class boundaries: " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 542 }, "hideCode": false, "id": "1PgeVqXQuvfk", "outputId": "363d96ae-f917-4343-8296-8e68b8b9eafa", "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "<div> <div id=\"20db56d1-c202-4639-845f-35d9329efdc5\" class=\"plotly-graph-div\" style=\"height:525px; width:700px;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"20db56d1-c202-4639-845f-35d9329efdc5\")) { Plotly.newPlot( \"20db56d1-c202-4639-845f-35d9329efdc5\", [{\"hovertext\": [\"horse\", \"horse\", \"horse\", \"cat\", \"cat\", \"horse\", \"cat\", \"cat\", \"cat\", \"dog\", \"dog\", \"cat\", \"cat\", \"cat\", \"horse\", \"cat\", \"cat\", \"cat\", \"horse\", \"cat\", \"cat\", \"cat\", \"horse\", \"horse\", \"dog\", \"horse\", \"dog\", \"horse\", \"horse\", \"dog\", \"cat\", \"dog\", \"cat\", \"dog\", \"dog\", \"dog\", \"dog\", \"cat\", \"horse\", \"dog\", \"dog\", \"horse\", \"cat\", \"dog\", \"horse\", \"horse\", \"cat\", \"dog\", \"dog\", \"dog\", \"cat\", \"cat\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"horse\", \"cat\", \"cat\", \"cat\", \"horse\", \"dog\", \"horse\", \"dog\", \"horse\", \"dog\", \"horse\", \"horse\", \"cat\", \"dog\", \"dog\", \"horse\", \"dog\", \"cat\", \"dog\", \"horse\", \"horse\", \"horse\", \"dog\", \"horse\", \"dog\", \"cat\", \"horse\", \"horse\", \"horse\", \"horse\", \"dog\", \"cat\", \"dog\", \"horse\", \"cat\", \"horse\", \"dog\", \"cat\", \"cat\", \"cat\", \"horse\", \"horse\", \"cat\", \"horse\", \"horse\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"cat\", \"dog\", \"cat\", \"horse\", \"dog\", \"dog\", \"horse\", \"cat\", \"cat\", \"cat\", \"cat\", \"horse\", \"cat\", \"cat\", \"cat\", \"dog\", \"dog\", \"dog\", \"dog\", \"cat\", \"horse\", \"horse\", \"cat\", \"dog\", \"dog\", \"dog\", \"cat\", \"dog\", \"cat\", \"cat\", \"horse\", \"dog\", \"cat\", \"dog\", \"horse\", \"horse\", \"horse\", \"horse\", \"horse\", \"horse\", \"dog\", \"dog\", \"cat\", \"horse\", \"dog\", \"cat\", \"horse\", \"dog\", \"cat\", \"cat\", \"dog\", \"horse\", \"cat\", \"cat\", \"horse\", \"horse\", \"horse\", \"horse\", \"horse\", \"horse\", \"horse\", \"cat\", \"cat\", \"cat\", \"horse\", \"horse\", \"horse\", \"horse\", \"cat\", \"dog\", \"horse\", \"horse\", \"dog\", \"cat\", \"cat\", \"dog\", \"dog\", \"horse\", \"horse\", \"cat\", \"dog\", \"dog\", \"horse\", \"cat\", \"cat\", \"cat\", \"horse\", \"horse\", \"cat\", \"dog\", \"cat\", \"horse\", \"horse\", \"horse\", \"cat\", \"dog\", \"cat\", \"dog\", \"cat\", \"cat\", \"horse\", \"horse\", \"dog\", \"cat\", \"cat\", \"dog\", \"cat\", \"cat\", \"dog\", \"dog\", \"dog\", \"horse\", \"horse\", \"cat\", \"dog\", \"horse\", \"cat\", \"cat\", \"horse\", \"dog\", \"cat\", \"horse\", \"dog\", \"horse\", \"horse\", \"cat\", \"horse\", \"cat\", \"horse\", \"cat\", \"dog\", \"dog\", \"horse\", \"dog\", \"cat\", \"dog\", \"dog\", \"dog\", \"cat\", \"cat\", \"horse\", \"dog\", \"horse\", \"cat\", \"dog\", \"horse\", \"dog\", \"horse\", \"dog\", \"horse\", \"cat\", \"cat\", \"dog\", \"dog\", \"dog\", \"cat\", \"cat\", \"dog\", \"horse\", \"horse\", \"cat\", \"dog\", \"cat\", \"horse\", \"cat\", \"horse\", \"cat\", \"cat\", \"cat\", \"horse\", \"cat\", \"cat\", \"horse\", \"horse\", \"cat\", \"horse\", \"horse\", \"cat\", \"dog\", \"horse\", \"cat\", \"dog\", \"dog\", \"cat\", \"horse\", \"dog\", \"horse\", \"cat\", \"dog\", \"dog\", \"cat\", \"horse\", \"cat\", \"dog\", \"cat\", \"horse\", \"dog\", \"cat\", \"cat\", \"cat\", \"dog\", \"cat\", \"horse\", \"cat\", \"horse\", \"dog\", \"cat\", \"horse\", \"cat\", \"horse\", \"dog\", \"cat\", \"cat\", \"cat\", \"horse\", \"dog\", \"dog\", \"dog\", \"horse\", \"horse\", \"cat\", \"cat\", \"horse\", \"horse\", \"dog\", \"horse\", \"dog\", \"dog\", \"horse\", \"cat\", \"cat\", \"cat\", \"dog\", \"dog\", \"cat\", \"dog\", \"horse\", \"dog\", \"cat\", \"cat\", \"cat\", \"horse\", \"horse\", \"dog\", \"horse\", \"horse\", \"dog\", \"cat\", \"dog\", \"dog\", \"cat\", \"horse\", \"cat\", \"dog\", \"cat\", \"dog\", \"dog\", \"horse\", \"cat\", \"horse\", \"cat\", \"cat\", \"dog\", \"horse\", \"cat\", \"dog\", \"dog\", \"dog\", \"horse\", \"dog\", \"horse\", \"horse\", \"cat\", \"horse\", \"dog\", \"cat\", \"cat\", \"horse\", \"horse\", \"horse\", \"cat\", \"cat\", \"dog\", \"dog\", \"horse\", \"cat\"], \"marker\": {\"color\": [\"blue\", \"blue\", \"blue\", \"red\", \"red\", \"blue\", \"red\", \"red\", \"red\", \"green\", \"green\", \"red\", \"red\", \"red\", \"blue\", \"red\", \"red\", \"red\", \"blue\", \"red\", \"red\", \"red\", \"blue\", \"blue\", \"green\", \"blue\", \"green\", \"blue\", \"blue\", \"green\", \"red\", \"green\", \"red\", \"green\", \"green\", \"green\", \"green\", \"red\", \"blue\", \"green\", \"green\", \"blue\", \"red\", \"green\", \"blue\", \"blue\", \"red\", \"green\", \"green\", \"green\", \"red\", \"red\", \"green\", \"green\", \"green\", \"green\", \"green\", \"green\", \"green\", \"green\", \"green\", \"green\", \"blue\", \"red\", \"red\", \"red\", \"blue\", \"green\", \"blue\", \"green\", \"blue\", \"green\", \"blue\", \"blue\", \"red\", \"green\", \"green\", \"blue\", \"green\", \"red\", \"green\", \"blue\", \"blue\", \"blue\", \"green\", \"blue\", \"green\", \"red\", \"blue\", \"blue\", \"blue\", \"blue\", \"green\", \"red\", \"green\", \"blue\", \"red\", \"blue\", \"green\", \"red\", \"red\", \"red\", \"blue\", \"blue\", \"red\", \"blue\", \"blue\", \"green\", \"green\", \"green\", \"green\", \"green\", \"green\", \"green\", \"red\", \"green\", \"red\", \"blue\", \"green\", \"green\", \"blue\", \"red\", \"red\", \"red\", \"red\", \"blue\", \"red\", \"red\", \"red\", \"green\", \"green\", \"green\", \"green\", \"red\", \"blue\", \"blue\", \"red\", \"green\", \"green\", \"green\", \"red\", \"green\", \"red\", \"red\", \"blue\", \"green\", \"red\", \"green\", \"blue\", \"blue\", \"blue\", \"blue\", \"blue\", \"blue\", \"green\", \"green\", \"red\", \"blue\", \"green\", \"red\", \"blue\", \"green\", \"red\", \"red\", \"green\", \"blue\", \"red\", \"red\", \"blue\", \"blue\", \"blue\", \"blue\", \"blue\", \"blue\", \"blue\", \"red\", \"red\", \"red\", \"blue\", \"blue\", \"blue\", \"blue\", \"red\", \"green\", \"blue\", \"blue\", \"green\", \"red\", \"red\", \"green\", \"green\", \"blue\", \"blue\", \"red\", \"green\", \"green\", \"blue\", \"red\", \"red\", \"red\", \"blue\", \"blue\", \"red\", \"green\", \"red\", \"blue\", \"blue\", \"blue\", \"red\", \"green\", \"red\", \"green\", \"red\", \"red\", \"blue\", \"blue\", \"green\", \"red\", \"red\", \"green\", \"red\", \"red\", \"green\", \"green\", \"green\", \"blue\", \"blue\", \"red\", \"green\", \"blue\", \"red\", \"red\", \"blue\", \"green\", \"red\", \"blue\", \"green\", \"blue\", \"blue\", \"red\", \"blue\", \"red\", \"blue\", \"red\", \"green\", \"green\", \"blue\", \"green\", \"red\", \"green\", \"green\", \"green\", \"red\", \"red\", \"blue\", \"green\", \"blue\", \"red\", \"green\", \"blue\", \"green\", \"blue\", \"green\", \"blue\", \"red\", \"red\", \"green\", \"green\", \"green\", \"red\", \"red\", \"green\", \"blue\", \"blue\", \"red\", \"green\", \"red\", \"blue\", \"red\", \"blue\", \"red\", \"red\", \"red\", \"blue\", \"red\", \"red\", \"blue\", \"blue\", \"red\", \"blue\", \"blue\", \"red\", \"green\", \"blue\", \"red\", \"green\", \"green\", \"red\", \"blue\", \"green\", \"blue\", \"red\", \"green\", \"green\", \"red\", \"blue\", \"red\", \"green\", \"red\", \"blue\", \"green\", \"red\", \"red\", \"red\", \"green\", \"red\", \"blue\", \"red\", \"blue\", \"green\", \"red\", \"blue\", \"red\", \"blue\", \"green\", \"red\", \"red\", \"red\", \"blue\", \"green\", \"green\", \"green\", \"blue\", \"blue\", \"red\", \"red\", \"blue\", \"blue\", \"green\", \"blue\", \"green\", \"green\", \"blue\", \"red\", \"red\", \"red\", \"green\", \"green\", \"red\", \"green\", \"blue\", \"green\", \"red\", \"red\", \"red\", \"blue\", \"blue\", \"green\", \"blue\", \"blue\", \"green\", \"red\", \"green\", \"green\", \"red\", \"blue\", \"red\", \"green\", \"red\", \"green\", \"green\", \"blue\", \"red\", \"blue\", \"red\", \"red\", \"green\", \"blue\", \"red\", \"green\", \"green\", \"green\", \"blue\", \"green\", \"blue\", \"blue\", \"red\", \"blue\", \"green\", \"red\", \"red\", \"blue\", \"blue\", \"blue\", \"red\", \"red\", \"green\", \"green\", \"blue\", \"red\"], \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"type\": \"scatter3d\", \"x\": [0.21900776702542984, 0.34483828700827523, 0.3600842132747904, 0.3973104564438061, 0.8429963046352271, 0.2330136187731495, 0.7803778005532015, 0.9592516941056423, 0.8471845149494865, 0.3367565079030964, 0.19733809157606536, 0.45100826401182753, 0.6440372371460337, 0.7277206212682319, 0.04875162694345038, 0.6470543526272118, 0.5386840740295443, 0.9183474175791996, 0.0470634512353354, 0.6831976611950524, 0.6610766743128761, 0.6091381401010244, 0.2487676787016985, 0.16300885784720445, 0.028147983638787955, 0.3680917350818293, 0.24861697887733752, 0.40518607938371864, 0.027991805556310166, 0.1627565303491206, 0.6672864711574349, 0.03101083584224072, 0.9713510909626827, 0.027144069147580885, 0.08075070245904002, 0.05848436639157412, 0.41318509167462203, 0.5072021018468424, 0.2116000361693008, 0.28335934314526245, 0.15045619746067743, 0.15810072083011537, 0.949595077573625, 0.06173934264853011, 0.15342444002720668, 0.18837366992566795, 0.7843831109948146, 0.03535511600982397, 0.412584968646052, 0.06629101683979838, 0.5010624825280245, 0.9439731183141566, 0.48501607743430575, 0.039413832919119866, 0.043460054018014, 0.17047699032015548, 0.008319742403381111, 0.3328567837844822, 0.02494666450366026, 0.0343443099770148, 0.22843128517963074, 0.3703915737560636, 0.13756251982641862, 0.5820766101293132, 0.7564110251665619, 0.9321513623509742, 0.14056058469032762, 0.45061419546663545, 0.06152097546982072, 0.08369121383525946, 0.27401122863631405, 0.10127461422421309, 0.06135538177868797, 0.33792858082636146, 0.9702362302636526, 0.24087334882029637, 0.2528939787789238, 0.06820736852331846, 0.11821946680738322, 0.7036059097854281, 0.13203040677692904, 0.349836382454607, 0.026747609803425273, 0.1116621531056509, 0.37964481897009955, 0.37803487493647125, 0.06681983511263452, 0.6108094012404596, 0.26129089874340666, 0.0756971023052166, 0.09175302833029046, 0.07844725444184966, 0.16615076313997343, 0.41159424631543134, 0.09053714021498371, 0.4314060985467254, 0.4027188928377071, 0.07849757292904566, 0.09660647133787982, 0.8949671488591975, 0.6925839743217869, 0.8086339657302001, 0.022640988793934034, 0.43593687228313566, 0.7613244087361242, 0.01831503203816539, 0.02629997418708561, 0.0769262432866887, 0.20983573954650694, 0.3423897177716454, 0.16981398492559613, 0.01204501720351408, 0.39679989447400943, 0.07849589757353577, 0.5029380248082143, 0.012396093096139085, 0.9352630755276331, 0.03983555512226514, 0.16564850979512727, 0.029673916967602406, 0.43630557567014117, 0.5868322335763777, 0.8957591013541689, 0.606165104283323, 0.9182065128589523, 0.05363151504625089, 0.9149102356625238, 0.575047697235857, 0.5664711875003778, 0.06004057375091708, 0.2495094505338773, 0.2052349462779329, 0.41487639966062456, 0.9313788901399217, 0.10541459289339236, 0.036919610761565955, 0.797570128385372, 0.20517654469712626, 0.3928830482461855, 0.11408168345994552, 0.9464306065963205, 0.03864938310290299, 0.8757979032005963, 0.8159757288553083, 0.25444580223770735, 0.08166959112454134, 0.5333331944295041, 0.34481310620143796, 0.2200690245244383, 0.06113401966761446, 0.10110894493580769, 0.1913814819891874, 0.13469322220910046, 0.27586545634198445, 0.07254040864280241, 0.44668161355130276, 0.9007786039619142, 0.4789586306698481, 0.1403153282644382, 0.902807395443939, 0.059148879508943195, 0.26756171238264753, 0.5545525803771995, 0.5678461915543387, 0.09543945307526606, 0.20331755867450757, 0.5002945114666171, 0.4829856567481619, 0.2058895282113646, 0.03426598716445659, 0.10709815981438363, 0.09829244677737466, 0.13322790164580683, 0.432972845450382, 0.1824413033589121, 0.887967858470575, 0.6699981020083127, 0.6410463441082532, 0.21820219009881825, 0.04845606810717697, 0.07298672822547447, 0.2850123564469691, 0.7901726816960338, 0.2479241878288827, 0.012105904643089306, 0.14024089626408803, 0.038229993289425286, 0.4929646879492798, 0.637318907568282, 0.2883928983994529, 0.2938436573795177, 0.07061105967401418, 0.06678609916901002, 0.49697092500293627, 0.07364999801151502, 0.1769219628089677, 0.3332743023895264, 0.47058947445316374, 0.4682223795674969, 0.608694163652242, 0.06113882055444497, 0.012716664155080371, 0.7350743499711292, 0.3403642698401749, 0.6483409639141101, 0.30505324507368137, 0.19749119008797705, 0.03395870771705883, 0.6393534966224377, 0.050190489224488904, 0.594560663058576, 0.3554767309995595, 0.8480130591075197, 0.8927168627343774, 0.03432379832682235, 0.2246289156780634, 0.19995328141232305, 0.804234405433039, 0.7561735058815933, 0.0343648248733423, 0.8682627117533513, 0.4165216416134422, 0.15951341543806408, 0.31682175047729394, 0.4497602811246123, 0.34121038552248306, 0.013969358426587905, 0.9379892097760537, 0.17318590084238616, 0.07328178983292889, 0.8864198703622499, 0.7573329179103478, 0.20541746585092663, 0.02224861496549978, 0.7166858260712701, 0.09784354529008414, 0.3058262202337419, 0.016680720077380907, 0.20334257344220577, 0.7644095937713216, 0.04184886828545887, 0.5203693651707718, 0.020150722443188177, 0.7841754492141704, 0.3720527941310953, 0.02658326807381491, 0.23046100727636734, 0.32567738118024325, 0.37179453086340697, 0.020883963582842037, 0.09736970462382015, 0.2913098897336355, 0.695291885810194, 0.7909876792678934, 0.39088897358610103, 0.03346193356208075, 0.28232880433014124, 0.8246350598938015, 0.04582438147391751, 0.11880361218224368, 0.06144331276788053, 0.17916013344211254, 0.3918072053902693, 0.057077552777534936, 0.5449474967266729, 0.6104914653086739, 0.18242092803827062, 0.144768423152708, 0.06924576471997648, 0.6121257509487736, 0.780488918808581, 0.11502489699558159, 0.09276309205580242, 0.09592494691832315, 0.9059771621521296, 0.39192375932866014, 0.5592841584310498, 0.027915284145248142, 0.8741122230204867, 0.3239156550416848, 0.5663463897129439, 0.7333193664273102, 0.4672038116088164, 0.02019494855008778, 0.8057596796326586, 0.6005351993665222, 0.15715029911941727, 0.08603811314035739, 0.5372049490959221, 0.1273975396635594, 0.06234884236439526, 0.7880879142228845, 0.33551325618163186, 0.10128090250677182, 0.5479574375161732, 0.025340712353496334, 0.23328008242104525, 0.7495304554669445, 0.31112175702092776, 0.047202791444046606, 0.10861569204074145, 0.6914602558343713, 0.021544236837407728, 0.21761526896413996, 0.5147315029680711, 0.10618865907898534, 0.5568845949862743, 0.32914031623781576, 0.5418724965605737, 0.3615851966256301, 0.14572222908188132, 0.49662987542833587, 0.7793407737648609, 0.4685754789188664, 0.02325567855338983, 0.7152959959215397, 0.22188849771192304, 0.43158588718415963, 0.013124434257918809, 0.023116446098780857, 0.6585740124012288, 0.03535837870675018, 0.6018970154323329, 0.08501595458002603, 0.212765718209217, 0.4417880446849418, 0.7390349472309201, 0.5355724201411151, 0.25778254116376204, 0.27311831129754016, 0.009571168590758978, 0.2114486772582078, 0.020806332222364096, 0.03128102254522129, 0.9435408864872301, 0.7373508695444754, 0.04591622557840022, 0.12211921293686909, 0.24619824353445288, 0.15042411802445457, 0.10389051722039118, 0.1862762997107295, 0.010540175195799164, 0.42356599784187493, 0.589939895525056, 0.9805169511638052, 0.18114663394489156, 0.25965536129810135, 0.7693928854195483, 0.21604323754539717, 0.18422398243815158, 0.07137381653419364, 0.5435478308493694, 0.6278642724905599, 0.8087474364738771, 0.11488169768324916, 0.10040752594059191, 0.2278804298853178, 0.04369928421062687, 0.03276849011509824, 0.19235246862354327, 0.4417875542362767, 0.10994878182928425, 0.39531326468605293, 0.8541048905408544, 0.04118083200263943, 0.9655745960060391, 0.42263078112111474, 0.9393938307911059, 0.09998062953187296, 0.06770879778540513, 0.03317897282094567, 0.9152009872400105, 0.28668956687337027, 0.6229126913530532, 0.5077834283873344, 0.14507550693011467, 0.18039321830142319, 0.6646260959209023, 0.3097215995624734, 0.06292826369055957, 0.0811582850722222, 0.21381762714418687, 0.31001527281710306, 0.047980777145367935, 0.3713655148808507, 0.39574560431592926, 0.015217098990111573, 0.04306546222766055, 0.8164396937569355, 0.9101762456624406, 0.06798524307222166, 0.06868038293507786, 0.0365172969278529, 0.5424739369027866, 0.42222669556574327, 0.05186907836310691, 0.2715058903232301, 0.29327001653092444, 0.8996434720362195], \"y\": [0.19580581057958737, 0.26373732417723206, 0.1667411270625192, 0.21688352864714583, 0.14026933603952993, 0.3757994602946816, 0.04167028262426619, 0.010894072648478236, 0.13291911050215294, 0.44060288184879876, 0.5150314830764153, 0.40050074918291273, 0.006728957584964703, 0.015986159274287554, 0.05610086887857684, 0.16679791721668286, 0.13524368030438824, 0.05558636695979382, 0.04637165635191953, 0.06397125347285432, 0.03454533591648106, 0.2514524353608221, 0.04860337436761183, 0.05035451443828238, 0.8646160048669287, 0.038793277180725644, 0.6174207332597604, 0.04113373017112971, 0.44508223524138146, 0.7525780322980046, 0.07956470898878283, 0.7361238662712697, 0.019727191406576736, 0.7976941300206675, 0.9050976893510787, 0.6443491702974127, 0.553991089172677, 0.012663892133399558, 0.09989724878254198, 0.3631403103401466, 0.7775302323439333, 0.053022332369551235, 0.026980766258237535, 0.6442109852616648, 0.12957395707528907, 0.03853349148563847, 0.10937794967666263, 0.6450113644601063, 0.5230087160371498, 0.8448976022936887, 0.16994281958503998, 0.01519321683292033, 0.49140197287550724, 0.9135592275027449, 0.9296866040840275, 0.7023471395069066, 0.5694735575409622, 0.6156127786478884, 0.9025646167801502, 0.950499413954886, 0.7254078609977146, 0.46845718006789233, 0.0385763896723018, 0.23957612869426595, 0.018074734422889184, 0.014541920178449942, 0.05311417827130055, 0.501046604185841, 0.34070602302705066, 0.7916517264795464, 0.1257277518654077, 0.46188564219466577, 0.41753212958725866, 0.12010285973276735, 0.014403065534082556, 0.4394366242761282, 0.6124915086513388, 0.0623526274819663, 0.5011699395172364, 0.1402481899790625, 0.7861498788786602, 0.23614687176868537, 0.054758507266557996, 0.16514123844354955, 0.4059519306460842, 0.19547636063172175, 0.8681875544386828, 0.32820078725985835, 0.029789665684856786, 0.04764600574222773, 0.2672572264211731, 0.4527713645391303, 0.6965774417015429, 0.2005255651945485, 0.6733698824549879, 0.038968352817964305, 0.3168711927736836, 0.07442746907555974, 0.8934289964257071, 0.09258891383467263, 0.1549556884524634, 0.15891835904765111, 0.3668144269159466, 0.018920004323312416, 0.20791030377541456, 0.030971297559415897, 0.4070031901687072, 0.8989892528823336, 0.5427968389943432, 0.5431795570996807, 0.7410961916965279, 0.8489380329833497, 0.5765912976796459, 0.9105742714566607, 0.38246271012423816, 0.7353618352381637, 0.03576495038794998, 0.03520665493459014, 0.6481146259461099, 0.5241107435803553, 0.029965213106552552, 0.4030615461089986, 0.06883799643478296, 0.012077082958662284, 0.06864386766636528, 0.038984159822634395, 0.05415566140615563, 0.03607962157838829, 0.08916634718803691, 0.8289602087700826, 0.5980490092645548, 0.7505655521559663, 0.5636573127004998, 0.015698780471581082, 0.06383969871727393, 0.43972754735487324, 0.14414151615373852, 0.578270875888171, 0.5124381014372783, 0.5183429987191579, 0.027405823852131975, 0.7204420037516704, 0.08226576871189412, 0.09392473223525001, 0.011267921967928383, 0.6864852484387813, 0.3178560958461997, 0.6046372313265523, 0.1129796312117425, 0.08758872714472021, 0.07282298657764365, 0.3073072805670743, 0.19478453714652907, 0.06653846882705448, 0.9147792567666989, 0.520245333591648, 0.0846424033121646, 0.008904598158222088, 0.7891805477480288, 0.05889673893086592, 0.08560578146183573, 0.37600008952984193, 0.38068357038229, 0.2587145239416835, 0.8230006397966257, 0.30893906742434674, 0.30189272660534416, 0.06928244572520215, 0.026825069262077266, 0.028920961896617022, 0.3095315783136772, 0.0819579374742781, 0.1512233143095073, 0.052776078025779403, 0.018303040837183673, 0.07891474298096679, 0.11867917298516545, 0.127758566880928, 0.24617136498918005, 0.05801071320465038, 0.1952449236393933, 0.2814538684810783, 0.1030074689573014, 0.5202400068169322, 0.4066467376937976, 0.05953869762359107, 0.6025648091722999, 0.3796728838784261, 0.2648366576653669, 0.5120062453554451, 0.5909933188126807, 0.02123295854053902, 0.3113458339219163, 0.1588637220083262, 0.8860794968300594, 0.7293439321585281, 0.010141307107712655, 0.07251738025548997, 0.21200393375836302, 0.3692592000460067, 0.41418507723882614, 0.013506645043505749, 0.1147217428011417, 0.6524235129406839, 0.2741188766070074, 0.01909513463766865, 0.11676532454638458, 0.0428899092945417, 0.057437986756624225, 0.9089040210438795, 0.011633244370828254, 0.5639842289552914, 0.06311589486757577, 0.03368531539303095, 0.03147246227345258, 0.16925066320647064, 0.719480044051521, 0.07406339891487941, 0.1107361706000973, 0.9548790827469871, 0.06840984804296653, 0.2029574107107313, 0.48436713089068373, 0.6522619265490278, 0.4524419596914845, 0.10916997594472055, 0.03314957092790228, 0.015246951546186962, 0.6983832994733161, 0.36196083637773085, 0.015837671329988996, 0.20420035991954522, 0.23222184022589068, 0.7906905116772931, 0.23638617741683043, 0.03142188653383345, 0.5050844768868543, 0.08085734103274508, 0.2215828310722111, 0.15199802707025148, 0.27062982333192426, 0.4690353231588327, 0.050432224700354904, 0.09118833799938778, 0.37449659324067597, 0.9429104896423965, 0.2712337831172945, 0.5366861043238256, 0.2587266856121315, 0.5165785993974629, 0.7479298903534066, 0.6730063143109776, 0.18834692026836378, 0.05078950108576279, 0.08648016246177127, 0.6181438453622963, 0.2975524971215039, 0.1215418919275174, 0.8395490037411631, 0.3010154002534047, 0.8946024113018188, 0.1739570148777991, 0.5800213271726162, 0.2277931943313481, 0.009863643150761334, 0.22492226745269914, 0.6106270571998924, 0.8444152086246152, 0.913235840269088, 0.2953248424553732, 0.05637908714941671, 0.7839809656584258, 0.30387762543937213, 0.2895727456534807, 0.03508617198559944, 0.48361669676070973, 0.43455647139319187, 0.33804381247302234, 0.11731491018124757, 0.018782983831075167, 0.07444522681986673, 0.1511067280848463, 0.10415139698069427, 0.03276211786919281, 0.12290519753414111, 0.14705825889775337, 0.06670698848213537, 0.010444168146241585, 0.1446299229626693, 0.055642731534497565, 0.4307157246841302, 0.0686069498748548, 0.5921414813774487, 0.10495965799706874, 0.05242911583967038, 0.8960435746532329, 0.7133818964186198, 0.07625239485267202, 0.2921196069296334, 0.8178915933701328, 0.045417979603417646, 0.27601795262748013, 0.7655430099165804, 0.653773621503782, 0.223186222609412, 0.011993216757357983, 0.19586028120944862, 0.5194728034091662, 0.021209629890419263, 0.043864363547407255, 0.7953696111046321, 0.137312057489953, 0.00827724493132542, 0.42345851539506274, 0.7044343711273328, 0.2726996419712519, 0.25969669258130074, 0.1611740699165457, 0.06661081129567575, 0.5059037256119461, 0.3015630104387937, 0.08856507863161822, 0.36834889469437415, 0.25648628964920833, 0.7206720271332344, 0.21833293308449464, 0.02601445686364299, 0.017709944746488432, 0.06836708135116776, 0.6263617969253025, 0.9601447394797084, 0.7368295789808502, 0.02746297152994758, 0.030885710860480226, 0.0083658173125454, 0.13580134242423403, 0.4632152453230466, 0.4264871895849289, 0.6124760544072886, 0.2978847202851177, 0.5432003377759834, 0.7907403174114828, 0.45951094181959085, 0.2675321224301813, 0.0694100509677049, 0.009238019217948265, 0.5643638879346647, 0.5822137937459392, 0.06291654317421329, 0.7531267112477062, 0.2965105270266721, 0.5345947213437505, 0.32543085382661024, 0.02283833125105519, 0.05104691475127554, 0.18956595802990348, 0.07845246438759904, 0.614629733817139, 0.22744053189125887, 0.053167876542909734, 0.7281487825373004, 0.4256313484619982, 0.5031091202875507, 0.521609546613795, 0.06226938494400362, 0.10140029377608567, 0.01649306145323617, 0.5426853980213802, 0.02989343241081845, 0.6786876734243438, 0.9227873951703967, 0.11171987053925837, 0.03257020168648973, 0.11263299977298609, 0.1784041260422105, 0.022456133205772548, 0.6088348358778765, 0.3065723594617712, 0.057546428996490755, 0.5442554624334622, 0.8590137804932276, 0.5249978231621547, 0.15149337894837026, 0.6660695342274668, 0.3039419525319844, 0.1376605390403559, 0.3006095755036461, 0.33954326422614206, 0.8795783654300992, 0.13363203333240486, 0.052346554787795006, 0.029373132876210364, 0.3828203356600623, 0.1063967416156678, 0.10001395736195277, 0.17862767454853984, 0.8254345256873917, 0.40272144819710226, 0.23322509663797852, 0.07587842705436305], \"z\": [0.5851864223949828, 0.3914243888144927, 0.4731746596626903, 0.3858060149090481, 0.016734359325243052, 0.3911869209321689, 0.17795191682253236, 0.029854233245879606, 0.01989637454836065, 0.22264061024810486, 0.28763042534751926, 0.14849098680525963, 0.34923380526900166, 0.25629321945748057, 0.8951475041779727, 0.1861477301561054, 0.3260722456660673, 0.026066215461006632, 0.9065648924127451, 0.25283108533209336, 0.3043779897706429, 0.13940942453815347, 0.7026289469306897, 0.7866366277145131, 0.10723601149428336, 0.5931149877374451, 0.133962287862902, 0.5536801904451517, 0.5269259592023083, 0.08466543735287468, 0.2531488198537823, 0.23286529788648966, 0.008921717630740641, 0.17516180083175162, 0.014151608189881235, 0.2971664633110132, 0.03282381915270084, 0.48013400601975786, 0.6885027150481573, 0.35350034651459095, 0.07201357019538937, 0.7888769468003335, 0.023424156168137582, 0.29404967208980526, 0.7170016028975044, 0.7730928385886936, 0.10623893932852284, 0.31963351953006985, 0.06440631531679818, 0.08881138086651308, 0.32899469788693547, 0.040833664852922946, 0.023581949690187096, 0.04702693957813534, 0.02685334189795849, 0.127175870172938, 0.4222067000556568, 0.05153043756762936, 0.07248871871618968, 0.015156276068099316, 0.04616085382265461, 0.16115124617604415, 0.8238610905012796, 0.17834726117642086, 0.22551424041054888, 0.05330671747057586, 0.8063252370383718, 0.04833920034752349, 0.5977730015031286, 0.12465705968519407, 0.6002610194982784, 0.4368397435811211, 0.5211124886340534, 0.5419685594408711, 0.01536070420226474, 0.3196900269035755, 0.13461451256973744, 0.8694400039947152, 0.3806105936753803, 0.15614590023550942, 0.08181971434441085, 0.41401674577670766, 0.9184938829300168, 0.7231966084507995, 0.21440325038381625, 0.42648876443180705, 0.0649926104486827, 0.06098981149968189, 0.7089194355717365, 0.8766568919525556, 0.6409897452485364, 0.46878138101902006, 0.13727179515848364, 0.3878801884900202, 0.2360929773300286, 0.5296255486353103, 0.2804099143886092, 0.8470749579953946, 0.009964532236413227, 0.01244393730612998, 0.15246033722574975, 0.03244767522214886, 0.6105445842901194, 0.545143123393552, 0.030765287488461156, 0.9507136704024186, 0.5666968356442073, 0.024084503830977776, 0.2473674214591499, 0.1144307251286739, 0.0890898233778761, 0.13901694981313625, 0.026608807846344694, 0.01092983096980365, 0.11459926506754756, 0.2522420716656974, 0.028971974084416867, 0.9249577899431447, 0.18623686425876296, 0.44621533945204234, 0.5337292112233063, 0.010106220314623751, 0.03540290221104834, 0.3817578127580147, 0.013149619474682472, 0.9073843251311148, 0.03093410293132066, 0.38887268118575474, 0.34436246531158526, 0.11099921747900035, 0.15244154020156797, 0.04419950156610083, 0.02146628763887561, 0.05292232938849731, 0.8307457083893336, 0.5233528418835608, 0.058288355460889583, 0.21655257941470266, 0.09467885031653617, 0.3675753178208966, 0.026163569551547555, 0.24090861314542655, 0.04193632808750978, 0.09009953890944158, 0.7342862757943643, 0.23184516043667727, 0.1488107097242962, 0.0505496624720097, 0.6669513442638193, 0.8512772531876653, 0.8260680684865487, 0.5013112374437383, 0.6705222406443705, 0.657596074830961, 0.012680334590498584, 0.03307305285704912, 0.014578992725921138, 0.5121367711719298, 0.07050412398753302, 0.03829586562519513, 0.8552453390292211, 0.35643819808751054, 0.06476384924051046, 0.17343928450397778, 0.08155990712810811, 0.48774337390114575, 0.19781276192803873, 0.44773189752663584, 0.7672854025265582, 0.9368130509389263, 0.5833702618719391, 0.8197496157483471, 0.715548784044686, 0.5142510765238386, 0.7992556558039043, 0.03311739854845821, 0.21132272500652186, 0.23119508901081884, 0.5356264449120017, 0.8935332186881727, 0.7317683481351323, 0.4335337750719526, 0.10681984934666482, 0.23183580535418508, 0.5812473576631131, 0.8002204061123209, 0.35920519753827473, 0.12736242817229407, 0.09784443476635112, 0.19960085624510202, 0.11516302380780166, 0.9081559817854468, 0.6218680669090737, 0.34416535298873746, 0.040270505158425625, 0.09373410503250433, 0.6565843905027609, 0.45689314529134634, 0.31977368667414025, 0.02204663630175128, 0.524676102206729, 0.9737766908014138, 0.15020390722772914, 0.007212217219141135, 0.07754015947888249, 0.67585162028865, 0.6857434853656383, 0.9231513829883996, 0.30320851662093823, 0.040905489731631724, 0.39380609257059573, 0.08053904004514907, 0.0888710460249046, 0.07359782187259167, 0.9342037393997251, 0.606120421115466, 0.0805666745361559, 0.12170219565208153, 0.1330903235183094, 0.01075609237967056, 0.06332744020368222, 0.38052094767582645, 0.3561194536712523, 0.030916322973678318, 0.09779775918390318, 0.5496196385327964, 0.9528810706455098, 0.04676383867775945, 0.1284307996842978, 0.5647573737893402, 0.09774245830776129, 0.038466722170107034, 0.5623606939231827, 0.18706087335720722, 0.04692799651189945, 0.8707345681760824, 0.18908930287940387, 0.902461938889874, 0.575074595485583, 0.08359237915842703, 0.6875213083826168, 0.010595311670395435, 0.9294170528564569, 0.12463621278644174, 0.2534506126282287, 0.030506242283788353, 0.4983052096063381, 0.137636514495931, 0.36947878352446156, 0.462537437019695, 0.15470040502277316, 0.03568379595538699, 0.11636119392144237, 0.1582228196463439, 0.5226308639521277, 0.34839422107562285, 0.4201186985483548, 0.05382304817868109, 0.11462661478491934, 0.5801809875643517, 0.04395427593030056, 0.6468828516800884, 0.028171467437114472, 0.715129252891117, 0.44518886012256575, 0.1645862672386269, 0.2069520147618369, 0.010816368222676776, 0.017518395010935554, 0.09254940659585315, 0.1631319940420023, 0.10099413734599265, 0.6033592825048254, 0.6145023074281962, 0.058936665862270865, 0.12445954391063015, 0.006159370175758332, 0.6340409033817296, 0.008572866798265655, 0.6573013611272399, 0.3592083834671893, 0.11557390548784352, 0.4286447914104892, 0.9470429335807193, 0.07133512283320026, 0.25240654173572435, 0.7761427123984475, 0.903517718713401, 0.31816512794140867, 0.816959728801943, 0.5069354329514745, 0.14330513590226074, 0.07234526244091936, 0.7937594394961595, 0.3996134466441564, 0.0786157129932707, 0.0533380211603349, 0.17421714968038343, 0.3967586360494388, 0.1349056151858205, 0.8459663283558408, 0.03252179153814847, 0.212912753246012, 0.12861110953207805, 0.2620822744225168, 0.8818181241636567, 0.24725512380427708, 0.151386880353018, 0.436917873549007, 0.5945504398269625, 0.058908159813486516, 0.3660580670817112, 0.21238198130381364, 0.10796600568607077, 0.27230995031927757, 0.012004362107208342, 0.5184148097067762, 0.4072400428992948, 0.9202647544464055, 0.4709798282892731, 0.03986297715997749, 0.8760765426616315, 0.029754089873292932, 0.6584977557707657, 0.0665622546575486, 0.3398790222305634, 0.23495059590543693, 0.4467176351123966, 0.6738503774850703, 0.10051989177715719, 0.030284091929532735, 0.051721743760942025, 0.9517306962476882, 0.9378332665942984, 0.04809329620022459, 0.1268477880312906, 0.49086852909855316, 0.4513935974782019, 0.14132570205825848, 0.5516911616904278, 0.3529091450036254, 0.022983382877787815, 0.5299488829846101, 0.3089018797279437, 0.3406500535072391, 0.010245029618246467, 0.25448947812044376, 0.15813084495595936, 0.16769057140623825, 0.03083005120689654, 0.5192654905351765, 0.39403146212205586, 0.1310213153240204, 0.3492973962583851, 0.1402056487748473, 0.6955523442868474, 0.8211400096718091, 0.1574898362975432, 0.7288601838981142, 0.9140636333419921, 0.07949874883915624, 0.1325810973017252, 0.3869420978831651, 0.083077188700152, 0.08362572451514189, 0.8574188742212749, 0.01793234254072483, 0.03468382085750526, 0.030712736798075624, 0.22133169704378333, 0.00950380704419819, 0.855101156639796, 0.05222881107349969, 0.6006774333536435, 0.19868318260473625, 0.4697604384068931, 0.24608965719200895, 0.5130344222368056, 0.2778274750826071, 0.14602293800406443, 0.07805795581621265, 0.3938438917656231, 0.6346889939074428, 0.023915192955430143, 0.6480772703226476, 0.49097394607879347, 0.3036448201804246, 0.6452396367837464, 0.07735617234224024, 0.04992827291065974, 0.03747719954976437, 0.9026416240515679, 0.5484992814048598, 0.8570859614564792, 0.3575121057352607, 0.39914562988571695, 0.12269639594950148, 0.3257726614796676, 0.47350488683109704, 0.024478100909417502]}, {\"line\": {\"color\": \"black\", \"width\": 5}, \"mode\": \"lines\", \"type\": \"scatter3d\", \"x\": [0.333, 0.5], \"y\": [0.333, 0.5], \"z\": [0.333, 0]}, {\"line\": {\"color\": \"black\", \"width\": 5}, \"mode\": \"lines\", \"type\": \"scatter3d\", \"x\": [0.333, 0], \"y\": [0.333, 0.5], \"z\": [0.333, 0.5]}, {\"line\": {\"color\": \"black\", \"width\": 5}, \"mode\": \"lines\", \"type\": \"scatter3d\", \"x\": [0.333, 0.5], \"y\": [0.333, 0], \"z\": [0.333, 0.5]}], {\"margin\": {\"b\": 10, \"l\": 10, \"r\": 20, \"t\": 0}, \"scene\": {\"annotations\": [{\"text\": \"cat\", \"x\": 1.0, \"xanchor\": \"center\", \"y\": 0.0, \"z\": 0.0}, {\"text\": \"dog\", \"x\": 0.0, \"xanchor\": \"center\", \"y\": 1.0, \"z\": 0.0}, {\"text\": \"horse\", \"x\": 0.0, \"xanchor\": \"center\", \"y\": 0.0, \"z\": 1.0}], \"xaxis\": {\"title\": {\"text\": \"cat - ness\"}}, \"yaxis\": {\"title\": {\"text\": \"dog - ness\"}}, \"zaxis\": {\"title\": {\"text\": \"horse - ness\"}}}, \"showlegend\": false, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"autotypenumbers\": \"strict\", \"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\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"width\": 700}, {\"responsive\": true} ).then(function(){\n", " \n", "var gd = document.getElementById('20db56d1-c202-4639-845f-35d9329efdc5');\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", " }) }; }); </script> </div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "TrianglePlot3D_Plotly(prob, targ=targ, labels=labels, show_bounds=True).do_plot()" ] }, { "cell_type": "markdown", "metadata": { "id": "HCqLI-jgu9Vi", "slideshow": { "slide_type": "slide" } }, "source": [ "## 3 Classes in 2D\n", "Since points lie in a plane, we can change coord's & plot in 2D instead<br>*(mouse hover = show image!)*" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Note: right now these images when you mouse over below are first scraped from DDG on-the-fly, and then rendered via `requests` when you mouse over. Work in progress. Real-time tracking while training FastAI is on the TODO list!" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 367 }, "hideCode": true, "id": "ExvL06A7wpvF", "outputId": "0a695323-14e2-422f-fe2c-f93aaed38eb0", "scrolled": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"<div style='background-color: #fdd'>\\n\"+\n", " \"<p>\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"</p>\\n\"+\n", " \"<ul>\\n\"+\n", " \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n", " \"<li>use INLINE resources instead, as so:</li>\\n\"+\n", " \"</ul>\\n\"+\n", " \"<code>\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"</code>\\n\"+\n", " \"</div>\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(null);\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\": \"YF85VygJKMVnHE+lLv2AM93Vbstr0yo2TbIu5v8se5Rq3UQAUmcuh4aaJwNlpKwa\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\": \"KKuas3gevv3PvrlkyCMzffFeaMq5we/a2QsP5AUoS3mJ0jmaCL7jirFJN3GoE/lM\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\": \"MK/uFc3YT18pkvvXRl66tTHjP0/dxoSH2e/eiNMFIguKlun2+WVqaPTWmUy/zvh4\"};\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " if (url in hashes) {\n", " element.crossOrigin = \"anonymous\";\n", " element.integrity = \"sha384-\" + hashes[url];\n", " }\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " \n", " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\"];\n", " var css_urls = [];\n", " \n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " function(Bokeh) {\n", " \n", " \n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if (root.Bokeh !== undefined || force === true) {\n", " \n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(null)).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"<div style='background-color: #fdd'>\\n\"+\n \"<p>\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"</p>\\n\"+\n \"<ul>\\n\"+\n \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n \"<li>use INLINE resources instead, as so:</li>\\n\"+\n \"</ul>\\n\"+\n \"<code>\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"</code>\\n\"+\n \"</div>\"}};\n\n function display_loaded() {\n var el = document.getElementById(null);\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\": \"YF85VygJKMVnHE+lLv2AM93Vbstr0yo2TbIu5v8se5Rq3UQAUmcuh4aaJwNlpKwa\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\": \"KKuas3gevv3PvrlkyCMzffFeaMq5we/a2QsP5AUoS3mJ0jmaCL7jirFJN3GoE/lM\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\": \"MK/uFc3YT18pkvvXRl66tTHjP0/dxoSH2e/eiNMFIguKlun2+WVqaPTWmUy/zvh4\"};\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n if (url in hashes) {\n element.crossOrigin = \"anonymous\";\n element.integrity = \"sha384-\" + hashes[url];\n }\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\"];\n var css_urls = [];\n \n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\"></script>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", " <div class=\"bk-root\" id=\"0c371ac0-dec0-4df8-bbb8-bcc827729e71\" data-root-id=\"1002\"></div>\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"e9cffe58-a904-44c8-8b93-010270816851\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1013\"}],\"center\":[{\"id\":\"1016\"},{\"id\":\"1020\"},{\"id\":\"1058\"},{\"id\":\"1059\"},{\"id\":\"1060\"}],\"height\":350,\"left\":[{\"id\":\"1017\"}],\"renderers\":[{\"id\":\"1040\"},{\"id\":\"1045\"},{\"id\":\"1050\"},{\"id\":\"1056\"}],\"title\":{\"id\":\"1003\"},\"toolbar\":{\"id\":\"1029\"},\"width\":400,\"x_range\":{\"id\":\"1005\"},\"x_scale\":{\"id\":\"1009\"},\"y_range\":{\"id\":\"1007\"},\"y_scale\":{\"id\":\"1011\"}},\"id\":\"1002\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"tooltips\":\"\\n <div>\\n <div>\\n <img\\n src=\\\"@imgs\\\" height=\\\"50\\\" alt=\\\"@imgs\\\"\\n style=\\\"float: left; margin: 0px 15px 15px 0px;\\\"\\n border=\\\"2\\\"\\n ></img>\\n </div>\\n <div>\\n <span style=\\\"font-size: 17px; font-weight: bold;\\\">@desc</span>\\n <span style=\\\"font-size: 15px; color: #966;\\\">[$index]</span>\\n </div>\\n <!---commenting-out coordinate values <div>\\n <span style=\\\"font-size: 10px; color: #696;\\\">($x, $y)</span>\\n </div> -->\\n </div>\\n \"},\"id\":\"1028\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1070\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1075\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"PanTool\"},{\"attributes\":{\"source\":{\"id\":\"1052\"}},\"id\":\"1057\",\"type\":\"CDSView\"},{\"attributes\":{\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1038\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1037\"}},\"id\":\"1041\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1076\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"formatter\":{\"id\":\"1065\"},\"major_label_policy\":{\"id\":\"1067\"},\"ticker\":{\"id\":\"1014\"}},\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1042\"}},\"id\":\"1046\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"SaveTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1027\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis\":{\"id\":\"1017\"},\"dimension\":1,\"ticker\":null},\"id\":\"1020\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1071\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1072\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1043\",\"type\":\"Line\"},{\"attributes\":{\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1048\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1014\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data\":{\"colors\":[\"blue\",\"blue\",\"blue\",\"red\",\"red\",\"blue\",\"red\",\"red\",\"red\",\"green\",\"green\",\"red\",\"red\",\"red\",\"blue\",\"red\",\"red\",\"red\",\"blue\",\"red\",\"red\",\"red\",\"blue\",\"blue\",\"green\",\"blue\",\"green\",\"blue\",\"blue\",\"green\",\"red\",\"green\",\"red\",\"green\",\"green\",\"green\",\"green\",\"red\",\"blue\",\"green\",\"green\",\"blue\",\"red\",\"green\",\"blue\",\"blue\",\"red\",\"green\",\"green\",\"green\",\"red\",\"red\",\"green\",\"green\",\"green\",\"green\",\"green\",\"green\",\"green\",\"green\",\"green\",\"green\",\"blue\",\"red\",\"red\",\"red\",\"blue\",\"green\",\"blue\",\"green\",\"blue\",\"green\",\"blue\",\"blue\",\"red\",\"green\",\"green\",\"blue\",\"green\",\"red\",\"green\",\"blue\",\"blue\",\"blue\",\"green\",\"blue\",\"green\",\"red\",\"blue\",\"blue\",\"blue\",\"blue\",\"green\",\"red\",\"green\",\"blue\",\"red\",\"blue\",\"green\",\"red\",\"red\",\"red\",\"blue\",\"blue\",\"red\",\"blue\",\"blue\",\"green\",\"green\",\"green\",\"green\",\"green\",\"green\",\"green\",\"red\",\"green\",\"red\",\"blue\",\"green\",\"green\",\"blue\",\"red\",\"red\",\"red\",\"red\",\"blue\",\"red\",\"red\",\"red\",\"green\",\"green\",\"green\",\"green\",\"red\",\"blue\",\"blue\",\"red\",\"green\",\"green\",\"green\",\"red\",\"green\",\"red\",\"red\",\"blue\",\"green\",\"red\",\"green\",\"blue\",\"blue\",\"blue\",\"blue\",\"blue\",\"blue\",\"green\",\"green\",\"red\",\"blue\",\"green\",\"red\",\"blue\",\"green\",\"red\",\"red\",\"green\",\"blue\",\"red\",\"red\",\"blue\",\"blue\",\"blue\",\"blue\",\"blue\",\"blue\",\"blue\",\"red\",\"red\",\"red\",\"blue\",\"blue\",\"blue\",\"blue\",\"red\",\"green\",\"blue\",\"blue\",\"green\",\"red\",\"red\",\"green\",\"green\",\"blue\",\"blue\",\"red\",\"green\",\"green\",\"blue\",\"red\",\"red\",\"red\",\"blue\",\"blue\",\"red\",\"green\",\"red\",\"blue\",\"blue\",\"blue\",\"red\",\"green\",\"red\",\"green\",\"red\",\"red\",\"blue\",\"blue\",\"green\",\"red\",\"red\",\"green\",\"red\",\"red\",\"green\",\"green\",\"green\",\"blue\",\"blue\",\"red\",\"green\",\"blue\",\"red\",\"red\",\"blue\",\"green\",\"red\",\"blue\",\"green\",\"blue\",\"blue\",\"red\",\"blue\",\"red\",\"blue\",\"red\",\"green\",\"green\",\"blue\",\"green\",\"red\",\"green\",\"green\",\"green\",\"red\",\"red\",\"blue\",\"green\",\"blue\",\"red\",\"green\",\"blue\",\"green\",\"blue\",\"green\",\"blue\",\"red\",\"red\",\"green\",\"green\",\"green\",\"red\",\"red\",\"green\",\"blue\",\"blue\",\"red\",\"green\",\"red\",\"blue\",\"red\",\"blue\",\"red\",\"red\",\"red\",\"blue\",\"red\",\"red\",\"blue\",\"blue\",\"red\",\"blue\",\"blue\",\"red\",\"green\",\"blue\",\"red\",\"green\",\"green\",\"red\",\"blue\",\"green\",\"blue\",\"red\",\"green\",\"green\",\"red\",\"blue\",\"red\",\"green\",\"red\",\"blue\",\"green\",\"red\",\"red\",\"red\",\"green\",\"red\",\"blue\",\"red\",\"blue\",\"green\",\"red\",\"blue\",\"red\",\"blue\",\"green\",\"red\",\"red\",\"red\",\"blue\",\"green\",\"green\",\"green\",\"blue\",\"blue\",\"red\",\"red\",\"blue\",\"blue\",\"green\",\"blue\",\"green\",\"green\",\"blue\",\"red\",\"red\",\"red\",\"green\",\"green\",\"red\",\"green\",\"blue\",\"green\",\"red\",\"red\",\"red\",\"blue\",\"blue\",\"green\",\"blue\",\"blue\",\"green\",\"red\",\"green\",\"green\",\"red\",\"blue\",\"red\",\"green\",\"red\",\"green\",\"green\",\"blue\",\"red\",\"blue\",\"red\",\"red\",\"green\",\"blue\",\"red\",\"green\",\"green\",\"green\",\"blue\",\"green\",\"blue\",\"blue\",\"red\",\"blue\",\"green\",\"red\",\"red\",\"blue\",\"blue\",\"blue\",\"red\",\"red\",\"green\",\"green\",\"blue\",\"red\"],\"desc\":[\"horse\",\"horse\",\"horse\",\"cat\",\"cat\",\"horse\",\"cat\",\"cat\",\"cat\",\"dog\",\"dog\",\"cat\",\"cat\",\"cat\",\"horse\",\"cat\",\"cat\",\"cat\",\"horse\",\"cat\",\"cat\",\"cat\",\"horse\",\"horse\",\"dog\",\"horse\",\"dog\",\"horse\",\"horse\",\"dog\",\"cat\",\"dog\",\"cat\",\"dog\",\"dog\",\"dog\",\"dog\",\"cat\",\"horse\",\"dog\",\"dog\",\"horse\",\"cat\",\"dog\",\"horse\",\"horse\",\"cat\",\"dog\",\"dog\",\"dog\",\"cat\",\"cat\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"horse\",\"cat\",\"cat\",\"cat\",\"horse\",\"dog\",\"horse\",\"dog\",\"horse\",\"dog\",\"horse\",\"horse\",\"cat\",\"dog\",\"dog\",\"horse\",\"dog\",\"cat\",\"dog\",\"horse\",\"horse\",\"horse\",\"dog\",\"horse\",\"dog\",\"cat\",\"horse\",\"horse\",\"horse\",\"horse\",\"dog\",\"cat\",\"dog\",\"horse\",\"cat\",\"horse\",\"dog\",\"cat\",\"cat\",\"cat\",\"horse\",\"horse\",\"cat\",\"horse\",\"horse\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"dog\",\"cat\",\"dog\",\"cat\",\"horse\",\"dog\",\"dog\",\"horse\",\"cat\",\"cat\",\"cat\",\"cat\",\"horse\",\"cat\",\"cat\",\"cat\",\"dog\",\"dog\",\"dog\",\"dog\",\"cat\",\"horse\",\"horse\",\"cat\",\"dog\",\"dog\",\"dog\",\"cat\",\"dog\",\"cat\",\"cat\",\"horse\",\"dog\",\"cat\",\"dog\",\"horse\",\"horse\",\"horse\",\"horse\",\"horse\",\"horse\",\"dog\",\"dog\",\"cat\",\"horse\",\"dog\",\"cat\",\"horse\",\"dog\",\"cat\",\"cat\",\"dog\",\"horse\",\"cat\",\"cat\",\"horse\",\"horse\",\"horse\",\"horse\",\"horse\",\"horse\",\"horse\",\"cat\",\"cat\",\"cat\",\"horse\",\"horse\",\"horse\",\"horse\",\"cat\",\"dog\",\"horse\",\"horse\",\"dog\",\"cat\",\"cat\",\"dog\",\"dog\",\"horse\",\"horse\",\"cat\",\"dog\",\"dog\",\"horse\",\"cat\",\"cat\",\"cat\",\"horse\",\"horse\",\"cat\",\"dog\",\"cat\",\"horse\",\"horse\",\"horse\",\"cat\",\"dog\",\"cat\",\"dog\",\"cat\",\"cat\",\"horse\",\"horse\",\"dog\",\"cat\",\"cat\",\"dog\",\"cat\",\"cat\",\"dog\",\"dog\",\"dog\",\"horse\",\"horse\",\"cat\",\"dog\",\"horse\",\"cat\",\"cat\",\"horse\",\"dog\",\"cat\",\"horse\",\"dog\",\"horse\",\"horse\",\"cat\",\"horse\",\"cat\",\"horse\",\"cat\",\"dog\",\"dog\",\"horse\",\"dog\",\"cat\",\"dog\",\"dog\",\"dog\",\"cat\",\"cat\",\"horse\",\"dog\",\"horse\",\"cat\",\"dog\",\"horse\",\"dog\",\"horse\",\"dog\",\"horse\",\"cat\",\"cat\",\"dog\",\"dog\",\"dog\",\"cat\",\"cat\",\"dog\",\"horse\",\"horse\",\"cat\",\"dog\",\"cat\",\"horse\",\"cat\",\"horse\",\"cat\",\"cat\",\"cat\",\"horse\",\"cat\",\"cat\",\"horse\",\"horse\",\"cat\",\"horse\",\"horse\",\"cat\",\"dog\",\"horse\",\"cat\",\"dog\",\"dog\",\"cat\",\"horse\",\"dog\",\"horse\",\"cat\",\"dog\",\"dog\",\"cat\",\"horse\",\"cat\",\"dog\",\"cat\",\"horse\",\"dog\",\"cat\",\"cat\",\"cat\",\"dog\",\"cat\",\"horse\",\"cat\",\"horse\",\"dog\",\"cat\",\"horse\",\"cat\",\"horse\",\"dog\",\"cat\",\"cat\",\"cat\",\"horse\",\"dog\",\"dog\",\"dog\",\"horse\",\"horse\",\"cat\",\"cat\",\"horse\",\"horse\",\"dog\",\"horse\",\"dog\",\"dog\",\"horse\",\"cat\",\"cat\",\"cat\",\"dog\",\"dog\",\"cat\",\"dog\",\"horse\",\"dog\",\"cat\",\"cat\",\"cat\",\"horse\",\"horse\",\"dog\",\"horse\",\"horse\",\"dog\",\"cat\",\"dog\",\"dog\",\"cat\",\"horse\",\"cat\",\"dog\",\"cat\",\"dog\",\"dog\",\"horse\",\"cat\",\"horse\",\"cat\",\"cat\",\"dog\",\"horse\",\"cat\",\"dog\",\"dog\",\"dog\",\"horse\",\"dog\",\"horse\",\"horse\",\"cat\",\"horse\",\"dog\",\"cat\",\"cat\",\"horse\",\"horse\",\"horse\",\"cat\",\"cat\",\"dog\",\"dog\",\"horse\",\"cat\"],\"imgs\":[\"http://www.hdnicewallpapers.com/Walls/Big/Horse/Standing_Maroon_Horse.jpg\",\"http://getwallpapers.com/wallpaper/full/b/0/b/718769-vertical-beautiful-horse-wallpaper-2560x1600-mobile.jpg\",\"https://wallpapertag.com/wallpaper/full/e/7/7/922038-popular-cute-horse-wallpapers-2560x1600-large-resolution.jpg\",\"https://www.sciencenews.org/wp-content/uploads/2020/03/033120_HT_covid-cat_feat-1028x579.jpg\",\"https://cdn0.wideopenpets.com/wp-content/uploads/2018/11/Bombay-cat.jpg\",\"https://d.ibtimes.co.uk/en/full/1415067/horse.jpg\",\"https://wallup.net/wp-content/uploads/2019/09/708281-kittens-kitten-cat-cats-baby-cute.jpg\",\"https://www.vets4pets.com/siteassets/species/cat/cat-on-fence.jpg?w=585&scale=down\",\"https://www.thenewsminute.com/sites/default/files/Sad_Cat_Kochi_airport.jpg\",\"http://wallup.net/wp-content/uploads/2016/10/12/388956-animals-dog-mammals.jpg\",\"http://smashingtops.com/wp-content/uploads/2012/10/Medium-dog-breeds-03.jpg\",\"https://blogs.columbian.com/cat-tales/wp-content/uploads/sites/43/2017/09/Sawyer_DS_1402.jpg\",\"https://external-preview.redd.it/h00AuerLwYj1U6z8SXlkuNi8TxO236Sg76EYmLBwEi0.jpg?auto=webp&s=8942f3e8d1813944d7d25c2bd6d3504783665163\",\"https://www.norwegiancat.com/wp-content/uploads/2017/01/Tabby-Wegie.jpg\",\"http://cdn0.wideopenpets.com/wp-content/uploads/2016/07/rearing.jpeg\",\"https://www.nativebreed.org/wp-content/uploads/2020/05/siamese-cat1.jpg\",\"https://thefunnybeaver.com/wp-content/uploads/2020/08/adorable-cat-group.jpg\",\"http://themeowpost.com/wp-content/uploads/2016/03/Pallas-cat-featured.png\",\"https://www.hdwallpapers.in/download/brown_horse_with_background_of_sunset_and_clouds_hd_horse-HD.jpg\",\"https://filmdaily.co/wp-content/uploads/2020/04/cat-play-lede-1300x867.jpg\",\"https://www.theladders.com/wp-content/uploads/grumpy_cat_190517.jpg\",\"http://whyuniverse.com/wp-content/uploads/2015/07/lonely-cat.jpg\",\"https://images.wisegeek.com/horse-showing-teeth.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/shir10.jpg\",\"http://www.rspcasa.org.au/wp-content/uploads/2018/11/Puppy_dogtraining.jpg\",\"https://pixelcurse.com/wp-content/uploads/2011/05/horse_photography_9.jpg\",\"https://ohmylovelypets.com/wp-content/uploads/2019/12/Boxer_dog850.jpg\",\"http://r.ddmcdn.com/s_f/o_1/DSC/uploads/2015/08/horse4-fusion.jpg\",\"http://www.francethisway.com/images/stories/wildlife/ardennes-horse.jpg\",\"https://picon.ngfiles.com/772000/flash_772322_largest_crop.png?f1605987118\",\"https://www.sainsburysbank.co.uk/pet-insurance/cat-breed/~/media/Images/assets/product/pet-insurance/pods/cat-breeds/bengal2\",\"https://buzzsharer.com/wp-content/uploads/2015/11/Schnauzer-dog-love.jpg\",\"https://www.askideas.com/media/25/American-Shorthair-Cat-Face-Picture.jpg\",\"https://barkpost.com/wp-content/uploads/2015/01/winterdogshame-576x1024.jpg\",\"https://housethatbarks.com/wp-content/uploads/dog-tricks.jpg\",\"https://img.dog-learn.com/dog-breeds/jug/jug-dog-i1.jpg\",\"http://cdn2-www.dogtime.com/assets/uploads/2010/12/senior-dog-2.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Cat/Lovely_Cat_Sleepng_Pic_Download.jpg\",\"https://petkeen.com/wp-content/uploads/2020/07/brown-arabian-horse_pikist-1.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/5/54/Pomsky_Dog_Breed_-_Pomeranian_Husky_Mix.jpg\",\"https://thebark.com/sites/default/files/content/article/full/ava-smilingdog.jpg\",\"https://arabianhorseworld.com/wp-content/uploads/2017/08/08-190917_TOC.jpg\",\"https://www.hdwallpapers.in/download/brown_black_cat_with_ash_muffler_on_neck_hd_kitten-1280x720.jpg\",\"http://dogreference.com/wp-content/uploads/2014/01/German-Shorthaired-Pointer.jpg\",\"https://www.nativebreed.org/wp-content/uploads/2020/04/Skyros.jpg\",\"https://cdn.tsln.com/wp-content/uploads/sites/13/2020/09/srdakotabreeders-tsln-092620-1-1-1024x682.jpg\",\"https://hddesktopwallpapers.in/wp-content/uploads/2015/08/cat-funny.jpg\",\"https://cdn.lolwot.com/wp-content/uploads/2015/05/15-strange-and-unusual-dog-breeds-11.jpg\",\"http://www.dogexpress.in/wp-content/uploads/2016/02/1-30.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Australian_Cattle_Dog_sitting.jpg/1200px-Australian_Cattle_Dog_sitting.jpg\",\"https://images.wagwalkingweb.com/media/articles/cat/complete-pinnectomy/complete-pinnectomy.jpg\",\"https://www.rightthisminute.com/sites/default/files/videos/images/tard-the-grumpy-cat.jpg\",\"https://boxerdogdiaries.com/wp-content/uploads/2020/09/A-Boxer-dog-with-cropped-ears-beside-one-with-natural-ears-1024x684.jpg\",\"http://www.incrediblesnaps.com/wp-content/uploads/2013/07/Rottweiler.jpg\",\"https://media.salon.com/2013/10/thoughtful_dog.jpg\",\"http://www.healthypawspetinsurance.com/blog/wp-content/uploads/dog_anxiety_640x420.jpg\",\"http://img.thrfun.com/img/083/608/panting_dog_l1.jpg\",\"https://sydneydruglawyers.com.au/wp-content/uploads/sniffer-dog-1024x1024.jpg\",\"https://wallpapertag.com/wallpaper/full/7/5/0/426773-pitbull-dog-wallpaper-1080x1920-picture.jpg\",\"https://www.outsideonline.com/sites/default/files/2015/06/22/fitness-dog-smiling_s.jpg\",\"http://www.dogbreedslist.info/topics-img/181026-Chinook.jpg\",\"https://www.rd.com/wp-content/uploads/2018/11/shiba-inu.jpg\",\"https://castlehorsefeeds.com/wp-content/uploads/2019/03/spring-horses.jpg\",\"http://themeowpost.com/wp-content/uploads/2016/02/stray-cat-finds-home.jpg\",\"https://www.askideas.com/media/23/Bombay-Cat-Sitting-Picture1.jpg\",\"https://thecatsite.com/c/wp-content/uploads/2019/11/traditional-persian-cat-fac.jpg\",\"https://api.time.com/wp-content/uploads/2015/08/horse-smile.jpg\",\"https://www.dogvills.com/wp-content/uploads/2020/09/how-much-does-a-hypoallergenic-dog-cost-p2-683x1024.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Camargue_Horse_(26645657776).jpg/1200px-Camargue_Horse_(26645657776).jpg\",\"https://img.dog-learn.com/dog-breeds/dachshund/dachshund-i2.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/appa23.jpg\",\"https://www.pdsa.org.uk/media/4032/german-shepherd-dog-og.png\",\"https://www.pensacolavoice.com/wp-content/uploads/2020/09/Horse-racing.jpg\",\"https://hddesktopwallpapers.in/wp-content/uploads/2015/07/horse-wallpapers-sunrise.jpg\",\"http://www.geekologie.com/2012/08/22/chimera-cat-4.jpg\",\"http://i.huffpost.com/gen/1559880/thumbs/o-DOG-HOWLING-facebook.jpg\",\"https://www.thesprucepets.com/thmb/0XAm4NcCyEi8bzwzOywN6dEprPI=/1500x1000/filters:fill(auto,1)/GettyImages-186699738-5eaf8e80458c4e19829874ec7352d06a.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/02/bigb7.jpg\",\"https://hddesktopwallpapers.in/wp-content/uploads/2015/09/dog-wallpapers-for-desktop.jpg\",\"https://newseu.cgtn.com/news/2020-07-28/Pet-cat-becomes-first-animal-in-the-UK-to-test-positive-for-COVID-19-Stu0H0T6Gk/img/9ff85c8aa3cd4670ae6ac08c4327deaf/9ff85c8aa3cd4670ae6ac08c4327deaf-1920.png\",\"https://www.townofsweden.org/static/sitefiles/departments/dog.jpg\",\"http://getwallpapers.com/wallpaper/full/f/7/7/675263.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/appa6.jpg\",\"https://www.equineridge.com/wp-content/uploads/2019/07/ardennes-featured-image.jpg\",\"https://wallpapertag.com/wallpaper/full/5/6/e/466295-boxer-dog-wallpaper-1536x2048-lockscreen.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/02/grah10.jpg\",\"https://d1nvdmt0osh3cv.cloudfront.net/media/catalog/product/cache/1/k/a/e/image/1800x1800/acd9cc645a7ef0ba358bd1c2969a48c8/els1312-bla.jpg\",\"https://viralcats.net/blog/wp-content/uploads/2017/10/saddest-shelter-cat-benben-transformation-8-9-Viral-Cats.jpg\",\"https://www.ufaw.org.uk/images/belgian-draught-horse.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/lusi20.jpg\",\"https://www.infyworld.com/wp-content/uploads/2017/03/wybren464-576x705.jpg\",\"https://www.horseguide.com.au/database/classifieds/files/post-388097-15128099471773934968.jpeg\",\"https://petpress.net/wp-content/uploads/2020/03/top-15-most-exotic-dog-breeds-in-the-world14.jpg\",\"https://hddesktopwallpapers.in/wp-content/uploads/2015/08/lazy-cat-funny.jpg\",\"https://ag.tennessee.edu/news/News%20Photos/2017/Ames%20Dog%20web.jpeg\",\"https://www.horsebreedspictures.com/wp-content/uploads/2018/07/Thoroughbreds.jpg\",\"https://www.rd.com/wp-content/uploads/2019/01/ragdoll_friendly-cats.jpg\",\"https://equine-world.co.uk/info/images/arab-horse.jpg\",\"https://img.thrfun.com/img/079/797/aggressive_dog_l1.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Cat/Yellow_Cat_Eye_Superb_Picture.jpg\",\"http://www.catbreedselector.com/wp-content/uploads/2015/03/Korat-Pictures.jpg\",\"https://www.newshub.co.nz/home/lifestyle/2019/09/cats-love-their-owners-just-as-much-as-dogs-do-study/_jcr_content/par/video/image.dynimg.1280.q75.jpg/v1569304349200/getty-cat-owner-cuddle-1120.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/01/pics8.jpg\",\"http://www.tineey.com/wp-content/uploads/2014/04/Icelandic-Horse-5.jpg\",\"http://wallup.net/wp-content/uploads/2017/03/28/105880-animals-cat-wild_cat-Pallas_Cat-Pallas039s_Cat.jpg\",\"https://img.equinenow.com/slir/w1200/stallions/data/photos/415304/1441318831/star-slight-rear-coronet-horse.jpg\",\"https://media2.s-nbcnews.com/j/newscms/2020_09/3249886/200229-horse-al-0953_ce9e024eadc2a89db090f35edc0b2c8f.nbcnews-fp-1200-630.jpg\",\"https://parade.pet/assets-v2/images/dog/img-dogs/07.jpg\",\"https://www.aspca.org/sites/default/files/dog-care_dog-bite-prevention_main-image.jpg\",\"http://r.ddmcdn.com/s_f/o_1/w_1024/h_681/APL/uploads/2013/06/ActiveDogBenefits.jpg\",\"http://d.ibtimes.co.uk/en/full/1585687/aviemore-sled-dog-rally.jpg\",\"http://www.dogreference.com/wp-content/uploads/2014/01/bigstock-Dog-Pug-35116394-ELEN.jpg\",\"http://travelsandliving.com/wp-content/uploads/2016/01/adorable-smiling-dogs-24.jpg\",\"http://www.dogexpress.in/wp-content/uploads/2016/03/Korean-Mastiffs-4-2.jpg\",\"https://cdn2-www.cattime.com/assets/uploads/2016/04/meow-cat-language.jpg\",\"http://photoblog.statesman.com/wp-content/uploads/2012/01/ttp-cartier-dog-show-1.jpg\",\"https://www.thegoodypet.com/wp-content/uploads/2020/10/Savannah-768x960.jpg\",\"https://data.jigsawpuzzle.co.uk/ravensburger.5/white-horse-jigsaw-puzzle-500-pieces.55361-1.fs.jpg\",\"https://moderndogmagazine.com/sites/default/files/images/uploads/CaneCorso-01.jpg\",\"http://4.bp.blogspot.com/-up_IKtLpyjg/TaETE35x4jI/AAAAAAAAG_Y/wGrZyCkMJ1c/s1600/Dalmatian-dog6.jpg\",\"http://images2.fanpop.com/images/photos/6000000/Slawik-horse-wallpapers-horses-6070973-1024-768.jpg\",\"https://hddesktopwallpapers.in/wp-content/uploads/2015/08/kitten-cute-wallpaper-shoe.jpg\",\"https://catlov.com/wp-content/uploads/2016/12/Featured-Cat-Tongue-fb.png\",\"http://admirableworld.com/files/images/2019/09/9_Cute_ginger_cat.jpg\",\"http://www.smashingphotoz.com/wp-content/uploads/2012/cat-photos/16_cat_photos.jpg\",\"https://www.centerforamericasfirsthorse.org/uploads/3/4/1/3/34130178/826717_orig.jpg\",\"https://www.rd.com/wp-content/uploads/2019/05/Ragdoll-Kitten.jpg\",\"https://ilikecatsverymuch.com/wp-content/uploads/2019/06/cat-wallpaper-iphone-cute-7.jpg\",\"https://www.clydefitchreport.com/wp-content/uploads/2016/12/cute-cat-images-tpevent-17.jpg\",\"https://hddesktopwallpapers.in/wp-content/uploads/2015/09/dog-wallpaper-for-mobile.jpg\",\"https://wallup.net/wp-content/uploads/2018/10/07/766785-samoyed-dog-dogs-canine.jpg\",\"https://canna-pet.com/wp-content/uploads/2019/02/dog-eating-1.jpg\",\"https://www.barnorama.com/wp-content/uploads/2018/04/dog-facial-deformity-saved-adopted-rescued-happy-3.jpg\",\"https://cdn3-www.cattime.com/assets/uploads/2017/09/Tortoiseshell-Cat-1.jpg\",\"http://showhorsegallery.com/images/uploads/thornvilledanphoto2.jpg\",\"https://image.freepik.com/free-photo/beautiful-brown-horse-outdoors_23-2148573800.jpg\",\"https://pngimg.com/uploads/cat/cat_PNG113.png\",\"https://www.trbimg.com/img-54e6adbe/turbine/ct-stray-dog-trapper-met-20150220\",\"https://www.publicdomainpictures.net/pictures/30000/nahled/smiling-dog-1355804583CQq.jpg\",\"https://media.pri.org/s3fs-public/styles/open_graph/public/migration/PriMigrationsDamanticWordpressAttachmentsImagesMigration/www.theworld.org/wp-content/uploads/English_setter-resting-wiki620.jpg?itok=XJ56yNi0\",\"https://www.eatliver.com/wp-content/uploads/2014/06/stupid-cat3.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/Photo_de_Samoy%C3%A8de.jpg/1200px-Photo_de_Samoy%C3%A8de.jpg\",\"https://www.sunnyskyz.com/uploads/2014/08/t226l-cat-standing12.jpg\",\"http://www.hdwallpaperspulse.com/wp-content/uploads/2014/03/01/rr.jpeg\",\"https://img.equinenow.com/slir/w800/stallions/data/photos/1192971/1518634644/drive-friesian-horse.jpg\",\"https://www.breedyourdog.com/uploads/listing_images/23557/61123/big_IMG_1316.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/d/dc/Grumpy_Cat_(14556024763)_(cropped).jpg\",\"https://img2.grunge.com/img/gallery/he-real-reason-you-should-be-cleaning-your-dogs-leash/whos-a-good-dog-whos-got-their-leash-1587157270.jpg\",\"https://img.equinenow.com/slir/w1200/stallions/data/photos/871749/1560715644/grey-none-horse.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Horse/Grey_Color_Horse_Pic_Download.jpg\",\"http://www.chapmanvalleyhorseriding.com/wp-content/uploads/2015/10/HalloweenHorses-33.jpg\",\"https://d.newsweek.com/en/full/1105889/9-5-horse.jpg\",\"https://www.paulickreport.com/wp-content/uploads/2020/05/CRACKER_HORSE_Photo_2.jpg\",\"https://www.allhorsebreeds.info/liver-roan-ardennes-horse.jpg\",\"https://www.petmd.com/sites/default/files/aggressive-dog-shutterstock_16848454.jpg\",\"http://fallinpets.com/wp-content/uploads/2016/12/cool-boxer-dog.jpg\",\"https://pngimg.com/uploads/cat/cat_PNG50440.png\",\"https://horsespirit.site/wp-content/uploads/2020/04/icel13.jpg\",\"https://buzzsharer.com/wp-content/uploads/2015/04/face-dog-rottweiler.jpg\",\"https://www.munchkincatguide.com/wp-content/uploads/2019/01/munchkinduo.jpg\",\"http://getwallpapers.com/wallpaper/full/b/a/d/1518010-horse-scenes-wallpaper-2880x1800-iphone.jpg\",\"https://content.thriveglobal.com/wp-content/uploads/2018/07/happy-dog.jpg\",\"https://mymodernmet.com/wp/wp-content/uploads/2017/03/gabrielius-khiterer-stray-cats-12.jpg\",\"https://www.newshub.co.nz/home/world/2018/01/grumpy-cat-wins-962-000-in-copyright-infringement-suit/_jcr_content/par/image.dynimg.1280.q75.jpg/v1516869410491/611696914-grumpy-cat-tardar-sauce-visits-cats-on-broadway-1120.jpg\",\"https://www.dogexpress.in/wp-content/uploads/2017/02/953072-shih-tzu.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/lusi13.jpg\",\"https://www.gannett-cdn.com/media/USATODAY/GenericImages/2012/11/26/gan-grumpy-cat-112612-1-16_9.jpg?width=1807&height=1020&fit=crop&format=pjpg&auto=webp\",\"http://geekologie.com/2015/06/25/sad-cat-7.jpg\",\"https://live.staticflickr.com/2869/33664971492_8c42b935d2_b.jpg\",\"https://s3.amazonaws.com/static.arabhorse.com/files/posts/4288/facebook_images/large.jpg?1489063084\",\"https://horsespirit.site/wp-content/uploads/2019/12/ard8.jpg\",\"https://www.aspca.org/sites/default/files/wildhorsesblogbanner.jpg\",\"https://equine-world.co.uk/info/images/horse-behaviour.jpg\",\"https://www.wormers.co.uk/blog/wp-content/uploads/2016/01/Equitop-Myoplast-Feeding-the-Older-Horse.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/shir21.jpg\",\"https://www.awesomeinventions.com/wp-content/uploads/2020/10/Cat-With-Ehlers-Danlos-Syndrome.jpg\",\"http://www.hdwallpaper.nu/wp-content/uploads/2017/04/cat-11.jpg\",\"https://www.kidsdiscover.com/wp-content/uploads/2014/10/Calico_Cat.jpg\",\"https://fossilrim.org/wp-content/uploads/2017/01/Our-Animals-pic-horse-2.jpg\",\"https://thehorse.com/wp-content/uploads/2018/02/horse-pawing.jpg\",\"https://www.dromoland.ie/wp-content/uploads/2019/07/Horse-Riding-Couple-Image-4.jpg\",\"https://assets.horsenation.com.s3.amazonaws.com/wp-content/uploads/2014/08/481px-Liver_chestnut_horse.jpg\",\"https://img.thrfun.com/img/079/115/feeding_a_cat_x1.jpg\",\"http://africageographic.com/wp-content/uploads/2015/10/wild-dog1.jpg\",\"http://www.awesomelycute.com/gallery/2015/01/horse-rescue-foxy-awesomelycute-com-21.jpg\",\"https://cdn0.wideopenpets.com/wp-content/uploads/2016/07/horse-2.jpg\",\"https://cdn7.littlethings.com/app/uploads/2017/05/cute-dog-big-ears-600x600.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg/1200px-An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg\",\"https://www.petpaw.com.au/wp-content/uploads/2013/02/Tonkinese-cute-cat-1030x772.jpg\",\"http://www.pixelstalk.net/wp-content/uploads/2016/04/Dog-images-HD-background-wallpaper.jpg\",\"http://images.boredomfiles.com/wp-content/uploads/2014/05/dog-coat-markings-4.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/03/fries21.jpg\",\"https://wallpapertag.com/wallpaper/full/c/3/8/922024-cute-horse-wallpapers-1920x1080-for-macbook.jpg\",\"https://www.pets4homes.co.uk/images/classifieds/2018/09/16/2064325/large/female-tabby-cat-5b9e858c17efc.jpg\",\"https://fishsubsidy.org/wp-content/uploads/2020/01/Boxer_Dog_Characteristics.jpg\",\"http://www.zastavki.com/pictures/1920x1200/2010/Animals_Dogs_Sleeping_dog_on_floor_020830_.jpg\",\"https://www.horseguide.com.au/database/classifieds/files/post-378985-14331402261292767621.jpg\",\"https://www.sunnyskyz.com/uploads/2018/11/jjx4t-grumpy-cat-2.jpg\",\"https://www.animals-zone.com/wp-content/uploads/2011/08/cat-breeds-2.jpg\",\"https://www.cheatsheet.com/wp-content/uploads/2019/05/Grumpy-Cat-1-1024x682.jpg\",\"https://www.wallpapers13.com/wp-content/uploads/2016/04/Racing-red-horse-meadow-pasture-royalty-Desktop-Wallpaper-Backgrounds-free-download-915x515.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Horse/Two_Beautiful_Brown_Horse_Image.jpg\",\"https://banner2.kisspng.com/20171218/007/cute-cat-5a37f4c79915d5.850277071513616583627.jpg\",\"https://dogtails.dogwatch.com/wp-content/uploads/2020/01/Blog-FeaturedImg-AKCNewBreeds-2020.jpg\",\"https://www.crescentmoonragdolls.com/uploads/1/4/5/9/14594736/dsc03590-2_1_orig.jpg\",\"http://thestyleinspiration.com/wp-content/uploads/2019/10/Arabian-Horses-.jpg\",\"https://images.wallpaperscraft.com/image/horse_face_eyes_57856_800x1420.jpg\",\"https://wallpapersmug.com/download/1080x1920/2d0672/running-horse-animal.jpg\",\"http://themeowpost.com/wp-content/uploads/2016/01/8-manny-the-selfie-cat.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Dog/White_Hairy_Doggy.jpg\",\"https://petsfeed.co/wp-content/uploads/2020/09/Rarest-Cat-Breeds-Elf-Cat.jpg\",\"https://buzzsharer.com/wp-content/uploads/2016/03/dachshund-dog-face.jpg\",\"https://mymodernmet.com/wp/wp-content/uploads/2017/11/chimera-cat-quimera-5.jpg\",\"https://htc-wallpaper.com/wp-content/uploads/2015/05/Cute-cat-licking-its-paw.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/thumb/7/71/RockySilverhorse.jpg/1200px-RockySilverhorse.jpg\",\"https://img.equinenow.com/slir/w1200/stallions/data/photos/1252400/1570892827/brabant-belgian-horse.jpg\",\"https://cdn.petpress.net/wp-content/uploads/2020/06/11213858/havanese-9.jpg\",\"http://www.hdnicewallpapers.com/Walls/Big/Cat/Charming_Cat_Baby_Wallpaper.jpg\",\"https://nationalzoo.si.edu/sites/default/files/animals/fishingcat-002_0.jpg\",\"https://petapixel.com/assets/uploads/2015/12/doglungefeat.jpg\",\"https://img.thrfun.com/img/199/602/coco_5_x2.jpg\",\"https://happypetsclub.net/wp-content/uploads/2017/05/4-ears-cat.jpg\",\"https://www.maxpixel.net/static/photo/640/Dog-Puppy-Protection-Dog-Face-Cute-Adorable-Hug-3986171.jpg\",\"http://i.dmarge.com/2016/11/dog-angry-960x580.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Dog/Amazing_Wallpaper_of_Dog.jpg\",\"http://wallup.net/wp-content/uploads/2016/01/262482-animals-nature-horse.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/appa5.jpg\",\"https://www.rescuepets.com.au/app/uploads/1/886d92993c90c6a6bd6308706c4a24ac951c7272a515d64392214ee7d170dab4.jpg-1500x.jpg\",\"https://wallpapertag.com/wallpaper/full/1/a/2/466305-download-boxer-dog-wallpaper-2560x1600-phone.jpg\",\"https://www.chapmanvalleyhorseriding.com/wp-content/uploads/2015/10/HalloweenHorses-14.jpg\",\"https://www.wallpapergeeks.com/wp-content/uploads/2014/06/Cat-Mustache-Wallpaper.jpg\",\"https://viralcats.net/blog/wp-content/uploads/2017/11/yoda-is-a-chicago-cat-with-four-ears-9-Viral-Cats-Featured-image-1020x776.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/01/biih1.jpg\",\"https://www.sciencealert.com/images/articles/processed/dog-doubt_1024.jpg\",\"https://catscottishfold.com/wp-content/uploads/2018/11/is_scottish_fold_hypoallergenic.jpg\",\"https://www.scienceabc.com/wp-content/uploads/2018/12/horse-ride.jpg\",\"http://www.dog-learn.com/dog-breeds/maltese/images/maltese-u3.jpg\",\"https://hdwallpapers.move.pk/wp-content/uploads/2015/02/enjoying-horse-1024x576.jpg\",\"https://wallpaperheart.com/wp-content/uploads/2018/03/wild-horse-wallpapers-cavalli.jpg\",\"https://www.top13.net/wp-content/uploads/2017/03/fun-cat-fur-patterns-fb.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/02/arde3.jpg\",\"https://api.time.com/wp-content/uploads/2019/12/CatFilterReaction.jpg\",\"https://horseandrider.com/.image/t_share/MTQ0ODgzMTk0MDEyNDQ0MDIy/image-placeholder-title.jpg\",\"http://emojiforu.com/wp-content/uploads/2018/06/adorable-cat.jpg\",\"https://buzzsharer.com/wp-content/uploads/2015/05/wet-dog-pics.jpg\",\"https://www.petful.com/wp-content/uploads/2015/12/Canaan-Dog-profile.jpg\",\"http://weknowyourdreams.com/images/horse/horse-02.jpg\",\"http://animalsbreeds.com/wp-content/uploads/2015/01/Australian-Cattle-Dog-3.jpg\",\"http://themeowpost.com/wp-content/uploads/2016/11/cat-with-fangs.png\",\"https://d.ibtimes.co.uk/en/full/1623762/dog-snout.jpg\",\"http://img1.wsimg.com/isteam/ip/2d07f71e-d041-4772-b631-82b25d1cbe8c/ae93ede1-afb0-4697-8dc4-3b8599238aba.jpg\",\"http://wallup.net/wp-content/uploads/2016/01/96149-dog-couch-animals.jpg\",\"http://news.nationalgeographic.com/content/dam/news/photos/000/588/58818.jpg\",\"http://mymodernmet.com/wp/wp-content/uploads/2017/03/gabrielius-khiterer-stray-cats-4.jpg\",\"https://www.horsebreedspictures.com/wp-content/uploads/2018/04/Carthusian-Horse.jpg\",\"https://www.publicdomainpictures.net/pictures/60000/nahled/dog-isolated-on-white-1379711079p8n.jpg\",\"http://cardiffstudentmedia.co.uk/gairrhydd/wp-content/uploads/sites/2/2014/05/Breton-Horse3-nr-lathus-18-feb2012.jpg\",\"https://riotfest.org/wp-content/uploads/2019/05/grumpy-cat.jpg\",\"https://www.bwallpaperhd.com/wp-content/uploads/2018/06/WildDog-1024x576.jpg\",\"https://www.horsedialog.co.uk/Health/Breeding/easset_upload_file81610_399336_e.jpg\",\"http://c.files.bbci.co.uk/8336/production/_105709533_dog-eating-index.jpg\",\"https://horsespirit.site/wp-content/uploads/2019/12/bdh9.jpg\",\"https://wallup.net/wp-content/uploads/2018/10/07/519427-rottweiler-dog-dogs.jpg\",\"https://torange.biz/photofx/137/10/sunset-mirror-very-vivid-colours-horse-137060.jpg\",\"http://cdn.shopify.com/s/files/1/1834/9585/articles/173-0-scottish_fold_cat_1024x1024.jpg?v=1539158132\",\"https://static.inspiremore.com/wp-content/uploads/2020/06/04120237/Kitzia-new-Grumpy-Cat-5.png\",\"http://mymodernmet.com/wp/wp-content/uploads/2017/09/dog-portraits-alexander-khokhlov-9.jpg\",\"https://www.keystonepuppies.com/wp-content/uploads/2019/01/boxer-dog-grown.jpg\",\"https://cdn.lolwot.com/wp-content/uploads/2016/01/10-banned-dog-breeds-most-people-want-5.jpg\",\"https://www.thepaws.net/wp-content/uploads/2019/02/hemingway-polydactyl-cat.jpg\",\"https://i.ytimg.com/vi/jsGGVFKJRUk/maxresdefault.jpg\",\"https://dogswithwings.ca/wp-content/uploads/2014/02/Daisy.jpg\",\"http://lovebackyard.com/wp-content/uploads/2017/05/horse-eating-cherries.jpg\",\"https://lh3.googleusercontent.com/-9cEauptJbfk/TYIFZLS003I/AAAAAAAAAM4/h7W9JL_cNSA/s1600/Przewalski%2527s+Horse+2.JPG\",\"http://www.bedlamfarm.com/wp-content/uploads/2013/02/Deadly-Cat-.jpg\",\"http://animalsbreeds.com/wp-content/uploads/2014/07/Papillon-dog-14.jpg\",\"https://www.askideas.com/media/84/Toyger-Cat-Yawning.jpg\",\"https://www.thevetexpert.com/wp-content/uploads/2020/03/Horse-Look.jpg\",\"https://cdn1.theweek.co.uk/sites/theweek/files/2017/08/170816-cats-in-a-box.jpg\",\"https://hdwallpapers.move.pk/wp-content/uploads/2015/02/bueutiful-horse-running.jpg\",\"https://pixel.nymag.com/imgs/daily/vulture/2019/05/17/17-grumpy-cat.w1200.h630.jpg\",\"http://purrtacular.com/wp-content/uploads/2017/09/maya-extra-chromosome-cat-7.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Cat/Cat_Eye_Twitching_Wonderful_Photo.jpg\",\"https://s.equimed.com/images/52/1024/0/0.jpg\",\"https://www.sunnyskyz.com/uploads/2019/06/tbcg6-angry-cat-2.jpg\",\"https://www.nationalgeographic.com/content/dam/news/photos/000/755/75552.ngsversion.1422285553360.adapt.1900.1.jpg\",\"https://www.nativebreed.org/wp-content/uploads/2020/05/Boerperd-horse.jpg\",\"https://pngimg.com/uploads/horse/horse_PNG323.png\",\"https://yesofcorsa.com/wp-content/uploads/2017/12/Angry-Cat-Desktop-Wallpaper.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/04/appa8.jpg\",\"https://www.ctquarterhorse.com/site/image/original/216.jpg\",\"https://petable.care/wp-content/uploads/2016/07/sad-cat-1920x1080.jpg\",\"https://www.animalhub.com/wp-content/uploads/2014/03/dogs-funny-faces-shake-2.jpg\",\"https://elishaedwards.com/wp-content/uploads/2019/11/Depositphotos_26867917_l-grey-horse-running.jpg\",\"https://fishsubsidy.org/wp-content/uploads/2020/01/The-Devon-Rex-Cat-Breed-.jpg\",\"https://cdn.shopify.com/s/files/1/0994/0236/articles/chinook-dog-crate-size_1200x1200.jpg?v=1539662625\",\"http://cdnfiles.hdrcreme.com/43136/medium/cute-grey-dog.jpg?1426746306\",\"http://www.theultimatecatwebsite.com/uploads/1/1/0/8/11083235/8367004_orig.jpg\",\"http://getwallpapers.com/wallpaper/full/d/7/2/956626-download-wallpaper-horse-2560x1600-hd-1080p.jpg\",\"http://www.mendosa.com/fitnessblog/wp-content/uploads/2011/10/prairie-dog.jpg\",\"https://www.petguide.com/wp-content/uploads/2016/09/Racking-Horse.jpg\",\"https://pupstoday.com/wp-content/uploads/2020/10/16-4.jpg\",\"https://dogbreeds-az.weebly.com/uploads/5/8/5/5/58556921/9204867.jpg\",\"https://www.dogvills.com/wp-content/uploads/2014/12/dog-546286_640.jpg\",\"http://parade.pet/assets-v2/images/cat/img-cats/04.jpg\",\"http://d.ibtimes.co.uk/en/full/1415067/horse.jpg\",\"https://www.pawculture.com/uploads/siberian-forest-cat.jpg\",\"https://petskb.com/wp-content/uploads/2019/08/dog-excited.jpg\",\"https://www.hdwallpapers.in/download/blue_eyes_black_nose_white_cat_is_lying_down_on_ground_4k_5k_hd_cat-HD.jpg\",\"https://www.thevetexpert.com/wp-content/uploads/2020/01/Horse-Abuse.jpg\",\"https://cdn.cnn.com/cnnnext/dam/assets/190624020024-scamp-super-tease.jpg\",\"https://wallup.net/wp-content/uploads/2016/10/12/383993-face-ears-hair-photography-wildlife-wild_cat-Caracal.jpg\",\"https://pbs.twimg.com/media/DYLuNt2UQAEqaOs.jpg:large\",\"https://www.emdonenilodge.com/wp-content/uploads/2015/08/African-Wild-Cat.jpg\",\"https://jooinn.com/images/dog-67.jpg\",\"https://pulpbits.net/wp-content/uploads/2014/01/Cat-Tortoiseshell-1024x1365.jpg\",\"https://img.equinenow.com/slir/w800/equine/data/photos/1260249/1554277504/sale-appaloosa-horse.jpg\",\"http://i.huffpost.com/gen/2891956/images/o-CUTE-CAT-facebook.jpg\",\"http://horsescience.co/wp-content/uploads/2015/02/trotpoles.jpg\",\"http://img.burrard-lucas.com/zambia/full/wild_dog.jpg\",\"https://cdn.britannica.com/24/212324-131-4AD3AE21/Persian-cat-sleeping.jpg\",\"https://thehorse.com/wp-content/uploads/2017/09/quarter-horse-trotting-in-arena.jpg\",\"https://c.pxhere.com/photos/35/c8/cat_black_animal_stone_barsik_meadow_field_grass-624421.jpg!d\",\"https://www.hdnicewallpapers.com/Walls/Big/Horse/Brown_Horse_with_Her_Lovely_Child.jpg\",\"https://www.thegoodypet.com/wp-content/uploads/2020/09/Bird-Dog-Breeds.jpg\",\"https://www.luvbat.com/uploads/cat_sitting_sofa_like_a_human__8697470286.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Cat/Grey_Color_Cat_Pretty_Wallpaper.jpg\",\"https://cattime.com/assets/uploads/2012/07/abyssinian-cat.jpg\",\"http://buzzsharer.com/wp-content/uploads/2015/05/beautiful-running-horse.jpg\",\"https://www.k9web.com/wp-content/uploads/2020/08/dorkie-dog.jpg\",\"http://oddstuffmagazine.com/wp-content/uploads/2017/11/dog-hats-650x817.jpg\",\"http://buzzsharer.com/wp-content/uploads/2016/03/smiling-corgi.jpg\",\"https://www.hdnicewallpapers.com/Walls/Big/Horse/Animal_Horse_Wallpaper.jpg\",\"https://assets.horsenation.com.s3.amazonaws.com/wp-content/uploads/2015/10/buddy-sour.jpeg\",\"https://d.newsweek.com/en/full/1614423/newsweek-amplify-cat-crying-help.png\",\"https://images.hellogiggles.com/uploads/2017/08/26081306/green-cat.png\",\"http://www.thegaitpost.com/wp-content/uploads/a-horse-being-unloaded-at-a-control-post-2.jpg\",\"https://www.chapmanvalleyhorseriding.com/wp-content/uploads/2015/10/HalloweenHorses-31.jpg\",\"https://www.thedogword.com/application/files/9615/5244/3242/Vizsla8.jpg\",\"http://theawesomedaily.com/wp-content/uploads/2018/02/rarest-horse-breeds-of-the-world-feat-1-620x350.jpg\",\"http://cdn0.wideopenpets.com/wp-content/uploads/2016/03/dog.jpg\",\"https://moderndogmagazine.com/sites/default/files/images/uploads/smilingdogs_ziva.jpg\",\"https://inhabitat.com/wp-content/blogs.dir/1/files/2013/03/horse-laughing.jpg\",\"https://www.rover.com/blog/wp-content/uploads/2019/11/cat-4204883_1920.jpg\",\"https://d.ibtimes.co.uk/en/full/1654558/pet-cat.jpg\",\"http://themeowpost.com/wp-content/uploads/2016/04/3-derpy-faced-cat.jpg\",\"http://vancouver.ca/images/cov/feature/license-and-leash-your-dog-facebook.jpg\",\"https://www.journalism.co.uk/assets/33/The_lonan_tweed_dog_coatv1.jpg\",\"https://www.historicmysteries.com/wp-content/uploads/2016/10/Black-cat-superstition-.jpg\",\"https://mymodernmet.com/wp/wp-content/uploads/2018/12/dog-portraits-kristyna-kvapilova-7.jpg\",\"https://s3.amazonaws.com/adventureblogbucket/assets/uploads/2019/02/06065639/social-media-Icelandic-horse.jpg\",\"https://img.dog-learn.com/dog-breeds/thai-ridgeback/thai-ridgeback-i3.jpg\",\"http://pulpbits.net/wp-content/uploads/2014/02/persian-cat-breeds-12.jpg\",\"https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Tonkinese_Cat_-_Leo.jpg/1200px-Tonkinese_Cat_-_Leo.jpg\",\"http://www.photoaxe.com/wp-content/uploads/2007/12/cat16.jpg\",\"http://horsetvlive.com/wp-content/uploads/2018/08/4-friesian-horse-breeds-in-the-world-youtube-thumbnail.jpg\",\"http://www.freshboo.com/wp-content/uploads/2014/04/beautiful-horse.jpg\",\"https://images.wagwalkingweb.com/media/daily_wag/name_guides/%7Bslug%7D/hero/1537890338.6/bahamas-dog-names.jpg\",\"https://hdwallpapers.move.pk/wp-content/uploads/2015/02/beautiful-horse-style.jpg\",\"http://i.huffpost.com/gen/1279774/images/o-PRZEWALSKIS-HORSE-facebook.jpg\",\"http://www.sott.net/image/s22/446941/full/Dog_in_mourning_Helping_our_pe.jpg\",\"http://news.nationalgeographic.com/content/dam/news/2017/06/09/waq-cat-tail/01-cat-tail.ngsversion.1496936927104.adapt.1900.1.jpg\",\"http://ourauckland.aucklandcouncil.govt.nz/media/6466/dog-reg-dog.jpg\",\"http://barkpost.com/wp-content/uploads/2014/04/saddogcomputer.jpg\",\"https://petsfeed.co/wp-content/uploads/2020/12/Chat-Kinkalow-cat.jpg\",\"https://horsespirit.site/wp-content/uploads/2020/03/amqh4-1024x683.jpg\",\"https://images2.minutemediacdn.com/image/upload/c_fill,g_auto,h_1248,w_2220/f_auto,q_auto,w_1100/v1555345877/shape/mentalfloss/istock_000072600763_small.jpg\",\"https://images.wagwalkingweb.com/media/daily_wag/name_guides/%7Bslug%7D/hero/1543366264.59/nebraska-dog-names.jpg\",\"https://www.aspca.org/sites/default/files/cat-care_destructive-scratching_main-image.jpg\",\"https://www.readersdigest.ca/wp-content/uploads/2020/11/most-popular-dog-breeds-portuguese-water-dog.jpg\",\"https://www.erblicken.com/wp-content/uploads/2016/06/Funny_Ben.jpg\",\"https://thehorse.com/wp-content/uploads/2017/09/dressage-horse-with-tight-noseband.jpg\",\"https://wallup.net/wp-content/uploads/2016/01/201852-animals-cat-depth_of_field-bricks-Siamese_cats.jpg\",\"https://weneedfun.com/wp-content/uploads/2016/02/Andalusian-Horse-7.jpg\",\"https://www.petpaw.com.au/wp-content/uploads/2013/02/Toyger-male-cat-1030x748.jpg\",\"https://www.aspca.org/sites/default/files/cat-care_aggression-in-cats_main-image.jpg\",\"https://www.dogvills.com/wp-content/uploads/2020/02/most-dominant-dog-breeds-a.jpg\",\"http://manydifferences.weebly.com/uploads/1/7/5/5/17557043/8977268_orig.jpg\",\"https://thefunnybeaver.com/wp-content/uploads/2020/08/adorable-cat-back.jpg\",\"https://biggsinsurance.com/wp-content/uploads/2017/04/Dog-angry.jpg\",\"https://thebark.com/sites/default/files/content/article/full/simba-smiling-dog-large.jpg\",\"https://www.unilad.co.uk/wp-content/uploads/2017/12/bernese-mountain-dog-208092_1920.jpg\",\"https://s.equimed.com/images/335/1024/0/0.jpg\",\"https://ourdeer.b-cdn.net/wp-content/uploads/2020/06/Dog-Breeds-for-Families-Beagle.jpg\",\"https://miro.medium.com/max/10368/1*ES15OJWo_LhqzYSI2JYanA.jpeg\",\"http://cdn0.wideopenpets.com/wp-content/uploads/2016/02/horse-1.jpg\",\"https://petpress.net/wp-content/uploads/2020/05/siame-cat-1.jpg\",\"http://www.freshboo.com/wp-content/uploads/2014/04/beut-horse.jpg\",\"https://cdn.thewirecutter.com/wp-content/uploads/2018/03/dog-toys-blog-lowres-3-630x420.jpg\",\"https://www.top13.net/wp-content/uploads/2015/01/sitting-cat7.jpg\",\"https://scitechdaily.com/images/Cat-COVID-19-Mask.jpg\",\"http://www.zastavki.com/pictures/originals/2013/Animals___Horses_Horse_galloping_053620_.jpg\",\"https://images.wallpaperscraft.com/image/horse_brown_look_123607_938x1668.jpg\",\"https://www.south.is/static/gallery/icelandic-horse/picture-079-1-.jpg\",\"https://pixfeeds.com/images/cats/1280-147094961-siamese-cat.jpg\",\"https://welovecatsandkittens.com/wp-content/uploads/2017/05/Simply-adorable.jpg\",\"https://pyxis.nymag.com/v1/imgs/1fa/1b2/4ae76fa8c9910485045e4f9a956345903b-18-puppy-dog-eyes.rsquare.w700.jpg\",\"http://moderndogmagazine.com/sites/default/files/images/uploads/stardog_starr.jpg\",\"https://aikmanwildlife.com/wp-content/uploads/2019/12/draft_horse_product.jpg\",\"https://flashbak.com/wp-content/uploads/2017/04/cat-001.jpg\"],\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"fP1H4Ni54j+GKTThGA3ZPxUFI15+SN4/1Jootgux2D8m8hXYzyKRP96zAd40Cdk/crOB3yDHxj/RucCtG5KePzYJ+he3X5Q/x3fjzXx/zD9E8IxxiWjSP2QoCq7AAcM/gW4Sv9hZ1j9ZafCsG2fQPxdL8WAMpew/n1+fVrDTxz/mN9EfXt7UPyL3vRsasZo/+amTYJQC7T83d7puYi7QPwD669HtetM/WqGSAyvYwT+USYmz73vmP3LTu5MgLOk/DElSutFzuz9MMWNIzPriP0Veoh6tJcE/lfXMhL+34T+6/kXUk9zgP+g5iFSirLU/W8CSG5cz0D/T22Wzh87NPyvelauMRYI/7VgKr7Nrxj8yCeSyhPuMP93hWHzGBNM/gtKUm0jOoD9UWWP7g7reP3DZitg2COY/1OjZ6r+f1j9qfts4e2+yP6ls4t16Puk/LtW2goD8lz9+nUG3tdHSP8L6c1it8eY/71NQMS296D/DTPqheTK7P9uRRSbgdNQ/7wbxqe58sD/4klW4V7y2P57V/sY/DtU/cP48bibopD8Z9cfa3SWYPyXCCT/qE6g/mcz1RHF/mz+R1p2FTEfAPzsIOUBvBds/xvwzkDJiqj/JCDfkno6yPzlEVfBACo8/aCcMO2Wipz+ckwSimqDEP+vLBO8RXeo/LL0KQxXUxj9DPKyPpt3MP7jvYqAES6s/vJ1glWrN6T/R/TZp6r+oPwJofNj0IOM/2zyQaobpvz8R4fmYVjXjP0CIEa8u9ds/xQ0HGfSs4D/fR8hyzlfhP/O9idFudY8/OiCaKM111D+U6YZgDDvBP6S539dz0us/qDMWiexb2D83P3W/lvzDP5L9RgUj8rQ/GN7GF0B/2j/PVZhITWTtP0b6uzZtJOc/0PxG0pBxyz/WJdaHl0vbP7PXWxBbo7A/hYiPew46rz++8OjPd6/mP7X5F8GSDew/Iz4d7fyC5D910xyfgwDePxA4b0cfksE/Uy4VbQfT2D+eTzlwSzjOP4x4UEex8uA/tHzxbDzy0T+zOTvxPBvrP/RHmuBIaIQ/ZT4b/jR8iT9WLikB0oPDP48a0k/7nKA/0NTIy5SJ4z/KqtP9z3HhP/a8dX7vgJ8/4qFHEz9s7j921fpmYSLiP7OALbGbqZg/n6ahVLypzz/30BX+VEu9PyJ80DWXzrY/e7+Esk7LwT/GQPHdVj+bPx1nhxRhYoY/Plqcn2BWvT9zrx7uuyTQP97DxUTUqp0/UI8/FEGZ7T90hqYMnNbHP0XiesjKjtw/nvdjSE8U4T/VW+btkbKEP+0gXEZUIKI/SnEyUrhu2D/m8ckMMO6KP9vqKtpKCe0/EzqvgTCtnz+rCgA+SuPYP6Psnt0ICtY/qjL02HFqvD9w2ttSNIPDP6upcytRoaY/BYOALUL7lT/kSeezohirP6NiGgZ4leo/3RKFdU6/4D+rYOKo+NetP/WsObP+t8s/tH67hd88uD824jagWobXP+g1SG6fypo/sGRk6xfWzj995EyrrXilP+ovAG3DELc/oQeO7kV/5z8F3OcqGq3NPzu7x7U6DMM/50BINqXhqT/oXHRYqlflP6qhSMupPes/fG1NTSZv6j9MBT7dvQrgP+Lc2Q7rdOU/8g9s7AYL5T9Rv/KyJfiJP2TAzIDz7qA/zku7R5fbjT8wZminbGPgPw90wuqODLI/bEzdBISboz9j+yV5K17rP44v9Sjiz9Y/HnlzFl2UsD/+omQrQjPGP3+vxy0c4bQ/csDv+y833z+fLpu37VHJP+kvULCjp9w/qZfRHZqN6D8c9QddX/rtP6tdhhz4quI/54bRi2M76j+HQ0WQxuXmPyhJc6y+dOA/AkTamICT6T+TcWN/w/SgP439ZoCfDMs/Iw0m+cyXzT8lovgR2iPhP134BPrSl+w/cqBvdKVq5z8pT2lyBL/bP0Pwga+LWLs/tt4EscuszT9jlQEPlJniPycEO9Nnm+k/Hrr+yzf91j+JnN57aU3AP/vFajdVDLk/i8TpVoWMyT+yhfbsUnu9P7LtLSKdD+0/hqM53Ffm4z/lL+AdzgbWP2k0TO1VnqQ/V2qiU/X+tz8cwIhEvQLlPwW/Mr+8Pd0/D8GYDSx31D/7fpy3ZJOWP5oPf4klyuA/dCwTvC0p7z9MI6Oy4TnDPxffZ9GOin0/AKMWAazZsz/c08KTk6DlPyTlYlKc8eU/tSfmxHSK7T/JW7CxxGfTPwmaP3mQ8aQ/uJkjeB402T/tjgvfNJ60P6n/PLxAwLY/wOb/jU7Xsj8supA9/+TtPxoeRKdWZeM/fL9HgASgtD9ZVS0G4Ce/P+hsdo0aCcE/fAsHSEoHhj/qPJ0kOjawP4B6bYh0Wtg/0jG/P6nK1j/ljFZQh6ifP34jUSFGCbk/QZuX7HuW4T86zGxxAH7uP25Ggwtu8ac/U7o4omtwwD+5M1MOfhLiP2DL3FWmBbk/TuxoA+mxoz8Gl57a2/7hP3AXt1ac8cc/SiGSRPIGqD+9A7q9Dt3rPzH78QkUNMg/GFYt3Pfg7D9N34vWAmfiP5MmrmZPZrU/ms7ZrywA5j+TFeyo/rKFPzify9TIve0/DqjQqSjovz8L7BjriDjQP9Mbu0MHPZ8/peGriDvk3z8Gaz/EEp7BP1Vr81aKpdc/SzdLnzaa3T8QGSAOOc3DP7VEQIElRaI/HoZq4tjJvT99VO41pUDEP2W/kVxkueA/BadoRhdM1j9SAq2JOePaP42dZc+xjqs/gp7AeStYvT8pMuu315DiPzKuR8MsgaY/9OSJqkOz5D8ze0ot+9icP3+RMr5W4uY/rEaxavl93D8oj5StKRHFP7Ann1Nnfco/mh45XuQmhj+h/JmWV/CRP8zol2JRsbc/vLurWYLhxD8TIP10wNq5P3sUQyC4TuM/fQ83vgCq4z/Q1NNY8iyuP31vxaaU3L8/LF6AV5E6eT/0OQsmEErkPw2LQLSmjoE/iww13ZwI5T/gMtwoRf3WP1BeV2BAlr0/3VwtkOpu2z8KY3T7LE7uP9Tun8MEQ7I/D0qDxG0n0D9M9tg9KdboP/Ngp/2d6ew/uRrPRNFc1D/YTqu6iCTqP9O5NqjQOOA/HkcGnNJXwj8TTDQYOIWyP5vfMDJ6Zuk/OTkYR0ST2T99AELMKCC0P3yzCAEfT6s/ZskjYL9Mxj/bOY9VfmTZP8aKolKWRME/78Y5+icS6z9NmiA+sqagP3DlC6C5QMs/ptirLlR2wD9rYmC79MXQP/SxiaTaN+w/of9ATw6mzz9OcBQypWDDPwaTe2J29ts/kiLcpI4G4z9wobvXNSmuPxpjo9B+bdc/9tL6L1Uvyz9TXYD/qKO7P6PJv7aGbdE//0VHNb6ViD9AfK6n2pbgP2Pxd4o4ENo/8kcAEs9y7T/6/+STiCTePydUco7raKQ/WMhwrNEI7D+TT7Yr23eeP3HLsOJpEuU/P/bmUjkKsT8X6UTxk8DVP852y3LcEs4/SqtWkAWX3D+dQraqLpDlP/vEx++ru7k/XqK0AcsCnz9ZA+S7RXuqP8913+6TdO4/k/Ij6boC7j/Lcaw8r5+oP+AIlV6MPMA/TkrH1WNq3z8Hu7L4oePcP7VUNur1FsI//XseOXSn4T8//g89EJbWP6kFP7f0iJc/aQ8fXFf14D80r8ZjDMXTP3ZuzOE1zdU/Pl9BmVj7hD+6BG08jknQP4KPyauhPcQ/wccEeOJ2xT8kpqu26ZGfP4VHeanSneA/2jHavM832T8UojJ0TsXAP25+YHfjWtY/SOkZOkLywT/Sx2v99kHmPwpI32nHRuo/ANgsgKAoxD/FXaaX0lLnP1tWdWACQO0/y0tWrgdatD8pRn3aavjAPxGl9smow9g/D8KC8ItEtT9Ml+XXfmi1P8gc+LT5b+s/HCgDI9tckj+3DZHoE8KhP2A7eeAoc58/cYQv2JhUzD8I4olju3aDPzNF0Rn9XOs/KHXwFry9qj8uX3bhvzjjP5O5xlVzbsk/8mH6FY4Q3j8FA8Oq3X/PP7dWJyrHauA/TD7a4+zH0T/NvZgv4bDCP99ZbC+b+7M/uTa3Ar002T/l1f5KX0/kPy0CfG45fZg/mCIqiwy95D/RLGb8HWzfPxaVEa/qbtM/JTZCmM2l5D+QiVo2nc2zP3QWmNYykKk/EeXSJDYwoz/56emvcOLsP49tcF1OjeE/Fh/KiT9t6z+GpoN0euHWP5PUrByai9k/W6/w7wdpvz93G7+TddnUPzbj23DnTd4/hB1/i8kQmT8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[400]}},\"selected\":{\"id\":\"1075\"},\"selection_policy\":{\"id\":\"1076\"}},\"id\":\"1052\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1044\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1039\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"1047\"},\"glyph\":{\"id\":\"1048\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1049\"},\"view\":{\"id\":\"1051\"}},\"id\":\"1050\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1007\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_color\":{\"field\":\"colors\"},\"line_color\":{\"field\":\"colors\"},\"size\":{\"value\":6},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1054\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1047\"}},\"id\":\"1051\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"x\":[0,-0.5],\"y\":[0.333,0.5]},\"selected\":{\"id\":\"1073\"},\"selection_policy\":{\"id\":\"1074\"}},\"id\":\"1047\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1065\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1064\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1049\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1073\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"field\":\"colors\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"field\":\"colors\"},\"size\":{\"value\":6},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1055\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"x\":[0,0.5],\"y\":[0.333,0.5]},\"selected\":{\"id\":\"1071\"},\"selection_policy\":{\"id\":\"1072\"}},\"id\":\"1042\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1062\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"text\":\"horse\",\"text_align\":\"center\",\"x\":0,\"y\":1},\"id\":\"1060\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"1067\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1074\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1027\"}},\"id\":\"1023\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1013\"},\"ticker\":null},\"id\":\"1016\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"1062\"},\"major_label_policy\":{\"id\":\"1064\"},\"ticker\":{\"id\":\"1018\"}},\"id\":\"1017\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"dog\",\"x\":1,\"y\":0},\"id\":\"1059\",\"type\":\"Label\"},{\"attributes\":{\"data_source\":{\"id\":\"1042\"},\"glyph\":{\"id\":\"1043\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1044\"},\"view\":{\"id\":\"1046\"}},\"id\":\"1045\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"1037\"},\"glyph\":{\"id\":\"1038\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1039\"},\"view\":{\"id\":\"1041\"}},\"id\":\"1040\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"1052\"},\"glyph\":{\"id\":\"1054\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1055\"},\"view\":{\"id\":\"1057\"}},\"id\":\"1056\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1018\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"HelpTool\"},{\"attributes\":{\"data\":{\"x\":[0,0],\"y\":[0.333,0]},\"selected\":{\"id\":\"1069\"},\"selection_policy\":{\"id\":\"1070\"}},\"id\":\"1037\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1011\",\"type\":\"LinearScale\"},{\"attributes\":{\"text\":\"cat\",\"text_align\":\"right\",\"x\":-1,\"y\":0},\"id\":\"1058\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"1005\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1069\",\"type\":\"Selection\"},{\"attributes\":{\"text\":\"Mouse over the dots\"},\"id\":\"1003\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"ResetTool\"},{\"attributes\":{\"active_multi\":null,\"tools\":[{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"},{\"id\":\"1026\"},{\"id\":\"1028\"}]},\"id\":\"1029\",\"type\":\"Toolbar\"}],\"root_ids\":[\"1002\"]},\"title\":\"Bokeh Application\",\"version\":\"2.3.1\"}};\n", " var render_items = [{\"docid\":\"e9cffe58-a904-44c8-8b93-010270816851\",\"root_ids\":[\"1002\"],\"roots\":{\"1002\":\"0c371ac0-dec0-4df8-bbb8-bcc827729e71\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1002" } }, "output_type": "display_data" } ], "source": [ "urls = exhibit_urls(targ, labels)\n", "TrianglePlot2D_Bokeh(prob, targ=targ, labels=labels, show_bounds=True, urls=urls).do_plot()" ] }, { "cell_type": "markdown", "metadata": { "id": "xrDhkiph9c5t", "slideshow": { "slide_type": "subslide" } }, "source": [ "## Traditional Classification Training (Cartoon)\n", "<br>\n", "<div>\n", " <img style=\"display:inline-block\" src=\"images/step1.png\" width=\"24%\">\n", " <img style=\"display:inline-block\" src=\"images/step2.png\" width=\"24%\">\n", " <img style=\"display:inline-block\" src=\"images/step3.png\" width=\"24%\">\n", " <img style=\"display:inline-block\" src=\"images/step4.png\" width=\"24%\">\n", "</div>\n", "<div>\n", " <img style=\"display:inline-block\" src=\"images/step5.png\" width=\"24%\">\n", " <img style=\"display:inline-block\" src=\"images/step6.png\" width=\"24%\">\n", " <img style=\"display:inline-block\" src=\"images/step7.png\" width=\"24%\">\n", " <img style=\"display:inline-block\" src=\"images/step8.png\" width=\"24%\">\n", "</div>\n", "...tries to collapse all points to each \"pole\"." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": false, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 360x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 360x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# generate and save images that we'll load in the next cell \n", "import matplotlib.pyplot as plt\n", "\n", "# generate data along boundaries\n", "def gen_bound(x, y, z, n=20, ind0=1): # ind0=1 skips the \"first point\"\n", " return np.linspace(np.array([x[0],y[0],z[0]]), np.array([x[1],y[1],z[1]]), num=n+ind0)[ind0:]\n", " \n", "def gen_bound_data(n_per=20, ind0=0):\n", " bdata = np.zeros((n_per*3,3))\n", " bdata[:n_per] = gen_bound(x=[0.333,0.5], y=[0.333,0.5], z=[0.333,0], n=n_per, ind0=ind0) \n", " bdata[n_per:2*n_per] = gen_bound(x=[0.333,0], y=[0.333,0.5], z=[0.333,0.5], n=n_per, ind0=ind0)\n", " bdata[-n_per:] = gen_bound(x=[0.333,0.5], y=[0.333,0], z=[0.333,0.5], n=n_per, ind0=ind0)\n", " return bdata\n", "\n", "def gen_near_bound_data(n_per=50, scale=7, eps=0.01):\n", " bdata = gen_bound_data(n_per=n_per)\n", " lower, right, left = bdata[0:n_per,:], bdata[n_per:2*n_per,:], bdata[-n_per:,:]\n", "\n", " # shift data a bit\n", " lower_catty = softmax( scale*(lower+np.array([eps,0,0])) )\n", " lower_doggy = softmax( scale*(lower+np.array([0.0,eps,0])) )\n", "\n", " left_catty = softmax( scale*(left+np.array([eps,0,0])) )\n", " left_horsey = softmax( scale*(left+np.array([0,0,eps])) )\n", "\n", " right_horsey = softmax( scale*(right+np.array([0,0,eps])) )\n", " right_doggy = softmax( scale*(right+np.array([0,eps,0])) )\n", "\n", " return np.vstack((lower_catty, lower_doggy, left_catty, left_horsey, right_horsey, right_doggy))\n", "\n", "# move boundary a bit toward the \"correct\" side\n", "eps = 0.007\n", "acc_data = gen_near_bound_data(eps=eps)\n", "btarg = np.argmax(acc_data, axis=-1)\n", "TrianglePlot2D_MPL(acc_data, targ=btarg, show_bounds=True, labels=labels, comment='100% Accuracy:').do_plot()\n", "plt.savefig(\"images/acc_100.png\")\n", "\n", "# move boundary a bit toward the \"wrong\" side (keeping labels the same as before)\n", "inacc_data = gen_near_bound_data(eps=-eps)\n", "ibtarg = btarg.copy()\n", "TrianglePlot2D_MPL(inacc_data, targ=ibtarg, show_bounds=True, labels=labels, comment='0% Accuracy:').do_plot()\n", "plt.savefig(\"images/acc_0.png\")\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Loss vs. Accuracy\n", "\n", "*Loss*: distance from target (continuous)<br>\n", "*Accuracy*: % of points on the correct side of decision boundary (discontinuous)<br>\n", "<br>\n", "**Nearly identical losses:**<br>\n", "<img style=\"display:inline-block\" src=\"images/acc_100.png\" width=\"40%\">\n", " \n", "<img style=\"display:inline-block\" src=\"images/acc_0.png\" width=\"40%\">" ] }, { "cell_type": "markdown", "metadata": { "id": "SF2JYmvC9Wm5", "slideshow": { "slide_type": "subslide" } }, "source": [ "### 4 Classes in 3D: form a pyramid!" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "np.random.seed(1)\n", "prob4, targ4 = calc_prob(n=500, s=2.7, dim=4) # 4d probabilities\n", "prob4, targ4 = np.vstack((np.eye(4),prob4)), np.hstack((np.arange(4),targ4)) # tack on poles b4 pca\n", "prob3 = pca_proj(prob4) # use PCA for coordinate transformation to 3D hyperplane" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 542 }, "hideCode": true, "id": "6wspP59I9Tdg", "outputId": "7e5bcbb4-ee5f-442b-a048-69fbd55aa162", "scrolled": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "<div> <div id=\"9bc514e2-bc0f-445c-b28b-505ff93bce15\" class=\"plotly-graph-div\" style=\"height:525px; width:700px;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"9bc514e2-bc0f-445c-b28b-505ff93bce15\")) { Plotly.newPlot( \"9bc514e2-bc0f-445c-b28b-505ff93bce15\", [{\"hovertext\": [\"cat\", \"dog\", \"horse\", \"bird\", \"dog\", \"bird\", \"bird\", \"dog\", \"dog\", \"dog\", \"dog\", \"dog\", \"cat\", \"dog\", \"cat\", \"horse\", \"bird\", \"horse\", \"bird\", \"horse\", \"horse\", \"cat\", \"dog\", \"cat\", \"cat\", \"bird\", \"bird\", \"dog\", \"cat\", \"horse\", \"bird\", \"dog\", \"cat\", \"dog\", \"bird\", \"cat\", \"bird\", \"horse\", \"horse\", \"cat\", \"bird\", \"bird\", \"bird\", \"horse\", \"bird\", \"bird\", \"bird\", \"bird\", \"cat\", \"horse\", \"dog\", \"dog\", \"bird\", \"bird\", \"cat\", \"horse\", \"bird\", \"bird\", \"dog\", \"bird\", \"dog\", \"dog\", \"cat\", \"bird\", \"dog\", \"cat\", \"bird\", \"dog\", \"dog\", \"dog\", \"cat\", \"dog\", \"horse\", \"bird\", \"dog\", \"dog\", \"bird\", \"cat\", \"horse\", \"dog\", \"dog\", \"horse\", \"bird\", \"bird\", \"dog\", \"bird\", \"bird\", \"horse\", \"dog\", \"dog\", \"horse\", \"cat\", \"horse\", \"bird\", \"horse\", \"horse\", \"cat\", \"dog\", \"cat\", \"horse\", \"horse\", \"bird\", \"bird\", \"dog\", \"cat\", \"dog\", \"bird\", \"cat\", \"cat\", \"cat\", \"bird\", \"dog\", \"horse\", \"cat\", \"cat\", \"cat\", \"bird\", \"dog\", \"cat\", \"dog\", \"horse\", \"horse\", \"horse\", \"dog\", \"dog\", \"dog\", \"bird\", \"bird\", \"cat\", \"horse\", \"horse\", \"cat\", \"horse\", \"bird\", \"horse\", \"cat\", \"horse\", \"cat\", \"cat\", \"dog\", \"horse\", \"cat\", \"cat\", \"horse\", \"horse\", \"bird\", \"bird\", \"cat\", \"horse\", \"cat\", \"horse\", \"dog\", \"cat\", \"dog\", \"dog\", \"dog\", \"bird\", \"bird\", \"horse\", \"dog\", \"cat\", \"bird\", \"cat\", \"cat\", \"dog\", \"cat\", \"cat\", \"horse\", \"horse\", \"dog\", \"dog\", \"cat\", \"bird\", \"horse\", \"bird\", \"dog\", \"bird\", \"cat\", \"dog\", \"horse\", \"horse\", \"dog\", \"horse\", \"cat\", \"dog\", \"horse\", \"dog\", \"cat\", \"cat\", \"cat\", \"horse\", \"dog\", \"cat\", \"dog\", \"dog\", \"horse\", \"cat\", \"cat\", \"horse\", \"bird\", \"horse\", \"dog\", \"bird\", \"bird\", \"bird\", \"dog\", \"cat\", \"cat\", \"horse\", \"horse\", \"cat\", \"dog\", \"bird\", \"bird\", \"bird\", \"cat\", \"horse\", \"bird\", \"cat\", \"bird\", \"bird\", \"dog\", \"horse\", \"horse\", \"horse\", \"cat\", \"cat\", \"horse\", \"horse\", \"bird\", \"horse\", \"horse\", \"dog\", \"dog\", \"bird\", \"horse\", \"bird\", \"bird\", \"bird\", \"bird\", \"dog\", \"bird\", \"dog\", \"cat\", \"cat\", \"horse\", \"cat\", \"dog\", \"bird\", \"horse\", \"dog\", \"dog\", \"bird\", \"bird\", \"dog\", \"cat\", \"dog\", \"cat\", \"bird\", \"bird\", \"horse\", \"dog\", \"horse\", \"bird\", \"bird\", \"horse\", \"bird\", \"horse\", \"dog\", \"bird\", \"cat\", \"bird\", \"horse\", \"bird\", \"dog\", \"dog\", \"bird\", \"bird\", \"horse\", \"dog\", \"cat\", \"dog\", \"cat\", \"horse\", \"horse\", \"dog\", \"cat\", \"horse\", \"cat\", \"bird\", \"dog\", \"bird\", \"cat\", \"dog\", \"cat\", \"dog\", \"cat\", \"horse\", \"bird\", \"cat\", \"bird\", \"horse\", \"cat\", \"bird\", \"horse\", \"bird\", \"dog\", \"bird\", \"dog\", \"bird\", \"bird\", \"dog\", \"dog\", \"cat\", \"bird\", \"cat\", \"bird\", \"bird\", \"horse\", \"dog\", \"horse\", \"dog\", \"dog\", \"bird\", \"cat\", \"cat\", \"horse\", \"bird\", \"horse\", \"bird\", \"horse\", \"dog\", \"bird\", \"horse\", \"dog\", \"horse\", \"cat\", \"horse\", \"bird\", \"dog\", \"bird\", \"bird\", \"bird\", \"bird\", \"dog\", \"cat\", \"horse\", \"bird\", \"dog\", \"bird\", \"cat\", \"dog\", \"bird\", \"cat\", \"horse\", \"dog\", \"horse\", \"dog\", \"dog\", \"dog\", \"dog\", \"bird\", \"horse\", \"bird\", \"bird\", \"dog\", \"horse\", \"horse\", \"cat\", \"horse\", \"cat\", \"bird\", \"horse\", \"cat\", \"horse\", \"cat\", \"horse\", \"horse\", \"bird\", \"horse\", \"bird\", \"bird\", \"cat\", \"horse\", \"dog\", \"dog\", \"horse\", \"dog\", \"bird\", \"dog\", \"dog\", \"bird\", \"horse\", \"horse\", \"dog\", \"horse\", \"horse\", \"bird\", \"dog\", \"cat\", \"bird\", \"cat\", \"horse\", \"bird\", \"bird\", \"bird\", \"horse\", \"horse\", \"bird\", \"dog\", \"dog\", \"horse\", \"horse\", \"bird\", \"bird\", \"dog\", \"cat\", \"horse\", \"cat\", \"bird\", \"cat\", \"bird\", \"bird\", \"horse\", \"bird\", \"dog\", \"bird\", \"dog\", \"bird\", \"bird\", \"dog\", \"dog\", \"cat\", \"dog\", \"cat\", \"horse\", \"bird\", \"cat\", \"cat\", \"cat\", \"bird\", \"dog\", \"bird\", \"bird\", \"dog\", \"cat\", \"dog\", \"horse\", \"cat\", \"cat\", \"dog\", \"dog\", \"cat\", \"dog\", \"cat\", \"dog\", \"horse\", \"horse\", \"bird\", \"horse\", \"cat\", \"dog\", \"cat\", \"bird\", \"horse\", \"bird\", \"bird\", \"dog\", \"horse\", \"bird\", \"horse\", \"horse\", \"dog\", \"horse\", \"cat\", \"dog\", \"bird\", \"bird\", \"dog\", \"horse\", \"horse\", \"cat\", \"dog\", \"bird\", \"cat\", \"horse\", \"cat\", \"horse\", \"bird\", \"cat\", \"bird\", \"dog\", \"cat\", \"dog\", \"bird\", \"dog\", \"dog\", \"dog\", \"horse\", \"horse\", \"horse\", \"horse\", \"horse\", \"bird\"], \"marker\": {\"color\": [\"red\", \"green\", \"blue\", \"orange\", \"green\", \"orange\", \"orange\", \"green\", \"green\", \"green\", \"green\", \"green\", \"red\", \"green\", \"red\", \"blue\", \"orange\", \"blue\", \"orange\", \"blue\", \"blue\", \"red\", \"green\", \"red\", \"red\", \"orange\", \"orange\", \"green\", \"red\", \"blue\", \"orange\", \"green\", \"red\", \"green\", \"orange\", \"red\", \"orange\", \"blue\", \"blue\", \"red\", \"orange\", \"orange\", \"orange\", \"blue\", \"orange\", \"orange\", \"orange\", \"orange\", \"red\", \"blue\", \"green\", \"green\", \"orange\", \"orange\", \"red\", \"blue\", \"orange\", \"orange\", \"green\", \"orange\", \"green\", \"green\", \"red\", \"orange\", \"green\", \"red\", \"orange\", \"green\", \"green\", \"green\", \"red\", \"green\", \"blue\", \"orange\", \"green\", \"green\", \"orange\", \"red\", \"blue\", \"green\", \"green\", \"blue\", \"orange\", \"orange\", \"green\", \"orange\", \"orange\", \"blue\", \"green\", \"green\", \"blue\", \"red\", \"blue\", \"orange\", \"blue\", \"blue\", \"red\", \"green\", \"red\", \"blue\", \"blue\", \"orange\", \"orange\", \"green\", \"red\", \"green\", \"orange\", \"red\", \"red\", \"red\", \"orange\", \"green\", \"blue\", \"red\", \"red\", \"red\", \"orange\", \"green\", \"red\", \"green\", \"blue\", \"blue\", \"blue\", \"green\", \"green\", \"green\", \"orange\", \"orange\", \"red\", \"blue\", \"blue\", \"red\", \"blue\", \"orange\", \"blue\", \"red\", \"blue\", \"red\", \"red\", \"green\", \"blue\", \"red\", \"red\", \"blue\", \"blue\", \"orange\", \"orange\", \"red\", \"blue\", \"red\", \"blue\", \"green\", \"red\", \"green\", \"green\", \"green\", \"orange\", \"orange\", \"blue\", \"green\", \"red\", \"orange\", \"red\", \"red\", \"green\", \"red\", \"red\", \"blue\", \"blue\", \"green\", \"green\", \"red\", \"orange\", \"blue\", \"orange\", \"green\", \"orange\", \"red\", \"green\", \"blue\", \"blue\", \"green\", \"blue\", \"red\", \"green\", \"blue\", \"green\", \"red\", \"red\", \"red\", \"blue\", \"green\", \"red\", \"green\", \"green\", \"blue\", \"red\", \"red\", \"blue\", \"orange\", \"blue\", \"green\", \"orange\", \"orange\", \"orange\", \"green\", \"red\", \"red\", \"blue\", \"blue\", \"red\", \"green\", \"orange\", \"orange\", \"orange\", \"red\", \"blue\", \"orange\", \"red\", \"orange\", \"orange\", \"green\", \"blue\", \"blue\", \"blue\", \"red\", \"red\", \"blue\", \"blue\", \"orange\", \"blue\", \"blue\", \"green\", \"green\", \"orange\", \"blue\", \"orange\", \"orange\", \"orange\", \"orange\", \"green\", \"orange\", \"green\", \"red\", \"red\", \"blue\", \"red\", \"green\", \"orange\", \"blue\", \"green\", \"green\", \"orange\", \"orange\", \"green\", \"red\", \"green\", \"red\", \"orange\", \"orange\", \"blue\", \"green\", \"blue\", \"orange\", \"orange\", \"blue\", \"orange\", \"blue\", \"green\", \"orange\", \"red\", \"orange\", \"blue\", \"orange\", \"green\", \"green\", \"orange\", \"orange\", \"blue\", \"green\", \"red\", \"green\", \"red\", \"blue\", \"blue\", \"green\", \"red\", \"blue\", \"red\", \"orange\", \"green\", \"orange\", \"red\", \"green\", \"red\", \"green\", \"red\", \"blue\", \"orange\", \"red\", \"orange\", \"blue\", \"red\", \"orange\", \"blue\", \"orange\", \"green\", \"orange\", \"green\", \"orange\", \"orange\", \"green\", \"green\", \"red\", \"orange\", \"red\", \"orange\", \"orange\", \"blue\", \"green\", \"blue\", \"green\", \"green\", \"orange\", \"red\", \"red\", \"blue\", \"orange\", \"blue\", \"orange\", \"blue\", \"green\", \"orange\", \"blue\", \"green\", \"blue\", \"red\", \"blue\", \"orange\", \"green\", \"orange\", \"orange\", \"orange\", \"orange\", \"green\", \"red\", \"blue\", \"orange\", \"green\", \"orange\", \"red\", \"green\", \"orange\", \"red\", \"blue\", \"green\", \"blue\", \"green\", \"green\", \"green\", \"green\", \"orange\", \"blue\", \"orange\", \"orange\", \"green\", \"blue\", \"blue\", \"red\", \"blue\", \"red\", \"orange\", \"blue\", \"red\", \"blue\", \"red\", \"blue\", \"blue\", \"orange\", \"blue\", \"orange\", \"orange\", \"red\", \"blue\", \"green\", \"green\", \"blue\", \"green\", \"orange\", \"green\", \"green\", \"orange\", \"blue\", \"blue\", \"green\", \"blue\", \"blue\", \"orange\", \"green\", \"red\", \"orange\", \"red\", \"blue\", \"orange\", \"orange\", \"orange\", \"blue\", \"blue\", \"orange\", \"green\", \"green\", \"blue\", \"blue\", \"orange\", \"orange\", \"green\", \"red\", \"blue\", \"red\", \"orange\", \"red\", \"orange\", \"orange\", \"blue\", \"orange\", \"green\", \"orange\", \"green\", \"orange\", \"orange\", \"green\", \"green\", \"red\", \"green\", \"red\", \"blue\", \"orange\", \"red\", \"red\", \"red\", \"orange\", \"green\", \"orange\", \"orange\", \"green\", \"red\", \"green\", \"blue\", \"red\", \"red\", \"green\", \"green\", \"red\", \"green\", \"red\", \"green\", \"blue\", \"blue\", \"orange\", \"blue\", \"red\", \"green\", \"red\", \"orange\", \"blue\", \"orange\", \"orange\", \"green\", \"blue\", \"orange\", \"blue\", \"blue\", \"green\", \"blue\", \"red\", \"green\", \"orange\", \"orange\", \"green\", \"blue\", \"blue\", \"red\", \"green\", \"orange\", \"red\", \"blue\", \"red\", \"blue\", \"orange\", \"red\", \"orange\", \"green\", \"red\", \"green\", \"orange\", \"green\", \"green\", \"green\", \"blue\", \"blue\", \"blue\", \"blue\", \"blue\", \"orange\"], \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"type\": \"scatter3d\", \"x\": [-0.07420632988214493, 0.006509955506771803, -0.6704811453819275, 0.7381775379180908, 0.042146384716033936, 0.21331313252449036, 0.29763567447662354, 0.17493827641010284, 0.004203004762530327, 0.07431516796350479, -0.03211294487118721, 0.05128350108861923, -0.15328174829483032, 0.20654921233654022, 0.10043895244598389, -0.5690457224845886, 0.5915442109107971, -0.3825376629829407, 0.1572466641664505, -0.34401196241378784, -0.17106755077838898, -0.30672869086265564, -0.03925025090575218, -0.047292448580265045, -0.2006893903017044, 0.398247092962265, 0.5134046673774719, -0.0880502313375473, 0.05690348520874977, -0.5043944716453552, 0.31946349143981934, -0.006906266789883375, 0.12251469492912292, -0.13114039599895477, 0.26817068457603455, 0.2062823325395584, 0.5629527568817139, -0.49142900109291077, -0.14102686941623688, -0.03864157572388649, 0.6051999926567078, 0.6444774270057678, 0.4383828043937683, -0.17631664872169495, 0.33972129225730896, 0.4839305281639099, 0.5659877061843872, 0.24973472952842712, 0.03513513132929802, -0.43336981534957886, 0.18691295385360718, -0.011911201290786266, 0.04794555902481079, 0.5246795415878296, -0.22931507229804993, -0.05458558350801468, 0.2456980049610138, 0.4444868266582489, -0.22055551409721375, 0.633938193321228, 0.2295224517583847, -0.0006358609534800053, 0.03185977041721344, 0.4446696937084198, -0.0825473815202713, 0.010959078557789326, 0.3742891848087311, 0.1528644561767578, 0.16112099587917328, -0.0423835925757885, -0.15232689678668976, -0.072956383228302, -0.37865036725997925, 0.5383315682411194, -0.09935549646615982, 0.2264949530363083, 0.22610533237457275, -0.11305247247219086, -0.6265571117401123, -0.06580426543951035, -0.07836412638425827, 0.013282852247357368, 0.37315964698791504, 0.4258424639701843, -0.03767099604010582, 0.3074113726615906, 0.3542735278606415, -0.5073401927947998, -0.217767596244812, 0.020055333152413368, -0.0927601307630539, -0.05252838134765625, -0.3537921607494354, 0.28565889596939087, -0.4733109474182129, -0.314004510641098, -0.18320605158805847, 0.07091885060071945, -0.17441605031490326, -0.5635001063346863, -0.38961657881736755, 0.5594233274459839, 0.42395147681236267, 0.029130084440112114, 0.06799101084470749, 0.005773681215941906, 0.48422911763191223, -0.2265746146440506, -0.19288842380046844, 0.02680077776312828, 0.5668119192123413, 0.004729415290057659, -0.41011446714401245, -0.25961893796920776, -0.28026312589645386, 0.08196544647216797, 0.5339462161064148, -0.0029611072968691587, -0.0710398405790329, 0.022273842245340347, -0.469078004360199, -0.5238227248191833, -0.5706774592399597, 0.04678412526845932, 0.10055309534072876, -0.06572484225034714, 0.4939206540584564, 0.6156963109970093, -0.2623480558395386, -0.14267714321613312, -0.45537862181663513, -0.17330023646354675, -0.24223418533802032, 0.5602381229400635, -0.09333988279104233, -0.06516306102275848, -0.5986573696136475, -0.13164165616035461, 0.02736581861972809, -0.00462667690590024, -0.5266154408454895, -0.02939235046505928, -0.02060735411942005, -0.35453325510025024, -0.5343345999717712, 0.4051695168018341, 0.43047231435775757, -0.08247502148151398, -0.29503607749938965, -0.25279444456100464, -0.3262315094470978, 0.2851213216781616, -0.06268038600683212, 0.03588508442044258, -0.006772718857973814, -0.07499044388532639, 0.4004937410354614, 0.5451138615608215, -0.019958535209298134, 0.2503775954246521, 0.14230689406394958, 0.28997549414634705, -0.23303836584091187, -0.08073542267084122, 0.05518889054656029, -0.09454892575740814, -0.15591943264007568, -0.503165066242218, -0.48438018560409546, 0.1286606788635254, -0.26942628622055054, -0.27081599831581116, 0.3711702227592468, -0.10766042023897171, 0.08727467805147171, -0.11821115761995316, 0.3997397720813751, -0.06077636405825615, -0.05970653519034386, -0.35659730434417725, -0.43300408124923706, 0.11162354052066803, -0.42701008915901184, -0.22748145461082458, 0.12274479866027832, -0.5033082962036133, -0.04639365151524544, -0.14070647954940796, -0.252702534198761, 0.2694760859012604, -0.30651625990867615, -0.07459253072738647, 0.14150692522525787, 0.06969080865383148, -0.005224196240305901, -0.23044851422309875, -0.10794759541749954, -0.22536367177963257, -0.17997843027114868, 0.3551044762134552, -0.2952355146408081, -0.017920855432748795, 0.4166836738586426, 0.46897774934768677, 0.25260481238365173, 0.08988889306783676, 0.06217767298221588, -0.2340339571237564, -0.0039476859383285046, -0.31692203879356384, -0.1662871539592743, 0.029981089755892754, 0.5415181517601013, 0.0984533429145813, 0.6240007281303406, -0.1901453733444214, -0.2651790678501129, 0.5623188018798828, 0.040820617228746414, 0.1517769694328308, 0.26520097255706787, 0.01173095777630806, -0.45852625370025635, -0.03421740606427193, -0.4612128436565399, -0.15116235613822937, 0.056904137134552, -0.5671568512916565, -0.3803199827671051, 0.4011830687522888, -0.5923235416412354, -0.3311082720756531, -0.1921008974313736, 0.0009774731006473303, 0.574015736579895, -0.42371511459350586, 0.22206133604049683, 0.6124321818351746, 0.32384511828422546, 0.5635849237442017, -0.008530291728675365, 0.3925950527191162, 0.08034976571798325, 0.12792645394802094, 0.12341098487377167, -0.17496788501739502, 0.2178918868303299, 0.0038633348885923624, 0.3821488320827484, -0.6067218780517578, -0.22265009582042694, -0.15717864036560059, 0.540250301361084, 0.38953447341918945, 0.027835287153720856, 0.10768474638462067, -0.1897737830877304, -0.04580887034535408, 0.5012131929397583, 0.4215877652168274, -0.31554079055786133, -0.013282882049679756, -0.5894734263420105, 0.14340534806251526, 0.6525233387947083, -0.34889474511146545, 0.3536393344402313, -0.22540512681007385, 0.1357918232679367, 0.34812986850738525, -0.01663866639137268, 0.3389953076839447, -0.30775347352027893, 0.3085510730743408, -0.08608531206846237, -0.030299756675958633, 0.38368868827819824, 0.03750590980052948, -0.4042229652404785, 0.05607939511537552, -0.20098355412483215, -0.03803124651312828, 0.15023331344127655, -0.614770770072937, -0.5233423709869385, -0.0062746210023760796, 0.006353480275720358, -0.38800346851348877, -0.06011194735765457, 0.31949934363365173, 0.0338151715695858, 0.0453924722969532, -0.036950431764125824, 0.15057428181171417, 0.16834576427936554, 0.08916160464286804, 0.1748800426721573, 0.022366881370544434, 0.33108845353126526, 0.10834333300590515, 0.04427369683980942, -0.48441195487976074, -0.18744231760501862, 0.3699928820133209, -0.33657294511795044, 0.6582604050636292, -0.03490130975842476, 0.5130856037139893, -0.26563358306884766, 0.32625627517700195, 0.5913402438163757, 0.22183796763420105, 0.007251594215631485, -0.07728946954011917, 0.674470067024231, 0.1871459037065506, 0.6041213274002075, 0.5825968980789185, -0.4819158613681793, -0.10899627953767776, -0.24047714471817017, 0.1999470293521881, -0.02406267262995243, 0.2127947360277176, -0.23425331711769104, -0.05366624891757965, -0.07323906570672989, 0.27247878909111023, -0.42513975501060486, 0.4896434247493744, -0.20248474180698395, -0.07844941318035126, 0.6300073862075806, -0.18984076380729675, -0.2339993715286255, -0.6292527914047241, 0.11656137555837631, -0.2240467220544815, 0.2772054672241211, -0.10624867677688599, 0.3155670762062073, 0.34723100066185, 0.22691844403743744, 0.2388705611228943, 0.004193291068077087, 0.12161232531070709, -0.28531476855278015, 0.7185964584350586, -0.10889128595590591, 0.6358615159988403, -0.12417218834161758, -0.2000262290239334, 0.43349042534828186, -0.078643798828125, -0.28793683648109436, -0.129533588886261, -0.14868199825286865, 0.20932212471961975, -0.03285890445113182, 0.20985043048858643, -0.024774758145213127, 0.3858279287815094, -0.255478173494339, 0.6654706001281738, 0.0635339692234993, -0.11533846706151962, -0.3124745786190033, -0.17022927105426788, -0.18730933964252472, -0.4167705476284027, -0.036993008106946945, 0.3749529719352722, -0.26272180676460266, -0.1942991465330124, -0.20305275917053223, 0.0006712964386679232, -0.3655973970890045, -0.5235152840614319, 0.2770300507545471, -0.20588348805904388, 0.4650338888168335, 0.4829849898815155, -0.23179581761360168, -0.053964752703905106, -0.2050897777080536, -0.03282429277896881, -0.18063688278198242, 0.01660389080643654, 0.6683686375617981, -0.008067520335316658, -0.24894364178180695, 0.10895996540784836, -0.3105628788471222, -0.0004233980143908411, 0.2554202973842621, -0.34323152899742126, -0.5706469416618347, 0.4584604501724243, -0.022718828171491623, 0.048318296670913696, 0.11133415997028351, 0.07411772757768631, 0.005563862156122923, 0.1995067447423935, 0.3257003724575043, 0.36961430311203003, -0.4980989694595337, -0.47565335035324097, 0.09282555431127548, -0.04324236139655113, 0.2855096757411957, -0.3569459617137909, -0.13085873425006866, 0.3677869439125061, 0.5665149688720703, 0.03232559934258461, 0.03805740550160408, -0.4447275698184967, -0.23271812498569489, 0.5219234824180603, 0.29448994994163513, 0.28671786189079285, 0.06980685889720917, -0.3151465058326721, 0.07358278334140778, 0.0295425895601511, 0.2249736487865448, 0.2111065536737442, 0.2852068841457367, 0.3384603261947632, -0.03950994089245796, -0.025258058682084084, 0.26879164576530457, -0.05587856471538544, -0.011667515151202679, -0.41655588150024414, 0.42024892568588257, -0.2886247932910919, -0.07876504212617874, -0.08935246616601944, 0.02915409579873085, 0.06773686408996582, 0.4558427333831787, 0.10971610248088837, 0.10884981602430344, -0.025277111679315567, -0.1559944897890091, -0.12535254657268524, 0.01611277274787426, -0.016951600089669228, 0.03674938902258873, -0.17864082753658295, -0.20405340194702148, -0.16430369019508362, 0.2873935103416443, 8.128902845783159e-05, 0.004772691987454891, -0.056657224893569946, 0.3381984829902649, -0.5462256073951721, 0.054886773228645325, -0.09199059009552002, -0.19373394548892975, 0.1035139262676239, 0.012350164353847504, 0.4645344316959381, 0.4042460322380066, -0.22742381691932678, -0.6437737941741943, 0.6088348627090454, -0.3121660351753235, -0.16891643404960632, 0.053668782114982605, -0.22892454266548157, 0.20525284111499786, 0.17398616671562195, 0.1701650321483612, 0.6533377170562744, 0.25906747579574585, -0.34248170256614685, -0.12630482017993927, -0.08885005861520767, -0.035158608108758926, 0.41127732396125793, -0.09715442359447479, -0.5557915568351746, -0.1947425752878189, -0.4684380888938904, 0.29863759875297546, -0.1172221451997757, 0.4030650556087494, 0.22948835790157318, -0.04125206544995308, -0.003859457327052951, 0.05776496231555939, 0.00422906456515193, 0.009886992163956165, 0.06630130857229233, -0.5464577078819275, -0.10481486469507217, -0.5000631213188171, -0.5141431093215942, -0.2662823796272278, 0.4739391505718231], \"y\": [0.06159967929124832, -0.8348538875579834, 0.398104190826416, 0.37514999508857727, -0.5876977443695068, 0.1742570698261261, 0.05473173037171364, -0.5189575552940369, -0.41503268480300903, -0.4302016496658325, -0.39936941862106323, -0.7096505761146545, 0.061099763959646225, -0.269464910030365, -0.018113132566213608, 0.3030382990837097, 0.29207825660705566, 0.12460751086473465, 0.2767345905303955, 0.2022189050912857, 0.07543758302927017, 0.13500596582889557, -0.666159987449646, 0.17263327538967133, 0.04012685641646385, -0.10000348836183548, 0.17959944903850555, -0.28488752245903015, 0.00281589780934155, 0.24192404747009277, 0.13057459890842438, -0.6721056699752808, -0.014500644989311695, -0.3911097049713135, 0.13709749281406403, 0.14529608190059662, 0.3497619032859802, 0.31467700004577637, 0.246932253241539, 0.030133817344903946, 0.32868263125419617, 0.33823326230049133, 0.25268200039863586, 0.29634666442871094, 0.24196180701255798, 0.2664187550544739, 0.2442283183336258, 0.22311466932296753, 0.042568985372781754, 0.24767842888832092, -0.44238588213920593, -0.7050559520721436, 0.14880353212356567, 0.35528987646102905, 0.169815331697464, 0.09894563257694244, -0.0800955668091774, 0.2317391037940979, -0.4072790741920471, 0.2856374979019165, -0.2655443549156189, -0.3583981692790985, 0.13333627581596375, 0.11347309499979019, -0.6018269062042236, -0.13107769191265106, -0.11379659920930862, -0.3714299201965332, -0.15727823972702026, -0.16255809366703033, 0.1302180141210556, -0.05190294235944748, 0.31236109137535095, 0.23738743364810944, -0.30230119824409485, -0.2458413541316986, -0.07557883858680725, -0.1417282670736313, 0.3768277168273926, -0.2528393566608429, -0.26002341508865356, 0.33932873606681824, 0.23078553378582, 0.25020158290863037, -0.48503443598747253, 0.028204262256622314, -0.04254238307476044, 0.16020703315734863, -0.20639091730117798, -0.13366307318210602, -0.001078098313882947, 0.2528461813926697, 0.25437596440315247, 0.27883535623550415, 0.36729925870895386, 0.17126747965812683, 0.09083446860313416, -0.6502407193183899, -0.05746173486113548, 0.2673497796058655, 0.31216827034950256, 0.1723504513502121, 0.35610663890838623, -0.3430120646953583, -0.11726009845733643, -0.7264342308044434, 0.0874943733215332, -0.02081139199435711, 0.19235283136367798, -0.026265719905495644, 0.2947554290294647, -0.43035978078842163, 0.21327713131904602, 0.16863694787025452, 0.17551784217357635, -0.03594950959086418, 0.27934756875038147, -0.2918888032436371, 0.023709556087851524, -0.7281184196472168, 0.28004372119903564, 0.3209517300128937, 0.2741798460483551, -0.4920262098312378, -0.3643752336502075, -0.46311646699905396, 0.30392810702323914, 0.33177223801612854, -0.028676161542534828, 0.02972341701388359, 0.22831469774246216, 0.1431562453508377, 0.30745482444763184, 0.3450506925582886, 0.25626081228256226, 0.05940992385149002, 0.336445689201355, 0.012572433799505234, -0.09895042330026627, -0.36280760169029236, 0.36694014072418213, 0.08099271357059479, -0.048130955547094345, -0.0384555347263813, 0.18655654788017273, 0.10970885306596756, 0.30148282647132874, 0.007245996966958046, 0.0077215093187987804, 0.16991348564624786, 0.18287917971611023, -0.24722212553024292, 0.04661746323108673, -0.4002130925655365, -0.4936807453632355, -0.43594640493392944, -0.06459750235080719, 0.2569553852081299, 0.20685642957687378, -0.3323855400085449, 0.22572468221187592, 0.021198181435465813, 0.12085399776697159, 0.07926381379365921, -0.6349989771842957, 0.0458526536822319, 0.0331767275929451, 0.3054559826850891, 0.30415278673171997, -0.3858945071697235, -0.2544470727443695, 0.23688451945781708, 0.14512471854686737, 0.37862223386764526, 0.1830092817544937, -0.12637658417224884, -0.08832263946533203, 0.04987140744924545, -0.6063597798347473, 0.23010842502117157, 0.2504139840602875, -0.4224075973033905, 0.15809401869773865, 0.07611580938100815, -0.3341640830039978, 0.2133180797100067, -0.6216201782226562, 0.16608306765556335, 0.07979107648134232, 0.19900371134281158, -0.12515434622764587, -0.6009607315063477, -0.13294775784015656, -0.3219683766365051, -0.779589831829071, 0.3627634644508362, 0.17858797311782837, 0.09660102427005768, 0.15378230810165405, -0.20335964858531952, 0.27751240134239197, -0.5716378688812256, -0.034099359065294266, 0.20213021337985992, 0.22718080878257751, -0.579334557056427, 0.06650588661432266, 0.137165829539299, 0.33992114663124084, 0.19075022637844086, -0.09346409142017365, -0.09388387948274612, 0.35176077485084534, -0.01161170657724142, 0.29823005199432373, 0.06717488169670105, 0.32239070534706116, 0.32867053151130676, -0.01770787686109543, 0.06314163655042648, 0.06817982345819473, -0.8050524592399597, 0.26607489585876465, 0.3510145843029022, 0.3141445219516754, 0.0011449455050751567, 0.032688286155462265, 0.31662750244140625, 0.18014363944530487, -0.1601676493883133, 0.3317854106426239, 0.2313433438539505, -0.32687124609947205, -0.28060242533683777, 0.22213494777679443, 0.2819505035877228, 0.047905951738357544, 0.3467022180557251, -0.0055020153522491455, 0.34759530425071716, -0.6681441068649292, 0.17443743348121643, -0.10225751996040344, 0.06739962100982666, 0.017070267349481583, 0.2914145290851593, 0.1661064624786377, -0.6838141679763794, -0.004594934638589621, 0.3737182915210724, -0.21443040668964386, -0.27577435970306396, 0.32214462757110596, -0.032412320375442505, -0.22435516119003296, 0.035396989434957504, -0.18223826587200165, -0.11737209558486938, 0.1487516462802887, 0.11982456594705582, 0.3600744605064392, -0.5193126797676086, 0.2926938235759735, 0.346801221370697, 0.2854471206665039, 0.16922417283058167, 0.20136642456054688, 0.3148287236690521, -0.285197377204895, 0.22407102584838867, -0.1760600209236145, 0.1880485564470291, -0.09251485019922256, 0.21251936256885529, -0.6102719306945801, -0.5411327481269836, -0.004325388930737972, 0.0013641549739986658, 0.10423480719327927, -0.6741207242012024, 0.13250549137592316, -0.42399972677230835, 0.045101143419742584, 0.34445297718048096, 0.38338980078697205, -0.6295826435089111, 0.07020198553800583, -0.024737725034356117, 0.04073406010866165, 0.11625292152166367, -0.034278545528650284, 0.3111478090286255, 0.06363018602132797, -0.1951225847005844, 0.1300463229417801, -0.2889974117279053, 0.1743788719177246, 0.3644823729991913, -0.16070161759853363, -0.11989638209342957, 0.26075300574302673, 0.10627319663763046, 0.22811052203178406, 0.3456152677536011, 0.18848566710948944, 0.3186488747596741, -0.7081639170646667, 0.15007717907428741, -0.30527257919311523, 0.22076915204524994, 0.27816733717918396, -0.41916874051094055, -0.7769116163253784, -0.06263303011655807, 0.3480871915817261, 0.031134558841586113, 0.2998200058937073, 0.23910735547542572, 0.25913888216018677, -0.2609647214412689, -0.1320531815290451, -0.3599148392677307, -0.2832678556442261, -0.037446457892656326, -0.03555344417691231, -0.13105158507823944, 0.12038499116897583, -0.10019370168447495, 0.08417992293834686, 0.31469911336898804, 0.2834165394306183, -0.4889160096645355, 0.31088176369667053, 0.07624213397502899, -0.2678525745868683, 0.38216954469680786, 0.13999496400356293, 0.08439706265926361, 0.06125931814312935, -0.1943032443523407, -0.10942064225673676, -0.16219232976436615, 0.21736668050289154, 0.24355995655059814, -0.6415583491325378, 0.0022114627063274384, -0.11778756976127625, 0.3636493384838104, -0.3808813691139221, 0.3095073699951172, 0.12719149887561798, -0.3747712969779968, 0.2474827915430069, 0.22078350186347961, 0.2148289531469345, -0.4729437530040741, 0.26574185490608215, -0.2501755952835083, -0.38350218534469604, -0.1641947329044342, -0.6938243508338928, -0.025578537955880165, -0.06709257513284683, 0.34860751032829285, -0.020506126806139946, -0.5490779280662537, 0.15849341452121735, 0.327252596616745, 0.11002375930547714, -0.01844298653304577, -0.17097602784633636, 0.26135385036468506, 0.2255730926990509, 0.05465176701545715, 0.37372884154319763, 0.27042534947395325, 0.17349882423877716, 0.36035680770874023, 0.1430027186870575, -0.09085765480995178, 0.2104174792766571, 0.17769679427146912, 0.15209808945655823, 0.37725624442100525, -0.3420337438583374, -0.49907028675079346, 0.3473556935787201, -0.6790217161178589, 0.33341333270072937, -0.7210715413093567, -0.25251489877700806, 0.03325929120182991, -0.03201344609260559, 0.17091916501522064, -0.16441617906093597, 0.3739924132823944, 0.2507404386997223, 0.01224520243704319, -0.4537596106529236, -0.05080518499016762, 0.3384995758533478, -0.0255475714802742, 0.25315922498703003, 0.26014444231987, 0.2684893310070038, -0.1510862410068512, 0.3852149546146393, 0.2628931701183319, 0.26269498467445374, -0.31708386540412903, -0.3290443420410156, 0.020103732123970985, 0.23906314373016357, -0.13012905418872833, 0.310688316822052, -0.4802730083465576, -0.18742650747299194, 0.008107277564704418, 0.12854428589344025, 0.2693420648574829, 0.13674604892730713, -0.04936037212610245, 0.10400775074958801, 0.0496792234480381, 0.010243687778711319, -0.7296827435493469, -0.13175395131111145, -0.4405541718006134, -0.05761749669909477, -0.10559390485286713, -0.32270315289497375, -0.10991379618644714, 0.11115806549787521, -0.35569822788238525, 0.25368595123291016, 0.2385023832321167, 0.24832190573215485, 0.1437852680683136, 0.030688215047121048, 0.1161598414182663, 0.33485186100006104, -0.6000708937644958, 0.0714617520570755, 0.06511009484529495, -0.6058335304260254, -0.07162285596132278, -0.22989006340503693, 0.3302763104438782, 0.06910542398691177, -0.2239352911710739, -0.2694971561431885, -0.2859064042568207, -0.15102654695510864, -0.35135576128959656, 0.20074206590652466, -0.45972466468811035, 0.3228785991668701, 0.1780545562505722, 0.04665213078260422, 0.1970212757587433, 0.20162397623062134, -0.5888093113899231, 0.12659618258476257, 0.2714616060256958, 0.15885138511657715, 0.23565064370632172, 0.292918860912323, -0.2089410126209259, 0.3770044445991516, 0.2220785915851593, -0.05227988585829735, 0.21207404136657715, -0.24178053438663483, 0.28130948543548584, 0.181034654378891, -0.17243361473083496, 0.2516670525074005, 0.31499671936035156, -0.35948988795280457, 0.2876010537147522, 0.005226713605225086, 0.003536505624651909, -0.6073679327964783, 0.10297541320323944, -0.1794442981481552, 0.33762702345848083, -0.0874200090765953, 0.28544387221336365, 0.23067429661750793, 0.15561583638191223, 0.19320406019687653, -0.2627716362476349, -0.1522713154554367, -0.09373638778924942, -0.02554144151508808, -0.5085963010787964, -0.646285891532898, -0.5562210083007812, 0.372765451669693, 0.3152225911617279, 0.2876264154911041, 0.3694412112236023, -0.061224374920129776, -0.04024696350097656], \"z\": [0.8606386780738831, -0.230166494846344, -0.3767865002155304, -0.2536856532096863, -0.07359957695007324, -0.0879218578338623, -0.14005933701992035, -0.21581335365772247, 0.05566738173365593, 0.030132735148072243, 0.28130537271499634, -0.21265798807144165, 0.540155291557312, -0.0041776555590331554, 0.43023359775543213, -0.347976416349411, -0.1432982236146927, -0.17316922545433044, -0.01713782735168934, -0.30254894495010376, -0.28935837745666504, 0.2668299078941345, -0.21921057999134064, 0.3511531352996826, 0.33802297711372375, -0.23356680572032928, -0.08130185306072235, 0.004606661852449179, 0.5504592657089233, -0.30594688653945923, 0.22385571897029877, -0.05977705493569374, 0.415451318025589, -0.004938836209475994, -0.09774989634752274, 0.2278151959180832, -0.25655514001846313, -0.1168050467967987, 0.04466262832283974, 0.620585560798645, -0.23416994512081146, -0.1447180062532425, 0.02684726193547249, -0.31616514921188354, -0.24694006145000458, -0.12308021634817123, -0.14187799394130707, -0.03459153696894646, 0.5701647400856018, 0.029858972877264023, -0.20173148810863495, -0.12491466850042343, -0.14530149102210999, -0.26443010568618774, 0.22104357182979584, -0.16103793680667877, 0.09516314417123795, -0.13333047926425934, -0.27525830268859863, -0.2227494865655899, -0.22716861963272095, 0.1634993851184845, 0.43239790201187134, -0.2492154985666275, -0.21339616179466248, 0.4728440046310425, -0.12980134785175323, -0.2224305421113968, 0.05639844760298729, -0.02867334522306919, 0.4554595649242401, -0.0013392146211117506, -0.2218049317598343, -0.22476767003536224, 0.1903715282678604, -0.23047487437725067, -0.10075252503156662, 0.31047511100769043, -0.32962551712989807, 0.08622612804174423, -0.16619187593460083, -0.2207343429327011, -0.07670849561691284, 0.10573752224445343, -0.001694602076895535, 0.046010710299015045, -0.06306817382574081, -0.30306488275527954, -0.2655291259288788, -0.009396005421876907, -0.2798997759819031, 0.14033262431621552, -0.23406340181827545, -0.050014328211545944, -0.3198424279689789, 0.1606711596250534, 0.41985130310058594, -0.19650259613990784, 0.33609047532081604, -0.3069479763507843, -0.2890496850013733, -0.23789839446544647, -0.23350587487220764, -0.172067791223526, 0.4081573784351349, -0.16131174564361572, -0.21410207450389862, 0.16248923540115356, 0.18434888124465942, 0.11804845184087753, -0.07545610517263412, -0.14761704206466675, -0.20326076447963715, 0.4407234489917755, 0.34711217880249023, 0.10173772275447845, -0.19384875893592834, 0.08061288297176361, 0.7471274137496948, -0.21149717271327972, -0.021857580170035362, -0.23468172550201416, -0.2945963144302368, 0.04410460963845253, -0.2163296788930893, 0.021396011114120483, -0.12835441529750824, -0.19452263414859772, 0.14596910774707794, -0.16207771003246307, -0.0907052755355835, 0.3546611964702606, -0.3049265742301941, -0.19273380935192108, -0.09524747729301453, 0.6916183233261108, -0.30431675910949707, 0.29692500829696655, 0.46108943223953247, -0.08124218136072159, -0.3266412615776062, 0.7295017242431641, 0.5830196738243103, -0.1698082983493805, -0.3364952504634857, -0.07231736928224564, -0.024836383759975433, 0.2655389904975891, -0.2428489625453949, 0.3876189589500427, 0.1409030556678772, -0.21847139298915863, 0.69478440284729, -0.06269963085651398, 0.11929843574762344, -0.24886663258075714, -0.22753533720970154, -0.05559132620692253, -0.19453223049640656, -0.21616117656230927, 0.17769698798656464, 0.054516684263944626, 0.46425095200538635, 0.6820244193077087, -0.228995218873024, 0.4951019585132599, 0.3312177360057831, -0.06362858414649963, -0.0882873386144638, -0.03691539913415909, -0.26315852999687195, 0.1983366757631302, -0.23720136284828186, -0.30704963207244873, 0.03325224295258522, -0.23546816408634186, -0.16389399766921997, 0.7867202758789062, -0.21164800226688385, -0.2766529619693756, -0.23162414133548737, -0.12645326554775238, -0.2989693284034729, 0.3677695393562317, -0.20478881895542145, -0.2086467146873474, -0.12403205037117004, 0.3765391409397125, 0.3539828360080719, 0.35465681552886963, -0.30189964175224304, -0.20550718903541565, 0.17511650919914246, -0.11006081849336624, -0.21835178136825562, -0.3011825978755951, 0.1048724353313446, 0.37911587953567505, -0.002347201807424426, -0.2197834849357605, -0.12295951694250107, -0.2026447057723999, -0.19974970817565918, -0.2233739197254181, 0.22657033801078796, -0.17237721383571625, 0.5700437426567078, 0.46425312757492065, -0.24161550402641296, 0.19684192538261414, 0.15262827277183533, -0.02331477589905262, -0.24721814692020416, -0.2020828127861023, -0.2324047088623047, 0.4557074010372162, -0.2240062952041626, -0.1239982396364212, 0.5464064478874207, 0.07375512272119522, 0.07796065509319305, -0.22425349056720734, -0.07718490064144135, -0.25690799951553345, -0.2302073836326599, 0.5037333965301514, 0.42389342188835144, -0.3214687407016754, 0.019820794463157654, -0.23039020597934723, -0.2695072293281555, 0.11523746699094772, -0.18460655212402344, 0.09907307475805283, -0.21487171947956085, -0.2525421679019928, 0.1586158275604248, -0.25598856806755066, -0.244830921292305, -0.23754192888736725, -0.19920134544372559, -0.24499131739139557, -0.021462418138980865, 0.2879883348941803, 0.2252986878156662, -0.2616271674633026, 0.2964848577976227, -0.1440858244895935, -0.15345965325832367, -0.3481191098690033, -0.10190854221582413, 0.07061230391263962, -0.18194030225276947, -0.19958080351352692, -0.24473313987255096, 0.36286166310310364, -0.2782273292541504, 0.5820885896682739, -0.1675550490617752, -0.14094430208206177, -0.25853103399276733, 0.12504392862319946, -0.3484923839569092, -0.2169170379638672, -0.24692563712596893, 0.15532369911670685, 0.21561630070209503, -0.09365147352218628, 0.023910444229841232, 0.25081416964530945, 0.32115504145622253, 0.2438930720090866, -0.2945860028266907, -0.10898397862911224, -0.21772855520248413, -0.13817225396633148, -0.2479873150587082, -0.19852112233638763, -0.3262461721897125, -0.18911035358905792, 0.2447236329317093, 0.21099111437797546, 0.38270485401153564, -0.34952181577682495, -0.3389267325401306, -0.21497829258441925, 0.3874725103378296, -0.2613756060600281, 0.27541226148605347, -0.2432282269001007, -0.1907787322998047, -0.10280176997184753, 0.7493927478790283, -0.2261364907026291, 0.267813116312027, -0.24057431519031525, 0.23618000745773315, -0.2824708819389343, -0.21866481006145477, 0.2437087744474411, 0.08163299411535263, -0.30064263939857483, 0.20530633628368378, -0.22883440554141998, -0.0193159356713295, -0.24190644919872284, -0.20501872897148132, -0.21519878506660461, -0.26249930262565613, -0.1880982220172882, -0.16128899157047272, -0.23117399215698242, -0.19549627602100372, 0.6418315768241882, -0.2278454750776291, 0.2314264178276062, -0.16245949268341064, -0.19273385405540466, -0.2065245658159256, -0.2685287594795227, -0.24008964002132416, -0.23874323070049286, -0.17345480620861053, -0.08353615552186966, 0.21728010475635529, 0.4670727849006653, -0.2982216477394104, -0.21658360958099365, -0.1888473629951477, -0.1784949004650116, -0.24795407056808472, -0.10143420845270157, -0.18005424737930298, 0.027097560465335846, -0.12354681640863419, -0.34879249334335327, 0.45413511991500854, -0.25637707114219666, -0.00959046557545662, 0.13560403883457184, -0.17725594341754913, -0.15106289088726044, 0.19204337894916534, 0.17322267591953278, -0.04248212277889252, 0.23844119906425476, -0.03446662798523903, -0.24579302966594696, -0.25970640778541565, -0.20878954231739044, 0.547958493232727, -0.27376043796539307, 0.09406223893165588, 0.1374795287847519, -0.0980851873755455, -0.16868604719638824, -0.2617969214916229, 0.006079930812120438, 0.30764076113700867, -0.16610442101955414, -0.2026015669107437, -0.09442061930894852, 0.047646816819906235, -0.1960158348083496, -0.27026739716529846, -0.2432965785264969, 0.02114633470773697, -0.28761354088783264, 0.5707623958587646, -0.2672678828239441, 0.19189490377902985, 0.04110013321042061, -0.19102858006954193, 0.22489197552204132, -0.31207650899887085, 0.08026079833507538, -0.16329656541347504, -0.2964347302913666, 0.23407185077667236, -0.26971912384033203, -0.2503410279750824, -0.17955324053764343, 0.4901939034461975, -0.316476970911026, -0.2639441192150116, 0.059025075286626816, -0.2536912262439728, -0.157118022441864, -0.20940420031547546, -0.19772876799106598, -0.20491336286067963, -0.27835553884506226, -0.14516407251358032, -0.10189780592918396, -0.16286404430866241, -0.32557931542396545, -0.3343043923377991, -0.23273606598377228, 0.1470911204814911, 0.4341557025909424, -0.1745322048664093, 0.4241681396961212, -0.21849051117897034, 0.09807363152503967, -0.2734927833080292, -0.23448757827281952, -0.35513049364089966, -0.11292548477649689, -0.21359877288341522, 0.09670472890138626, -0.21118561923503876, -0.23113621771335602, -0.297110378742218, -0.24234895408153534, -0.07958557456731796, 0.017629824578762054, 0.26873287558555603, -0.31497877836227417, 0.3147374987602234, -0.051749929785728455, 0.2599857449531555, 0.060904499143362045, -0.26054325699806213, -0.2784769535064697, -0.046515483409166336, -0.20453624427318573, -0.008153275586664677, -0.23485006392002106, 0.004317297134548426, -0.2418220043182373, -0.2548374831676483, -0.007833536714315414, 0.27633750438690186, -0.055829111486673355, 0.15581534802913666, -0.1171090230345726, 0.12155281007289886, 0.2570480704307556, 0.7807067036628723, 0.48775413632392883, -0.14422129094600677, -0.14314080774784088, -0.17831198871135712, -0.015576490201056004, -0.19251714646816254, 0.3766736090183258, -0.27172356843948364, -0.14100614190101624, 0.32566404342651367, 0.33835506439208984, 0.08693870157003403, -0.2556130886077881, 0.1406039297580719, -0.18472613394260406, 0.3218034505844116, 0.16460052132606506, -0.27623987197875977, -0.07619280368089676, -0.07584059983491898, -0.33100417256355286, 0.2780420482158661, -0.23162239789962769, 0.5337032675743103, -0.05317872762680054, -0.20736119151115417, -0.06292978674173355, -0.022746453061699867, -0.2818334996700287, -0.36351674795150757, -0.2174786925315857, -0.2621559500694275, -0.20028932392597198, -0.08205433189868927, -0.026845786720514297, 0.3929738700389862, -0.025342989712953568, 0.14866642653942108, -0.2385362833738327, -0.2374371439218521, -0.31663382053375244, -0.07076507806777954, 0.10046234726905823, -0.061928439885377884, -0.17006687819957733, 0.28549760580062866, -0.17325273156166077, 0.23167414963245392, -0.32043853402137756, 0.18325479328632355, 0.4113500118255615, 0.06649263203144073, -0.04668114334344864, 0.5127513408660889, -0.07748641818761826, -0.012690018862485886, -0.1548856645822525, -0.10925838351249695, -0.19314159452915192, -0.3570062816143036, -0.31300675868988037, -0.23004122078418732, -0.32399269938468933, -0.15742824971675873, -0.2345530390739441]}], {\"margin\": {\"b\": 10, \"l\": 10, \"r\": 20, \"t\": 0}, \"scene\": {\"annotations\": [{\"text\": \"cat\", \"x\": -0.07420632988214493, \"xanchor\": \"center\", \"y\": 0.06159967929124832, \"z\": 0.8606386780738831}, {\"text\": \"dog\", \"x\": 0.006509955506771803, \"xanchor\": \"center\", \"y\": -0.8348538875579834, \"z\": -0.230166494846344}, {\"text\": \"horse\", \"x\": -0.6704811453819275, \"xanchor\": \"center\", \"y\": 0.398104190826416, \"z\": -0.3767865002155304}, {\"text\": \"bird\", \"x\": 0.7381775379180908, \"xanchor\": \"center\", \"y\": 0.37514999508857727, \"z\": -0.2536856532096863}], \"camera\": {\"eye\": {\"x\": 1.5, \"y\": 1, \"z\": 0.7}}, \"xaxis\": {\"showticklabels\": false, \"title\": {\"text\": \"\"}}, \"yaxis\": {\"showticklabels\": false, \"title\": {\"text\": \"\"}}, \"zaxis\": {\"showticklabels\": false, \"title\": {\"text\": \"\"}}}, \"showlegend\": false, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"autotypenumbers\": \"strict\", \"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\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"width\": 700}, {\"responsive\": true} ).then(function(){\n", " \n", "var gd = document.getElementById('9bc514e2-bc0f-445c-b28b-505ff93bce15');\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", " }) }; }); </script> </div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot = TrianglePlot3D_Plotly(prob3, targ=targ4, labels=labels+['bird'], show_labels=True, show_axes=False, poles_included=True)\n", "plot.fig.update_layout(scene_camera=dict( eye=dict(x=1.5, y=1, z=0.7)))\n", "plot.do_plot()" ] }, { "cell_type": "markdown", "metadata": { "id": "pYWmcVAf9kR5", "slideshow": { "slide_type": "slide" } }, "source": [ "## Metric-Based Embedding Methods, OTOH...\n", "\n", "...map similar points near each other, dissimilar points far away. => Clusters:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import plotly.graph_objects as go\n", "def noop(x): return x \n", "\n", "def plot_clusters(dim=3, nclasses=4, nper=100, func=noop):\n", " np.random.seed(6)\n", " clusters = np.zeros((nclasses*nper,dim))\n", " colors = ['red','green','blue','orange']+['black']*max(nclasses-4,0)\n", " labels = ['cat','dog','horse','bird']+['aux']*max(nclasses-4,0)\n", " fig = go.Figure()\n", " for i in range(nclasses):\n", " mean, cov = 0.8*np.random.rand(dim), 0.002*np.eye(dim)\n", " cluster = func(np.random.multivariate_normal(mean, cov, nper))\n", " clusters[i*nper:(i+1)*nper] = cluster\n", " fig.add_trace( go.Scatter3d(x=cluster[:,0], y=cluster[:,1], z=cluster[:,2], hovertext=labels[i], name=labels[i], \\\n", " mode='markers', marker=dict(size=5, opacity=0.6, color=colors[i])))\n", " fig.update_layout(margin_t=0, scene_camera=dict( eye=dict(x=0.7, y=0.7, z=0.7)))\n", " fig.show(config = {'displayModeBar': False})\n", " return clusters" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 542 }, "hideCode": true, "id": "XF-LZfam9mqC", "outputId": "efbfbab7-e76c-441e-ac9c-5b4af15c4819", "scrolled": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "<div> <div id=\"6d60f180-d327-4c4e-9989-4a94683ecc22\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"6d60f180-d327-4c4e-9989-4a94683ecc22\")) { Plotly.newPlot( \"6d60f180-d327-4c4e-9989-4a94683ecc22\", [{\"hovertext\": \"cat\", \"marker\": {\"color\": \"red\", \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"name\": \"cat\", \"type\": \"scatter3d\", \"x\": [0.7482915615102456, 0.6746747070019294, 0.7201872768549762, 0.7591526496357901, 0.7535189398886567, 0.7597256160578725, 0.7095123286250208, 0.6730789541235892, 0.7265745795631976, 0.6799924550329411, 0.6849210874442919, 0.7256770915792679, 0.7060564213565845, 0.7479941214737715, 0.622181616269481, 0.7412140823810646, 0.754302677603946, 0.6622967265592661, 0.7470881576966703, 0.7329260897765175, 0.6656935705045339, 0.7363148108373473, 0.7152918034924107, 0.6580618349148728, 0.6714416548798973, 0.7436803927692045, 0.7503983902149054, 0.8105962116485496, 0.6858865962890452, 0.7341955370713651, 0.7368283194491488, 0.6894761968670838, 0.7451329737790828, 0.714115729877866, 0.6908893484246836, 0.728567342523654, 0.649451363066933, 0.7215590645141091, 0.7272934443836663, 0.6855630297560438, 0.6511741743190256, 0.6732134466046898, 0.6755441280755771, 0.6570204634629593, 0.6928050710565344, 0.7284146506447922, 0.7551851704621683, 0.7255707348143515, 0.70306492337393, 0.7877710003099017, 0.7749797658846194, 0.7936004036164718, 0.6661967716928947, 0.7587383060759254, 0.7448608179854301, 0.705230294980993, 0.6721533636651339, 0.6969090578371031, 0.6807075762501595, 0.7292436596866411, 0.6748987523896388, 0.7514359736550102, 0.772047773830493, 0.7262344743313732, 0.665000749342288, 0.7033186813091313, 0.7667085060198966, 0.6822705470809276, 0.7846044250160095, 0.7538168732060705, 0.745221989662027, 0.729719368201159, 0.6509467857279121, 0.6876235477628223, 0.755897584328995, 0.7572946531781527, 0.744109056226535, 0.7441676729460033, 0.7500532081133651, 0.6982222760438789, 0.6838296284089357, 0.7574434516515101, 0.6579581371390384, 0.6510654713926809, 0.7202179314263708, 0.7847409341528742, 0.6515151150853858, 0.691118062872989, 0.7421703742505916, 0.7611583358900509, 0.7148386747881007, 0.7115952992290691, 0.6876204630193311, 0.6535115675855725, 0.6593833005222807, 0.699491511663761, 0.7015496833227937, 0.6896834304088857, 0.7362382448387422, 0.7050534123409086], \"y\": [0.3739803273224387, 0.2197485547616953, 0.34273362734125146, 0.3098853853831539, 0.2939695272426624, 0.21842573455554354, 0.28817579083438216, 0.30867567508932525, 0.2716893551811726, 0.33183309177106757, 0.3356672764017176, 0.3303644280905651, 0.23176337237711403, 0.2268139879938842, 0.24955436453685834, 0.3069548243082553, 0.2775305477027043, 0.15506230406698068, 0.28992561617888757, 0.25166917677919254, 0.25247212283217135, 0.20876212003436234, 0.23193851321203793, 0.28040069210178176, 0.27534133983536, 0.24096073957070288, 0.24722222377121034, 0.3143818719507486, 0.2486154202226882, 0.23770576475522176, 0.32470309471652037, 0.28652436080236177, 0.30081042235213645, 0.36136135325917634, 0.3860445520827506, 0.22506608348910645, 0.24026707338002504, 0.2631055724341857, 0.2689693821962521, 0.2682251544398651, 0.294018389731629, 0.2934598992199728, 0.22516044387690742, 0.20757125967379295, 0.23343559528082966, 0.2659343787992572, 0.2640387602081748, 0.257761483385131, 0.2510447444510449, 0.254870880151256, 0.32510468503248574, 0.291691739109635, 0.28762533737192114, 0.2763952306820116, 0.26299225595322245, 0.20784367408163987, 0.23402624563923863, 0.2679427541126131, 0.284770976434294, 0.2755450647899675, 0.2230496482560903, 0.3139094977951401, 0.26672250595605695, 0.27007282819537143, 0.16217935147245197, 0.2968327798755828, 0.19549663007913026, 0.3559270779797502, 0.20687548185133411, 0.21566958758100122, 0.2508904014643706, 0.32564617282929015, 0.2892556331691087, 0.23411794885518314, 0.2427039768848776, 0.2248509736466561, 0.20014522233206528, 0.18010684417058415, 0.2614071077783266, 0.24380105162787516, 0.185772668378959, 0.26505068022679423, 0.3663700738092289, 0.312561469670824, 0.2995364026721889, 0.28079887557364536, 0.2815662817496289, 0.3254140754173582, 0.31372918310326814, 0.3203466696063124, 0.2664091337000785, 0.23212066523514008, 0.27766281670582316, 0.227328205541857, 0.31798058621449066, 0.30240626456201436, 0.2971656557773041, 0.24437466986694298, 0.28867912859742023, 0.2512610802523519], \"z\": [0.5766796830273411, 0.7477664072102119, 0.739679260862978, 0.6467636255508239, 0.6971785429971068, 0.6621288982785218, 0.6886165552978902, 0.7315448759298989, 0.5999668362126044, 0.6307729861174655, 0.6558313053066592, 0.6179868872919639, 0.6899265386359816, 0.6299917383414781, 0.6213214321051388, 0.6366845968855696, 0.6762715267112306, 0.6294332988786904, 0.6202903403067931, 0.6633805826311847, 0.6163209168717544, 0.690891886784754, 0.713672426503132, 0.7061167983426206, 0.6157159246278515, 0.6564714745340612, 0.7339219293558735, 0.6373283706365773, 0.5832082180174785, 0.6808996969338705, 0.660301029404629, 0.6650146634081774, 0.6302527866650713, 0.7287355706150571, 0.6169203495862957, 0.6318304244719737, 0.5820434084292478, 0.7098508126395988, 0.602529289523337, 0.6715045739555773, 0.6421592032344726, 0.62561071667897, 0.6243514778555657, 0.7015418622941737, 0.5843873974611531, 0.7115331799737297, 0.6499634652493901, 0.6181550288315559, 0.6436958018502172, 0.6424388600922322, 0.6913715681631482, 0.6800639190808855, 0.6146910790517415, 0.7095981640456663, 0.7160922373296503, 0.641935165672226, 0.5692389253207595, 0.6603618831496842, 0.7039939821791437, 0.6830065760800433, 0.7185151009105378, 0.6041906125398344, 0.6837114263441642, 0.6843162340290178, 0.7460323789696953, 0.6818133029397906, 0.7243299095013851, 0.7174856419990551, 0.6732866924472747, 0.7183249895562145, 0.6699444182320091, 0.596112288965397, 0.7044605382691497, 0.6529305380495627, 0.6170937896993116, 0.7086261252653876, 0.6672147213003745, 0.5960918671384048, 0.6792089415203981, 0.6774545636967766, 0.6730978760111198, 0.7157261202383997, 0.6879335610789459, 0.6666262160103716, 0.6178502637075568, 0.6609775083951448, 0.6736560141942557, 0.6621329149545571, 0.688846454667996, 0.6451671479161313, 0.7023642108736284, 0.5784979753057818, 0.6742620292267278, 0.6458304340483944, 0.64851393690635, 0.6595806667373064, 0.6286283842311434, 0.64924092342071, 0.7255607025191366, 0.7292594020630838]}, {\"hovertext\": \"dog\", \"marker\": {\"color\": \"green\", \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"name\": \"dog\", \"type\": \"scatter3d\", \"x\": [0.235751119871072, 0.20128454417733638, 0.23060969624768898, 0.26996013044006273, 0.25373697808158474, 0.30916761351619004, 0.20039249240642643, 0.21438473805314848, 0.20997663999544344, 0.21262526361824666, 0.24751102480333853, 0.2849057624126239, 0.22776620852054472, 0.17212246032791703, 0.2805702068909066, 0.19698737819788195, 0.2706111149350511, 0.17847283948383358, 0.253029491090062, 0.26587945114686057, 0.23774842779364125, 0.1975135474402288, 0.19866574960964456, 0.28222815528892187, 0.18882706639267915, 0.21575302527365478, 0.17333604234835015, 0.17649687610723297, 0.16346221253897542, 0.24909875637814774, 0.1799944114818593, 0.24635883385176188, 0.28873397091206604, 0.24462351207027133, 0.17886692178604682, 0.1912842544141862, 0.22024624314640448, 0.16535915045476365, 0.15699592875127175, 0.20589249534795143, 0.3096270930959283, 0.1668074469242612, 0.21859975466358628, 0.1853850137023933, 0.20688667276552802, 0.2364920379176476, 0.23524555702107514, 0.2888534550022993, 0.2627333052751758, 0.2574585858544963, 0.23088192402736055, 0.23010229932798137, 0.1613598683214249, 0.2279706731456434, 0.18803098962074796, 0.23511711945070451, 0.2815174409002356, 0.1755083941731162, 0.2639315212990788, 0.17650813851572586, 0.20779784911707305, 0.2660317504702225, 0.25785524259944864, 0.16290436015701942, 0.1464146999910531, 0.21128807127860108, 0.2775930283662016, 0.20634494430885206, 0.18398761231885236, 0.2177825345174484, 0.24934292337835798, 0.18995422752079127, 0.2929532630655287, 0.21559005368795536, 0.14207066253176173, 0.24483086866152845, 0.2756438668793509, 0.2257584934261913, 0.23370063132589022, 0.20034228473005855, 0.3054366117390812, 0.2650066399762863, 0.15800090210114393, 0.2618058185095423, 0.1591913979036533, 0.25897790684559957, 0.18928175531513616, 0.19303254712636567, 0.2319392498766928, 0.22954920672720677, 0.293044205172076, 0.22381890430945722, 0.19629070425982387, 0.15774011195381, 0.24301032603785294, 0.2116071147852095, 0.2159732949380977, 0.21775844503967662, 0.1754715831398604, 0.26298449889676145], \"y\": [0.09710447444769443, 0.0766493967124443, 0.10087535759529026, 0.13658683094827068, 0.11933542374257165, 0.12090093024526234, 0.051907200706562046, 0.06289741109142985, 0.09475386267639048, 0.09541067630087936, 0.12069571781957815, 0.1692814660465388, 0.1285218997064746, 0.11543305323594813, 0.07249008282078578, 0.15418164378177604, 0.12947721669443965, 0.10687634833258862, 0.12865808601158085, 0.019912070889694142, 0.16545258816851888, 0.10618006666017045, 0.12637034744293188, 0.170660380775397, 0.09666502165737428, 0.12988281151348444, 0.07500549135068055, 0.12273633596218136, 0.029401762872432943, 0.13100351481883146, 0.11540405123106509, 0.11422752812217053, 0.06599549981840952, 0.1620529656807193, 0.10491536605592336, 0.1554725872100367, 0.08829549384829619, 0.16257464497093735, 0.14195727928706134, 0.007846703840107466, 0.06466160761104464, 0.08877899803378736, 0.13307299083439253, 0.10813184636375892, 0.08657327589775393, 0.20753036510368042, 0.0730836166462479, 0.09652376045133068, 0.08609229114045489, 0.13857497562839546, 0.026511732973482985, 0.09281651544889119, 0.07996469640755227, 0.08982753965625855, 0.13255919732595137, 0.14252361281480774, 0.04919326206067212, 0.12211261430035537, 0.14332588265083843, 0.037117289410698404, 0.13400323394597216, 0.06624334491884681, 0.13097944237512238, 0.18548857020464166, 0.12188704312745224, 0.10184025302516972, 0.1012204406536291, -0.012399138710338528, 0.12026590337553769, 0.21443654415700314, 0.11257024714360883, 0.16139634003309006, 0.08584081401087726, 0.11498902978054731, 0.10657846468001604, 0.09810912194492516, 0.16797195123982067, 0.11421425892617774, 0.12088686495707493, 0.06919230368669435, 0.1369248912670822, 0.12295463614210758, 0.08321256125434098, 0.07440867491952655, 0.1458439706847715, 0.10788756893393539, 0.13879208814465138, 0.15668151825813018, 0.1288256818992653, 0.15885013277507287, 0.17833597731596593, 0.06329405002162922, 0.12248354590520867, 0.15574001349674343, 0.12238518514687566, 0.11894309573416008, 0.1756667877674496, 0.131578260143933, 0.07900005782489382, 0.08442406746009043], \"z\": [0.7382939707881907, 0.725869780390062, 0.7262313816473773, 0.7645741151316668, 0.7138794931784047, 0.7640937362373352, 0.674959595733393, 0.7650950346688679, 0.8022582325694518, 0.8494577971909962, 0.7108280763023596, 0.6230773477527421, 0.7558470261275433, 0.8075605282636862, 0.7457815868297966, 0.6013009402866318, 0.7792655450104291, 0.6836606209246741, 0.8195086111594266, 0.7477323428274982, 0.7643387603340882, 0.7835280178347502, 0.687267542454745, 0.7363963137348357, 0.7237827748143991, 0.6660351256572102, 0.7690920451416225, 0.7688811825716733, 0.6458233121225425, 0.7180111594937729, 0.6584197885188497, 0.7264486601120729, 0.6767570292992557, 0.683841620247078, 0.752578570414036, 0.8212417805753427, 0.8234057404129769, 0.7717896169567837, 0.7906092013950843, 0.6900341563437634, 0.7703037337642329, 0.6911901094643433, 0.7279985236182606, 0.7180903053194556, 0.6955765990952452, 0.7287912328567697, 0.7002554100546844, 0.7452912702733555, 0.7750735237966258, 0.6877429065783187, 0.7303488382767809, 0.7416174276883171, 0.6597130886305914, 0.7694894994333004, 0.722989837024714, 0.7918063889847493, 0.7456081090907299, 0.6839535171564901, 0.724871659767865, 0.6602948510542185, 0.7635328126309223, 0.7178627334722356, 0.7156076480790864, 0.7170683408475553, 0.7308410898830413, 0.6661112823918186, 0.6350293924339674, 0.7280284464117321, 0.7545008459938459, 0.7308226812841908, 0.713754533954024, 0.7579963491548473, 0.6929636372221781, 0.7208973903562544, 0.7365655368209516, 0.7252066257101557, 0.7307961121539687, 0.7651106974315983, 0.7901410970173027, 0.7229312330824529, 0.6592335365263757, 0.7399482710348462, 0.7027509434827303, 0.6871733908449257, 0.7085762588853608, 0.7532090614478458, 0.7033756515806213, 0.6730573489265809, 0.7390799891661763, 0.6995374978070341, 0.7408820539834612, 0.6880652606706917, 0.7988813502006618, 0.7361224729669538, 0.6991705675202032, 0.7802772941321556, 0.7798756710522536, 0.7846953625576732, 0.7671475474163303, 0.6862940338284472]}, {\"hovertext\": \"horse\", \"marker\": {\"color\": \"blue\", \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"name\": \"horse\", \"type\": \"scatter3d\", \"x\": [0.6800839507299397, 0.6799614839025704, 0.6266050515696364, 0.6598794194504073, 0.7001215093367155, 0.645676048070143, 0.6153631281407241, 0.6566716604223652, 0.5945736945276815, 0.5736501291719811, 0.6028549747291299, 0.6027174982902519, 0.6690865729825279, 0.5873702360816543, 0.5830372379629124, 0.5692755432271902, 0.6134369012176021, 0.5907403492783826, 0.6382745351893598, 0.5847925000799915, 0.6222097988587192, 0.6363772107409852, 0.6535291259374191, 0.6648797993578754, 0.6005161511245283, 0.6872227744467444, 0.6115393456356144, 0.5911481654160358, 0.6592264795969017, 0.6566954453790379, 0.5629744091915581, 0.6207748411245421, 0.6639761737035805, 0.5970237677730088, 0.6302945717271751, 0.5759033636183442, 0.6313012083365585, 0.5750187669311952, 0.6392593377979205, 0.6614223436676684, 0.572266112716827, 0.7271451547409797, 0.5883805534133209, 0.6266288548569374, 0.5485772640063746, 0.6437625887347195, 0.6731856723399404, 0.6504381395376501, 0.6729480392512651, 0.5115506770276527, 0.6195100799882131, 0.6739688447904151, 0.6072865998951883, 0.5740866998636518, 0.6162337347217458, 0.5338227766574936, 0.5957399586139615, 0.7112113788351321, 0.6967336682651354, 0.6498180723235597, 0.6657397955538812, 0.5824682153969766, 0.562853869578322, 0.5756271537282442, 0.6416424914162621, 0.6614179430451846, 0.607285170903214, 0.6286214451226253, 0.6124358292506363, 0.6232936768121803, 0.6834478309501789, 0.6574818834913772, 0.6459648925101694, 0.6583358635732048, 0.6247197264851437, 0.5770447163773351, 0.6584210279810371, 0.6347881267317613, 0.6537974496075462, 0.520007131811244, 0.6034891458459011, 0.633529500071347, 0.5661226388026265, 0.660238995658609, 0.5804855119026784, 0.5788378389288394, 0.6750471637349813, 0.6171158930213325, 0.6508621863219322, 0.6391836381130018, 0.6421347450694203, 0.6083538427991044, 0.6479265859903932, 0.6289527307038197, 0.7400877824187846, 0.564454608839186, 0.6862085059519559, 0.6173188462054621, 0.6782022471814676, 0.7107849560522118], \"y\": [0.44389704155930515, 0.5314096033576885, 0.3819072542512265, 0.5801574235242379, 0.4202510124482947, 0.44599711183694424, 0.41749980061025105, 0.4827015244636961, 0.4970988471436161, 0.4794142762486949, 0.5137333185137348, 0.5255395599618795, 0.5141548093582703, 0.4500984412580288, 0.5031071362319407, 0.4430167146219981, 0.43852093905174416, 0.40765966723550984, 0.5087046907640564, 0.4512726217543276, 0.39071553752569665, 0.47855675493796684, 0.49395763585255414, 0.527884914173332, 0.5009262520876461, 0.41948122556341755, 0.4530305417099578, 0.49968887139171225, 0.4582891006343953, 0.4813524966230922, 0.49481113890441025, 0.5565513696511416, 0.43046341561842416, 0.4624672976219833, 0.4767554657995303, 0.5238296356042622, 0.4260531888943991, 0.47236805854459535, 0.36875517443645, 0.4757512692245978, 0.4792670736668336, 0.4993247968125664, 0.49808650812134436, 0.5361580187212643, 0.480279741919449, 0.5177340774281111, 0.4895428555527599, 0.5377122992179084, 0.5164982540212687, 0.5216629163490386, 0.5435796051203555, 0.5442274262718702, 0.5297798561265694, 0.492834746141654, 0.5021232093680505, 0.4447730964511776, 0.5428613739047587, 0.510009340316757, 0.4748548832227535, 0.5144664795517143, 0.44885773524392664, 0.543895850358438, 0.4633912717079073, 0.4670538376801463, 0.4840533624044519, 0.5094515627215145, 0.4234802659010957, 0.5683131694701877, 0.48939730040347984, 0.47713056979085666, 0.4870505071176911, 0.5391116396720859, 0.4341440108201874, 0.49258707375702987, 0.5614293298899323, 0.49623889807763266, 0.44428086018100793, 0.4795454090503688, 0.4875401455531278, 0.478164694579566, 0.4870384120961394, 0.5497598739499857, 0.5382672521630515, 0.47025244916354614, 0.535024828910842, 0.49485398901528144, 0.5723866585254997, 0.46652290458670215, 0.5144650354626463, 0.5465620565860255, 0.5096926432560825, 0.5025680274997728, 0.5189576812544517, 0.4601890289947643, 0.5280692760130523, 0.4375535245151374, 0.5313252246294972, 0.48942966008348265, 0.5218647748773949, 0.4347228266362301], \"z\": [0.6898018326997443, 0.6998040668998977, 0.7293871204730417, 0.7140485933194406, 0.6986764678027018, 0.7774519696048261, 0.7361684940720578, 0.6267847866054754, 0.7461218096604535, 0.7160933064142985, 0.7656726993798593, 0.674647282490011, 0.7297481543312753, 0.7699196524496773, 0.8054519666828827, 0.7383091128486357, 0.7658496510716952, 0.7016181301283702, 0.6822378584370299, 0.7202206099978556, 0.7051554155134432, 0.678304797542313, 0.7388899635573948, 0.7195643099386003, 0.6623987254892404, 0.7300742357183772, 0.7162459905581373, 0.7607099937667937, 0.7633660242622957, 0.6716694968498227, 0.7522903381908487, 0.7437108938393214, 0.6949028664433693, 0.6851168911211899, 0.7123292526110325, 0.744965959684738, 0.7957589666432875, 0.7153936297297059, 0.7104148485624143, 0.7183031616084452, 0.6681116632076487, 0.7820945237665978, 0.7367713777175273, 0.7120697534824524, 0.6008296647463764, 0.7348398409326684, 0.7039268484834578, 0.7460072041696996, 0.654492104620633, 0.7891398187105132, 0.7451077067730925, 0.6825198780137317, 0.741483650403228, 0.7454873018450653, 0.6682792205467559, 0.7224002914786727, 0.7739752682472358, 0.7138632482613071, 0.7170063716784654, 0.779471585970429, 0.7153965289269012, 0.6859488320714398, 0.6942852761258986, 0.710900869019268, 0.6671336433949946, 0.7531598999600295, 0.7657240635792129, 0.7401786470156516, 0.7632624270335017, 0.691579047443729, 0.7437117815766064, 0.7029675527210782, 0.6684122685418874, 0.626772706264063, 0.7671766646261662, 0.7319430748544827, 0.7314091771190405, 0.6870675952801671, 0.7387276621274012, 0.7111798881852583, 0.7160401163777993, 0.7297709619274961, 0.7120500174115746, 0.726077244932139, 0.6486907261379283, 0.8074162050022281, 0.6816664288591864, 0.6976675859742891, 0.7293157858517413, 0.8300554292137392, 0.6981209204638805, 0.7437325404707358, 0.7154741647128079, 0.7094696172937386, 0.7305833480738556, 0.6746017796543897, 0.7640370067073523, 0.6992702918366348, 0.6583546355395897, 0.6853597705963916]}, {\"hovertext\": \"bird\", \"marker\": {\"color\": \"orange\", \"opacity\": 0.6, \"size\": 5}, \"mode\": \"markers\", \"name\": \"bird\", \"type\": \"scatter3d\", \"x\": [-0.004182494170206847, -0.009276191792295538, 0.0832706706716049, 0.020937835069992434, 0.058930120284795696, 0.013874085870230975, 0.05862544896743897, 0.11590487627359095, 0.030745699139066465, 0.098746580565103, -0.0551587274294323, -0.005910033660721972, 0.004085620885430623, 0.030134235718851092, -0.008564483028449296, 0.09704452804967069, 0.011251747318681215, 0.03197712178713953, -0.007874837815027576, 0.013748723394707282, 0.06013215530064824, 0.01628838191475126, 0.03451988773736366, -0.01836711264399448, -0.031492005074975654, 0.05031149920805578, 0.03787632501398533, -0.03201485634904099, -0.03835695215827929, 0.08240821028009518, 0.08791361321622396, 0.09469806950209839, 0.029387165466320846, -0.009824463425605626, 0.018555139957257043, -0.009196214276031546, -0.007370080774495684, 0.04269649524744874, 0.09076578831086916, 0.049008858195871724, 0.028247127355912865, 0.03995968692114156, 0.025429308656528725, -0.032918346628688144, 0.10566123604873029, 0.017793300425295522, 0.011983214533212898, -0.024416166885025813, 0.044315480698542055, -0.03351162886113662, -0.00877918866272065, 0.07672919389081664, -0.00527956550092698, 0.10137305606773568, 0.061082231395994044, 0.07418571707666956, 0.06780771758689291, 0.002692102349904125, 0.05431811433936319, -0.03304604588752462, 0.07568406050496995, 0.006758981795391583, 0.03973712686370993, -0.004940953061174175, 0.07204807913830649, 0.037828893297245245, 0.02674625039918208, 0.052712384578081806, 0.06196568559220236, 0.03718031809168455, -0.00021830165199135734, 0.05724712572030828, 0.05369598221746145, -0.049302943784769016, 0.05846822267597497, 0.03423141528456256, -0.005819379283621466, 0.05020404135324918, 0.02450159345216107, -0.0007805597402353384, -0.026273018150877715, 0.060977799554988235, 0.04041013203839232, -0.024160473885892216, -0.001953774303503908, 0.012569153745041877, 0.001823004240239047, 0.03794039070143, 0.006893563283298917, 0.020436147405981847, 0.07020157899934909, -0.010141445167627189, 0.005697411051530609, -0.013575726875897393, 0.02120444196083372, -0.04199782244862116, 0.11674097205811741, 0.05588628533414014, 0.04153515340120684, 0.024111596554622326], \"y\": [0.04610676958449074, 0.12959942833373805, 0.01908208283510769, 0.08331163642099118, 0.0607863515773295, 0.07100999435990804, 0.09129619572054157, 0.0765445716062749, 0.05740267225353572, 0.10679121182216035, 0.08645688362330213, 0.06876426174725886, 0.07697899617487691, 0.08868926345363168, 0.13710949013444046, 0.04463818514137103, 0.1249790485138822, 0.07938242617934581, 0.10931941720931583, 0.047520943374860014, 0.05983313376033866, 0.0966405274245027, 0.13845288195757827, 0.03699375537039747, 0.13332793963344663, 0.08631774643259084, 0.08891463203811967, 0.037145025292009026, 0.07790127587613949, -0.02146869513186031, 0.04552063319363305, 0.046024759410602724, 0.0639951082357964, 0.021751107783771026, 0.12039434607555614, 0.036568280143558736, 0.0954874541707731, 0.052691443427051364, 0.07580589056277084, 0.13046462029959974, 0.11562324361933883, 0.08521338216508971, 0.09327561846815179, 0.10680087816232219, 0.06786768320725159, 0.052747219611794426, 0.08131826587960475, 0.06436072239146476, 0.11653278614874166, 0.1099517844190421, 0.04388266681277, 0.14129714172070643, 0.05674569691652942, 0.03476310802939363, -0.002978387679714131, 0.09101524176904262, 0.10515796359741791, 0.0014588298860789134, 0.017026170732429485, 0.11417745357722359, 0.0355549047559841, 0.0505474336462959, 0.05536658327940361, 0.0856741299042128, 0.016252598860323972, 0.04872594112742324, 0.12147995639967155, 0.003948431586371481, 0.05540696785445041, 0.10883114294651225, 0.09856125377317872, 0.13270122184723138, 0.039900704597076925, 0.04854011511815741, 0.042405811570112695, 0.11473072264716784, 0.07109654963326265, 0.01922761870462948, 0.10050618970430662, 0.1298416337321751, 0.026107256851719364, 0.033801630904542794, 0.14315415394322706, 0.16735372160493317, 0.03704379519818245, 0.06721164985486415, 0.02946763965744509, 0.14232417409140352, 0.07863405817307993, 0.10300364174716965, 0.013903335744547288, 0.10074717550926689, 0.05856844193198534, 0.12277120967894103, 0.07534752218076383, 0.08421495402621351, 0.049178176408811246, 0.15385656587722096, 0.13965495739181474, 0.074969215434694], \"z\": [0.4268949532073255, 0.4242557753319451, 0.33201084583201596, 0.45291570375554985, 0.4684910156361818, 0.4631576961579238, 0.426494607908975, 0.4232540802888566, 0.479214442685375, 0.33929096443140666, 0.38565552364129696, 0.38758906072977456, 0.43505613040518437, 0.30336473505488615, 0.46672761136924107, 0.3889684664333415, 0.4127197513407789, 0.4184796630027609, 0.28153071837498683, 0.42127684142760224, 0.4593409617499914, 0.4097695537706982, 0.3763333040578265, 0.3512169973949095, 0.410018244022804, 0.5002954094936636, 0.5060290859400535, 0.38397121632380316, 0.43102160522972505, 0.46100587421959704, 0.4356832971634859, 0.42458976494021433, 0.41692366906754036, 0.4476800324050099, 0.40573464326800424, 0.36922267443463175, 0.44537744883713426, 0.4300949516552093, 0.4162948520878945, 0.370823588044719, 0.381807021988692, 0.4208192475319253, 0.38580298386332945, 0.46436424330441683, 0.4402568721597725, 0.43297350291198605, 0.3887604753612992, 0.4755311383795151, 0.4001826128544382, 0.39940011966760297, 0.45673417096179536, 0.508390212421582, 0.3809674922931571, 0.4285142617337759, 0.4614621163778321, 0.37907810340972836, 0.47346839779350314, 0.4204620318249503, 0.38174791373436134, 0.3300772295618393, 0.45245998167449275, 0.3979528051572444, 0.4228445268530233, 0.4150842355242913, 0.43403031328251357, 0.3741201704356593, 0.43136636164592485, 0.490243387965816, 0.3634564719367463, 0.40778955175418663, 0.42387763061126044, 0.4040837758650949, 0.47386372303866847, 0.3941480788181393, 0.4603889149588019, 0.48879221374149734, 0.5026647501035365, 0.4634799038895727, 0.46107065616511284, 0.44757026662979876, 0.43847517561443977, 0.45994934572492335, 0.4696433056141486, 0.3741122922694066, 0.39156720483606683, 0.40430754833991017, 0.45826677998008614, 0.4033254121731891, 0.48365695676550285, 0.4485690594875416, 0.437052162170003, 0.4295560682280205, 0.46557948676309635, 0.4647603131290552, 0.3916638697560557, 0.3975709698584354, 0.432551155155411, 0.4551995024111405, 0.46594796471231364, 0.3627616374545837]}], {\"margin\": {\"t\": 0}, \"scene\": {\"camera\": {\"eye\": {\"x\": 0.7, \"y\": 0.7, \"z\": 0.7}}}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"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\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"autotypenumbers\": \"strict\", \"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\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}}, {\"displayModeBar\": false, \"responsive\": true} ).then(function(){\n", " \n", "var gd = document.getElementById('6d60f180-d327-4c4e-9989-4a94683ecc22');\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", " }) }; }); </script> </div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clusters = plot_clusters() " ] }, { "cell_type": "markdown", "metadata": { "id": "JgH1ZREO9qRS", "slideshow": { "slide_type": "subslide" } }, "source": [ "## Contrastive Loss\n", "Like attracts like; \"Opposites\" repel:\n", " <img style=\"display:inline-block; vertical-align: text-top;\" src=\"images/CL_springs_transp.png\" width=\"50%\"><br>\n", "Tends to group things in \"semantically meaningful\" ways." ] }, { "cell_type": "markdown", "metadata": { "id": "JgH1ZREO9qRS", "slideshow": { "slide_type": "notes" } }, "source": [ "This picture of springs is the essence of a \"[contrastive loss](https://arxiv.org/abs/2004.11362)\" function. Unlike traditional ML classification where the loss is based on the \"distance\" to a \"target\" (or \"ground truth\") value, with these metric based methods we send in two (or even 3) data points together, and then either let them attract or repel each other, and we do this over and over and over until we reach some stopping criterion. Eventually, what we'll have is a space that contains clusters of similar points, separated by a \"margin\" distance that we specify." ] }, { "cell_type": "markdown", "metadata": { "id": "5KgVawNp90FM", "slideshow": { "slide_type": "subslide" } }, "source": [ "## Siamese Networks\n", "\n", "*Identical twin* network branches map to points (\"feature vectors\") in N-dim space:\n", "\n", "<center>\n", "<img src=\"https://people.kth.se/~rosun/deep-learning/figures/siamese-arch.svg\" width=\"65%\">\n", " <p style=\"font-size:70%; text-align: center;\">Example of a Siamese Network (source: <a href=\"https://people.kth.se/~rosun/deep-learning\">Sundin et al</a>)</p>\n", "</center>\n" ] }, { "cell_type": "markdown", "metadata": { "id": "UQRVkgzy94qB", "slideshow": { "slide_type": "subslide" } }, "source": [ "## How well do they work?\n", "\n", "Traditional vs. zero(/few)-shot methods: which one wins? *It depends.*\n", "\n", "From high-scoring Kaggle competition entry using \"[entity embeddings](https://arxiv.org/abs/1604.06737)\":\n", "\n", "> \"Entity embedding not only **reduces memory usage** and **speeds up neural networks** compared with one-hot encoding, but more importantly by mapping similar values close to each other in the embedding space it **reveals the intrinsic properties of the categorical variables**.\"\n", "\n", "Let's look at \"PETS,\" via [my mod](https://colab.research.google.com/drive/1rSTOsj4coDu9mZCw57S7R6jBipm462R2?usp=sharing) of [FastAI's tutorial](https://docs.fast.ai/tutorial.siamese.html) on Siamese Networks... " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Zero-Shot & Few-Shot\n", "**Cool thing:** Embedding function tends to work for classes **never seen before** \n", "<img src=\"images/my_pets_preds.png\" width=\"80%\">" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "<img src=\"images/my_pets_preds2.png\" width=\"80%\">" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "<img src=\"images/my_pets_preds3.png\" width=\"80%\">" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "So, for example, the embedding learned for grouping images of cats, dogs, and horses together would map images of birds to nearby points in the space. Then \"all we have to do\" if we want to predict a class is see whether a new instance is \"nearby\" (according to some distance measure we decide) to other similar points. We could even look at the \"center points\" of various clusters and regard these as the \"class prototype\" and use that in the future.\n", "\n", "This fits (somewhat) with the notions of \"prototypes\" in human classification advanced by Eleanor Rosch in her revolutionary psychology work in the early 1970s. We can say more about this later. ;-) " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "This same method of contrastive losses and metrics is used not for classification *per se* but for things like photographic identity verification (an example that is given in Andrew Ng's Machine Learning course on Coursera): Say you want to have a facial recognition system (highly problematic for ethical reasons but it's a good example of the method so bear with me) for a company where there can be turnover in employees: You probably don't want to train a traditional classifier with separate a class for each employee because then you'd have to re-train it every time someone joins or leaves the company. Instead, you can store an image of each employee, and then when they appear in front of a camera for identity verification, you could compare the \"distance\" between the embedded data point for the new photo from the data point for the stored photo(s). If the distance is small enough, then you can have confidence it's the same person." ] }, { "cell_type": "markdown", "metadata": { "id": "SAMnLUYKKUEJ", "slideshow": { "slide_type": "notes" } }, "source": [ " \n", "\n", "What's nice about this is that, after you've trained your embedding system, it can typically still be used to measure similarity between pairs of things it's never seen before, because in the process of training it was forced to learn \"semantically meaningful\" ways of grouping points together. This use of the linguistic work \"semantic\" is not accidental: the language model systems that rely on \"word embeddings\" can learn to group similar words together, and even have mathematical-like relationships in analogies (e.g., gender: \"king - man + woman = queen\", or countries-and-capitals: \"Russia - Moscow + France = Paris\") by treating the embedded data points as *vectors* that point from the origin of the coordinate system to the data point. We can say more about this and the distance metric they use (\"cosine similarity\") another time.\n", "\n", "\n", "So in using metric-based learning for classification, we're essentially adopting this identity-verification app and applying it to entire classes instead of individuals." ] }, { "cell_type": "markdown", "metadata": { "id": "pMXCcMhI7E8U", "slideshow": { "slide_type": "slide" } }, "source": [ "## Final thoughts\n", "* 3D for teaching: robust yet viz-able, can help re. loss & accuracy\n", "* Embeddings are just mappings to points in space\n", "* Contrastive losses help give semantically meaningful embeddings\n", "* Note that real-world embeddings often require >> 3D (e.g. 128D)\n", "* `mrspuff` lib TODO: \n", " * Live tracking of data points during training\n", " * Real images for points \n", " * Add URLs to FastAI image data type / bunch / loader\n", "\n", "## Acknowledgements\n", "Thanks to [Zach Mueller](https://twitter.com/TheZachMueller), [Tanishq Abraham](https://twitter.com/iScienceLuvr) and [Isaac Flath](https://twitter.com/isaac_flath) for help with fastai! " ] }, { "cell_type": "markdown", "metadata": { "id": "pMXCcMhI7E8U", "slideshow": { "slide_type": "subslide" } }, "source": [ "## References:\n", "<ul style=\"font-size:90%\">\n", "<li> <a href=\"https://github.com/adambielski/siamese-triplet\">\"Siamese and triplet learning with online pair/triplet mining\"</a> by Adam Bielski\n", "<li> <a href=\"https://twitter.com/jeremyphoward/status/1133252425949753344/photo/1\">Example of new `Pipeline` class to create data for a Siamese model,\"</a> by Jeremy Howard\n", "<li> <a href=\"https://towardsdatascience.com/siamese-network-triplet-loss-b4ca82c1aec8\">\"Siamese Network & Triplet Loss\"</a> by Rohith Gandhi\n", "<li> <a href=\"https://github.com/KevinMusgrave/pytorch-metric-learning\">pytorch-metric-learning</a> by Kevin Musgrave\n", "<li> <a href=\"https://towardsdatascience.com/contrastive-loss-explaned-159f2d4a87ec\">\"Contrastive Loss Explained\"</a> by Brian Williams\n", "<li> <a href=\"https://arxiv.org/abs/2006.07733\">\"Bootstrap Your Own Latent (BYOL)\"</a> by Grill et al\n", "<li> <b><a href=\"https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf\">\"Siamese Neural Networks for One-shot Image Recognition\"</a> by Koch et al</b>\n", "<li> <a href=\"https://msiam.github.io/Few-Shot-Learning/\">\"Few Shot Learning\"</a> by msiam\n", "<li> <a href=\"https://katefvision.github.io/katefSlides/oneshotlearning_katef.pdf\">\"Learning to learn, Low shot learning\"</a> by Katerina Fragkiadaki\n", "<li> <a href=\"http://proceedings.mlr.press/v37/romera-paredes15.pdf\">\"Embarassingly Simple\": </a> <span style=\"color:blue\">\"We describe azero-shot learning approach that can be implemented in just one line of code, yet it is able to\n", " outperform state of the art approaches on standard datasets\"</span>\n", "</ul>\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Slideshow", "colab": { "collapsed_sections": [], "name": "2021-04-11-The-Joy-Of-3D.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.6" }, "rise": { "autolaunch": true } }, "nbformat": 4, "nbformat_minor": 1 }