Skip to content

Instantly share code, notes, and snippets.

@gerrymanoim
Created March 30, 2021 04:17
Show Gist options
  • Save gerrymanoim/da7f85e069adc3cd075dc32eb5a27984 to your computer and use it in GitHub Desktop.
Save gerrymanoim/da7f85e069adc3cd075dc32eb5a27984 to your computer and use it in GitHub Desktop.
Python implementation of IForestIndex
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# IForestIndex in Python\n",
"\n",
"via https://thume.ca/2021/03/14/iforests/. Not that one would do this, but for learning purposes. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Notes\n",
"\n",
"![Array Diagram](data:image/png;base64,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M/m/69+6dcek/PKjaTl5bP435efvec4yWnz2asOdBnqZV155ZVgHMVrLaGdqX2+6Lu+/Vbqjfvel5/KebCvdeffd+eYpG5V3pumr3+3ourw7PH+r333pubyHpbM6o373xfm7L+p3+1YuMZI9Od54cpZpG83cSJLhjocnQ/JimY2WrEpiY7w01v/xV2VDSXZ8/F4Z/t+6gXr9vz8+MR0SH4t/ZxIpmWHy1qGzS31F9hu56wkbr/P52rJlyzlff/LJJ8MGvXVZFtqivPuivPuivPvypS996ZyvlXfblHdflHdflHdflHdflHdflHe7ViYxcmB6dnbFPc9Pyl1PTsrJo9MhMbGYlBhLEmL82s0aZngs/L/5uHbbxv939hLJR34+CZj68+PZJbAKsk79nj17hgz2nXfeOTTiR44cKbRJefdFefdFefcl6xrv3btXeXdCefdFefdFefdFefdFefdFebdlZdd6SnJh2+2TCyZFft3/74WSImP52foaSRFWTZZauf/++4dGe/fu3UMDvtE0QNaf8u6L8u6L8u5LyjvlrLz7oLz7orz7orz7orz7orz7orzbs3JLaQGfjlOnTg1T+9JwZ5OoAwcODBtG0Sbl3Rfl3Rfl3Rfl3Rfl3Rfl3Rfl3Rfl3Rfl3Rfl3S6JEWjU66+/Pjxu3769PPLII+etUU9blHdflHdflHdflHdflHdflHdflHdflHdflHdflHe7JEagYTt37iz33XdfoQ/Kuy/Kuy/Kuy/Kuy/Kuy/Kuy/Kuy/Kuy/Kuy/Ku00ru8cIsDmZ1hc33njjho12Nu+tP8N6U959Ud59Ud59qeV90003LS3v6XSqvBuivPuivPuivPuivPuivPuivNsnMQKNue2224bHd955p3zyySfnfT+N9vHjx4fP07iz3pR3X5R3X5R3X2699dbh8WLlPZlMlHcDlHdflHdflHdflHdflHdflHf7JEagMVdfffWw7mFkc6hFBw8eHB7TwNfsN+tLefdFefdFefellnfuPFtW3ocOHRoelXcblHdflHdflHdflHdflHdflHf77DECDdq3b1956KGHyquvvlqOHTt2zl3H+ToN9ne+851CG5R3X5R3X5R3P3Kn2d69e8uePXs2LO+tW7eW3bt3F9af8u6L8u6L8u6L8u6L8u6L8m7fZJq0V4M+PlHKz38wLb/8eP7137x5UrbuKOXabQW68OGHH5YXX3xxaLzHku3OQFsP2ezD/1spd8wS+NuuKeW9naVpyntW3m/Myvv3Z+X9t2bl/R9K05S3+h09lff0tVL+z9+ddVyvL+UL75amKe9SXpvV79+d1e/rZ/X7XfW7tO61I7Py/n/Pyvu3ZuX9k9I05a1+R0/lXV47Pivw/3FW4LNY3/2T0jLlrX6H83eblHez9XvaZGLkhw9Oy0+ePD+srz0wKXc9MSnQk1OnTpW33357mAKYTPaWLVsK7VLefVHefVHefVHefVHefVHefVHefVHefVHefVHezWkvMfLagWk5vH8e0te+Oyl/c8f8+Y/ez6yRUr56t8QIAAAAAAB0qq3ESJbN+p++cnr4/O7nJ+WWb0mCAAAAAAAAZ0yvKg05eXT++MVri6QIAAAAAABwnqYSI//HX80nvyQxAgAAAAAAsOgLZcWcOFzKG0+dPjP749ptpez49sbLYmVPkY9PzBMiH5+YP5cltQ7uOn3Oz23dMSlf/65ZJAAAAAAA0LOV2mNkvHF6Zn3koyY7kiDZ9dpVw+PYc3ecHpIpF7Pt9vnrAQAAAACAbq3O5us1KZJkyD3PTcpX757P7khi5Pv3zGeQbN1Ryu43N05uHH1+Wg7umg7JkwffkwQBAAAAAADOsTqbryepEb/35NmkSNSZIkmYJDny5gsrM8EFAAAAAABYMyuRGPn5D6bDzJAkQZbtJZKkyNcemD//1qECAAAAAACwKSuRGKkbrWeD9I1kGa35z5oxAgAAAAAAbM5KJEbqBuuZGbKR3/jy5JyfBQAAAAAAuFwrkRjJElqX6kLJEwAAAAAAgAtZicRITXZcaJmsD47Nv1eX1AIAAAAAALhcK5EYqRuuZ6+Rut/IorcOzRMj226fFAAAAAAAgM1YmRkjX717/vnBXafP20fktQPTcuLwfMmtmkQBAAAAAAC4XF8oK+Ke564qzxw9PcwYee6O02Xb7bOEyZdLOXmsDEmRuOuJyWXtRwIAAAAAADC2MomRzBrZ9dpV5bX903L0hdnH82e/lyTJHQ9PLKMFAAAAAABckcl0pqygE4fnf1ZmiFy7TUIEAAAAAAC4YtOVTYwAAAAAAAB8yqYrsfk6AAAAAADAZ0FiBAAAAAAA6MbKbL4O/Hp8+OGH5eTJk8Pn1113Xdm6dWvpQa9x0xf1W/2mXeq3+k271G/1m/ao1+o17VK/241bYgQalcbrscceK8eOHTvn+Ztvvrns2bOn2Ya817jHEvuRI0eGx2effbb04vAbpRz681J+dKSUN/+iNE39Vr97q9/Tw6WcPjR7/PGs8/rT0rQPPvigPP74490d573GPVbr9/Hjx8szzzxTelHP3z+ePf701dI09Vv97q1+l8M/m1Xwn8wq+H+cVfAnS4vUa/Xaebtd6nf7cdt8HRqUwcM0Vsnubt++fWi8Io1aTtpXX331cOJurRHvNe745JNPysGDB4dY68krGf2XX365tOzj/72Up/7nWefsyLyDFtv+Vinv/YfSLPVb/Y4e6nf5uJT/9tQ8KZKPmFw/S4y8W5qVi5C9e/dueJxfc8015emnn27uOO817lhWvxPnSy+9VFq27Px9/W+V8u5PSrPUb/U7eqjf5eNTswr+b+ZJkXzE9dfNKviflNao1+p1OG+3Sf3uIu6pGSPQoJyU04jde++9Zffu3ed8Lw1YTuS56zofLek17kcffbS8+urZWzUyYJr3oXXffqCUF/6Xs18nIXLify3NU7/V7+br93SWENlVyukXRs9tm32cKM1Lsutix3nu3spx0ZJe4+6xfueWvF0P9nn+Vr/V7x7O32XXk7MK/pdnn9v2m7MK/ovSKvVavXbebpf63UfcNl+HxuSu6nqyTkO2aOfOncOd1cn2tnQS7zXuSOxbtmwp991337C0TrL7PXh/1hm79r8r5eGHSnlzVvTPtTk7/xzqt/rdS/2evj/759pS/trDpXzhzdnH90rzcndWjvPJZLL0OM8x0OJx3mvcmbS/WL8zK64Hi+fv7z1Rmqd+q9991O/ZCOr7syTItVtmFfybswr+1KyCf7e0Sr1Wr52326V+9xO3xAg05p133hkeM90tdzAsSiN2ww03DJ8fPXq0tKLXuGPfvn3l0KFDw+DwjTfeWHqRRMhHb5Wyf9ZB2/Hfly6o3+p3FyazhMhzpfz1j2Yd1f2zL3eULlzqcZ4L8x7rd2tx54Kzx/o9C9v5W/0+Q/1uzFDBH5hV8D+dVfB/PKvgN5SWqdfqdQ+ct9XvsRbjXunEyMnZe/zxifK5eXhyevj4PP8GuFy1IUuDtcwrr7wyrAsYLWW2e407lp2wepApvL1Rv9XvXky2le68++5885SNjvNMW2/xOO817nD+7of6rX53I0tndUK9Vq974bx9PvW7nbhXdo+Ro89Py8Fd03LttlIefM/EFrhcmeI5lk3CsjHxeE3MFvUaN31Rv+fUb1r0pS996ZyveznOe42bvqjfc+o3LVGv59RrWqR+z7Uc98omRj56vwCfkqyFmfUvk9G98847h0btyJEjpXW9xk1f1G/1m3Zlnd/sK9Pbcd5r3PRF/Va/aY96rV7TLvW7zbhXdirGHQ9Pyq7XJmX3m2aLwJXIEjP333//0Ijt3r17aNA2mhbXkl7jpi/qt/pNu3Kc5/jusX73GDd9Ub/Vb9qjXqvXtEv9bjfulZ0xEttunxRgc06dOjVMdUtDlrUwDxw4MGyg1Lpe46Yv6rf6TbvUb/Wbdqnf6jftUa/Va9qlfrcf98okRrKnyHs/mp73/BevLeWuJzaeNfLWoWn5+Q+m5ZZvTcrWHZPyxlPT4blffjx/7dYdmX1y1bBXyUZeO3Dua7bdPn/NxeTn8/+dODwdNmi/2P+Xnz15dFqu/e3Zz+xf/vsP7jo9PP7tb0zKV++WGGLzXn/99eFx+/bt5ZFHHjlvbf5W9Ro3fVG/1W/apX6r37RL/Va/aY96rV7TLvW7/bhXJjHy3o+SHDn/+SQY7npi49d9cGz+ui9+eVp++GASD/MERZIWka9PHD49LMmV58fyM8/dcXr4maiv+8mTSbicLheSREhem8f6d+bz/K6jz58udz8/GZI1Y0l2HN7/qwTMV6bl69899/tJ0CSW/K4sJQZXaufOneW+++4rvek1bvqifkO71G9ol/oN7VGvoV3qd9tWZgOPJAmyp0j9uOuJy0sM/OSp+WNe+z98dFU5ML2qfPPgZEh2JGGR2RqLkoioiZT6unzk8wsZJ0WS/MhrHnxv/tqa0PjzB6ZnkiZVEh75myIJkvH3TxyePxffPHjhGS5wIZnmFjfeeOOGjVg2La4/04pe46Yv6rf6TbvqcX7TTTctPc6n02nT9bu3uOmL+q1+0x71Wr2mXep3P3GvTGIkS1BlT5H6kWWxLkcSCbteu+qcfUmyFNXXHph/neWuxuYzQ+bP/d6Tk3Nel8/zuzby5gvzpEb+5swMGc9EuX3/pOyYJUvqMluL8rvzN+X737/n9PCY31WX0EpiJb8XNuu2224bHt95553yySefnPf9NGLHjx8fPk9j14pe46Yv6rf6TbtuvfXW4fFix/lkMmnqOO81bvqifqvftEe9Vq9pl/rdT9wrkxi5Ukk4LC6VFTXJsDh7o+5nkoTK4pJX9fmNZD+U2GhWyy3fnj9m35Jl8rrsY5LZKq8dOF1e2z+ffZJEThIrcCWuvvrqYR3AyGZJiw4ePDg8psGr2eAW9Bo3fVG/1W/aVY/z3Im17Dg/dOjQ8Nhq/e4tbvqifqvftEe9Vq9pl/rdT9wrs8fIr8tvfDmJhvMTFHVfkcudmVJneMTPf1CWbhhf9zdZTMaM3fPcVeWZW04P+5nEfC8VSRE+Hfv27SsPPfRQefXVV8uxY8fOuds6X6cB+853vlNa02vc9EX9Vr9pU+682rt3b9mzZ8+Gx/nWrVvL7t27S0t6jZu+qN/qN+1Rr9Vr2qV+9xN384mRi1k2y+RCatIj6lJcm5FESJbh+tO7z84+sa8In5YMED7++OPlxRdfHBqzV1555cz3kv3NAGOLd2/0Gjd9Ub/Vb9qVC40ej/Ne46Yv6rf6TXvUa/WadqnffcQ9mWZ+zArKZuTZ4DzJgmxsvpFsoJ5Ny3d8e1LueW5yyb/nYq+LhyfzfT/yupq0yCyQJ66fP3+xTdpjvHfJWBIsmTFSZ5Vkya/sa3K5iRq4mFOnTpW33357mBKXBm7Lli2lB73GTV/Ub/Wbdqnf6jftUr/Vb9qjXqvXtEv9bjbuabczRr7y2/PHk0eTF7r0JawWExcbJT4u5ocPzJMi2WskksDJfiN3PdHMti+siDRcN998c+lNr3HTF/Ub2qV+Q7vUb2iPeg3tUr/b1e0ofE1oZK+Rut/I2Eb7gyQxUpMZb76w8WSb8ZJbi954alqOvjBfTit7jeQjvzf7jVzodwIAAAAAAFem28RIkhI1wXFw1+lzEiFJamSprY3c8fA8qXL0+eU/l9kfWW4rCZBF+X/+/IH587fvn+8rMk+QzH9nvnehTdsBAAAAAIDNW5mltH744LS8dWh5IqHu6VFdaM+Ry5GZGtl/JDNG8ph9PjJz461D8+RIPl828yOzTe54+Ow+JUefn5avfmP+vZPH5omR+I0vn/u6/K78P5Hkyi3fOrsM11fvnpSvPTDf0P3795y23wgAAAAAAPwarExiJEmDjWZK/LpmUGSmRhIQSUQkOVL/nzz/zYOTcnDXdMMlsepsj8wKyWt/8tTZ72UmSvYKSaJlrO4rktfl9YuSLElyKL/PfiMAAAAAAPDpm0xnCkPC4uMT018tbXV5G6oneZJN3DPDI6810wMAAAAAAFbSVGIEAAAAAADoxdRaTQAAAAAAQDckRgAAAAAAgG5IjAAAAAAAAN2QGAEAAAAAALohMQIAAAAAAHRDYgQAAAAAAOiGxAgAAAAAANANiREAAAAAAKAbEiMAAAAAAEA3JEYAAAAAAIBuSIwAAAAAAADdkBgBAAAAAAC6ITECAAAAAAB0Q2IEAAAAAADoxhcK0LQPP/ywnDx5cvj8uuuuK1u3bi09ELe4AdaZ9lzcPXD+BlqhHRd3D5y3aY3ECDQqJ6vHHnusHDt27Jznb7755rJnz55mT2DiFne0HvdYYj9y5Mjw+Oyzz5ZeiLuvuKeHSzl9aPb441nn9aelaR988EF5/PHHu2vXxC3u6PH8ffz48fLMM8+UXoi7r7jL4Z+Vcugnpfz4P5by0ydLi7Tj4g5xO2+3qvW4J9OZAjQlg8U5OSWbv3379uFkFWnQ0phdffXVQ4PW2slL3OKO1uOOTz75pBw8eHCItXZOc8fOyy+/XFom7r7iLh+X8t+emidF8hGT62eJkXdLs3LRuXfv3g3btWuuuaY8/fTTzbVr4hZ3tB53LGvPE+dLL71UWibuvuIuH58q5al/M0+K5COuv66Ud/+ktEY7Lu4Qt/N2azqKe2rGCDQojVVOWvfee2/ZvXv3Od/LCSsNXO6yz0dLxC3uquW4H3300fLqq6+e+ToD5HkfWifuuS7ins4SIrtKOf3C6Llts48TpXlJdl2sXcvdejkuWiJucVctx+08NifuhuWW211PlvLCX559bttvzs7fvyit0o6LuxK383Yreovb5uvQmNxFXxuxnLgW7dy5c7iTPlnflho3cYt7rNW4I7Fv2bKl3HfffcNSSrl7pwfi7ivu6fuzf64t5a89XMoX3px9fK80L3fjpV2bTCZL27UcAy22a+IW91ircWeRhsX2PLNeWyfuvuIeMiPvz5Ig124p5eFvlvLmU6V877ulVdpxcY+J23m7BT3GLTECjXnnnXeGx0xvTGZ3UU5aN9xww/D50aNHSyvELe6xVuOOffv2lUOHDg3JnxtvvLH0QtwdxT2ZJUSeK+WvfzTrqO6ffbmjdOFS27VcsPTYnou7Db3GnQGlHttzcfd2/p6dwJ97oJSP/rSU/f+4lB03lJZpx8U9Jm7n7Rb0GLfECDSmnrhyglrmlVdeGdaBjJYy+uIW91ircceyDmkPxN2XybbSnXffnW+eslG7lmUKWmzXxC3usVbjDuexvvQa97B0Vie04+IeE7fzdit6i9seI9CoTH0by+ZJ2Yh6vFZgi8Q9J+624wba9aUvfemcr3tp18Q9J27nb2C9aMfnxC1uWEcSI9CBrBGYdQGTwb/zzjuHk9iRI0dK68Qt7h7iBtqVdZ2zr0xv7Zq4xe38Dawj7bi4xQ3rxVJa0LgsKXT//fcPJ63du3cPJ7CNpkG2RNzi7iFuoF1p19Ke9diei1vcAOtGOy5uccP6MWMEGnXq1KlhamNOXFkj8MCBA8OGWa0Tt7h7iBtol/Zc3OIGWB/acXGLG9aXxAg06vXXXx8et2/fXh555JHz9mJolbjFDbDOtOfi7oHzN9AK7bi4e+C8TaskRqBhO3fuLPfdd1/pjbj70mvcQLu0530RN8B60473RdzQDnuMQGMyrTFuvPHGDU9a2aS6/kwrxC3uRS3GDbSrtms33XTT0nZtOp023Z6L+1zidv4GVpt2XNxj4nbeZj1JjEBjbrvttuHxnXfeKZ988sl5389J6/jx48PnObm1QtziHms1bqBdt9566/B4sXZtMpk01a6JW9xjrcYNtEc7Lu4xcTtvs54kRqAxV1999bDuY2RzrEUHDx4cHnOCq9n/Fohb3GOtxg20q7ZrufNuWbt26NCh4bHV9lzc5xK38zew2rTj4h4Tt/M268keI9Cgffv2lYceeqi8+uqr5dixY+fcXZ+vc8L6zne+U1ojbnFH63EDbcqddnv37i179uzZsF3bunVr2b17d2mJuMXdQ9xAe7Tj4ha38zbrT2IEGpQB4ccff7y8+OKLw8nrlVdeOfO9ZPszoNxiNl/c4q5ajhtoVy4se2zXxC3uyvkbWCfacXFX4nbeZj1NppkPBTTr1KlT5e233x6mQOaEtmXLltIDcYsbYJ1pz8XdA+dvoBXacXH3wHmbxkwlRgAAAAAAgF5Mbb4OAAAAAAB0Q2IEAAAAAADohsQIAAAAAADQDYkRAAAAAACgGxIjAAAAAABANyRGAAAAAACAbkiMAAAAAAAA3ZAYAQAAAAAAuiExAgAAAAAAdENiBAAAAAAA6IbECAAAAAAA0A2JEQAAAAAAoBsSIwAAAAAAQDckRgAAAAAAgG5IjAAAAAAAAN2QGAEAAAAAALohMQIAAAAAAHRDYgQAAAAAAOiGxAgAAAAAANANiREAAAAAAKAbXyhA0z788MNy8uTJ4fPrrruubN26tfRA3OLugbjF3YNe4wYA1od+mrh7IG5xt0ZiBBqVxuuxxx4rx44dO+f5m2++uezZs6fZhlzc4g5xi7slvcb9wQcflMcff7y7uJfJe3DkyJFy/Pjx8swzz5ReiFvcLVPO4u7C4Z+Vcugnpfz4P5by0ydLi3rtr4hb3CFuca+7yXSmAE3JIFoaq2R3t2/fPjRekUYtnfGrr7566JC31oiLW9whbnG3pNe40xnfu3fvhnFfc8015emnn246OfLJJ5+UgwcPDjHXi5LE+9JLL5WWiVvcLcetnMXdQ9zl41OlPPVv5kmRfMT115Xy7p+U1vTaXxG3uEPc4m7A1IwRaFA622nE7r333rJ79+5zvpcGLB303H2cj5aIW9yVuMXdil7jfvnlly8ad+5ievTRR0uLEterr7565utMXc/70Tpxz4m7Tcp5TtwNyy23u54s5YW/PPvctt8s5cQvSqt67a+IW9yVuMW97my+Do3J3cW1E56GbNHOnTuHO4yT7W2pcy5ucY+JW9wt6DXu3KWUuCeTydK477vvvibjrjKZO2W/ZcuWIdZnn312mDXUOnGLu+W4lbO4e4h7yIy8P0uCXLullIe/WcqbT5Xyve+WVvXaXxG3uMfELe51JzECjXnnnXeGx0x3y51Ji9KI3XDDDcPnR48eLa0Qt7jHxC3uFoj7wnFn4KmluKtciOzbt68cOnRoSH7deOONpQfiFnfLlLO4uzCLuzz3QCkf/Wkp+/9xKTtuKC3rtb8ibnGPiVvc605iBBpTG7I0WMu88sorw7qA0VJmW9ziHhO3uFvQa9zvvvvu8LhR3Jm+3WLcY8suRHog7r70Frdy7kuvcQ9LZ3Wi1/6KuMU9Jm5xrzt7jECjMnV7LJv/ZYPe8Vq3LRL3nLjF3SJxz/US95e+9KVzvu4lbgBgffTaXxH3nLjF3aKe4pYYgQ5kjdusa5uM7p133jk0akeOHCmtE7e4xd0ucfcVd9a73bt3b3dxAwDro9f+irjFLe52tR63pbSgcVlq5f777x8asd27dw8N2kbT4loibnGLu13i7i/uxNtb3ADA+ui1vyJucYu7XT3EbcYINOrUqVPDVLc0ZFnj9sCBA8MGSq0Tt7jF3S5xi7uHuAGA9aGfJm5xt0vc7cctMQKNev3114fH7du3l0ceeeS8NepbJW5x90Dc4u5Br3EDAOtDP03cPRC3uFslMQIN27lzZ7nvvvtKb8TdF3H3Rdx96TVuAGB96Kf1Rdx9EXfb7DECjck0t7jxxhs3bMSyeW/9mVaIW9yLxC3uddd73DfddNPSuKfTaZNxAwDro9f+irjFPSZuca87iRFozG233TY8vvPOO+WTTz457/tpxI4fPz58nsauFeIW95i4xd2CXuO+9dZbh8eLxT2ZTJqKGwBYH732V8Qt7jFxi3vdSYxAY66++uphHcDIZkmLDh48ODymwavZ4BaIW9xj4hZ3C3qPO3ckLYv70KFDw2NrcQMA66PX/oq4xT0mbnGvO3uMQIP27dtXHnroofLqq6+WY8eOnXPXcb5OA/ad73yntEbc4g5xi7slPcadO5D27t1b9uzZs2HcW7duLbt37y4AAJ+HXvsr4ha3uMXdUtyTadJAQHM+/PDD8uKLLw6N2Viyvxloa/UuW3GLO8Qt7paIu6+4lzl69OhwkZILkZdeeqn0QtzibplyFncXXjteyu/+j6VcPztnv/snpUX6aeIOcYu7JR3FPZUYgcadOnWqvP3228OUuHTEt2zZUnogbnH3QNzi7kGvcQMA60M/Tdw9ELe4GyMxAgAAAAAAdGNq83UAAAAAAKAbEiMAAAAAAEA3JEYAAAAAAIBuSIwAAAAAAADdkBgBAAAAAAC6ITECAAAAAAB0Q2IEAAAAAADohsQIAAAAAADQDYkRAAAAAACgGxIjAAAAAABANyRGAAAAAACAbkiMAAAAAAAA3ZAYAQAAAAAAuiExAgAAAAAAdENiBAAAAAAA6IbECAAAAAAA0A2JEQAAAAAAoBsSIwAAAAAAQDckRgAAAAAAgG5IjAAAAAAAAN34QgGa9uGHH5aTJ08On1933XVl69atpQfiFncPxC3uHvQWt3IWdw/ELe4eiLuvuAFYPxIj0Kh0Rh977LFy7Nixc56/+eaby549e5rtoIpb3CFucbek17g/+OCD8vjjj3cTd2/xVuIWd4hb3C0Rd19xL5P34MiRI+X48ePlmWeeKb0Qt7hbppzbjHsynSlAUzKIls5n7tbZvn370BmNNGhpzK6++uqhQWutcypucYe4xd2SXuPO4MrevXs3jPuaa64pTz/9dDNx9xZvJW5xh7jF3RJx9xX32CeffFIOHjw4xFyTQ4n3pZdeKi0Tt7hbjls5Nx/31IwRaFAaq3RK77333rJ79+5zvpcOaRq43H2cj5aIW9yVuMXdil7jfvnlly8ad+5KffTRR0sLeou3Ere4K3GLuxXi7ivuKnG9+uqrZ77OEmJ5P1on7jlxt0k5z7Uet83XoTG5u7g2YumYLtq5c+dwh3Gyvi01buIW95i4xd2CXuPOXaeJezKZLI37vvvuayru3uKtxC3uMXGLuwXi7ivuKouwpM+2ZcuWIdZnn312mO3bOnGLu+W4lXM/cUuMQGPeeeed4THTl5PZXZRO6Q033DB8fvTo0dIKcYt7TNziboG4Lxx3Ou4txN1bvJW4xT0mbnG3QNx9xV0lIbRv375y6NCh4aaVG2+8sfRA3OJumXLuJ26JEWhM7ZimA7rMK6+8MqzzGi3dsSNucY+JW9wt6DXud999d3jcKO4sx9FS3L3FW4lb3GPiFncLxN1X3GPLEkI9EHdfeotbOffBHiPQqEx9G8vmSdmgd7xWYIvEPSducbdI3HO9xP2lL33pnK9bj7u3eCtxz4lb3C0S95y4244bgPUlMQIdyBqBWRcwd+jceeedQyf1yJEjpXXiFre42yXuvuLO+uV79+7tJu7e4q3ELW5xt0vc4u4hbgDWi6W0oHFZauX+++8fOqW7d+8eOqgbTXNuibjFLe52ibu/uBNvL3H3Fm8lbnGLu13iFncPcQOwfswYgUadOnVqmLqcjmnWCDxw4MCwIV7rxC1ucbdL3OJuOW7lLG5xt0vc4hY3AKweiRFo1Ouvvz48bt++vTzyyCPnrVHfKnGLuwfiFncPeotbOYu7B+IWdw/E3VfcAKwviRFo2M6dO8t9991XeiPuvoi7L+LuS29xK+e+iLsv4u6LuAFg9dljBBqTactx4403btgpzea99WdaIW5xLxK3uNdd73HfdNNNS+OeTqdNxd1bvJW4xT0mbnG3QNx9xQ3A+pMYgcbcdtttw+M777xTPvnkk/O+n07p8ePHh8/TeW2FuMU9Jm5xt6DXuG+99dbh8WJxTyaTJuLuLd5K3OIeE7e4WyDuvuIGYP1JjEBjrr766mFd18jmd4sOHjw4PKYDW+/uaYG4xT0mbnG3oPe4c4fpsrgPHTo0PLYSd2/xVuIW95i4xd0CcfcVNwDrbzLN2Qtoyocfflgeeuih4TGdz/Fdx8eOHRuee/zxx5vrmIpb3CFucbek17hzd+mePXs2jHvr1q3lscceaybu3uKtxC3uELe4WyLuvuLeyNGjR8vevXuHuF966aXSC3GLu2XKucm4pxIj0Kh0Sl988cXy6quvnvN87ubZt29fs51ScYs7xC3uloi7j7iVs7hD3OJuibjFHa3HvYwBVHH3QGKkDxIjwFo7depUefvtt4cpzmnItmzZUnogbnH3QNzi7kFvcStncfdA3OLugbj7ihuAtSMxAgAAAAAAdGNq83UAAAAAAKAbEiMAAAAAAEA3JEYAAAAAAIBuSIwAAAAAAADdkBgBAAAAAAC6ITECAAAAAAB0Q2IEAAAAAADohsQIAAAAAADQDYkRAAAAAACgGxIjAAAAAABANyRGAAAAAACAbkiMAAAAAAAA3ZAYAQAAAAAAuiExAgAAAAAAdENiBAAAAAAA6IbECAAAAAAA0A2JEQAAAAAAoBsSIwAAAAAAQDckRgAAAAAAgG5IjAAAAAAAAN2QGAEAAAAAALohMQIAAAAAAHRDYgQAAAAAAOiGxAgAAAAAANANiREAAAAAAKAbEiMAAAAAAEA3JEYAAAAAAIBuSIwAAAAAAADdkBgBAAAAAAC6ITECAAAAAAB0Q2IEAAAAAADohsQIAAAAAADQDYkRAAAAAACgGxIjAAAAAABANyRGAAAAAACAbkiMAAAAAAAA3ZAYAQAAAAAAuiExAgAAAAAAdENiBAAAAAAA6IbECAAAAAAA0A2JEQAAAAAAoBsSIwAAAAAAQDckRgAAAAAAgG5IjAAAAAAAAN2QGAEAAAAAALohMQIAAAAAAHRDYgQAAAAAAOjGF2Yf0wIAAAAAANC+6f8FANfgGsQJ/4UAAAAASUVORK5CYII=)\n",
"\n",
"via https://thume.ca/2021/03/14/iforests/\n",
"\n",
"> The general idea behind data structures to accelerate range queries is that pre-aggregating elements into chunks of varying sizes can save work at query-time. When we get the range we want to query, we pick the set of chunks that together make up the range and aggregate them together, as opposed to aggregating all the individual elements in the range.\n",
"\n",
"> The in-order layout is a way to store an aggregation tree in an array where every even indexed element is a leaf and every odd indexed element aggregates to its left and right using some associative operation (the diagram uses sum). The aggregating nodes form a binary tree structure such that the first level aggregates two leaf nodes, the second level aggregates two level one aggregation nodes, etc…\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Implementation"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from typing import *\n",
"import operator"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def trailing_ones(v: int):\n",
" s = bin(v)\n",
" return len(s)-len(s.rstrip(\"1\"))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"class IForestIndex:\n",
" def __init__(self, func: Callable, identity: Callable):\n",
" self._storage = list()\n",
" self._func = func\n",
" self._identity = identity\n",
" \n",
" def __getitem__(self, q: Union[int, slice]):\n",
" \"\"\"getitem implements direct access and range query\"\"\"\n",
" if isinstance(q, int):\n",
" return self._storage[q]\n",
" elif isinstance(q , slice):\n",
" idx_start, idx_stop = q.start*2, q.stop*2\n",
" n_vals = len(self)\n",
" assert (idx_start <= n_vals) and (idx_stop <= n_vals)\n",
" return self.range_query(idx_start, idx_stop)\n",
" else:\n",
" raise ValueError(f\"Don't know how to index using q\")\n",
" \n",
" def __len__(self):\n",
" return len(self._storage)\n",
" \n",
" def values(self):\n",
" return [v for i, v in enumerate(self._storage) if i%2==0]\n",
" \n",
" def append(self, item):\n",
" self._storage.append(item)\n",
" n_vals = len(self)\n",
" levels_to_index = trailing_ones(n_vals) - 1\n",
" current_level = n_vals - 1\n",
" for level in range(levels_to_index):\n",
" prev_higher_level = current_level-(2**level)\n",
" combined = self._func(self[prev_higher_level], self[current_level])\n",
" self._storage[prev_higher_level] = combined\n",
" current_level = prev_higher_level\n",
" \n",
" self._storage.append(self._storage[n_vals-(2**levels_to_index)])\n",
" \n",
" def range_query(self, start: int, stop: int):\n",
" combined = self._identity()\n",
" \n",
" # not standard, but easy to read\n",
" left_child_at = lambda node, level: (node >> level)&1 == 0\n",
" skip = lambda level: 2**(level+1)\n",
" agg_node = lambda node, level: node + (2**level) - 1\n",
" \n",
" while start < stop:\n",
" up_level = 1\n",
" while left_child_at(start, up_level) & (start + skip(up_level) <= stop):\n",
" up_level += 1\n",
" \n",
" level = up_level - 1\n",
" \n",
" combined = self._func(combined, self._storage[agg_node(start, level)])\n",
" start += skip(level)\n",
" \n",
" return combined\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"summer = IForestIndex(func=operator.add, identity=lambda: 0)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"raw_vals = [0] + list(range(2, 12))\n",
"for val in raw_vals:\n",
" summer.append(val)\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 2, 2, 9, 3, 7, 4, 35, 5, 11, 6, 26, 7, 15, 8, 35, 9, 19, 10, 19, 11, 11]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summer._storage"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summer.values()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"44"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summer[1:9]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.8.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment