{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#\n", "#
*\"Two-way kernel matrix puncturing: towards resource-efficient PCA and spectral clustering\"*
\n", "##
-- Supplementary Material --
\n", "##
-- Python Codes of main article figures --
\n", "\n", "## Preamble: useful packages and functions" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy as sp\n", "\n", "import matplotlib.pyplot as plt\n", "import scipy.linalg as lin\n", "import scipy.stats as stats\n", "import scipy.sparse.linalg\n", "import scipy.special\n", "import pandas as pd\n", "import seaborn as sns\n", "\n", "from numpy.random import default_rng\n", "\n", "rng = default_rng(0)\n", "\n", "%load_ext autoreload\n", "\n", "%autoreload 2\n", "\n", "# user's functions from the local .py file\n", "from punctutils import *\n", "\n", "%matplotlib inline\n", "\n", "plt.rcParams.update({\"font.size\": 12})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Two-way puncturing of the kernel matrix\n", "\n", "The data matrix is $X\\in \\mathbb{C}^{p \\times n}$ where $p$ and $n$ are the feature and sample size resp.\n", "\n", "Then \n", "$$K = \\left[ \\frac 1p (X \\odot S)' (X \\odot S) \\right] \\odot B$$\n", "is the $n\\times n$ *two-way punctured* kernel matrix where:\n", " - matrix $S$ is the Bernoulli iid $(p \\times n)$ random matrix to select the **data** entries with rate eS\n", " - matrix $B$ is the Bernoulli iid $(n \\times n)$ random matrix to select the **kernel** entries with rate eB" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulations\n", "\n", "#### Figure 1.\n", "Eigenvalue distribution $\\nu_n$ of $K$ versus limit measure $\\nu$, for $p=200$, $n=4\\,000$, $x_i\\sim .4 \\mathcal N(\\mu_1,I_p)+.6\\mathcal N(\\mu_2,I_p)$ for \n", "$[\\mu_1^T,\\mu_2^T]^T \\sim\\mathcal{N}(0, \\frac1p \\left[\\begin{smallmatrix} 10 & 5.5 \\\\ 5.5 & 15\\end{smallmatrix}\\right]\\otimes I_p)$; \n", "$\\varepsilon_S=.2$, $\\varepsilon_B=.4$. Sample vs theoretical spikes in blue vs red circles. The two \"humps\" remind the semi-circular and Marcenko-Pastur laws." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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YGAgHTp0YNq0abz55puuMgMGDGDEiBH4+/szZcoUdu3aBYC/vz85OTl8//335OXlERMTQ8eOHd16bXfccQdvvPEGhUXNsMuWLSs32dUWXqlZGGMyRGQ18JiI3AP0BMYA/coqLyIO4JfAeG/Ep9z097/Dxo2wcCH7vvyOysya2LN7F+PunOm63ymmE8+0bAmTJsHXX0MV16/xSTXwF7+3NGvWzPW7w+G46H5VOq2LJ4CQkBDXuRITE2nTpo3rMRG55Oim0uXbtWvn+j0hIYHExEQiIyNdxwoKChg48MLo/dJxZGdnk5+fT6dOnXj++eeZO3cu8fHxDBs2jL/+9a+0bNmywtfWp08fQkND2bx5My1atODAgQOMHj26wufZyZtDZ2cADuA0sBK4zxgTLyIDRaT0J2osVp/Gp16MT13K999bcyRGjYJ77630aXKNP0F9J7tuB9LzYMUKOHQIHnywGgNWtVlVJom1aNGCY8eOue4bY0rcL6v80aNHXfePHDni+r1NmzauJiLnLS0tjQ8++MCtWCZNmsTWrVtJSEhARPjjH/94UZnyXusdd9zB8uXLWbZsGTfffDPBwcFuXdMuXksWxphkY8xYY0yoMaatc0KeMWZL0XyK4mVXGmPaGWOMt+JTl2CMNYIpLAwWL67+4a4DBljt9osXw7Zt1XtuVSl5eXlkZ2e7bvn5+dV6/mbNmlV6TsWNN97Inj17eO+998jPz2fBggWcPHmy3PK33HILTz75JOfOnePYsWO8+OKLrsd69+5NREQETz31FFlZWRQUFPDdd99d1Aleln379vHJJ5+Qk5NDcHAwDocDf3//i8pFR0fj5+d30eudMmUK7777LsuXL+f222/34B2wh64NpSq2YgV8/jk89RRcom24Sv7yF2jTxqq1VPMXk/LciBEjcDgcrtvcuXOr9fy//vWveeedd2jUqFGJPgR3REVFsWrVKh566CGaNGnC999/T2xsLEHlLCfz5z//mXbt2tG+fXuGDh1aom/A39+fdevW8e2339K+fXuioqK45557SEkpPXjzYjk5OcyePZuoqCiaN2/O6dOnmT9//kXlQkJCiIuLo3///kRGRvLFF18A0Lp1a3r16oWIlGj2qq2krvzxHhsba4oPaVPVJC0NLr+cwwi/GzYOU1SriN+7j153PVai6LZFD9PvV0+We7+sYznbV/Duv16y7rz7rjUbfNGiKjV1+YK9e/fSpUsXu8OoEwoLC2ndujUrVqxg8ODBdofjkbvuuouWLVvyxBNP1Pi1yvvMicj/jDGxFT1faxbq0p5/Hk6e5OWf9yOw322uvgZ35lR4bOxYq0nqz3+GOjSbV1W/DRs2cP78eXJycpg/fz7GGK655hq7w/LI4cOHWb16NXfffbfdobhFk4Uq39mz8OyzMG4cP0bXUPNTcSLwzDNw6pQ1rFapcmzfvp2OHTsSFRXFunXreO+993A4HHaH5bZHH32U7t278+CDD9K+fXu7w3GLJgtVvqeespqhHn/ce9e85hoYM8aarJea6r3rKp8yd+5czp49S1paGl9++SV9+vSxOySPPP7446SnpxMXF2d3KG7TZKHKdu4cvPwyTJgA3SpawquazZkD58/DwoXeva5SqlyaLFTZXn4ZMjKgjHHjNS42FoYOtZqiMjO9f32l1EU0WaiLZWXBCy/AL34BPXrYE8Mjj8Dp09awXaWU7Xx3cXVVc954w/qifuihGr9U6eU/AFpFRfDS0/Osxe9eeAHuuUf3vVDKZposVEnGwIIF0L07XHddjV/OufxHcce3r7CSw6xZcNddsGkT+Nj4eaXqGm2GUiV99RV88421ZLjdf81PnAhRUVbtQillK00WqqSXX7bWgCrauMVWwcFw552wbh1cYu0fVf1iYmL473//C0C3bt3YtGlTpc5T0XOrcu6aUDye4u+B0mYoVVxKCrz9Nls6d+Gvsx4u8VD83n306mtDTHfdZU3UW7ZMV6W1SXz8pbadcf+5Ze3tXZVz14TaFk9toslCXbBqFWRns651x4v6EbJ3PVzOk2rYz34G/frBq69aW7Da3TSmVD2lzVDqgqVL4Wc/48eopnZHUtLdd8MPP8D27XZHYruVe1bS/eXu+D/mT/eXu7Nyz8oav2bx5hhP9t0u/twpU6Zw5MgRRo0aRVhYGE8//XSZ53722We58soradiwIbfeeivZ2dmuc3399ddcddVVhIeH88tf/pJbb72VOXPmlBlzeXtjO6/z5JNP0rVrVxo1asSdd97puk55TU8//PAD7du3d+2gd6l9uyu6fmlpaWlMnz6dRo0a0bRpU/72t7+V/49hI00WynLggLUM+dSpte+v91/+EhwOa0hvPbZyz0riPonjxeEvkh2XzYvDXyTukzivJIzinPtu79+/n3Xr1jF8+HDmz59PUlIShYWFF31xgrVtaNu2bVm3bh3p6ek8VM6w7LfffpsPP/yQQ4cOsXv3bpYuXQpAbm4u48aNY+rUqSQnJzNx4kTefffdMs9RfG/stLQ0NmzYQExMTIkyK1asYMOGDRw8eJD9+/dfctXXr7/+mqFDh/Liiy8yYcIE177dPXr04Pjx43z88cc8//zzbNiwwe3rFzd27Fg6duzIyZMnefPNN/nDH/5wyf057KLJQllWFA1XrQ0d26WFh1t7da9aVa/3upi3ZR5LRi9hcPvBNPBvwOD2g1kyegnztszzahw1ue/2rFmzaNmyJY0bN2bUqFGufbe/+OIL8vPzmTVrFg0aNHDtz10Wd/bGnjlzJm3atKFx48bExcWxcmXZCXfLli2MHj2a1157jZEjRwIV79vtyd7c//nPfwD44x//SFBQENdffz2tWrVi37599O7dm7CwML777rty36/t27fTt29fBg0axMSJE8nLq4HVoItoslCWt9+Ga6+FVq3sjqRsEydaEwU/rb877e5N2suAtgNKHBvQdgB7k/Z6NQ679t1u1apViS1Ki++rXVzxvbGbNm3KhAkTSExMLFGm9J7cpR93WrRoEf369SuxT0bxfbudt/nz53Pq1Cm3r++0du1axowZ47pfWFhISkoKzZs35/333+fmm28u83nFY//kk0/YvHkzHTp0YM2aNZcsXxWaLBTEx1t7bN9yi92RlG/4cIiIgKK/3uqjLlFd2Hpka4ljW49spUuUb2yiVNV9t48fP07xzdqK76tdWkV7Y5fek7tly5ZlnmfRokUcOXKE3/72t65j7uzb7c7e3ABffvklTZo0cd3/5JNPiIqKonPnzkRHR5f7+pxatmzpWpo9ICAAP7+a+0r3WrIQkcYi8q6IZIhIgohMukTZXiLymYiki8gpEfm1t+Ksl1atspqgxo+3O5LyBQfDuHGwejXUYFW7NosbGMfda+/m00OfkleQx6eHPuXutXcTN9A3lrmuyr7bffv2xd/fn5deeon8/HzWrFnDV199VWZZd/bGXrBgAceOHSM5OZn58+dz6623lnmu8PBwPvzwQz777DNmz54NVLxvt7t7c+fl5fHjjz/yzjvvkJ2dTXx8PDNmzOCpp57y+P05dOgQ69evdzWV1QRv1iwWALlAM2AysFBELlr7WkSigA+BfwBN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\n", "text/plain": [ "