Skip to content

Instantly share code, notes, and snippets.

@georgehc
Created October 29, 2019 02:47
Show Gist options
  • Save georgehc/a82ef618a0c76f784457d5ea26e00c96 to your computer and use it in GitHub Desktop.
Save georgehc/a82ef618a0c76f784457d5ea26e00c96 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 94-775/95-865: Isomap Demo\n",
"\n",
"Author: George H. Chen (georgechen [at symbol] cmu.edu)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"plt.style.use('seaborn')\n",
"np.set_printoptions(precision=2, suppress=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Multi-dimensional scaling (MDS), a part of Isomap\n",
"\n",
"Given a table of pairwise distances, MDS finds points that approximately have those pairwise distances. MDS is used within the Isomap algorithm."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[-8.4]\n",
" [-4.6]\n",
" [-0. ]\n",
" [ 6.6]\n",
" [ 6.4]]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"point_names = ['A', 'B', 'C', 'D', 'E']\n",
"distances = np.array([[0, 5, 8, 13, 16],\n",
" [5, 0, 5, 10, 13],\n",
" [8, 5, 0, 5, 8],\n",
" [13, 10, 5, 0, 5],\n",
" [16, 13, 8, 5, 0]])\n",
"\n",
"from sklearn.manifold import MDS\n",
"\n",
"# remove random_state=0 and re-running gives you different 1D representations of A, B, C, D, E\n",
"mds = MDS(n_components=1, dissimilarity='precomputed')\n",
"low_dimensional_points = mds.fit_transform(distances)\n",
"print(low_dimensional_points)\n",
"\n",
"plt.scatter(low_dimensional_points, np.zeros(len(low_dimensional_points)))\n",
"for idx in range(len(point_names)):\n",
" plt.annotate(point_names[idx], (low_dimensional_points[idx], 0))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Isomap\n",
"\n",
"In practice, if you want to use Isomap, you don't need to write the MDS code yourself. Instead, you would use Isomap as follows (and Isomap's fitting procedure will do MDS under the hood without telling you about it):"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"swiss_roll_2d = np.array([[479, -231],\n",
" [515, -237],\n",
" [551, -233],\n",
" [581, -255],\n",
" [597, -284],\n",
" [610, -313],\n",
" [619, -341],\n",
" [623, -368],\n",
" [617, -407],\n",
" [591, -434],\n",
" [573, -468],\n",
" [542, -478],\n",
" [507, -490],\n",
" [471, -482],\n",
" [437, -462],\n",
" [398, -446],\n",
" [383, -408],\n",
" [403, -373],\n",
" [430, -349],\n",
" [470, -326],\n",
" [507, -320],\n",
" [531, -352],\n",
" [527, -385],\n",
" [487, -397]])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(24, 2)\n"
]
}
],
"source": [
"print(swiss_roll_2d.shape)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(370.98850059737157,\n",
" 635.0114994026284,\n",
" -502.96770603384846,\n",
" -218.03229396615157)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(swiss_roll_2d[:, 0], swiss_roll_2d[:, 1], c=list(range(len(swiss_roll_2d))), cmap='Spectral')\n",
"plt.axis('equal')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.decomposition import PCA\n",
"\n",
"pca = PCA(n_components=1)\n",
"swiss_roll_1d_pca = pca.fit_transform(swiss_roll_2d)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def plot_1d(data_1d, y_offset=-0.001):\n",
" plt.scatter(data_1d, np.zeros(len(data_1d)),\n",
" c=list(range(len(data_1d))), cmap='Spectral')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_1d(swiss_roll_1d_pca)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.manifold import Isomap\n",
"\n",
"isomap = Isomap(n_neighbors=2, n_components=1)\n",
"swiss_roll_1d_isomap = isomap.fit_transform(swiss_roll_2d)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_1d(swiss_roll_1d_isomap)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In case you are wondering what distance matrix Isomap computed (using the nearest neighbor graph) to use with Isomap, you can print it out as follows:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0. 36.5 72.03 109.23 142.35 174.13 203.54 230.84 270.3 307.78\n",
" 346.25 378.82 415.82 452.7 492.15 534.3 575.16 615.47 651.59 697.73\n",
" 735.22 775.22 808.46 838.15]\n",
" [ 36.5 0. 36.22 73.42 106.54 138.33 167.74 195.03 234.49 271.97\n",
" 310.44 343.02 380.02 416.89 456.34 498.5 539.35 579.66 615.78 661.93\n",
" 699.41 739.41 772.65 802.35]\n",
" [ 72.03 36.22 0. 37.2 70.32 102.1 131.51 158.81 198.27 235.75\n",
" 274.22 306.8 343.8 380.67 420.12 462.27 503.13 543.44 579.56 625.7\n",
" 663.19 703.19 736.43 766.12]\n",
" [109.23 73.42 37.2 0. 33.12 64.9 94.31 121.61 161.07 198.55\n",
" 237.02 269.59 306.59 343.47 382.92 425.07 465.93 506.24 542.36 588.5\n",
" 625.99 665.99 699.23 728.92]\n",
" [142.35 106.54 70.32 33.12 0. 31.78 61.19 88.49 127.94 165.43\n",
" 203.9 236.47 273.47 310.35 349.8 391.95 432.8 473.12 509.24 555.38\n",
" 592.86 632.86 666.11 695.8 ]\n",
" [174.13 138.33 102.1 64.9 31.78 0. 29.41 56.71 96.16 133.65\n",
" 172.12 204.69 241.69 278.57 318.02 360.17 401.02 441.34 477.46 523.6\n",
" 561.08 601.08 634.33 664.02]\n",
" [203.54 167.74 131.51 94.31 61.19 29.41 0. 27.29 66.75 104.24\n",
" 142.71 175.28 212.28 249.16 288.6 330.76 371.61 411.92 448.05 494.19\n",
" 531.67 571.67 604.91 634.61]\n",
" [230.84 195.03 158.81 121.61 88.49 56.71 27.29 0. 39.46 76.94\n",
" 115.41 147.99 184.99 221.86 261.31 303.46 344.32 384.63 420.75 466.9\n",
" 504.38 544.38 577.62 607.32]\n",
" [270.3 234.49 198.27 161.07 127.94 96.16 66.75 39.46 0. 37.48\n",
" 75.95 108.53 145.53 182.41 221.85 264.01 304.86 345.17 381.3 427.44\n",
" 464.92 504.92 538.16 567.86]\n",
" [307.78 271.97 235.75 198.55 165.43 133.65 104.24 76.94 37.48 0.\n",
" 38.47 71.04 108.04 144.92 184.37 226.52 267.38 307.69 343.81 389.95\n",
" 427.44 467.44 500.68 530.37]\n",
" [346.25 310.44 274.22 237.02 203.9 172.12 142.71 115.41 75.95 38.47\n",
" 0. 32.57 69.57 106.45 145.9 188.05 228.91 269.22 305.34 351.48\n",
" 388.97 428.97 462.21 491.9 ]\n",
" [378.82 343.02 306.8 269.59 236.47 204.69 175.28 147.99 108.53 71.04\n",
" 32.57 0. 37. 73.88 113.32 155.48 196.33 236.64 272.77 318.91\n",
" 356.39 396.39 429.63 459.33]\n",
" [415.82 380.02 343.8 306.59 273.47 241.69 212.28 184.99 145.53 108.04\n",
" 69.57 37. 0. 36.88 76.32 118.48 159.33 199.64 235.77 281.91\n",
" 319.39 359.39 392.63 422.33]\n",
" [452.7 416.89 380.67 343.47 310.35 278.57 249.16 221.86 182.41 144.92\n",
" 106.45 73.88 36.88 0. 39.45 81.6 122.45 162.77 198.89 245.03\n",
" 282.51 322.51 355.76 385.45]\n",
" [492.15 456.34 420.12 382.92 349.8 318.02 288.6 261.31 221.85 184.37\n",
" 145.9 113.32 76.32 39.45 0. 42.15 83.01 123.32 159.44 205.59\n",
" 243.07 283.07 316.31 346. ]\n",
" [534.3 498.5 462.27 425.07 391.95 360.17 330.76 303.46 264.01 226.52\n",
" 188.05 155.48 118.48 81.6 42.15 0. 40.85 81.16 117.29 163.43\n",
" 200.91 240.91 274.16 303.85]\n",
" [575.16 539.35 503.13 465.93 432.8 401.02 371.61 344.32 304.86 267.38\n",
" 228.91 196.33 159.33 122.45 83.01 40.85 0. 40.31 76.44 122.58\n",
" 160.06 200.06 233.3 263. ]\n",
" [615.47 579.66 543.44 506.24 473.12 441.34 411.92 384.63 345.17 307.69\n",
" 269.22 236.64 199.64 162.77 123.32 81.16 40.31 0. 36.12 82.27\n",
" 119.75 159.75 192.99 222.69]\n",
" [651.59 615.78 579.56 542.36 509.24 477.46 448.05 420.75 381.3 343.81\n",
" 305.34 272.77 235.77 198.89 159.44 117.29 76.44 36.12 0. 46.14\n",
" 83.62 123.62 156.87 186.56]\n",
" [697.73 661.93 625.7 588.5 555.38 523.6 494.19 466.9 427.44 389.95\n",
" 351.48 318.91 281.91 245.03 205.59 163.43 122.58 82.27 46.14 0.\n",
" 37.48 77.48 110.72 140.42]\n",
" [735.22 699.41 663.19 625.99 592.86 561.08 531.67 504.38 464.92 427.44\n",
" 388.97 356.39 319.39 282.51 243.07 200.91 160.06 119.75 83.62 37.48\n",
" 0. 40. 73.24 102.94]\n",
" [775.22 739.41 703.19 665.99 632.86 601.08 571.67 544.38 504.92 467.44\n",
" 428.97 396.39 359.39 322.51 283.07 240.91 200.06 159.75 123.62 77.48\n",
" 40. 0. 33.24 62.94]\n",
" [808.46 772.65 736.43 699.23 666.11 634.33 604.91 577.62 538.16 500.68\n",
" 462.21 429.63 392.63 355.76 316.31 274.16 233.3 192.99 156.87 110.72\n",
" 73.24 33.24 0. 41.76]\n",
" [838.15 802.35 766.12 728.92 695.8 664.02 634.61 607.32 567.86 530.37\n",
" 491.9 459.33 422.33 385.45 346. 303.85 263. 222.69 186.56 140.42\n",
" 102.94 62.94 41.76 0. ]]\n"
]
}
],
"source": [
"print(isomap.dist_matrix_)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x1a22bd3e50>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(isomap.dist_matrix_)\n",
"plt.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What happens if you choose the number of nearest neighbors to be too large?"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD3CAYAAAAQYlNPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAHtRJREFUeJzt3X2QXHW95/H36YeZnsn0TCakk0CA8PyVqwsKyMNKhMKHGJSL671by1q1q1x1uS5VLnq3tvT6uFV63XV9WL2rsiqUsmq5XpBdn0BcQU2CGBXERMMXBkJiEhImyWSmM8/dffaP7kl6ZrrnoWfIkP59XlWpmv79fuec37fP6f6cc7pnEsVxjIiIhCux1BMQEZGlpSAQEQmcgkBEJHAKAhGRwCkIREQCl1rqCTSitzffFF916u5up69vaKmn8YJTnc0nlFqbrc5cLhvVatcVwRJKpZJLPYUTQnU2n1BqDaVOBYGISOAUBCIigVMQiIgETkEgIhI4BYGISOAUBCIigVMQiIgETkEgIhI4BYGISOAUBCIigVMQiIgETkEgIhK4hv76qJklgC8BFwOjwDvdvaeq/13ALUAB+Li7/7Cq7zZgjbu/v/L4fcA7gN7KkFvc3RuZl4iIzF+jf4b6zUDG3a8ysyuBzwA3ApjZGuA9wGVABthsZj+lfPXxVeAK4J6qdV0C/Ft3/12DcxERkQVo9NbQ1cD9AO7+COU3/QmXA1vcfdTd+4Ee4CLKoXAX8Ikp67oU+ICZbTazDzQ4HxERaVCjVwSdQH/V46KZpdy9UKMvD3S5ex/wgJm9fcq6vgN8ERgA7jWzN1XfSqqlu7u9af5OeC6XXeopnBCqs/mEUmsIdTYaBANA9bOTqIRArb4scKTWSswsAv575coBM/sR8ApgxiBolv8xKJfL0tubX+ppvOBUZ/MJpdZmq7NeqDUaBFuAG4DvVj4j2FbVtxX4hJllgFbgQmB7nfV0AtvN7EJgELgOuLPBOYmISAMaDYJ7gdeZ2cNABNxc+fZPj7t/38y+AGyi/BnEB919pNZK3L3fzP4eeIjyt49+5u4/bnBOIiLSgCiOT77/B75Z/vP6ZrvsrEd1Np9Qam22OvWf14uISE0KAhGRwCkIREQCpyAQEQmcgkBEJHAKAhGRwCkIREQCpyAQEQmcgkBEJHAKAhGRwCkIREQCpyAQEQmcgkBEJHAKAhGRwCkIREQCpyAQEQmcgkBEJHAKAhGRwCkIREQCpyAQEQmcgkBEJHAKAhGRwCkIREQCl2pkITNLAF8CLgZGgXe6e09V/7uAW4AC8HF3/2FV323AGnd/f+XxDcBHKmPvdPevNliLiIg0oKEgAN4MZNz9KjO7EvgMcCOAma0B3gNcBmSAzWb2U8pXH18FrgDuqYxNA58DXgkMAlvM7Afuvr/xkkREZD4avTV0NXA/gLs/QvlNf8LlwBZ3H3X3fqAHuIhyKNwFfKJq7IVAj7v3ufsYsBlY3+CcRESkAY1eEXQC/VWPi2aWcvdCjb480OXufcADZvb2GdaTB7pm23h3dzupVLLBqb+45HLZpZ7CCaE6m08otYZQZ6NBMABUPzuJSgjU6ssCR+a4npnGHtPXNzT3mb6I5XJZenvzSz2NF5zqbD6h1NpsddYLtUaDYAtwA/DdymcE26r6tgKfMLMM0Er59s/2OuvZAZxvZiuAo8CrgU83OCcREWlAo0FwL/A6M3sYiICbzex9lO/3f9/MvgBsovwZxAfdfaTWStx9vLLcTypj73T3vQ3OSUREGhDFcbzUc5i33t78yTfpGprtsrMe1dl8Qqm12erM5bJRrXb9QpmISOAUBCIigVMQiIgETkEgIhI4BYGISOAUBCIigVMQiIgETkEgIhI4BYGISOAUBCIigVMQiIgETkEgIhI4BYGISOAUBCIigVMQiIgETkEgIhI4BYGISOAUBCIigVMQiIgETkEgIhI4BYGISOAUBCIigVMQiIgELtXogmaWAL4EXAyMAu90956q/ncBtwAF4OPu/kMzWwl8G2gD9gE3u/uQmX0BeBWQryx+o7v3Nzo3ERGZu4VcEbwZyLj7VcD7gc9MdJjZGuA9lN/cNwCfNLNW4CPAt919PfAY5aAAuATY4O7XVv4pBERETpCGrwiAq4H7Adz9ETO7rKrvcmCLu48Co2bWA1xUWeYfKmPuA/7BzD4PnA98xcxWA3e4+50zbbi7u51UKrmAqb945HLZpZ7CCaE6m08otYZQ50KCoBOoPnMvmlnK3Qs1+vJA15T2ibZlwD8CnwWSwENm9lt3/0O9Dff1DS1g2i8euVyW3t787ANPcqqz+YRSa7PVWS/UFnJraACoXmuiEgK1+rLAkSntE21DwOfdfcjd88CDlD93EBGRE2AhQbAFuB7AzK4EtlX1bQXWm1nGzLqAC4Ht1csAG4FNwAXAZjNLmlma8u2jRxcwLxERmYeFBMG9wIiZPQx8Dnivmb3PzP7S3fcDX6D8Rv8g8EF3HwE+DtxkZluAq4D/4e47gG8BjwC/AO5y9z8uYF4iIjIPURzHSz2HeevtzZ98k66h2e4/1qM6m08otTZbnblcNqrVrl8oExEJnIJARCRwCgIRkcApCEREAqcgEBEJnIJARCRwCgIRkcApCEREAqcgEBEJnIJARCRwCgIRkcApCEREAqcgEBEJnIJARCRwCgIRkcApCEREAqcgEBEJnIJARCRwCgIRkcApCEREAqcgEBEJXGqpJ3CijMb9HGUXJQpkWEkHZxBF0bH+mCKF5FPEyV6ixChpVsL46VBcOaf1R9E4LZnnSETjFEsZ+gezPDe+h2I8Tja5nNXpM4iiFzp3Y1qSh2hJHSEmYnQ8R6HUOe+1HBzr49mRvcRxzKmtOda2rp70XE3dZpr9tPAckGCUtRTIzWt7oyMFtvz8GfoODdG1vI2rrzuHTFu67vjhwii/63+WweIoy9PLuKRrHenEPA7leJzM2HaSpQFKUTsjLf+MOJGZNGTn3n4e+cMBCsUSLz13Ba94SW6G52DuSnHM7w8f4OmBPlJRgstzp7F2Wbbu+MTYIXqe/j2/3JOgkOjgFeeeyyXruuc1l0KpxIPPHmD3wCAd6RSvP+dUVrS1LriWatFoH5n9W4gKwxSXrWV01RWQSC7e+kcGaOl5kGgkTzG7hvHzroVk/WNkLuI45vnvP0j68Z/QkirSetHLSb/hJkjNfb0je5+n9+6fUhoapv0lZ7Pyja8m2vEbeOZP5fVcei2ctq6h+ZUGBxn/2U+I+/ugq5uxQSj09ZM8ZQXZG15Hor29ofXWEsVx3NCCZpYAvgRcDIwC73T3nqr+dwG3AAXg4+7+QzNbCXwbaAP2ATe7+1CtsTNtu7c3P69JH4mfpI8dxIwfa2vjVNZwFVGUoMRRxlo3Eyf6jvVHRLQmMyQL51EaeSlQ/4WXTB2hvaOHZHIUgD/nR/hj3zBjpdKxMV3JU/iLzOWkE8cPslwuS29vfj6lzCAmm3mC1nQvE+8RpTjB8OjpDI2dNee1PJ5/gicGn6ZA8VjbusxaXtV1SY03n5hl/JYMu4ii8i6J4wTDnMcQFx8bNVOd+/7cz7e+9lsO7Dven1vTwU03X8K6c1ZMG797+CA/OvA4RwpDx9pWtWR585rLOKWlY9b6EsXDdA79lFR86FhbIerkaOY6CunTAPi/Dz3DfVt2MTpWfg4SEVz20tXc8tcvI5GofxzMtj+LpRJ3PvU42/t6mTiAM8kUG047m9esPXva+Nb+R/n6w0/zvV1rGC2Vgy4VxVxzwUrec935cwqD/tExPv3IDp48fHxeKzJp3n7RuVyxdm4nObVU15rufYxlO+8lOT5wrH8sezZHL3wncXpZw9uYkNy/nbbf3EVyqGqfda9j6J/fStxxSkPrjItFnv2PH+bszqdY1nn8eRykG275JHSUj72Z9unBH/2SPZ/9XxQO9wMQRTG2voOO1qNElT0cZ9rhur+Ca2+c1/yKTz3JyB1fJn5+/7G2wjgM9kOplCC19lRWvO9vabXz5rXeXC5b86BZyCnqm4GMu18FvB/4zESHma0B3gO8CtgAfNLMWoGPAN929/XAY8AtM4xdFOPxMEd4YlIIAAzzHEfYUR6TfnxSCADExIwVR4nSzxKlnp9hCzGZ9l3HQqBQinmif3IIAPQXD7Fr7ImFF1RHJr1vUggAJKISba17SCbmFjaHxo5MCwGAXSN7eXJo57TxLewmw7PHQgAgikq00UOKmZ6z4+6790+TQgCgd/9R7rv3T9PGxnHMLw75pBAAeH4sz88P7ZjT9paNPDIpBABS8QDtY7+GOGb3/jz3P3w8BABKMWzdfoCf/frPc9pGPT977lm2VYUAwEixwE/37eTQyOSaosIQ/vRj3LPr1GMhAFCIIx70gzzkvXPa5nf+uGtSCAAcHhnnuzt2UZhyjDakVKB9932TQgCgJb+Ttl0/Wvj64xKZbfdOCgGAVN8uMtvubni1O7/2Q9amn5wUAgDL6CP6wVdmXb44PMq+2//pWAgArF4Xk23NHwsBgGhkCB76P3D4wLzmN/q970wKAShfYLRVznUKe5+j/67vzmudM1lIEFwN3A/g7o8Al1X1XQ5scfdRd+8HeoCLqpcB7gNeO8PYRXGUnZQYq9k3zEFiSpQStV9UJUqUKBCl6u/ERHKQVOroscd7jo4wXKj9AhsoHp7HzOenJXWEWieIiahEJj23N+VnR/ZOC4EJ+8cOTt8m+2tuM4pKtLJn1u0NHh3j2Z7az8mzPYfpOzT5zbF3LM++kb6a4/cO9zFeKsy4vSgeI1XcX7MvXTxAotTHI3/Yz8ho7edgx87a256rnoHayw8VC/y6d9+kttb84/xiX5ax0vTbKzERv/vzkTlt84lDAzXb9+SH2brvUM2++Wg5+CipkdrHVzo//eRhvhK9PSQP76rZl+ztgVLtfTWb0uMPs3xV7SuqxJ4nYJY7JYd/vImxPZPfF7LdtcdGw3n47c/nPLfigf2Unn6qZl8qzbETr9EnnqLQu/B9CAv7jKAT6K96XDSzlLsXavTlga4p7bXaqtvr6u5uJ5Wa2/3HkaNp+oZq96VTCXLdHewdhLrnRjFk2pIsy9a+j1sqjU966yzOcPwkUhG53OT1TH3csPFk3SLa29K0d86+nbbxFNR7rlqS0+YaDySpk7G0ZVK0Vz1ntepMp4Yp1TkrLZVKdHa2TVpuMD9K6c+1n+A4illxSgeZGe7vxsURGKTm8xRRYkV3htbW+i+JZCox6/6aqT/ZU/+8q7UtPWnZ0liaYlz/1k86PX1/1DTDrazW9pYFHX+5XJbS0fqvw1QiXvDxXRxKUqT2Pk9GMStXdhAl5/82tjsV1721lohiunPZY/21ahhMT9+XM92pa2tN0jHH52J06DDDxToBV72NQpHubAuZRXgPWUgQDADVM0hUQqBWXxY4UtU+XKNt6ti6+uq9s9cQxauISBEz/WwxKnRy8OAQpLshNTytP0GCRJRk+GgnQ+P1bq+k6OhsJ5Uuz2ntshZ6+ocZLU0/eNtKnZPuNy7mZwRtLW10ZKa3xzH05zsYL86+neWlbiIi4hovvM54+lxb6aLWHcc4hvxIN2Mj5fEz1bl23XKeeXL6Wc3p65aTSDFpuba4hVUtnTw/Nv0sd3VLJ/m+EfKMzFhjNlpZ82plPJGjv7+NC87oJJWMKNRI9NNzy2bcX7PtzzXpZfyR6VefLYkk52eWT1o2EZ3Lpaf8ge//uUSpxoX72d1tczp21mXb2Tcw/fWSa2/lpZ0dDR9/E7VGmZfS1bKc5Nj0l+xIZi2DCz2+M+vo6DyV5MBz07rGl59J/+Hpr9u5GDnjIgYOPUPnKdOf2/FTzuLgwfJVfr192rL+MtIruxk/ePwqb2gAump8ZBG3ZBg+5+UMz/G5iDPLSaw7m9Kzz0zrK45DXDlBaDnvbAZaO8jP4zmuF8wLuTW0BbgewMyuBLZV9W0F1ptZxsy6gAuB7dXLABuBTTOMXRStURdZanwQxwqW8xIAUoW/gNL0T+BbEmkonko8fvoMW4gYHVlLqXIfN5NKclZnZtoT257IcmbL+Y2WMavhsdMZK0y+kIpjGBlfxXixzjXrFKe25DgrM73W1elTeMmyc6e1j3Iuo/Hqae1jnM4YMz1nx133hgvo7Jr8kVBHZyvXbpj+YWgiirhy+TlkEpPP+juTGa7qnttzO9xyCcVo8geYRVoZbnk5RBEXnnMKV1106rTlbN1y3vCqxr79MeH1p53NWR2T91EEXJ47jTOntJfS3VxxwVlct2b6bZdXrF3G9S9bM6dtvsXO4NRlbZPaMqkEG885jcwcr6pnEqcyjJz2akpT9kmhbTXDZ7x+wesnkWLUXk8pPbmGYvtKRi+8vs5Cszvn3/81ew6vYmxkcuAPj2eINr5t1uXT3Z3kbtpA1NpyrG3fThgcbpk0Lo4S5W8OnTH3D3WjRIL0G26A7ORv/BULMPFRUmJ5J9m3vHFRvskGi/OtoYsoH883U36T73H371e+CfTvKIfNP7j7PWa2GvgG5bP+g8Bb3X2w1tiZtj3fbw3FccxRdjPEc8QUaWE5XZxPMjq+00pRnkLSiZO9JBIlUnSSKJxOPL6OueRlMjVAS+sBomicUqmVvfkUz48dpBgXaE90cHrLebQkJr/hLe63hgCKtLXsJZ3MExMxVuhmdHwNM33jaao4jnl6eDfPjfZSikuc0rKclyw7l1RU702jSIYe0hwEIsZYxSjnTtrmbHU+t6efh3++k/4jI2Q7W7nymrM4Y1398No73MfjA7sZLI7QmWrn0q6zWNk698vjRPEwbWPbScR5StEyRtMXUkgdD7Q4jtn86D629RyiUIw5e20nr7/qTFpbZn7jnMv+HC0WePC5XewZHCCdSPLS5Su5bOWp9W9T9P+J//fH3Tz6fJpi1MoFp5/Om15+Junk3M/hDg2N8KOefewfHGFZS5L1Z6ziolVzOzmoZ2qtqcM7aD34KFFhiFJbjuHTriVuXb6gbVRLPu+kn91CYvQopWUrGT3/tcTZVQtaZ3FolAO3f42OQ9tIp4tEq88k869vgeXH1zvbPj3yy0c5/MAWikeHyJy1ljX/6rWkt2+Cfc9AqgUuvBResX7m+0b15rfzacZ/+SDxkSPEqRZGhiOKQ+Mku7tYtvE1tJ43/QR3NvW+NdRwECyl+QbBi9XiB8GLk+psPqHU2mx1vhBfHxURkSagIBARCZyCQEQkcAoCEZHAKQhERAKnIBARCZyCQEQkcAoCEZHAKQhERAKnIBARCZyCQEQkcAoCEZHAKQhERAKnIBARCZyCQEQkcAoCEZHAKQhERAKnIBARCZyCQEQkcAoCEZHAKQhERAKnIBARCZyCQEQkcKlGFjKzNuCbwCogD7zN3XunjPko8EagANzm7lvN7Dzg60AMbAdudfeSmX0fOAUYB4bdfWOD9YiIyDw1ekXwbmCbu68H7gI+VN1pZpcA1wBXADcBX6x0fRb4UGW5CLix0n4ecLW7X6sQEBE5sRoNgquB+ys/3we8tkb/A+4eu/tuIGVmOeBS4BfVy5nZamA58AMz22xmb2pwTiIi0oBZbw2Z2TuA905pPgD0V37OA11T+juBQ1WPJ8ZE7h5PaWsBPgN8HlgBbDGzre7+fL05dXe3k0olZ5v6SSGXyy71FE4I1dl8Qqk1hDpnDQJ3vwO4o7rNzL4HTDw7WeDIlMUGqvqrx5RqtO0Hbnf3AvC8mT0GGFA3CPr6hmab9kkhl8vS25tf6mm84FRn8wml1mars16oNXpraAtwfeXnjcCmGv0bzCxhZmcCCXc/CDxmZtdOWe61wHcBzKwDeBmwo8F5iYjIPDX0rSHgy8A3zGwzMAa8FcDMPgXcXfmG0CbgV5TD5tbKcn8HfNXMWii/2d/t7kUz22Bmj1C+Yvj7SmiIiMgJEMVxPPuoF5ne3vzJN+kamu2ysx7V2XxCqbXZ6szlslGtdv1CmYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAQu1chCZtYGfBNYBeSBt7l775QxHwXeCBSA29x9a1Xf5wB399srj98F3FIZ+3F3/2Ej8xIRkflr9Irg3cA2d18P3AV8qLrTzC4BrgGuAG4Cvlhpz5nZfcBfVo1dA7wHeBWwAfikmbU2OC8REZmnhq4IgKuBT1V+vg/4cI3+B9w9BnabWcrMckAH8DFgY9XYy4Et7j4KjJpZD3AR8Jt6G+/ubieVSjY49ReXXC671FM4IVRn8wml1hDqnDUIzOwdwHunNB8A+is/54GuKf2dwKGqx3mgy917gJ1mtnHK2P6pY2eaU1/f0GzTPinkcll6e/NLPY0XnOpsPqHU2mx11gu1WYPA3e8A7qhuM7PvARNrzAJHpiw2UNVfb0wjY0VEZJE1+hnBFuD6ys8bgU01+jeYWcLMzgQS7n6wzrq2AuvNLGNmXcCFwPYG5yUiIvPU6GcEXwa+YWabgTHgrQBm9ingbnffamabgF9RDptb663I3feb2Rcoh0kC+KC7jzQ4LxERmacojuOlnsO89fbmT75J19Bs9x/rUZ3NJ5Ram63OXC4b1WrXL5SJiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4BQEIiKBUxCIiAROQSAiEjgFgYhI4FKNLGRmbcA3gVVAHnibu/dOGfNR4I1AAbjN3bdW9X0OcHe/vfL4C8CrKusCuNHd+xuZm4iIzE9DQQC8G9jm7h8zs5uADwH/YaLTzC4BrgGuAM4A7gFeaWY54C7gAuC/Va3vEmCDux9scD4iItKgRoPgauBTlZ/vAz5co/8Bd4+B3WaWqoRAB/AxYOPEQDNLAOcDXzGz1cAd7n7nTBvv7m4nlUo2OPUXl1wuu9RTOCFUZ/MJpdYQ6pw1CMzsHcB7pzQfACZu3eSBrin9ncChqsd5oMvde4CdZraxqm8Z8I/AZ4Ek8JCZ/dbd/1BvTn19Q7NN+6SQy2Xp7c3PPvAkpzqbTyi1Nlud9UJt1iBw9zuAO6rbzOx7wMQas8CRKYsNVPXXGzNhCPi8uw9V1v0gcDFQNwhERGTxNPqtoS3A9ZWfNwKbavRvMLOEmZ0JJGa4/38BsNnMkmaWpnxb6dEG5yUiIvPU6GcEXwa+YWabgTHgrQBm9ingbnffamabgF9RDptb663I3XeY2beAR4Bx4C53/2OD8xIRkXmK4jhe6jnMW29v/uSbdA3Ndv+xHtXZfEKptdnqzOWyUa12/UKZiEjgFAQiIoFTEIiIBE5BICISOAWBiEjgFAQiIoFTEIiIBE5BICISOAWBiEjgFAQiIoFTEIiIBO6k/FtDIiKyeHRFICISOAWBiEjgFAQiIoFTEIiIBE5BICISOAWBiEjgFAQiIoFr9D+vlwaY2b8A/qW7v7Xy+Erg80ABeMDd/7OZJYAvARcDo8A73b1nqebcKDOLgD3AU5WmX7n7B8zsBuAjlGu+092/ulRzXCzNss/qMbPHgP7Kw53A/2TKcbtUc1sMZnYF8F/d/VozOw/4OhAD24Fb3b1kZh8F3ki55tvcfeuSTfgFoCA4Qczs88AG4PdVzbcDfwU8A/zIzC4BzgIy7n5VJSg+A9x4gqe7GM4FHnX3GyYazCwNfA54JTAIbDGzH7j7/iWa42J5M82xz6YxswyAu19b1fZ7phy37v7o0sxwYczsPwH/hvLxCPBZ4EPu/nMzux240cx2AdcAVwBnAPdQPoabhm4NnTgPA++eeGBmnUCruz/t7jHwE+A1wNXA/QDu/ghw2RLMdTFcCqw1s4fM7MdmZsCFQI+797n7GLAZWL+ks1wczbLParkYaDezB8zsQTN7NbWP25PV08Bbqh5fCvyi8vN9wGsp798H3D12991AysxyJ3aaLyxdESwyM3sH8N4pzTe7+/82s2ur2jqBgarHeeCcSnt/VXvRzFLuXngh5rsY6tR8K/BJd/8nM7sa+GZlTHVteaDrxMzyBXXS7bN5GAI+DXwNOJ/ym+ORqv6J4/ak5O73mNlZVU1RJeDg+PHZCRyqGjPR3ntCJnkCKAgWmbvfAdwxh6EDQLbqcZbyC6x9Snvixf6GUqtmM2unfD8Vd99sZmspv4Bq1Xyym7ovX/T7bB6epHwVFwNPmlk/sKKqv1n24YRS1c8TtdV7rTYN3RpaIu4+AIyZ2bmVD1Y3AJuALcD1cOzD5G1LN8sF+ShwG4CZXQzsBv4EnG9mK8ysBXg18Kulm+KiaZZ9VsvfUP7MAzM7jfKJymCN47ZZPFZ15b6R46/JDWaWMLMzKQf9waWa4AtBVwRL62+BbwFJyvcgf21mvwFeZ2YPAxFw81JOcAH+C/BNM5v4psXb3X3czN5H+b5ygvK3hvYu5SQXyb00xz6r5Q7g62a2mfI3af6G8lnzpON2Cee32P4O+GrlRGUHcLe7F81sE+WTlgTl255NRX+GWkQkcLo1JCISOAWBiEjgFAQiIoFTEIiIBE5BICISOAWBiEjgFAQiIoH7/1ZXZNSKrySNAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bad_isomap = Isomap(n_neighbors=23, n_components=1)\n",
"swiss_roll_1d_bad_isomap = bad_isomap.fit_transform(swiss_roll_2d)\n",
"\n",
"plot_1d(swiss_roll_1d_bad_isomap)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x1a22e4e590>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(bad_isomap.dist_matrix_)\n",
"plt.colorbar()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x1a23096b90>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.subplot(1, 2, 1)\n",
"plt.imshow(isomap.dist_matrix_)\n",
"plt.colorbar()\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"plt.imshow(bad_isomap.dist_matrix_)\n",
"plt.colorbar()"
]
}
],
"metadata": {
"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.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment