{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following code snippet visually demonstrates the operation of the GIF algorithm. The code has been slightly modified from `scikit-learn`'s example of the original Isolation Forest algorithm." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from genif import GeneralizedIsolationForest\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will generate some data first:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "rng = np.random.RandomState(42)\n", "\n", "# Generate train data\n", "X = 0.3 * rng.randn(100, 2)\n", "X_train = np.r_[X + 2, X - 2]\n", "\n", "# Generate some regular novel observations\n", "X = 0.3 * rng.randn(20, 2)\n", "X_test = np.r_[X + 2, X - 2]\n", "\n", "# Generate some abnormal novel observations\n", "X_outliers = rng.uniform(low=-4, high=4, size=(20, 2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now define a function, which will fit classifiers with random parameters and plot prediction results into given matplotlib axes:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [], "source": [ "def run(ax, prng):\n", " # Fit the model.\n", " clf = GeneralizedIsolationForest(k=prng.integers(5, 10), \n", " n_models=prng.integers(50, 100), \n", " sample_size=512, \n", " kernel=\"rbf\", kernel_scaling=np.repeat(0.01, 1), \n", " sigma=0.01, seed=42)\n", " clf.fit(X_train)\n", " \n", " # Create mesh grid and find probability values for every point in the grid.\n", " xx, yy = np.meshgrid(np.linspace(-5, 5, 50), np.linspace(-5, 5, 50))\n", " Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n", " Z = Z.reshape(xx.shape)\n", "\n", " # Create the accompanying plot.\n", " cf = ax.contourf(xx, yy, Z, cmap=plt.cm.Blues_r)\n", " plt.colorbar(cf, ax=ax)\n", "\n", " ax.scatter(X_train[:, 0], X_train[:, 1], s=20, c=\"w\", edgecolor='k')\n", " ax.scatter(X_test[:, 0], X_test[:, 1], s=20, c=\"w\", edgecolor='k')\n", " ax.scatter(X_outliers[:, 0], X_outliers[:, 1], c=\"w\", s=20, edgecolor='k')\n", "\n", " ax.axis('tight')\n", " \n", " return clf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's run the function like that, plotting the result of three different classifiers into a scatter plot:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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rE9gaN3aoVNmz57N+vXruffee9m/fz833XQT/fr14+c//znFmzfRpn2HWJ6eR3yJVE8CurJ0R/3LUytvg2/CUPqqRlUHW69xtuWm9JUX3JMEMzMzSUlJ4emnn2bhwoU8+OCDtG3blr/+9a/069ePKVOmUF5ezu6tW/w+hlMwR1M0eyJQAW1oHFWdo6p9VbW3qj5oLZuiqrOt90tVNUdVO6hqmqoeb9t3pKpmqGo7a5sPreWtrPGctjwtNmcXfwzN68SOLWXk5/cI6B5bWryJ1m0Tx+niq6qGEdCJT7MRz546B+6u2sm3K//H7irXG073bEfnwHnz5nH33Xdz6qmnkpWVxcUXX8y0adOYPn06S5YsYfny5cydO5eXX34ZgDf+8ADFa5bHVfiGO3bvc+2+ajofq+Dowd31y+wx0HYBDa5e6HiJN46XedioL32lqrWAs/RVPaparKorAL8f51o3eFVVxdF0odmVvjqwexfl365oEG5x+sC+lJeV1Ntrz549SUpK4siRI7z99tv89Kc/Zd68eaxfv565c+fy+OOPk5WVxUd/fph5r/2p0fCNWAtmcHifjxzYzYGKb+mW4bvCqEkiNMQDNXuqyNi3kQGdahma16n+BZCRlUtJcTGvv/46Tz75ZP099pJLLuHJJ5/0eo9d+PLDcRu6AQ3jn/OykqjdvoHO2Q2FdKAC2hnjbGKd44MmL56d3mR37I1PJl44nLlz3qpfl5yazulnXci5557LU089Ra9evdizZw933303jzzyCG3atHHxcuXk5PDUU0+xcdmX/PV3tzL16jOY87dn4kZEewrf2Pbfj1n60DXsnvM0W/76Y/auned1fyOgG+Arez/U0ldtrTGXiMgl7iuba+kre+OTZ28+jz3ffEJht44UdutIl9R0hp55gYu97t27l6lTp/LII4/Qtm1bF3vNzs7m+eef54vFn7NoxvP84Ufn8NV7MzwK83gQzgBlX31I8QsT4fMX2PTcRA5vXuxzeyOgDTHl27m8cftFvPHk7/jNlWNY8pFrGPl/532Iah2//OUvueeee+jduzd79uzht7/9Lffccw/p6ekUFhayY8cODh8+TK9evXjppZfYue4b/nnb+az+6N9sW78yLoW0U0DvXPYpq564nrR1r7PvzdtpJzsabBusgDbEniYtnj2JZnBtfLL8m/8xf95cnnlgcr0H+r2Zr/DJ7BkkJSWxZMkSVqxYwdy5c3nooYfo2bMnVVVVzJs3jxkzZnDcccdRV1fH3XffTUZGBrurqmiBsvrTt5l2zZks/eTdaJ6yV+wCumZPFZtmPcnihfP5duUyFi+cz+7Pnqv3QLt7n8G3gI4HER2uOdTWHqtPmPT2wnf2fqjkq+opwATg9yLS2219syt9ZW98smr5NyyYN48XHvoNeyx7/fCNV5n37r+92uuuXbtc7BXgmmuuYe3atWRlZnLmmCI+euEB5r9wH8/cdF59Heh4Ec6H9laz8rXpfL5gPt+tWs4Xi+Zz9L9/p+6Q7/kZAW2IBQM61fLqo/ewYP48Viz7hgXz5/Hqo/ew13ImzX3zNV5/ciq33Hwz+/fvd/EwT58+nW7dulFcXMyjjz5Kv379uPnmm9m4cSMHDhwgKyuLUSNPZ8nfH2Hlqw/GbQ3ovqlQ+s5TLF44n+9WLWPJ5ws4tOSlsHigDfFBSB0GReQx4CKgFtgI/FBVd4dhXhHFU+OTzKwsvpz/MVn5vXjmgcm0aNGCbt26uWyTnp5OaWkpmZmZXHjhhagqX3zxRX1XpCFDhiAiLFy4sH7ZyNFF9Dt5OJ1SotcWuDH2bq8gx62RRHZuHiltDrCXZMAhoJ3CubJ0B5l5GR47ETqJh46E8TAHQix9paoV1s9NIjIPOBGHbdlLX/04XJNNBKq3VtDDFh/pSB7KZunCT8jK68WfH7kHIGB7LSoq4uDBg1RWVrJkyRIXm+194lAG5bjabKzE9MGdW8jJdbfXXKRTLdVHfO9rOhEaosnQvE5sXL3M4/112aJP6Zbbk9d/P4309HSeffZZjjvuONe/6+xs1q1bxxVXXMHUqVNd7NJpr1u2bHFZPmJUETkDh8RVF8K92yvIc/uflZuXz659O1y6Dzqp3rAurJ0IDZEnVM/zx8AJqloIrAN+E/qUwoe92Ymd7tl5lJY4YiSXLl3KlClTKN60kdmvPsdvbrqCFi1acN1117FlyxaXwu1btmzh1FNPZfv27bz88sv06dPHxTjS0tLo3bu3y7Kc3NxGq3Dsq94VcKy00+Pr/vKHzl2zKS8tcTm3irJS2qVmeq0B3ZgH2jmnWBMHcwi69JWIpIhIG+t9OnA6Vpvg5lz66vSBfSkpdTQ+2bFjBz//+c/ZvGkDH772AlN/PB4gKHtNTU3l3HPPpV+/fm42m0f11obfdwbldGZQTmcO7a2matNqDu2Njje3fXoW5WWu9lpZUUZScvdGEwjB1IE2RAd7PHNpSYmLvRZv2siCf7/E4z+/lg7t27N9+3bS0tJYv369y9/1hg0bOHbsGD/4wQ8a2GVqaipHjhyhb9++Db5I+qrCUbOnyq8QD2ftZF8vf/F4jy0vpWCwI3fcUw1o44FOLELyPKvqR7aPS4ArvG0bKzbs3t8gfCM5NZ0zLryCsWPHkpOTQ3l5OVOnTuXOO+9kxYoVDBs2jBkzZnDs2DGKioro0aMHxcXFHDt2jMWLF9OyZUu6du1KWVkZK1asqP8GXFVVxYEDB1yWlZWUkJbpPbfr60/eZcYTU8jLz6e0pISrJk3j1LMuql8fqBj0x/varksqwyfew4hRRWTn5lFRVkrvKyaR1Mm3V8rugQZHtQ7jgXZFVY+KiLP0VUvgZWfpK+BrVZ0tIqcCbwEpwEUicp+Vwd8fRymsOhxfbB9RVWc9teeBEhylrwDebA4Z/IXdOgId+fFvH2b46aejdXVkZmbSrl07pt57L/379w/aXisrK3nooYe49dZbXZaXl5WS0t1zmPrKue8z79mp5OblU1JSzMAJk8kdcq7HbcNF284pDJwwmdNHja6314ETJpM7oCfrS6rJ6ZHeaJUNuwcajBfa4B9OQRwInVPSuP7OBxg+/HRUbfY6ZQr9+/dn6NChdO3alZ07dzJ16lTGjBlDTk4O69ev58Ybb+Rvf/sbBw8epMQS4HZ7TU9Pb2DHZSXFnN7Vs72uX/QBi196gJy8fEpLiskddzsZJ54Z9PVYvrnKa1MUO+732LLSEnLH3U5SxxQK+jqEsfFAJzYhiWc3fgSEp22XG95il4Nld9VOPnvvDZdHP2PGjOGHP/yh4xFTZia1tbV06NCBBQsWUFxcTI8ePTjjjDM4cOAAW7du5YILLqCT1RWpV69ebNmyhWPHjvHzn//c5Z9B0ZU/9Bqysa96FzOemMLC+fO8hnkMzGwflIBujD4jzidn4BD2bq/g9K7ZlB38/k8hN6dLvUC2h2/A9wIaqA/jMALaFVWdA8xxWzbF9n4pHqplqOpiHKXoPI0ZTltNOApPG0GrVq1ZYLOVMWPG8O233wZsr1lZWezatYujR4/StWtX/vSnP1FUVERqairbduzkgp9Po0NyQ5u1x17b7XXMmWewYX9ky27nDjmXjP6ncXDnFo5Lz6JtZ4fw7ZOfYgS0IewEI5rtDDj1dFq2bu1iK0577dWrF99++y09e/bkzjvv5Ic//CHFxcXccMMN/PCHP+Szzz7j6quvJjU1tYG97tu3r4HgPn7s9R5DNmr2VLH4pQdYtOD7OQwfOZoufU4iqWPwf/f+Cmj7PbbLofYej2kEdHCIyHnA0zgcVH9R1Ufc1o8Cfg8UAler6hvW8nwcjqsWQGvgj6r6vLUuCXgGKMJRCetuVZ3lbQ6N3pBF5BOgu4dVd6vqO9Y2dwNHcdSi9TbOLcAtAKlevDruhFs0O/EU85yTk0NxcTGVlZXs2LGDQ4cO0bJlSyorKzn11FMd33DLyqipqSEvL4+tW7cyceJEXn31VXbs2EFNTQ2qyjPPPEN2djabN29GRTjz6ole57GrsrzBPHLz8thVWe4iuBsTgcGGKrTrklr/T6dvF9cwDLuAdscppu1x0M59nSLaOadYiug4COFIWOz22qVrVszmsWLbfgq7dWSbW13YwsJC8vPz+fjjj73aa0VFBQcPHiQ5OZn9+/czceJErrvuOs455xwOHjxIXV0dl112GT169KCuro7yigp+8uzbdM0v8DgX93rS9hCPQf0KAz63QGOo23ZOqRfNdoyANoCrzXbMyGx0+1AFsi8cdZzzPdprZWUlV1xxBbNnz673IFdWVrJ9+3YqKiooLi4mKyuL7du3c9ddd/HnP/+ZgwcPIiLU1dXxyCOPfH+PRRh04Q0e5+Aptyc3L5+8tgfp1tM1DzvcVSxcxmuVTVKAUsYpqJ0i2hnCYUS0Sy+Fs3FUs1oqIrNtT2nh+14Kd7jtXgkMU9XDItIRWGXtuwW4G9iuqn1FpAXg8xtSo+JZVc9q5ERuBC4EzrRq0Hob50XgRYD8/oVet3MSKeEM38c82x/9rF+/nquuuopt27aRnp7OwYMHSUlJYdSoUaSnp1NeXk6LFi3Izc1lx44dPPnkkwwZMoQnn3yS2tpaHnnkEZKTk/n1r39NdXU1dQrX/Wa6z0TBtMycBvMoKy31GebhCadADVUs9s3s7LEZirv32Ym/YRyGxMNur9nHDWzUXiPJim37OdA6leKSYhdb+e6775g4cSIZGRnU1NTQuXPnenutrKzkyJEjtG7dmo4dO3L48GEKCws5cuQIu3btokWLFkyePJk//vGP7Nu3j8OHDzP21nu8CmeAlO7ZlJWW+B3i0RiDcjq7fA5HQqIR0M0Xu812LThBIbIC2Rf2uGd3e01PT2f27Nl06dKFMWPGkJWVxcaNG2nbti0TJkwgJyeHnTt38tRTTzFkyBAefvhh6urq+Pjjj9m2bRs//vGPqa6u5lidMvrW+70mCtrjjp1zqCgr9Rji4Y8nGVxrLXvbJ1Ah7sn77MR4oT1S30sBQEScvRTqxbOqFlvrXPKDrN4LTtrgmvf3IxyNyLDyinz+Iw212sZ5wJ3AaFUNm0qKpHAGR8zzbfdMZ3TRGHLz8ijetImjR4+yd+9ejh49yq5du8jJyWHbtm3MmTOH7du3c/PNN7tU0Rg2bBiqSl1dHa1ateLVV1+loqKCxx57jPvuu49r7nqYU8+80Oc8OqWkcdWkaYwcXURunqMxy1WTpgVdmcMfL28gYtZX+IYTf8I4DIZQ6ZCcxvk/m8rI0UVkZmZSWryZpKQkDh48yK5du8jOzq6319raWpYvX869997rUl3DabPHjh0jLS2NZ599lkcffZTBgwdz7Q030r23eyNI73PIyc2jvKyU83821WOIR7Rxep/BCGhD7HHGPY+y7m3Fmzdx5MgR2rZty65du+jevTtbt25lzpw5dOjQgTVr1nDrrbe6hFLa77FpaWlccsklvPDCC6xfv54TTzyRkT+eRp8R53mdg6fcnuET7wmpKsegnqlexXEgormgbzeXhEAjoF1IF5GvbZ9fdCsH66mXwhB/BxeRXOB9oAD4tapuEZFka/X9IlKEo8LVbarqNWsz1DjKZ3Co94+tJKYlqvqTUAaMtHB2MmbspZw4dCRbK0rZt3c3Lzx0F1pXR01NTf0N99FHH2Xs2LFkZWWRkZHhWnonM5Px48czfvx4ioqK+PTTT6msrKSoqIjaI0fod9Iwv+Zx6lkX0e/k4eyqLCctMyfiJe0a81I7Ra/TA+2vgHauNwLaECkKx1xA7xOH8t2X8zj6zl/50Q+u54EHHmhgrwUFBaxbt44ePXo0CM364x//SPfu3RkzZgyzZs3i8ssvZ9asWWzbWumXB9k5h+qtFaR0zw6LcA5XCTwjoA3xxNBzxjHg1NPZsaWMA3v38I9H7qK6ale9QHba63HHHcfGjRvJysryaa9vv/12vb3u3ruPnIGnNToH99wed+EcSrhGqKEegQpo5zaQ2GEchw8dbaySyE6r10FEUNUyoFBEsoC3ReQN4BiOPKTFqvorEfkV8DiOhmQeCalUnaoWqGquqg62XgEJZ2f3P/srmiSnptNv4En06V/Irl1V7Nq1yyVO684776Rnz56MHz++QRmsqqoq/vCHP5CZmVmf3e8sp3PWtT8JSAR3Skmjx4BBUa0FPTCzvcvLHbvwdS9fZy9hZ8e9nJ2nEBCDIRQ6JKdx3JAidmzfRmpqKtnZ2S722rt3by699FK6detGaWmpi82WlZXV37jz8/Pp0KEDqalpXHjRuIA8yB2S08jpVxiycF5evjfstaPt4jenR3qjpezcBbYpY9c8WFK6jyWl+yJ+nM4pafQ+fjA9+p3A7t3VLgLZaa/jxo3jueeea3CP9WyvqZx/wYWMuPneeiHcWHm5dVWwtVU266oabhtr3MWvpxJ2dkw5OyDEXgpOrDjnVcBIYBdwEHjTWv1v4CRf+8csgz/aQtkXyanp/N+Ux3jinl80KI9TXFzM008/Tbt27Rg2bBjHHXccJSUlPPfcc9x999387W9/q8/ud9aWHZoSP8XaQ8EeA+2eQOhPHLTxQBsigTN84teT7+LYkVoXe924cSOzZs2qL2s1ZswY8vPzKSkpITk5mYcffpjCwkJKSko4cOAAFRXljLnhlxSOuaB+/HAJWveYZjuRbLhi90BD415odw90cyPYzH1r3Q+Ae6yPD6jq3932nQ30UtUTIncG3mlMIIdTQPuKr+6cksaQ6+9kyd8faWCvb731Fhs3biQ5OblRe92yZQstWzpkSzyI33AQiAcammUYhzv1vRRwiOarcXTkbRQRyQF2qWqNiKQAI4CnVFVF5F0clTY+A87EFkPtiZi0527bMv66go8ZeylT//h3UtMcN9yCggKKiop4+eWXee+99zh48CCtW7fmjjvu4Ntvv6V///5UVlYyZcoUampqOP300xk9ejRTp07l3ecfo7J4Q8CNT2KJt3hpbx5owHigDTGjcMwF/N/LH9HrlFEMGzaME044gaFDhzJ16lRWrVrFzJkz2b17N7NmzeKFF15wPOrdvZvMzEwmTJiAqnLppZcydepUFs14nu0lGyj/dgVfrikJ2xydnmVPr0gTaPhFc23lbcvcPx8YAFwjIu7B787M/dfd9k0F7sURb3kacK91Q3auvwzw3KmrCeIuxJ3ebefr+HOu5Pix1zNs2DBOPPHEentdsWIFr732mk97bdmyJRdccAF33303ixctZPFLD5Dbqpp9pWup3d/0/l6NB9o7qnoUcPZSWAvMdPZSEJFxACJyqoiUA1fi6J2w2tq9P/CliCwH5gOPq+pKa91kYKqIrMARrjHJ1zziT8XGkIL+A9m/fz8PPvggrVq14rvvvquPae7UqRM1NTXcfPPNDBs2rF5Yf/nll7Rt25bKykoWL17MnXfeSZcuXXjiJ5fz7h/uZdqEs1j6ybsejxdMZ8FIEk4B7cQIaEOk6JCcxlk33k5dXR3jx4+nd+/e3HnnnQBccskltGvXjrFjx3LttdcyduxYpk6dyqZNm1iyZAmHDh3ivffec9hr5y68fPt4Frw4jc9+dzllX37o9ZjR7i4YCu4hHI3RTDsR1mfuW5n4zsz9elS1WFVX4Kj9audc4GNVrVLVahwdd88DsMpg/Qp4INInEE/YxbInBl14A9KyFZdddhkFBQUu9tq6dWuv9lpbW0urVq24+eabKSwspHOXLsz+3XUc/OQZVj1xPTu++dTj8Wr3J4bA9uQ5NgLaO6o6R1X7qmpvVX3QWjZFVWdb75eqao6qdlDVNKsJGar6saoWquog6+eLtjFLVHWUtfxMVS31NQcjnm0kp6Zz5aRp3HHHrykrK6OyshJwxF/V1tbSsmVLamtrqa2trRfWzrbcN954I/3792fevHns3L6NRQsWsHLZNyycP4+ZT0xpIJC//uRdpk04q1GBHW0CjYEGzwK6snSHRw+0EdGGUHD32nbNL6DwzIt56KGH2LRpk0vMZE1NDZ06dWLTpk107969/kZdWFhIz549SUpKctjrjm0sWriAVcu/4fMF81n5+nSP4rjsqw/57HeXU/7m442K7HghFAENTcYLnS4iX9tet9jWecrc97f2oK997weewBFHabBo1yWVETffy8PTp7Nx40YXexURVNWjvaanp3PDDTeQkZHBvHnzqNqxjc8XLuC7VctYvHA+ZbOfaiCQdy77lFVPXN+owI4XwiWgm5OIjiXNUjxv2L3f6+vUsy7ivn/Pp++pIxg6dCh9+vRh6NChtG/fAVXlqquuYt++fS7Ceuu2bfztlVc5YdBgLrxoHD169fbY+MSJvbOgL4EdS8IhoKFhCAc0fS+0iJwnIt+JyAYRucvD+lEi8j8ROSoiDVrai0hnESkXkWc8rJstIqsiNfd4xR7u4C6gL779QYpu+BVHjh5j2LBhFBQUMHToUDp27EhNTQ1TpkyhqqrK5Ua9efNmrvvBD7nwonHk93S11+zcPA7u3OJyjEN7q1n52nQ+XzCftSuX+RTZ8UZTF9BHDh+lvHin1xdW9r7t9WJjY4aCiAwGeqvqW5E8TqLgnqR3MHsIhXf+i3a9Tna5x7Zt25Y2bdpw2223sWvXLhd73bptO3/9+6v0HziYCy4cR17PXq42m5PH4aqt9ces3V9N6TtPsXjhfJ8COxEIVEBD8/JCx4om0fJ3w27XsDJvyYju23mjU0oatz7yIpXFG9i8ehldc3uw/psvWfaff/Paa68xY8YMxowZQ1paGuXl5Vz+f1MYPPocdlWW06Z9B5689UqfjU/87SwYazy1Bg8midCJr2YqTYUQux85uR9Y4GHsZhND6Ssu2FMi3sirfsRJ51zMlvVrQODQvr0s+ecfWL16NRkZGRx33HEMGzaMzMxMtu3YyXk/uZvuvQeQ1K49f510TYNGCselu3ZVPLhzCzm5+R5Ftqeuf/GMKWPnQiiZ+xU4Eozs+84DhgGniEgxjntsVxGZp6pFNDO8JfUldUxhwA8f5sC2YlIOlpB79BibPvo7K1euJCMjg2HDhrnY64hbptaXnDupbXvenXKDq82Wl3JC6veNkA9XbSXb3V4tgR1Ka+5I45486CTQJEJolomEUSXhxbMnQeyvSG6MzB4FZPZwdBzrltuTj//xHCtWrGD8+PF069aN8847jwt/PImRl1wDUC98G2t8Eq7OgtGgMQHtjicBba8DDU2+mUrQ3Y+sZScD3YD/AKfYljtjKG8BZkZu+rHDn0Q6XxUsOiSn0efUkQAc2L2LOc9OpbKykoyMDPr3709dXR01Ldvzfy9/5FJmzr3xyQW33Ye6CeL26VmUlzXsVuYusuOVQCtwQLOpwhF05j6OhKWHbEmC5wC/UdUq4DkAEekBvGeEs2c6dOtB/54nUbOniq//+VQDe91HW8Y//X59WTrnT2fzk8zsXCrKS8kdd7uLKG6T2p317vbqJrDjlVAEtHM7J0ZAR46EFs/hEsn+0CkljWsmP8yIUaPJysqioqKcK385tV4422ms8Um4OwtGGl8C2t37DM2+mUrQ3Y9EpAWOOMnrgLPcVjfpGMpQhbM79m6AWdnZlJWUcPpVt3DGDf/XYFtPjU/c59O2cwoDJ0zm9FGj67uVDZwwOaG8zk7PcaCNVJzbNkXvs6oeFRFn5n5L4GVn5j7wtarOFpFTgbeAFOAiEblPVY9X1SoRuR+HAAeYZgnnZkmwpeOcra6dgjgr29FWu/Dimzht/E89Hyd7CAN+9QqHq7ZyQmr3Bt7kpI4p5I67neEjR5Odk+dRYMcz3gS0P5hSdtEhYcSzUyg7QzKiKZydBNINsFNKms/10e4sGCqeBLQTTwLaF/FcC/pI7VGfoScWjbUPDZafAnNUtdzq2Am4xFDebnmyEp5Ay7UFIpydBNINsENymsv6QTmdG8wxd8i5ZPQ/jYM7t3BcelZCCWc77l7oQHDu15REtKrOAea4LZtie78UR0iGp31fBl72MXYxEJMaz9Ek1JrLyzdXMcjWDXCEh26ATpwtspM6pvgUwxknnkmXPid5FdjxjlPwBlID2oknAW0f0xA6cS+e3UWy8/O+6l0xEZ6NieJYjRUN3AV0KPHP8Syg/cBX+9BQYiiHASNF5KdARyBJRPYDJSR4DOWB3buo3lpBRV2XgEVnMMLZibsoDvS4njzQiSqa7TgFtD/eZ2hWMdAGoGZPFXu3V9DZh4h1Eq5mJU4PdGPHC4TGBHYiEGgTFScmDjqyxJV49teb/PUn7zLjiSnk5edTWlLCVZOmcepZF0V4dgbw7YF2JxgB7U4CCWonQcdQquq1zvciciNwiqo6q3UkbAzlyrnvM+fZqWTl5FFeVsLACZPJHXJurKfVgOXlexsIdU8CuqlhBLTBzvpFH7D4pQfIycunvLSE4RPvoc+I8xtsF4kOf57GHNSzoZh2ep+bK0ZAx56Yl6qzl4nzh0Qo89ac8FW+DhpvouKplJ2dRCtrF2L3o4TFWye9L9eU8N4z97Jw/rygSryF4nUOBG9l8KI5h2gTaAk78FzGLt5L2Rn8p2ZPFYtfeoBFC+axZsU3LFowj8UvPUDNnqoGJeeihadjNTfhHEwNaCemlF1kiJl4DkQw2/FV5q2pEW8dCJ2414A2AtqVYLsfuY3xN1W9zcPyYlWNuxjKQTmdPYpMXyXe4pVQBHQidSCE4AV0otWCNvjH3u0VZObkNbDX/y5bG9N52cVyOIVzonQghNAFdHPuSBgJYiKeDx1rUKHLb+xl3oC4LvMWDM6QiHjtQOjECGiDP9hLvAH1Jd7ax3mJt2AEdCJ2IITgBDQkXjMVg2+Wb66i9FB7Ksrc768ltImDEm/+erwH9Uz1GOrhTqJ1IITQBDQ075be4SbmYRuBYi/zdsKgwYwcXRTxMm/+xviGyr7qXXSqXk9l8YaEDE0Jp4D2JKKNgI4NNbXHGoRj+Iu9xFu/gYM4fdRov0u8xWO4hH1Odi9zIncgBCOgmyOewjDsJd6OO34Qw0eOTqgSb43h9DQf2FacsB0IQ41XNgI6PMRVwqC/JFqZN3+wJ0Fu3rixSXYg9AdnEiF830zFjnPsBEwkTFjaJbV0EY2BCuhgSrxFO9bZ2zpv8yj76kNWvjadnNx8ystK6HnWhITvQGgvYedvEiGYRMJEwh/PbaKXePN2jjuXfUrpO0+RnZtPafFGchOwA6E3/E0gdGJqQYdOwnmenXRKSaPHgEERF5PR8Dq7J0G+9+5sijdtTNjQFF8e6Ma8z4BLhQ7jhW4atO2cQmqv4+NKOPuDJ3Fd0PFIAy/zpo/+QVlp4oWn+CJQD7RdbJtEwvgjkFjhpI4pdMrrn5BC0hO1+6tdPM0fvPcu5SWbXO21vDQuwlP8IRxC1z0O2nigAyNhxXM0iFa4hnsSZFFREekZXTl95Cj6DxzMiFFFDPvRPXHldXbiHvvsJJwCGjzHQhsBbYgG7p726q0VDbzMOfk96HX2tUGFp8QT7h7jQNtzexLRhtgS7eoY8cjhqq1k57reY5PTMhg2YmSTCU8JJPbZjl1EJ4qAFpHzROQ7EdkgInd5WD9KRP4nIkdF5Arb8sEi8oWIrBaRFSIy3rbuTGufZSKySEQKfM3BiOc4wFMS5J69e7njhVkMvP63XPX7d+kz4nxWVh6MmqAPhEgKaHcvtDtGQEce95jnSBOvdZWd86qo6+IxCbLn6Ms44/5Z5F72a8fPOKxl7Q+hCmhoGAttiC41h48a0WyjTWr3BomQe/fupd+tf6L92T/nhEmvknHimTGeZWCEmjzoTqIIaBFpCTwLnA8MAK4RkQFum5UCNwKvuy0/CNxgVbg6D/i9iCRb654DrlXVwdZ+9/iaR0LGPHsiVh0Hw4E9CTI3L4+y0lKumjSNzB4FZPYoaCCYV1Ye9CpYGyOerlNjTVScOLexN1Sxk2DdCQ04ku0O7txC+wRrc728fK9LEmR2bh4VZaUuXuZwnk+srlMoLbydOGOhm2JL7+ZG7f5qDldtpU0CxkCDayJkdk4eFeWl5I67nQ7deoT1OPFwnQKNf7bjjIWO83bepwEbVHUTgIj8C7gYWOPcQFWLrXUupd1UdZ3t/RYR2Q5kALsBBZxCogvgs55qkxDPkeg4GE7B6g++kiA9JeYFM59Idmb01nmwsQRCfwU0uHYkdI7nxAjoxME92W7ghMlcePmV9eudHu5AY5+D2SdYgkmCDBRP1yma3uxgEwjt2JMJ4zWRUETOA54GWgJ/UdVH3Na3AV4BTgZ2AeNVtVhEkoAXgFOAOuAXqjrP2icJeAYostbdraqzonJCYcaeaLe+rITccbcnnJcWIp8IGYvr5N6620koAtpOnCYSZgNlts/lwJBABxGR04AkYKO16CZgjojUAHuBob72T/iwjabUcdBXEmSowj0a18mfOXoqYRcIjYVxGOIbbyXdDux2/B3Ga8iGJwJJggyUeCl9F2wJOzvxHAPt5yPgiUC1qhYATwHTreU3A6jqQOBs4AkRcd5T7wa2q2pfa9z5ET2RCOGeaJdIJd08EalEyHi8TqHEQNsJdxjH0cOH6uOsPb2AdBH52va6JawTAEQkE3gV+KGqOr3TtwNjVTUH+CvwpK8xEl48R6LjYDzGFUNDceqMgba/vBGtzoyeBLS7RziY+Gdv2AV0vMQ/h5DMkG9LWFgtIj+xrUsSkRdFZJ2IfCsil0frfMKJt46DX61YF7JwjqcqHaESr50Zm6CArn8ErKq1gPMRsJ2Lgb9b798AzhQRwSGKPwNQ1e04Hv2eYm33I+Bha12dqiZkELh7op29pJvhe2J5nXx5huNVQDfCTlU9xfZ60W19BZBr+5xjLfMLEekMvI/jadASa1kGMEhVv7Q2mwEM9zVOwovnpt5x0J3GvLveBHS8XadQBLSvShyxFtAhJjNUAsOshIUhwF0i4qx11iQ8Wf52HGxKQjgY4qkzYzgSCCGmAtqXJ8vTI+Bst/3rt1HVo8AeIA1YDowTkVYi0hNHWEeuLQHpfuvL8L9FJO6effuDp0S7RCrpFi1ifZ0iEVoRx6XslgJ9RKSnFR51NTDbnx2t7d8CXlHVN2yrqoEuIuL8tnE24LMnfVhinkVkEvA4kBHtb9jeku2CTYaLV6+zHW/xxU48xUOH+zoFOj977LOTYJqoOLE3UwHXhioxjn8OJZmh1vaxDa5fbn8E9LO2qwMS0pPVWLKdwUG8XSf3BMJ4ioE+VnuIfcXrfW2yU1VP8bVBkLwM9Ae+BkqAxcAxHPfVHGCxqv5KRH6F4/54fQTmEFG8JdolYtJgJImH6xSp+Gd7Q5V4SCRU1aMichvwIY48hZdVdbWITAO+VtXZInIqDpGcAlwkIvdZFTauAkYBaSJyozXkjaq6TERuBmZZ9+VqHPdcr4QsnkUkFzgHhzctJjTFjoON4Y+Adt8+mtcpGAEdSPIgNC6g7ceNIiElM1j29D5QAPzayghOtlbfLyJFOBIcblPVuHEFBEJjyXbN3evsJBpJiYEQLgFtJw4qcfjzCNi5TbmItMKRib9LVRVHnCQAIrIYWIcjqfAg8Ka16t844qYTkkTvOBgt4uE6RUNAQ+wTCVV1DjDHbdkU2/ulOGzZfb9/AP/wMuZbOAS3X4QjbOMp4E4cZT5iRrQ6DsYTgSQROoVsNK+TP/HP4BrCEWj8s7+1oP0N56irPcyhso0+X0QwoUFVy1S1EId4/oH1uNfuyToJ+AKHJyth8ZZsZ4SzK5FMSgwH4aoBHcM4aH8eAc8GfmC9vwL4TFVVRNqLSAcAETkbOKqqayxR/S6OShsAZ2J78pSINLWOg5Einq9TKDWgIeZx0HFHSOJZRC4GKlR1uR/b3uIUG/t3m8LtsSAWISmRENCWgHXBLqKjUIXDV0JDSMkMTlR1C7AKGIlnT9ZJQc3cT+z2enhfdIRNMKXpEqk6R1MgXB7ieBHQVgyz8xHwWmCm8xGwiIyzNnsJx2PeDcCvAGcScFfgfyKyFpiMa1jGZGCqiKywlk+K9LnYbfbIgd2RPpwhTolEAqETI6C/p1HxLCKfiMgqD6+Lgd8CUxobA0BVX3SKjY7JqaHOOyIkQryzO4GWsIsXAe2JUAU0EE0B7Y1QkhlyRKSd9T4FGAF8FwtPlt1e23SKPy+KE+Opjj7hTCB0F9HrS6qjLqJVdY6q9lXV3qr6oLVsiqrOtt4fUtUrVbVAVU9z5jOoarGqHqeq/VX1LFUtsY1ZoqqjVLVQVc9U1YiHNdpttnWH5EgfzhDHRFtAN0cR3ah4tv4pnOD+AjYBPYHlIlKMw8P2PxFJyDTcRBTOThJRQPsTh5yIAtofT5aInCoi5cCVwAsistravT/wpYgsx1FN43FVXWmti7onK5oEI4LDIZyN+A6OcAloiB8vtMHQlIimgG6OBB22oaorVbWrqvZQ1R44EqNOUtWEKwCZyMLZSVMR0IGWsItTAd2YJ2upquaoagdVTbOygFHVjy1P1SDr54u2MaPuyYoWsRawsT5+ohJpAW0wGELDCOjIkfB1ng3Bk6gCum1ub5fP/gho043QYAg/RkAbDPGNEdCRIWzi2fJAm/9+MSSYFt7+diiMJMGUkgtUQBuaHiZZMD4IZ5k5I6ANhvBjBHT4MZ7nAEiE8I5gBLSdaJxjuFp4+yugDfFLqCETRkDHB3YB3Zj3uZGGJkZAGwwRIJJ1mZujgDbiuQmSCALaE8EIaHcaK2NniB9CEc520WwEdHzgr4Du1KNPo2MZAW0wRI9Qvc/NESOemyjhENCRDOcIpnwdBC+gDfFFuISzIb4IxANtMBjiByOgA8OI5yZMqALaTrS80YEmELqHbjgxAjp+McK5+WAEtMEQPzQWumEEtP8Y8dzEiWcBHcjcjAfaYIRzYhDOChwGgyG8GAEdHox4bgYkmoD2Vn3DXUA78eZ9BiOgDYZYYAS0wRC/GAEdOkY8B4h7LHAiVOCApimg/QnfAIeANiK6aWO80vGHEdAGQ/xiBHRoGPHcjIhnAR0s/groaCIi54nIdyKyQUTu8rB+lIj8T0SOisgVtuWDReQLEVktIitEZLxt3ZnWPstEZJGIFETrfMJJJLv5GQEdf4SzBnSk8MNe24jIDGv9lyLSw1reWkT+LiIrRWStiPzGts/tlh2vEpF/ikjbKJ6SweAXiSqgI3SP7WnZ9wbL3pN8zaHZi+dwiMB4EZL+EK8COpTwjXgS0CLSEngWOB8YAFwjIgPcNisFbgRed1t+ELjBatd9HvB7EUm21j0HXKuqg6397onE/COJSRRsnsRzBQ4/7XUiUK2qBcBTwHRr+ZVAG1UdCJwM/FhEeohINvB/wCmqegLQErg68mdjMISfeBPQEbzHTgeesuy8Gofde6VZi+dEEr3hJNwCOlwhLE1EQJ8GbFDVTapaC/wLuNi+gaoWq+oKoM5t+TpVXW+93wJsB5wnpoDzYnQBtkTuFMKPEc7NmzgW0I3aq/X579b7N4AzRURw2GQHEWkFtANqAecfayugnbWuPQlmr4bmgz/NU+JMQIf9HmvZ8xk47Bsc9n6Jr0k0W/HcXIWzk4GZ7cMqop0YAU02UGb7XG4tCwgROQ1IApzB2jcBc0SkHLgeeCTEeSYE7sI5kmEfhugRRwLaH3ut30ZVjwJ7gDQcN9oDQCUOT9fjqlqlqhXA49aySmCPqn4UyZMwGEIhwQR0JO6xacBuy779GrNVoAcMB6Xfrtz542E9SkIYIh2IVQuqWB471sdP9HPPb2wD3b/lw0ML7m3szt5WRL62fX5RVV8MYV4uiEgm8CrwA1V1fnO+HRirql+KyK+BJ3EI6ohTXbx258wbTwrJXmeG6e9mZnDrjc0k5rEbtVcA3bflw0Nz7/Fls5Gy19OAY0AWkAIsFJFPcDzyvRjoCewG/i0i16nqP8JwTL/YX/7dzoWTRgRrs+ZvNnYk8rn7aa8VHx769DexsNd63O+xDsdzYMREPKtq40V6fSAiX6vqKeGaT6IcO9bHbw7nrqrnhThEBZBr+5xjLfMLEekMvA/crapLrGUZwCBV/dLabAbwnxDn6TeJbK+xPr4598gfO0Sb9cdenduUW2EYXYBdwATgP6p6BNguIp8Dp+AI59isqjsARORNYDgQNfEcis2av1lz7pEkHu+xOOw5WURaWd7nRsdstmEbBkOEWAr0sTJ3k3AkCs32Z0dr+7eAV1T1DduqaqCLiDifm50NrA3jnA2G5oo/9job+IH1/grgM1VVHGEZZwCISAdgKPCttXyoiLS3YinPxNirwRAuwn6Ptex5Lg77Boe9v+NrLCOeDYYwYn1rvQ34EMcNc6aqrhaRaSIyDkBETrVil68EXhCR1dbuVwGjgButknTLRGSwNebNwCwRWY4j5vnXUT41g6HJ4Y+9Ai8BaSKyAfgV4CyN9SzQ0bLfpcBfVXWF9YToDeB/wEoc99mwPnY2GJorkbjHWusmA7+y7DwNh917RRyCO7EQkVvCHQOTCMeO9fGb87kbgifWvzdjM83z3A3BEevfW3P+m23O555oJKR4NhgMBoPBYDAYYoEJ2zAYDAaDwWAwGPwk4cWziEwSERWRqBUOFZHHRORbq73jW7YONZE8ps92lBE+dq6IzBWRNVZby19E8/jWHFqKyDci8l60j20IH83FXq3jxsRmjb0awkUs7NU6brO5x8aDvVrzMDYbAAktnkUkFzgHR3ZzNPkYOEFVC4F1wG8ieTDxrx1lJDkKTFLVATgyyn8W5eMD/AKTsZ7QNBd7hZjbrLFXQ8jE0F6hed1j48FewdhsQCS0eAaeAu7EUVczaqjqR7ZONEtw1ASMJP60kI0Yqlqpqv+z3u/DYWABd/QJFhHJAS4A/hKtYxoiQnOxV4ihzRp7NYSJmNgrNK97bKztFYzNBkPCimcRuRioUNXlMZ7Kj4APInyMsLSjDAci0gM4EfiykU3Dye9x/BOva2Q7Q5zSzOwV4sRmjb0agiGO7BWa0T02RvYKxmYDJiYdBv1FHK1Ou3tYdTfwWxyPlKJ+bFV9x9rmbhyPXF6L1DziCRHpCMwCfqmqe6N0zAuB7ar6XxEpisYxDcFh7DW+MPZq8EUs7bWx4zdHm42FvVrHNTYbBHEtnlX1LE/LRWQg0BNYLo6e5DnA/0TkNFXdGslj2+ZwI3AhcKZGvt5fSO0ow4GItMZh2K+p6ptRPPTpwDgRGQu0BTqLyD9U9boozsHgB8ZeXYipzRp7NTRGLO3V1/Ft87iRZnKPjaG9grHZoGgSdZ5FpBg4RVV3Rul45wFPAqNVdUcUjtcKR9LEmTgMeikwQVVX+9wxfMcX4O9Alar+MhrH9DKPIuAOVb0wVnMwhE5Tt1frmDGzWWOvhnASbXu1jtls7rHxYq/WXIowNusXCRvzHGOeAToBH4ujvePzkTyYt3aUkTymG6fjaAl9hnzf0nJsFI9vMIRCVO0VYm6zxl4NiU5zuscae01AmoTn2WAwGAwGg8FgiAbG82wwGAwGg8FgMPiJEc8Gg8FgMBgMBoOfGPFsMBgMBoPBYDD4iRHPBoPBYDAYDAaDnxjxbDAYDAaDwWAw+IkRzwaDwWAwGAwGg58Y8WwwGAwGg8FgMPiJEc8Gg8FgMBgMBoOf/D+ddx1ITAGN3QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "rng = np.random.default_rng(seed=42)\n", "fig, axs = plt.subplots(1, 3, figsize=(12, 3), sharey=True)\n", "clfs = [run(ax, rng) for ax in axs]\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, \"brighter\" areas are associated with higher probability values indicating normal portions of the data space. Conversely, \"darker\" areas are associated with lower probability values, indicating anomalous data regions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Binarization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the given plots, we may now derive appropriate thresholds, which may be used to derive binary labels from the classifier. We will manually pick some \"good\" thresholds and demonstrate, how it affects the classification in the plot:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def binarize(ax, clf, threshold):\n", " # Create mesh grid and find probability values for every point in the grid.\n", " xx, yy = np.meshgrid(np.linspace(-5, 5, 50), np.linspace(-5, 5, 50))\n", " bin_df = lambda prob: 1 if prob > threshold else -1\n", " Z = np.vectorize(bin_df)(clf.predict(np.c_[xx.ravel(), yy.ravel()]))\n", " Z = Z.reshape(xx.shape)\n", "\n", " # Create the accompanying plot.\n", " cf = ax.contourf(xx, yy, Z, cmap=plt.cm.viridis)\n", " plt.colorbar(cf, ax=ax)\n", "\n", " ax.scatter(X_train[:, 0], X_train[:, 1], s=1, c=\"w\", edgecolor='k')\n", " ax.scatter(X_test[:, 0], X_test[:, 1], s=1, c=\"w\", edgecolor='k')\n", " ax.scatter(X_outliers[:, 0], X_outliers[:, 1], c=\"w\", s=1, edgecolor='k')\n", "\n", " ax.axis('tight')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(1, 3, figsize=(12, 3), sharey=True)\n", "thresholds = [0.175, 0.1275, 0.155]\n", "plts = [binarize(ax, clf, t) for ax, clf, t in zip(axs, clfs, thresholds)]" ] } ], "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.9.1" } }, "nbformat": 4, "nbformat_minor": 4 }