320 lines (319 with data), 39.7 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "e374cee0-2db8-4df5-a1f1-7be63928112b",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import tensorflow as tf\n",
"from sklearn.utils import shuffle\n",
"import matplotlib.pyplot as plt\n",
"from aggmap import AggMap\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "72eb532d-0cd5-45a7-b453-ed108fcef78d",
"metadata": {},
"outputs": [],
"source": [
"(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() #load data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "4e87802f-df13-4957-87fd-b0e562b2d9b3",
"metadata": {},
"outputs": [],
"source": [
"_, w, h = x_train.shape\n",
"orignal_cols = ['p-%s' % str((i+1)).zfill(len(str(w*h))) for i in range(w*h)]\n",
"x_train_df = pd.DataFrame(x_train.reshape(x_train.shape[0], w*h), columns=orignal_cols)\n",
"x_test_df = pd.DataFrame(x_test.reshape(x_test.shape[0], w*h), columns=orignal_cols)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3ed7d521-0c83-4e03-808b-1d9559f11363",
"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": [
"ax = plt.imshow(x_train_df.iloc[0].values.reshape(w,h))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "5e3d1cb8-a894-4626-a8f2-e6a96778d7c8",
"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": [
"ax = plt.imshow(x_test_df.iloc[0].values.reshape(w,h))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7363c597-3df6-41ce-820f-b5ffadd3bf80",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "66189c02-746a-4652-8956-90021183e6e7",
"metadata": {},
"source": [
"## Step1: MNIST pixel random permutation"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9b75a33b-86c1-4aa1-beb3-aacfa0838dff",
"metadata": {},
"outputs": [],
"source": [
"shuffled_cols = shuffle(orignal_cols, random_state=111)\n",
"x_train_df_shuffled = x_train_df[shuffled_cols]\n",
"x_test_df_shuffled = x_test_df[shuffled_cols]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "50a60f1d-f38f-4a01-90f9-de9fbbddd5bb",
"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": [
"ax = plt.imshow(x_train_df_shuffled.iloc[0].values.reshape(w,h))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "970f5165-da92-4cca-af8f-6ff6f20b19c6",
"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": [
"ax = plt.imshow(x_test_df_shuffled.iloc[0].values.reshape(w,h))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2e2d3b34-4ba0-4f03-aaec-dc727dc3f10c",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "5ff55cb0-d6a7-4490-b8e9-3f2a7a5b82ae",
"metadata": {},
"source": [
"## Step2: AggMap pre-fitting on training set"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ba9efed8-11f9-42dd-9819-a171551a5c6b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2021-10-04 02:32:45,967 - \u001b[32mINFO\u001b[0m - [bidd-aggmap]\u001b[0m - Calculating distance ...\u001b[0m\n",
"2021-10-04 02:32:46,004 - \u001b[32mINFO\u001b[0m - [bidd-aggmap]\u001b[0m - the number of process is 16\u001b[0m\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|#########################################################################| 306936/306936 [00:54<00:00, 5664.44it/s]\n",
"100%|######################################################################| 306936/306936 [00:00<00:00, 1966620.01it/s]\n",
"100%|################################################################################| 784/784 [00:02<00:00, 362.02it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2021-10-04 02:33:42,732 - \u001b[32mINFO\u001b[0m - [bidd-aggmap]\u001b[0m - applying hierarchical clustering to obtain group information ...\u001b[0m\n",
"2021-10-04 02:33:46,554 - \u001b[32mINFO\u001b[0m - [bidd-aggmap]\u001b[0m - Applying grid feature map(assignment), this may take several minutes(1~30 min)\u001b[0m\n",
"2021-10-04 02:33:47,175 - \u001b[32mINFO\u001b[0m - [bidd-aggmap]\u001b[0m - Finished\u001b[0m\n"
]
}
],
"source": [
"mp = AggMap(x_train_df_shuffled, metric='correlation')\n",
"mp = mp.fit(cluster_channels=1, var_thr=0, verbose=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "816902d4-0d94-441f-a577-1e0cc472d6ab",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "6cfc6f5d-7bae-409e-9789-ef371cbc7d06",
"metadata": {},
"source": [
"## Step3: AggMap transformation on training and test test"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "0aabf684-e8c7-4c5e-b170-c335ea07828d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|###########################################################################| 60000/60000 [00:29<00:00, 2043.71it/s]\n",
"100%|###########################################################################| 10000/10000 [00:04<00:00, 2351.53it/s]\n"
]
}
],
"source": [
"x_train_restructured = mp.batch_transform(x_train_df_shuffled.values)\n",
"x_test_restructured = mp.batch_transform(x_test_df_shuffled.values)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "72ff0bd8-80f8-4ec4-bf1d-9fc5ea242915",
"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": [
"ax = plt.imshow(x_train_restructured[0].reshape(*mp.fmap_shape))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "7299d60d-470c-4cbc-b617-a9515b270319",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAANwklEQVR4nO3dbYwd5XnG8euKvSx4IcXmrY5xIKG0ivuCgza8iKqltRLAJDUooQlqkSvRGCKoIM2HorQB2kqUVgkoVVokU6w4ESWNSgC3cdIgi+CiUMNCjTGYxIQ6xGFrF1BqmxRjw90PO0Qb2H1mfWbOC77/P2l1zpl7fOb2sa+d2XlmnnVECMDB7239bgBAbxB2IAnCDiRB2IEkCDuQxOxebuwQD8ehGunlJoFUXtZLeiX2eqpao7DbPlfS5yXNkvQPEXFjaf1DNaLTvaTJJgEUbIh109Y6Poy3PUvS30k6T9IiSRfbXtTp+wHoriY/s58m6emIeCYiXpH0FUnL2mkLQNuahH2BpB9Oer29WvYzbK+wPWZ7bJ/2NtgcgCaahH2qkwBvuvY2IlZGxGhEjA5puMHmADTRJOzbJS2c9Pp4Sc81awdAtzQJ+8OSTrb9LtuHSPqYpDXttAWgbR0PvUXEfttXSvo3TQy9rYqIJ1rrDECrGo2zR8RaSWtb6gVAF3G5LJAEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiCJRr+y+a3mhY+fWawfdeuDPeoE6L1GYbe9TdJuSa9K2h8Ro200BaB9bezZfysinm/hfQB0ET+zA0k0DXtI+pbtR2yvaKMhAN3R9DD+rIh4zvaxku61/VRErJ+8QvVNYIUkHao5DTcHoFON9uwR8Vz1uFPSXZJOm2KdlRExGhGjQxpusjkADXQcdtsjto94/bmkD0ja3FZjANrV5DD+OEl32X79ff4xIr7ZSlddUjeOPrL+mGL9qZ3HFeuv7B2q7eGk3/vP2nWAbug47BHxjKRTWuwFQBcx9AYkQdiBJAg7kARhB5Ig7EAShB1IgrADSaSavOLS7/1Xsf7hkUfLb3BS8x5++4OXF+tztu8p1l/b+GTzJvrol8bqLzxq4qGdJxTrI5/7udr3mL3ukbbaGSjs2YEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCUdEzzb2ds+L072kZ9s7UD/4i/IvkZi7pfxZPfDZv6/dxrb9PynWt+47qlhf++Nfq91GN908f0Ox/snx04v1G37+34v1DXtHivWzD91XrNf5ha9fVrvOnG3lawGOv+E7jXropg2xTrviRU9VY88OJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0mkup/9pY+Ux4BPuLb8SyTqxuGXLji1tofxu99TrC+8/MVifc0j3yjWv/6Tw4v18+eU75f/zas+Ua6r/He8//O3FOtLVvxRsT6yabxYP2r9ncX6rx5SHiO//MxvF+uStP668sQF+2vfYTCxZweSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJLif/SDz0ofL1xK8/f6ni/VXn3+h2fZrrmUY+efy/fAv/GH5WoYH//wLxfqQZxXr57xjcbH+Vtfofnbbq2zvtL150rJ5tu+1vbV6nNtmwwDaN5PD+C9KOvcNy66RtC4iTpa0rnoNYIDVhj0i1kt64zWcyyStrp6vlnRBu20BaFunJ+iOi4hxSaoej51uRdsrbI/ZHtunvR1uDkBTXT8bHxErI2I0IkaHNNztzQGYRqdh32F7viRVjzvbawlAN3Qa9jWSllfPl0u6p512AHRL7Ti77TsknS3paEk7JF0n6W5JX5X0TknPSrooIso3YotxdtSbfcLCYv0z991drF95w5XF+rwny/P2S5K/81jtOoOqNM5eO3lFRFw8TYnUAm8hXC4LJEHYgSQIO5AEYQeSIOxAEoQdSCLVvPEYfE99ckGx/r7hKYeQf2r1n91UrP/xieX75Q9m7NmBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnG2dFTe89/X7H+6EdurnmH8tRmmcfR67BnB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkGGdHTz17Xnn/8vFtHyzWdy3ZU6z/37JTivXD7nmoWD+YsWcHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQYZ0erznhsX7G+9uhbivVdr71crF+45KpiPfM4ep3aPbvtVbZ32t48adn1tn9ke2P1tbS7bQJoaiaH8V+UdO4Uy2+OiMXV19p22wLQttqwR8R6SS/2oBcAXdTkBN2VtjdVh/lzp1vJ9grbY7bH9mlvg80BaKLTsN8i6SRJiyWNS/rcdCtGxMqIGI2I0aGayQIBdE9HYY+IHRHxakS8JulWSae12xaAtnUUdtvzJ728UNLm6dYFMBhqx9lt3yHpbElH294u6TpJZ9teLCkkbZN0WfdaxCB52xFHFOvXHn1/sb5s6/nF+r6zx4v1YT1crGN6tWGPiIunWHxbF3oB0EVcLgskQdiBJAg7kARhB5Ig7EAShB1IgvvZcUC2Xv/Lxfr393+zWN/z18cX68Mqj7Ojc+zZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJxtnxM/73988o1jd99G+L9WEfVqzv+sSuYv2YbxTLaIA9O5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kwTh7MrMXvKNYv/oz/1SsD7v8X+b23ccW68f8zneLdXQPe3YgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIJx9oOMZ5f/SU/51+3F+kWHv9Bo+3d89P01a2xp9P7oXO2e3fZC2/fZ3mL7CdtXVcvn2b7X9tbqcW732wXQqZkcxu+X9KmIeI+kMyRdYXuRpGskrYuIkyWtq14DGFC1YY+I8Yh4tHq+WxPHYQskLZO0ulpttaQLutQjgBYc0Ak62ydKeq+kDZKOi4hxaeIbgqQpL4q2vcL2mO2xfdrbsF0AnZpx2G0fLulOSVdHRHnWwEkiYmVEjEbE6JCGO+kRQAtmFHbbQ5oI+u0R8bVq8Q7b86v6fEk7u9MigDbM5Gy8Jd0maUtE3DSptEbS8ur5ckn3tN8egLbMZJz9LEmXSHrc9sZq2acl3Sjpq7YvlfSspIu60iGAVtSGPSIekORpykvabQd1Zi36xWL9tcOGivW/PPbLxfqiVVcU6yde+x/F+o8vObJYP/KxYhldxOWyQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEk1cMmK1fOL1Yv+mc24v1D82Z8W0LUzr+26+UV4golo/80oONto/uYc8OJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kwzt5jL3/otGJ91p7y999TDvnvmi3MOcCOkAV7diAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgnH2Hjv0Xx4qr3DWmcXyO2c3G0e/ffeUv3/zp4Z2le9nL9/NjkHGnh1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkmCcfcC8+5qaedcvKZf/6oVFxfqD55xYrMf44+UN4C2rds9ue6Ht+2xvsf2E7auq5dfb/pHtjdXX0u63C6BTM9mz75f0qYh41PYRkh6xfW9VuzkiPtu99gC0pTbsETEuabx6vtv2FkkLut0YgHYd0Ak62ydKeq+kDdWiK21vsr3K9txp/swK22O2x/Zpb7NuAXRsxmG3fbikOyVdHRG7JN0i6SRJizWx5//cVH8uIlZGxGhEjA5puHnHADoyo7DbHtJE0G+PiK9JUkTsiIhXI+I1SbdKKk+bCqCvZnI23pJuk7QlIm6atHz+pNUulLS5/fYAtGUmZ+PP0sTo7uO2N1bLPi3pYtuLNXGL8zZJl3WhP7zB0gWnNnyHunnncbCaydn4ByR5itLa9tsB0C1cLgskQdiBJAg7kARhB5Ig7EAShB1IwhG9mwnc9v9I+sGkRUdLer5nDRy4Qe9PGvwe6a+ZA+3vhIg4ZqpCT8P+po3bYxEx2rcGagx6f9Lg90h/zbTZH4fxQBKEHUii32Ff2eft1xn0/qTB75H+mmmtv77+zA6gd/q9ZwfQI4QdSKIvYbd9ru3v2n7a9jX96KGO7W22H6+myR4bgH5W2d5pe/OkZfNs32t7a/U45TyAfe5xIKYcL0yJPjCfYbenbe/5z+y2Z0n6nqT3S9ou6WFJF0fEkz1tpIbtbZJGI2IgLriw/RuS9kj6UkT8SrXsbyS9GBE3Vt8050bEnwxYj9dL2tPvKcermZXmT54SXdIFkv5AA/IZFnr8XbXwGfZjz36apKcj4pmIeEXSVyQt60MfbykRsV7Si29YvEzS6ur5ak38x+ibaXocCBExHhGPVs93S3p9SvSB+QwLPbaiH2FfIOmHk15v12DOQx+SvmX7Edsr+t3MNI6r5vV/fX7/Y/vcz3RqpxzvpTdMiT6Qn2En07bX6UfYp5riahDH/86KiFMlnSfpiuoQFQduRlOO98oUU6IPnE6nba/Tj7Bvl7Rw0uvjJT3Xhz6KIuK56nGnpLs0mFNl73h9lt/qcWef+3mTQZpyfKop0TVgn2E3p23vR9gflnSy7XfZPkTSxySt6UMf07I9Up0gke0RSR/QYE6VvUbS8ur5ckn39LGXKQ3KlOPTTYmuAfoMuz5te0T0/EvSUk2ckf++pD/tRw81/b1b0mPV1xOD0KOkOzRxCLdPE0dHl0o6StI6SVurx3kD2OOXJT0uaZMmgjW/T739uiZ+XNwkaWP1tXSQPsNCj618hlwuCyTBFXRAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kMT/Ax+qFlAhMrx8AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ax = plt.imshow(x_test_restructured[0].reshape(*mp.fmap_shape))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}