tahamajs's picture
download
raw
177 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.svm import SVC\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from sklearn.svm import SVC\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"sns.set()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Part A"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Weights: [-0.5 -0.5]\n",
"Bias: 3.5\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X = np.array([[1, 4], [2, 3], [4, 5], [5, 6]])\n",
"y = np.array([1, 1, -1, -1])\n",
"\n",
"\n",
"clf = SVC(kernel='linear')\n",
"clf.fit(X, y)\n",
"\n",
"weights = clf.coef_[0]\n",
"a = -weights[0] / weights[1]\n",
"bias = clf.intercept_[0]\n",
"\n",
"xx = np.linspace(X.min(), X.max())\n",
"yy = a * xx - clf.intercept_[0] / weights[1]\n",
"\n",
"plt.scatter(X[y == -1, 0], X[y == -1 ,1], c='b', label=\"class -1\")\n",
"plt.scatter(X[y == 1, 0], X[y == 1, 1], c='r', label=\"class +1\")\n",
"\n",
"plt.plot(xx, yy, 'k-', label='Decision Boundary')\n",
"\n",
"plt.xlabel('$x_1$')\n",
"plt.ylabel('$x_2$')\n",
"plt.title('Hard-Margin SVM')\n",
"plt.legend()\n",
"\n",
"print(f\"Weights: {weights}\")\n",
"print(f\"Bias: {bias:.1f}\")\n",
"\n",
"plt.savefig(\"../assets/Q4_partA.png\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Part B"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [],
"source": [
"def plot_samples(X, y, title,color=['r', 'b'], labels=[\"-\", \"+\"]):\n",
" uniqe_y = np.unique(y)\n",
" for i in range(len(uniqe_y)):\n",
" label = uniqe_y[i]\n",
" plt.scatter(X[y == label, 0], X[y == label ,1], c=color[i], label=\"class \" + labels[i])\n",
" \n",
" plt.xlabel(\"$x_1$\")\n",
" plt.ylabel(\"$x_2$\")\n",
" plt.legend()\n",
" plt.title(title)\n",
" plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [],
"source": [
"class MAP:\n",
" def abs(X, alpha):\n",
" return np.abs(X - np.array([alpha, 0]))\n",
" \n",
" def norm(X, center):\n",
" return np.column_stack([np.linalg.norm(X - center, axis=1), np.full(len(X), 0)])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dataset 1"
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm8AAAHQCAYAAAD3Qo21AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7wklEQVR4nO3de1zUdd7//+fMAIrCIChWmicojxFqJ03S8nClib8NW11rU2vdykNqHkqzw27mqS6zFM9prZZlWupulm4Hdy0t67JstUxT8Mo85AGUQVCBmfn94Ze5GgGFD4zDWx73221vyfvzfn/m9Xm54tPPCZvX6/UKAAAARrAHuwAAAACUHuENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q3AZW3VqlVq1qyZ738JCQnq0KGD+vfvrwULFigjI8Pyvvfu3avU1FQdOHCgAiu27ttvv1VqaqpcLlep5v/666+aPHmy7r//ft14441q1qyZVq1aFeAqAZQX4Q1AlTB16lS98847ev311/Xss8+qRYsWevXVV3XXXXfpiy++sLTPvXv3avbs2Tp48GAFV2vNtm3bNHv27FKHt59//lnvv/++QkND1alTpwBXB6CihAS7AAC4FK699lolJCT4vr7zzjv1wAMP6L777tOjjz6qjz76SHXq1AlihZfeTTfdpC1btkiSduzYobVr1wa5IgClwZk3AFVWvXr1NG7cOOXk5Gj58uW+8R07dmjUqFHq3Lmzrr/+enXu3FmjR4/2O8O2atUqjRw5UpI0YMAA32XZwsuOmzdv1pAhQ9SxY0clJCSoW7duevbZZ5WZmelXQ2Zmpp555hl16tRJ1113ndq1a6d+/foVORv4xRdfaODAgWrbtq0SExPVr18/ffnll77tqampevHFFyVJXbp08dXz1VdflXj8djt/BQAm4swbgCqtU6dOcjgc2rp1q2/s4MGDatKkiXr27KmoqCgdO3ZMb7/9tn7/+9/rgw8+UExMjG6//XaNHj1aM2bM0LPPPqtWrVpJkho2bChJ2r9/v9q0aaM+ffooMjJSBw8e1Ouvv6777rvPd6lSkh5//HHt3LlTo0aNUuPGjeVyubRz506dPHnSV8/f//53jRs3Tl26dNELL7ygkJAQvfPOOxo0aJAWL16s9u3bq0+fPsrKytIbb7yh2bNnKzY2VpJ0zTXXXKJOArhUCG8AqrQaNWooOjpaR48e9Y11795d3bt3933tdrt1++23q0OHDlq7dq0GDBigmJgYNWrUSNK5gNS6dWu//d57772+X3u9XrVp00Y333yz7rjjDn322Wfq0qWLpHMPGfTp00d9+/b1ze/atavv16dPn9aUKVN0++23a86cOb7xTp06KSUlRTNmzNDKlSt15ZVX6qqrrpIktWjRQldffXUFdAdAZUR4A1Dleb1ev69zcnI0d+5cffTRRzp48KDcbrdvW1paWqn2mZGRoZkzZ2rjxo06evSoPB6P3z4Kw9v111+v1atXq1atWrr11lvVqlUr31k56dxDCCdPnlRKSooKCgr8PuO2227TokWLlJubqxo1apT5uAGYifAGoErLzc3VyZMn1bRpU9/YmDFjtGXLFg0dOlQJCQmqWbOmbDabHn74YZ09e/ai+/R4PPrTn/6ko0ePaujQoWratKnCw8Pl9XrVt29fv328/PLLmjdvnt59913NnDlTNWrUULdu3fT4448rNjZWx48flySNGDGixM/LysoivAFVCOENQJX273//W263WzfffLMkKTs7W//+97/16KOP6uGHH/bNy8vLU1ZWVqn2+dNPP2nXrl2aNm2aUlJSfOM///xzkbkxMTF66qmn9NRTT+nQoUPasGGDXnrpJWVkZGjx4sWKjo6WJD3zzDNKTEws9vNq165d6uMFYD7CG4Aq69ChQ3rxxRcVGRmpfv36SZJsNpu8Xq/CwsL85q5cudLv8qkk35wzZ874jdtsNr/thX77RGtx6tWrp/vvv19ffvmlvv32W0lS27Zt5XQ6tXfvXt1///0XXF/4eaU5OwjAXIQ3AFXCnj175Ha7VVBQoMzMTG3dulWrVq2Sw+HQ7NmzFRMTI0mKiIjQTTfd5DvrVb9+fX399dd699135XQ6/fZ57bXXSpJWrFihmjVrqlq1arr66qsVFxenhg0b6qWXXpLX61VUVJT+9a9/afPmzX7rs7OzNWDAACUnJysuLk41a9bUjh079Pnnn6tbt26SpJo1a+rpp5/W+PHjlZWVpTvvvFO1a9dWZmamdu3apczMTD333HOS5Lv0u2TJEqWkpCgkJERNmjRRREREiX1Zv369JOmXX36RJH3//fe+S7C/fWgDQOVh855/py4AXEZWrVqlJ598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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X = np.array([[1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], [7, 0]])\n",
"y = np.array([1, 1, -1, -1, -1, 1, 1])\n",
"\n",
"plot_samples(X, y, \"Dataset 1\")\n",
"plt.savefig(\"../assets/Q4_data1.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm8AAAHQCAYAAAD3Qo21AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABBHklEQVR4nO3de1yVVd7///feHBSFjaBoaZ7AwDRErTwko1PmnSbehY5mTWZlpeKRtLTDzJSR2oxZipnHSk3HchqdMnXS6me3ljaVjaZpCkyalQdANx4Q2Pv6/dGXPW05CBsQVryej0cPZV1rXXtdH5f55jphsyzLEgAAAIxgr+4JAAAAoOwIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvACrV3//+d8XExCgmJkY7d+4sst2yLPXp00cxMTEaNmxYNcywahQe9/fff19qv9TUVE99YmJiFBcXp549e2rEiBFasWKFzpw54/McvvzyS6WmpsrpdPq8j8q0detWpaamlrn/wYMH9fTTT+vOO+9Ux44dS1xDQG1HeANQJerXr6+//e1vRdo/++wzHT58WPXr16+GWdUcS5Ys0ZtvvqklS5ZoypQpuvLKK/WXv/xFCQkJ2r9/v0/73LVrl+bNm1ejwtu8efPK3P/rr7/Wli1bFBoaqm7dulXhzACzEd4AVInbbrtN77//fpEzSX/729/UqVMnNW3atJpmVjO0b99eHTt21A033KD+/fsrJSVFb731ls6cOaPRo0crLy+vuqd42d1+++3atm2bFi1apDvuuKO6pwPUWIQ3AFWif//+kqT169d72nJycvT+++9r0KBBxY6ZN2+eBg8erC5duqhz585KTEzUmjVrZFmWV7+bb75ZI0eO1ObNmzVgwADFxsaqd+/eWr58uVe/nTt3KiYmRv/4xz80Y8YM9ejRQx06dNA999yjffv2Ffn8PXv2aNSoUerSpYtiY2N1xx13aMOGDUX6ffXVVxo6dKhiY2MVHx+vF154QQUFBeWu0cXatm2rUaNG6YcffvD63O3bt2v06NHq2bOnYmNj1adPH/3xj39UVlaWp09qaqr+/Oc/S5J69+5d5NL1hg0b9MADDyg+Pl4dOnRQv379NGvWLJ07d85rDkeOHFFycrLi4+N17bXX6sYbb9Tw4cP1zTffePXbsGGD5/Jmp06dNGLECK+aTp06VStXrpQkr8vEpV1Wttv5JwkoC//qngCAX6fg4GDdeuutevvttzV06FBJPwc5u92ufv36admyZUXGHD16VHfeeafnrNxXX32llJQUHTt2TGPHjvXq+80332j69OkaO3asGjVqpHfffVfPPfec8vPzNWLECK++L774otq1a6eUlBTl5ORo3rx5GjZsmNatW6fmzZtLknbs2KEHH3xQcXFxevrppxUSEqINGzYoOTlZubm5GjhwoCTp0KFDuu+++9SsWTPNnDlTdevW1apVq7xCakXcfPPN+stf/qJ//etfnrNPhw8fVqdOnTR48GCFhITo6NGjeu2113T33Xfr3XffVUBAgAYPHqzTp09rxYoVmjdvniIiIiRJbdq0kST95z//Uc+ePTV8+HAFBQUpPT1dixcv1u7du71C70MPPSS3261HH31UTZs2VXZ2tnbt2uV1KXbBggV66aWXNHDgQI0ePVr5+flaunSpfv/732vNmjVq06aNkpKSdO7cOf3zn//Um2++6RnbuHHjSqkTUKtZAFCJ3n77bSs6OtravXu3tWPHDis6Otr69ttvLcuyrEGDBllTp061LMuy+vfvb91zzz0l7sflcln5+fnWvHnzrC5dulhut9uz7aabbrJiYmKsb775xmvM/fffb3Xu3Nk6d+6cZVmW5/MTExO9xn///fdW+/btrSeffNLT1rdvX+uOO+6w8vPzvfY5cuRIq0ePHpbL5bIsy7ImTpxodejQwTpx4oSnT0FBgdW3b18rOjraOnLkSKn1mTt3rhUdHW1lZmYWuz03N9eKjo62HnzwwWK3u91uKz8/3zp69KgVHR1tbdmyxbNtyZIlZZpD4T4+++wzKzo62lPHrKwsKzo62nr99ddLHPvDDz9Y7dq1s5599lmv9jNnzlg9evSwJkyY4Gl75plnrOjo6FLnUpKNGzda0dHR1o4dO3waD/yaceYNQJXp0qWLWrRoobfffluJiYnas2ePpk6dWmL/Tz/9VAsXLtSePXuK3CuXmZmpRo0aeb6++uqr1bZtW68+CQkJ2r59u/bu3avrr7/eq91ms3m+btasmTp16uS5pPjdd98pPT1dU6ZMkSSvS6A9e/bURx99pIyMDEVFRWnnzp3q3r2711z8/Px02223levm/JJYF10iln4+9jlz5mjr1q06fvy43G63Z1taWpp69+59yf0eOXJEL730knbs2KHMzEyvz0lPT1fbtm3VoEEDtWjRQkuXLpXb7VbXrl3Vtm1br8uZ27ZtU0FBgW6//XavOtWpU0c33HADT4cClwHhDUCVsdlsGjhwoFasWKELFy6oVatWXqHql3bv3q0RI0aoS5cuevbZZ3XFFVcoICBAW7Zs0YIFC5Sbm+vV/5fh6eK2U6dOlalv4VOdJ0+elCQ9//zzev7554udX3Z2tmffpX12RR09elTSfy8vut1uPfDAAzp+/LiSkpIUHR2toKAgWZalIUOG6MKFC5fc59mzZ3X33XerTp06mjhxolq1aqW6devqp59+0tixYz21tdlsev311/Xyyy9ryZIlmjlzpho0aKABAwZo4sSJCg4O9tTqd7/7XbGfxX1rQNUjvAGoUgMHDtTcuXO1evVqJScnl9jvvffek7+/vxYuXKg6dep42rds2VJs/8IQUVxbgwYNytS3sF9YWJgkaeTIkerTp0+xn9e6dWvPvkv77Ir68MMPJf181lKSvv32W+3fv18zZ85UYmKip993331X5n3u2LFDx48f14oVKzz7lX5+gORizZo10/Tp0yVJGRkZ2rhxo+bNm6e8vDxNmzbNU6u5c+fW+ieGgepCeANQpZo0aaIRI0YoPT291Nc/2Gw2+fn5eZ25yc3N1TvvvFNs/4MHD2r//v1el07Xr1+v+vXrq3379l59169fr/vvv99z6fTo0aPatWuXbr/9dklSZGSkWrVqpf379+uRRx4p9Xi6du2qDz/8UCdPnvScbXO5XMU+lVpe+/fv18KFC9WsWTP169dPkjxzDgwM9Oq7evXqIuML+1x8Nq48+/il1q1bKykpSe+//77nSdL4+Hj5+/vr8OHDuvXWW0sdX/h5ubm5qlu3bql9AZQd4Q1AlZs8efIl+/Tq1UuvvfaaJk2apDvvvFOnTp3S0qVLiwSOQo0bN9bo0aM1duxYRURE6J133tH27ds1efJkBQUFefXNysrSmDFjNGTIEOXk5Cg1NVWBgYEaOXKkp88zzzyjhx56SCNGjFBiYqKaNGmi06dPKy0tTXv37tXcuXMlSaNHj9aHH36o4cOHa8yYMapbt65Wrlyp8+fPl6sme/fuVUhIiAoKCnT8+HF9+umn+sc//qGGDRtqwYIFnuOOjIxUixYt9MILL8iyLIWGhuqjjz7S9u3bi+wzOjpakrRs2TIlJibK399frVu3VqdOnRQaGqo//elPGjt2rPz9/fXuu+/qwIEDXuP379+vZ599Vn379lXLli0VEBCgHTt26MCBA3r44YclSVdddZXGjx+vl156SUeOHFHPnj3lcDh08uRJ7dmzR0FBQRo/frzXfBYvXqyePXvKbrcrJiamxD/T8+fPa+vWrZKkf//735Kkf/3rX8rOzlZQUJB69epVrhoDv1aENwA1Qvfu3TV9+nQtXrxYo0aNUpMmTTRkyBCFh4frySefLNL/mmuu0cCBA5Wamqr//Oc/aty4sR5//HHdd999RfomJydrz549evzxx3XmzBl16NBBs2fPVosWLTx9unXrpjVr1mjBggWaPn26nE6nGjRooKioKM9ZMOnnQPLaa6/p+eef15QpUxQaGqr//d//1a233qo//OEPZT7eBx98UNLPZ6dCQ0MVExOjyZMna+DAgQoODvb0CwgI0IIFC/Tcc8/pj3/8o/z9/dW9e3e9/vrr+u1vf+u1z65du2rkyJFau3at1qxZI7fbreXLl6tr165auHChnn/+eT366KMKCgpS79699eKLL3pdio2IiFCLFi20atUq/fTTT5Kk5s2ba8qUKV4/ymzkyJGKiorS8uXL9d577ykvL08RERG69tprddddd3n6JSQk6Msvv9SqVav08ssvy7IsffDBB7rqqquKrUlmZqYmTJjg1Vb447WaNWvmuaQM1HY2q7hHmwCgBrv55pt19dVXa+HChaX227lzp+69917NmTNHffv2vUyzA4CqxWNBAAAABiG8AQAAGITLpgAAAAbhzBsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEF7SexlZliW3+9f7fIjdbvtVH19Vona+o3a+o3YVQ/18R+2KZ7fbPD/OrjSEt8vI7baUlXW2uqdRJfz97QoLqy+n85wKCtzVPR2jUDvfUTvfUbuKoX6+o3YlCw+vLz+/S4c3LpsCAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGISnTQEAMJTb7ZbLVVDd0ygXt9um3Fw/5eVdkMtVe14X4ufnL7u9cs6ZEd4AADCMZVlyOrN0/vyZ6p6KT06etMvtrn2vCQkKCpbDEV6md7mVhvAGAIBhCoNbcHCYAgPrVDgMXG5+frZaddbNsizl5V3QmTPZkqTQ0IYV2h/hDQAAg7jdLk9wCw52VPd0fOLvb691L+gNDKwjSTpzJlshIWEVuoTKAwsAABjE5XJJ+m8YgDkK/8wqep8i4Q0AAAOZdqkUlfdnRngDAAAwCOENAADUWPHx12vVqhXVPY0ahfAGAABgEMIbAACAQXhVCAAAtZzlduv8twdUcPq0/ENDFRQdI1sl/TSAS/n6691aunSh9u79WpZlqVWr1nr44dG64YZuxfb/5JNteuutVTp06KDy8vLUsmUrjRgxUt263ejpk5OTo/nz5+jTT7fL6TytBg3CFBvbQc88M6NM22s6whsAALVYzhef68TqlSrIzva0+YeFKWLo7xVy3fVV+tm7d3+lCRNGq337WE2Z8pRCQkK0f/8+HTv2U4ljfvzxqHr06Km77homu92mHTs+0aOPTtCcOa+oc+ef55uaOls7d36iUaPG6YorrlRm5knt2PGJZx+X2l7TEd4AAKilcr74XD++Mq9Ie0F29s/to8dWaYB75ZW5atasuebMeUV+fn6SpC5dij/jVmjQoDs9v3e73erU6XplZKTrnXfWesLbN9/s1S239FW/fgmevrfccqvn95faXtMR3gAAqIUst1snVq8stc+J1asU3KlzlVxCzc3N1d69X2vkyDGe4FYWx48f06JF8/X5558pM/OkLOvnH7MVE3ONp090dFtt3LheDRs2Urdu3RUZ2cZrH5faXpyCgv++WNdms5VrzpWN8AYAQC10/tsDXpdKi1OQnaXz3x5QvbbXlNrPFzk5TrndbjVqFFHmMW63W1OnPqIzZ87owQdHqlmz5goKCtKSJQu8LrUmJz8mh2Oh3nzzDc2fP0eNGzfRsGH3KzHxd2XafrEff/xBgwf/r+frK664Un/727s+HnnFEd4AAKiFCk6frtR+5RUcHCK73a6TJ0+Uecz33x/Rt98e0IwZs/Sb3/zW037hwoWL9h2sCRMmacKESUpLO6Q1a/6qF16YqdatI9WxY+dLbr9Yo0YRWrJkuefrgIDA8h9wJeJVIQAA1EL+oaGV2q+8goKC1L59rDZtes/z81ovpTCk+fsHeNp++ulH7dnz7xLHREW10fjxj0iSvvvuP+XeLkkBAQFq27ad57+oqEtfZq1KnHkDAKAWCoqOkX9YWKmXTv3DwhUUHVNlcxg1apwmTBiliROTlJg4WCEhIfr22/0KDW2ghITbi/Rv2bKVGjduogUL5sntdis397yWLl2oiIjGXv1Gj35Av/nNTYqMjJKfn12bNr2ngIAAxcV1KtP2mo7wBgBALWSz2xUx9PfFPm1aKGLo3VX6vre4uI5KTV2oxYtf0fTpT8tu91Pr1pF66KHRxfYPDAzUc8/9WbNnP68//GGqGjduouHDH9CXX36u/fv3efrFxsbpn/98Tz/88IPsdpsiI9vo+edfVKtWrcu0vaazWYWPaaDKuVxuZWWdre5pVAl/f7vCwuorO/usCgrc1T0do1A731E731G7iqnO+uXn5ykz80c1bHhlpdx7Vfx73sIVMfTuKntNiL+/vVauu0v92YWH15ef36XDMmfeAACoxUKuu17BnTpX209YQPkR3gAAqOVsdnuVvA4EVYNYDQAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABqrPj467Vq1YrqnkaNQngDAAAwCOENAACgnH788QfFx1+vH3/84bJ/Nj/bFACAWs7ttvTtkVM6dfaCGtSvo+jmDWS32y7LZ3/99W4tXbpQe/d+Lcuy1KpVaz388GjdcEO3Yvt/8sk2vfXWKh06dFB5eXlq2bKVRowYqW7dbvT0ycnJ0fz5c/Tpp9vldJ5WgwZhio3toGeemVGm7TUd4Q0AgFrsiwPHtWrLQWXnXPC0hYXU0d23XK3rYhpX6Wfv3v2VJkwYrfbtYzVlylMKCQnR/v37dOzYTyWO+fHHo+rRo6fuumuY7Habduz4RI8+OkFz5ryizp2vlySlps7Wzp2faNSocbriiiuVmXlSO3Z84tnHpbbXdIQ3AABqqS8OHNfLa78u0p6dc0Evr/1aYxKvrdIA98orc9WsWXPNmfOK/Pz8JElduhR/xq3QoEF3en7vdrvVqdP1yshI1zvvrPWEt2++2atbbumrfv0SPH1vueVWz+8vtb04lmXJ5XJ5fXbhrwUFBZ52Pz8/2WxVe9aS8AYAQC3kdltateVgqX3+uuWgOl0dUSWXUHNzc7V379caOXKMJ7iVxfHjx7Ro0Xx9/vlnysw8KcuyJEkxMdd4+kRHt9XGjevVsGEjdevWXZGRbbz2cantxdm16wuNHz+qSPudd97h9fUTT/xJt902oMzH4wvCGwAAtdC3R055XSotTlbOBX175JTatgyr9M/PyXHK7XarUaOIMo9xu92aOvURnTlzRg8+OFLNmjVXUFCQlixZ4HWpNTn5MTkcC/Xmm29o/vw5aty4iYYNu1+Jib8r0/bitG17jZYsWe75+uTJk5o69RHNnDlbjRo18rRfeWXT8pTBJ8Y+bZqRkaERI0aoY8eO6t69u1JSUpSbm1umsWvXrlXfvn0VGxurhIQEbdy4sdT+KSkpiomJ0bRp0ypj6gAAVLtTZ0sPbuXtV17BwSGy2+06efJEmcd8//0RffvtAY0bl6yEhDvUqdN1atu2nS5c8J5jcHCwJkyYpH/8459atmy1unTpphdemKmvvvqyTNuLU69efbVt287zX1TUz2froqLaeLWHhjYofzHKycjw5nQ6NXz4cJ09e1Zz587VlClT9O677+qpp5665NhNmzZp6tSp6tOnjxYvXqxu3bopOTlZ27ZtK7b/gQMH9Pbbbys4OLiyDwMAgGrToH6dSu1XXkFBQWrfPlabNr3ndS9ZaQpDmr9/gKftp59+1J49/y5xTFRUG40f/4gk6bvv/lPu7TWRkZdNV69eLafTqXXr1ik8PFzSzzcITp48WaNHj1ZUVFSJY+fMmaO+fftq0qRJkqRu3bopIyNDc+fOVXx8fJH+zz77rO6//36tW7euSo4FAIDqEN28gcJC6pR66TQ85OfXhlSVUaPGacKEUZo4MUmJiYMVEhKib7/dr9DQBkpIuL1I/5YtW6lx4yZasGCe3G63cnPPa+nShYqI8H6oYvToB/Sb39ykyMgo+fnZtWnTewoICFBcXKcyba/pjDzz9vHHH6t79+6e4CZJt956qwIDA7V169YSxx05ckTp6elKSEjwak9ISNDu3buVlZXl1f7OO+/o+++/10MPPVS5BwAAQDWz2226+5arS+1z1y1XV+n73uLiOio1daFsNpumT39aTz75mD7++P/TFVdcWWz/wMBAPffcnxUYGKA//GGqFi9eoGHD7lfHjp29+sXGxumf/3xPf/jDVD311BT98MMPev75F9WqVesyba/pjDzzlpaWpkGDBnm1BQYGqkWLFkpLSytxXHp6uiQpMjLSqz0qKkqWZSk9Pd0TCM+cOaM///nPeuKJJxQUFFTJRwAAQPW7LqaxxiReW+Q9b+EhdXTXZXjPm/RzkJo7d0GJ27dt+9zr62uuaa/Fi5d7tf3ylR+SlJQ0QUlJE0rc56W2l8WVVzYtMrfLxcjw5nQ65XA4irQ7HA6dPn26xHGF2y4eGxoa6rVdkubNm6eWLVvqtttuq4wpe/j7G3my85L8/Oxev6LsqJ3vqJ3vqF3FVGf93O7KPRN2XUxjdbo64rL9hIXCV6DZbNL/e8tHrePnZ6tQHjAyvJXEsqwyvRjv4j6F74gpbD906JBWrlypt956q1LnZ7fbFBZWv1L3WdM4HJyl9BW18x218x21q5jqqF9urp9OnrRXOABc7NqohpW2r7Kojd84uN022e12hYbWU926dX3ej5HhzeFwyOl0FmnPyckp9WGFX55h++U7WQr3VXhGbsaMGerbt6+aNWvm2eZ2u5Wfny+n06ng4GDZ7eVfdG63JafzXLnHmcDPzy6HI0hO53m5XO7qno5RqJ3vqJ3vqF3FVGf98vIuyO12y+WyVFBg3p+dzfZz/Vwud6078+ZyWXK73Tp9+pzOny/6hK3DEVSmUGtkeIuKiipyb1teXp4OHz5c5F64Xyq81y09Pd0r5KWlpclms3m2Z2RkaNu2bXrnnXe8xr/11lt66623tGHDhlJDYmlM/ItWHi6X+1d/jFWF2vmO2vmO2lVMddTP5TI78RQGttoW3H6posHbyPDWs2dPvfLKK8rOzlZY2M9vfd68ebPy8vLUq1evEsc1b95ckZGR2rBhg/r06eNpX79+vTp06OB5WGH27NlFXvj3yCOPqGPHjrr33nvVtGnVvz0ZAACgOEaGt6FDh+qNN95QUlKSkpKSlJmZqZkzZ2rAgAFeZ8SeeOIJrVu3Tvv27fO0jR8/XsnJyWrRooVuvPFGffDBB9q+fbuWLFni6dOxY8cin1mnTh01adJEXbt2rdJjAwCgLKzafOrKUJX1Z2ZkeHM4HFq2bJlSUlI0btw41a1bVwkJCZo8ebJXv5/vCfC+ptyvXz/l5uZqwYIFWrp0qVq2bKkXX3yx2Bf0AgBQ0xT+EPe8vAsKDKyan36AqpGX9/NVPT+/isUvm0V0v2xcLreyss5W9zSqhL+/XWFh9ZWdfZb7Z8qJ2vmO2vmO2lVMddfv9OlMnT9/RsHBYQoMrFOmNy3UJH5+NuPv3SsPy7KUl3dBZ85kKygoWKGhxT/ZGx5e/9f7wAIAALWZw1H4Qvnsap6Jb+x2u9zu2vdNQ1BQsOfPriIIbwAAGMZmsyk0tKFCQsLkchVU93TKxc/PptDQejp9+lytOvvm5+fv02vGikN4AwDAUHa7XXZ7YHVPo1z8/e2qW7euzp93ccneR7Xv9cYAAAAGI7wBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQYwNbxkZGRoxYoQ6duyo7t27KyUlRbm5uWUau3btWvXt21exsbFKSEjQxo0bi+z72Wef1W233aaOHTvqpptu0hNPPKETJ05UxaEAAACUmX91T8AXTqdTw4cPV9OmTTV37lxlZWVpxowZOnXqlGbNmlXq2E2bNmnq1Kl6+OGH1aNHD23ZskXJyckKCQlRfHy8JGn79u367LPPNGTIEF1zzTX66aefNG/ePN1555169913Vb9+/ctxmAAAAEUYGd5Wr14tp9OpdevWKTw8XJLk5+enyZMna/To0YqKiipx7Jw5c9S3b19NmjRJktStWzdlZGRo7ty5nvB222236fe//71sNptnXExMjG6//Xa9//77SkxMrMKjAwAAKJmRl00//vhjde/e3RPcJOnWW29VYGCgtm7dWuK4I0eOKD09XQkJCV7tCQkJ2r17t7KysiRJ4eHhXsFN+jm8+fn56fjx45V4JAAAAOVjZHhLS0srcnYtMDBQLVq0UFpaWonj0tPTJUmRkZFe7VFRUbIsy7O9OLt27ZLL5Sr1rB4AAEBVM/KyqdPplMPhKNLucDh0+vTpEscVbrt4bGhoqNf2i+Xn52v69Olq3bq1fvvb3/o465/5+xuZly/Jz8/u9SvKjtr5jtr5jtpVDPXzHbWrOCPDW0ksyypyubM4F/exLKvY9kLPPvusDh48qDfeeEP+/r6XzG63KSzs1/2wg8MRVN1TMBa18x218x21qxjq5ztq5zsjw5vD4ZDT6SzSnpOTU+plzV+eYWvUqJGnvXBfxZ3Nmzdvnv72t78pNTVVsbGxFZq3223J6TxXoX3UVH5+djkcQXI6z8vlclf3dIxC7XxH7XxH7SqG+vmO2pXM4Qgq0xlJI8NbVFRUkXvb8vLydPjwYQ0aNKjEcYX3uqWnp3uFvLS0NNlstiL3wq1cuVKpqamaNm2aevfuXSlzLyj4dS9Ul8v9qz/GqkLtfEftfEftKob6+Y7a+c7IC849e/bUjh07lJ2d7WnbvHmz8vLy1KtXrxLHNW/eXJGRkdqwYYNX+/r169WhQwevp1ffe+89paSkaPz48brzzjsr/yAAAAB8YOSZt6FDh+qNN95QUlKSkpKSlJmZqZkzZ2rAgAFeZ9SeeOIJrVu3Tvv27fO0jR8/XsnJyWrRooVuvPFGffDBB9q+fbuWLFni6fPZZ59pypQpuv7669WjRw999dVXnm3h4eFq0aLFZTlOAACAixkZ3hwOh5YtW6aUlBSNGzdOdevWVUJCgiZPnuzVz+12y+VyebX169dPubm5WrBggZYuXaqWLVvqxRdf9LygV5J27typ/Px8ffbZZ0XOuiUmJmrmzJlVd3AAAAClsFmFj1qiyrlcbmVlna3uaVQJf3+7wsLqKzv7LPcwlBO18x218x21qxjq5ztqV7Lw8PplemDByHveAAAAaivCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBfA5vFy5c0IEDB3T+/Pki27744osKTQoAAADF8ym87dq1S7169dK9996r7t27a9GiRV7bH3rooUqZXGkyMjI0YsQIdezYUd27d1dKSopyc3PLNHbt2rXq27evYmNjlZCQoI0bNxbpk5+frxdeeEHx8fGKi4vTsGHDtH///so+DAAAgHLx92XQ888/r6lTp+qOO+5QWlqapkyZooyMDD333HOy2+2yLKuy5+nF6XRq+PDhatq0qebOnausrCzNmDFDp06d0qxZs0odu2nTJk2dOlUPP/ywevTooS1btig5OVkhISGKj4/39JsxY4bWrVunqVOnqlmzZlqyZInuu+8+vfvuu4qIiKjS4ysvy+3W+W8PqOD0afmHhiooOkY2e+24Il6bj7261fbau92Wvj1ySqfOXlCD+nUU3byB7HZbdU+rVqjNta/Nx17dalLtfQpvhw4d0h133CFJioqK0htvvKEJEyZo/Pjxmj17dmXOr1irV6+W0+nUunXrFB4eLkny8/PT5MmTNXr0aEVFRZU4ds6cOerbt68mTZokSerWrZsyMjI0d+5cT3g7duyYVq9erSeffFJDhgyRJMXFxal3795atmyZJk+eXMVHWHY5X3yuE6tXqiA729PmHxamiKG/V8h111fjzKpebT726lbba//FgeNateWgsnMueNrCQuro7luu1nUxjatxZr9+tbn2tfnYq1tNq71P3yYHBwfr2LFjnq/r1q2rl19+WXXq1NGDDz5Y5WfePv74Y3Xv3t0T3CTp1ltvVWBgoLZu3VriuCNHjig9PV0JCQle7QkJCdq9e7eysrIkSdu2bZPL5VL//v09fYKDg3XzzTeXuv/LLeeLz/XjK/O8/gGVpILsbP34yjzlfPF5Nc2s6tXmY69utb32Xxw4rpfXfu31P3FJys65oJfXfq0vDhyvppn9+tXm2tfmY69uNbH2PoW37t276+233/Zq8/f316xZs9SiRYsy33vmq7S0tCJn1wIDA9WiRQulpaWVOC49PV2SFBkZ6dUeFRUly7I829PS0tSoUSM1aNCgSL+MjAy53e5KOIqKsdxunVi9stQ+J1avklUD5lrZavOxV7faXnu329KqLQdL7fPXLQfldlftN7C1UW2ufW0+9upWU2vv02XTZ555Ri6Xq0i7zWZTSkqKkpKSKjyx0jidTjkcjiLtDodDp0+fLnFc4baLx4aGhnptdzqdCgkJKTI+NDRU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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X_map = MAP.abs(X, 3.7)\n",
"\n",
"plot_samples(X_map, y, \"Mapped Dataset 1\")\n",
"plt.savefig(\"../assets/Q4_map1.png\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dataset 2"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [],
"source": [
"def create_circle_samples(n, radius=1.0):\n",
" angles = np.linspace(0, 2 * np.pi, n, endpoint=False)\n",
" \n",
" x = radius * np.cos(angles)\n",
" y = radius * np.sin(angles)\n",
"\n",
" samples = np.column_stack((x, y))\n",
" \n",
" return samples"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnQAAAHQCAYAAAAoDPeqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5QElEQVR4nO3deXxU9b3/8ffMZCGEJGQhKIhCIoE0IIRFSIuyeqktrQaqBaRQRJRFiIKI1OqtFgQVsBICIriBIigFr7aFq1ytVXG5pCggJAHkFgQkLNkIWczM/P7wx9QYCGQ7J9/J6/l4+JCc850zn3ySmbznezaH1+v1CgAAAMZy2l0AAAAA6oZABwAAYDgCHQAAgOEIdAAAAIYj0AEAABiOQAcAAGA4Ah0AAIDhCHQAAACGI9ABAAAYLsDuAgCgJjZu3Kg5c+b4vg4KClJ4eLji4uLUr18//epXv1J0dHSttr1//35t3rxZqampuuKKK+qr5Fr75z//qY8++kjjxo1TeHj4Rce//fbb2rJli3bt2qXjx48rJiZGycnJmjZtmtq3b9/wBQOwDTN0AIw0f/58rV+/Xi+88IIefvhhJSYmauXKlfrZz36mbdu21Wqb+/fv19KlS3XkyJF6rrZ2duzYoaVLl6qwsPCSxq9cuVIlJSWaNGmSVq1apbS0NO3du1epqanat29fA1cLwE7M0AEwUseOHdW1a1ff10OHDtVvf/tbjR49WnfffbfefvttxcTE2Fih9Z555pkqs5N9+/bV4MGD9eKLL2revHk2VQagoTFDB8BvtGnTRrNnz1ZxcbHWrVvnW75r1y7de++9GjRokK655hoNGjRIM2bMqDQTt3HjRqWlpUmSxo4dq06dOqlTp07auHGjJOmjjz7S5MmTdf3116tr16664YYb9PDDD+v06dOVajh9+rQeeugh9e/fX126dFHfvn01cuTIKrOG27Zt07hx49SjRw9169ZNI0eO1Mcff+xbn56erieeeEKSNHjwYF89n3766QW///Ptam7durVat26tb7755lLbCMBAzNAB8Cv9+/eXy+XS9u3bfcuOHDmiDh066Oc//7kiIiJ04sQJvfrqq/rVr36lv/71r4qKitKAAQM0Y8YMLV68WA8//LCSkpIkSVdeeaUk6dChQ0pOTtYtt9yisLAwHTlyRC+88IJGjx6tt956S4GBgZKkWbNmac+ePbr33nvVvn17FRYWas+ePcrPz/fV81//9V+aPXu2Bg8erMcff1wBAQFav369JkyYoOeee04pKSm65ZZbVFBQoDVr1mjp0qVq1aqVJOnqq6+uUT8OHz6so0ePasiQIXVpK4BGjkAHwK80b95ckZGRys3N9S376U9/qp/+9Ke+r91utwYMGKCf/OQn+stf/qKxY8cqKipKV111laTvQlP37t0rbXfUqFG+f3u9XiUnJ+vaa6/VwIED9Y9//EODBw+W9N2JDLfccotuvfVW3/jvh6mSkhI99thjGjBggDIyMnzL+/fvr9TUVC1evFivv/66LrvsMl1++eWSpMTExFqdpFFRUaHf/e53at68uX7729/W+PEAzEGgA+B3vF5vpa+Li4u1bNkyvf322zpy5Ijcbrdv3YEDBy5pm6dOndLTTz+t999/X7m5ufJ4PJW2cS7QXXPNNdq0aZNatmypH//4x0pKSvLN3knfneiQn5+v1NRUVVRUVHqO6667TqtWrdLZs2fVvHnzGn/f3+f1evXggw8qMzNTS5Ys8YVDAP6JQAfAr5w9e1b5+flKSEjwLZs5c6Y++eQTTZkyRV27dlVoaKgcDofuvPNOlZWVXXSbHo9Ht99+u3JzczVlyhQlJCQoJCREXq9Xt956a6VtPPXUU1q+fLk2bNigp59+Ws2bN9cNN9ygWbNmqVWrVjp58qQkafr06Rd8voKCgjoFunNh7s0339SCBQvY3Qo0AQQ6AH7l73//u9xut6699lpJUlFRkf7+97/r7rvv1p133ukbV15eroKCgkvaZk5OjrKysrRgwQKlpqb6lv/rX/+qMjYqKkoPPvigHnzwQR09elTvvvuuFi1apFOnTum5555TZGSkJOmhhx5St27dzvt8tb2OnvTvMLdx40bNmzdPN910U623BcAcBDoAfuPo0aN64oknFBYWppEjR0qSHA6HvF6vgoKCKo19/fXXK+16leQbU1paWmm5w+GotP6c759Jez5t2rTRmDFj9PHHH+uf//ynJKlHjx4KDw/X/v37NWbMmGoff+75LmUWUfouzP3+97/Xxo0b9eijj2rEiBGX9DgA5iPQATDSvn375Ha7VVFRodOnT2v79u3auHGjXC6Xli5dqqioKElSixYt1Lt3b9/sWNu2bfXZZ59pw4YNVe6+0LFjR0nSa6+9ptDQUAUH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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X = np.concatenate([create_circle_samples(10, 3), create_circle_samples(6, 1)])\n",
"y = np.concatenate([np.full(10, 1), np.full(6, -1)])\n",
"\n",
"plot_samples(X, y, \"Dataset 2\")\n",
"plt.xlim(-6, 6)\n",
"plt.ylim(-6, 6)\n",
"plt.savefig(\"../assets/Q4_data2.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm8AAAHQCAYAAAD3Qo21AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABBhUlEQVR4nO3deXxU9b3/8fdMFghkIYGAgmwJJiyGAFoWiVBZrqDhaqAiWhFtVCCsEZS49FoRAVtEIYggQQWEUqmFCgIV1IsXFKiKBUEQEiqIC0sCE5aQZGZ+f/DL1CHbJJlM8oXX8/How8z3fL/nfM8np/DmbGNxOp1OAQAAwAjWmp4AAAAAPEd4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngD4FV/+9vfFBsbq9jYWO3YsaPYcqfTqf79+ys2NlbDhw+vgRlWj6L9/v7778vsl56e7qpPbGys4uPj1atXLyUnJ2vZsmU6e/Zspefw5ZdfKj09XTabrdLr8KYtW7YoPT3d4/6rVq1SSkqK+vTpo44dO6p///569tlndfz48WqcJWAewhuAalG/fn399a9/Lda+c+dOHTlyRPXr16+BWdUeGRkZ+stf/qKMjAxNmTJF1157rf70pz8pMTFR+/fvr9Q6d+3apXnz5tWq8DZv3jyP+8+dO1f16tVTamqqMjIy9PDDD+t///d/NXjwYJ08ebIaZwqYxb+mJwDgynT77bdr7dq1evbZZxUcHOxq/+tf/6rOnTtX6QzTlaBDhw6KiIhwfb7jjjt0//336/7779fo0aP1j3/8Q4GBgTU4Q99bs2aNGjZs6PrctWtXtW/fXr/5zW/0zjvvKCUlpQZnB9QenHkDUC3uuOMOSdK6detcbbm5ufrggw80ZMiQEsfMmzdPd999t7p27aouXbooKSlJq1atktPpdOvXp08fjRw5Ups2bdKgQYMUFxenvn37aunSpW79duzYodjYWP3973/XjBkz1LNnT3Xs2FH333+/9u3bV2z7e/bs0ahRo9S1a1fFxcXprrvu0vr164v1++qrrzRs2DDFxcUpISFBL730kgoLCytco8u1bdtWo0aN0g8//OC23W3btmn06NHq1auX4uLi1L9/f/3P//yPsrOzXX3S09P1xz/+UZLUt2/fYpeu169fr9/97ndKSEhQx44dNXDgQM2aNUvnz593m8PRo0eVmpqqhIQE3XDDDbr55ps1YsQIffPNN2791q9fr3vuuUedOnVS586dlZyc7FbTtLQ0LV++XJLcLhOXdVn5l8GtyA033CA/Pz/99NNPnpYRuOJx5g1AtQgODtZtt92md999V8OGDZN0KchZrVYNHDhQS5YsKTbm2LFjuueee9S0aVNJl0LStGnT9PPPP2vs2LFufb/55htNnz5dY8eOVaNGjbR27Vq98MILKigoUHJyslvfl19+We3bt9e0adOUm5urefPmafjw4VqzZo2aN28uSdq+fbsefvhhxcfH6w9/+INCQkK0fv16paamKi8vT4MHD5YkHTp0SA8++KCaNWummTNnqm7dulqxYoVbSK2KPn366E9/+pP++c9/6q677pIkHTlyRJ07d9bdd9+tkJAQHTt2TG+++abuu+8+rV27VgEBAbr77rt15swZLVu2TPPmzVNkZKQkqU2bNpKkf//73+rVq5dGjBihoKAgZWVladGiRdq9e7db6H3kkUfkcDj0+OOPq2nTpsrJydGuXbvcLsUuWLBAr7zyigYPHqzRo0eroKBAixcv1m9/+1utWrVKbdq0UUpKis6fP69//OMf+stf/uIa27hx4wrVY+fOnbLb7a79ACDJCQBe9O677zpjYmKcu3fvdm7fvt0ZExPj/Pbbb51Op9M5ZMgQZ1pamtPpdDrvuOMO5/3331/qeux2u7OgoMA5b948Z9euXZ0Oh8O17NZbb3XGxsY6v/nmG7cxDz30kLNLly7O8+fPO51Op2v7SUlJbuO///57Z4cOHZxPP/20q23AgAHOu+66y1lQUOC2zpEjRzp79uzptNvtTqfT6Zw4caKzY8eOzhMnTrj6FBYWOgcMGOCMiYlxHj16tMz6zJ071xkTE+M8depUicvz8vKcMTExzocffrjE5Q6Hw1lQUOA8duyYMyYmxrl582bXsoyMDI/mULSOnTt3OmNiYlx1zM7OdsbExDjfeuutUsf+8MMPzvbt2zuff/55t/azZ886e/bs6ZwwYYKr7bnnnnPGxMSUOZey5ObmOgcOHOjs3bu38+zZs5VeD3Cl4cwbgGrTtWtXtWjRQu+++66SkpK0Z88epaWlldr/s88+08KFC7Vnz55i98SdOnVKjRo1cn2+/vrr1bZtW7c+iYmJ2rZtm/bu3aub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p4ULF1b3FK842dnZioiIcGubMWOG/vznP+vzzz9XYGBgieM4ziuvsjXnOPeud955R7///e/1ySefqEmTJiX24Tj3Du55g8+Ud8moJEePHlVWVpYSExPd2hMTE7V7925lZ2d7a3pXpMrUHFVzeYiQpHbt2unixYs6ffp0iWM4zqumMjWH9zVo0ECSVFhYWOJyjnPv4U921GpZWVmSpKioKLf26OhoOZ1O13J4386dO9WpUyfFxcXp/vvv1z//+c+anpKxvvjiCzVo0EANGzYscTnHufeVV/MiHOdVY7fbdfHiRe3du1evvvqqbr31VjVr1qzEvhzn3sM9b6jVzpw5I0kKDQ11aw8LC3NbDu/61a9+pTvvvFOtWrXS8ePHtXjxYj300ENatmyZOnfuXNPTM8qePXv0t7/9TWPGjJGfn1+JfTjOvcuTmksc595w66236ueff5Yk3XLLLZo9e3apfTnOvYfwBiNYLBa3z0W3al7eDu8YP3682+df//rXSkxM1Pz587Vo0aIampV5Tpw4ofHjxysuLk6PPPJIuf05zquuIjXnOK+6119/XefPn9ehQ4c0f/58jRo1Sm+++WaZoZnjvOq4bIparbR/kdlsNknF/wWH6lGvXj317t1be/furempGCM3N1ePPPKI6tatq9dee00BAQGl9uU4946K1LwkHOcV17ZtW3Xp0kVDhw7VvHnztGPHDm3atKnEvhzn3kN4Q61WdG/E5fdCZGZmymKxFLt3AtWHB9M9d/HiRY0ePVonT55URkaGwsPDy+zPcV51Fa15aTjOK69du3by8/PTkSNHSlzOce49hDfUas2bN1dUVJTWr1/v1r5u3Tp17NixxKfM4H3nz5/Xli1bFBcXV9NTqfUKCws1YcIE7d+/XxkZGaXevP1LHOdVU5mal4TjvGp27dolu91e6nvyOM69h3ve4DMXLlzQli1bJEnHjh3T2bNntXHjRklS165dFRERoaeeekpr1qzRvn37XOPGjx+v1NRUtWjRQjfffLM+/PBDbdu2TRkZGTWyHyapTM0///xzLV68WP3791fTpk11/Phxvfnmmzpx4oTbu5lQsqlTp+rjjz/W448/rry8PH311VeuZW3atFFwcDDHuZdVpuYc51UzduxY3XDDDYqNjVXdunVdwTk2Nlb9+vWTJI7zakR4g8+cOnVKEyZMcGsr+rx06VJ169ZNDodDdrvdrc/AgQOVl5enBQsWaPHixWrZsqVefvll3sbtgcrUPDIyUvn5+Zo9e7ZOnz6toKAgde7cWc8995w6duzo0/mbaOvWrZKkP/3pT8WWcZxXj8rUnOO8ajp27Kj169fr9ddfl9PpVLNmzTR06FAlJye7XorMcV59+IYFAAAAg3DPGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAFCNjh8/rs6dOys1NdWt/eOPP1aHDh308ssv19DMAJiK8AYA1ahx48ZKTk7Whg0b9PXXX0uSduzYoQkTJujee+8tFuoAoDyENwCoZsnJyYqMjNSsWbO0e/dujR49WnfccYeefvppV58VK1YoKSlJHTp0UHp6eg3OFkBtR3gDgGoWFBSkiRMn6rPPPtOIESPUq1cvTZs2TRaLxdWncePGGjdunPr27VuDMwVgAv+angAAXA1atWrl+nnmzJny8/NzW96vXz9J0ocffujLaQEwEGfeAKCaffPNNxo1apS6dOmi8+fP6913363pKQEwGOENAKpRVlaWkpOT1alTJy1dulR9+/ZVenq6cnNza3pqAAxFeAOAavL999/roYceUuvWrZWenq6AgABNmjRJNptNCxYsqOnpATAU4Q0AqsHx48f10EMPqWHDhlq4cKHq1q0rSYqOjtaQIUO0dOlSff/99zU8SwAmsjidTmdNTwIArnaFhYWy2+36wx/+oMaNGyslJUX+/v7FHmwAAMIbANQC6enpmjdvnlvbjBkzNHjw4BqaEYDaivAGAABgEO55AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADPL/ANvmmfFt7WSwAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X_map = MAP.norm(X, [0.2, 0.2])\n",
"\n",
"plot_samples(X_map, y, \"Mapped Dataset 2\")\n",
"plt.savefig(\"../assets/Q4_map2.png\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dataset 3"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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nt577z1t375dkydPVuvWrXXDDTcYXR4AAEBAmfKU6/jx4xUWFqZNmzZp27Ztat26tXr37q3FixcrISHB6PIAAAACypSBzmKx6NZbb9Wtt95qdCkAAACGM2WgAwAAksvlUk2N0+gyGs3lsujcOZuqq6tUU2O6STcaxGazN/oK1vog0AEAYDJut1ulpWdUWXnW6FKa7NQpq1yu0LjCNTKyjWJi4pplzlsCHQAAJnMhzLVp41B4eISpJ8W32Swt/uic2+1WdXWVzp4tkiTFxrbz+2sQ6AAAMBGXq8YT5tq0iTG6nCaz260hMQddeHiEJOns2SJFRzv8fvrVlNOWAAAQqmpqaiT9NyDAPC78mzXH9x4JdAAAmJCZT7OGqub8NyPQAQAAmByBDgAABK2hQwdo06b1RpcR9Ah0AAAAJkegAwAAMDmmLQEAIMS5XS5V5uXKWVIie2ysIpOSZWnGuxp80549n2n16lXat2+v3G63unbtprvvztTAgYNrHb9z5z/18subdOjQQVVXV+uyy7pq0qR7NHjwVZ4xZWVlWrlymd5//z2VlpaobVuHeve+Qo8/vrBej5sRgQ4AgBBWlrNLhZs3yllU5FlmdzgUnzFe0f0HNOtr7979qWbOzFRqam89/PAvFR0drQMHPtdXX335nc85efK4fvCDYbrttl/IarXogw92avbsmVq2LFtpaefrXb58qT78cKemTJmhSy7poNOnT+mDD3Z61nGxx82IQAcAQIgqy9mlk9lZPsudRUXnl2dOb9ZQl539rDp37qJly7Jls9kkSVdeWfuRuQtuvPFWz59dLpf69RugI0cO6/XXt3kC3f79+zR69I/04x9f7xk7evQYz58v9rgZEegAAAhBbpdLhZs31jmmcPMmtemX1iynX8+dO6d9+/YqM3O6J8zVR0HBV1q9eqV27fpIp0+fktt9/rZhyckpnjFJST21ffuf1K5dew0ePETdu1/utY6LPV4bp/O/kwFbLJYG1RwIBDoAAEJQZV6u12nW2jiLzqgyL1ete6bUOa4xyspK5XK51L59fL2f43K5NGfOAzp79qzuuusederURZGRkXr++VVep2nvv/8hxcQ8p5de2qCVK5cpIeF7+sUvJmrs2Jvq9fi3nTx5QjfffIPn50su6aAtW/7YyL958yDQAQAQgpwlJX4d11Bt2kTLarXq1KnCej/n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ioqKMrq8gKuurtbnn3+uSy65RLNnz1afPn2UlpamWbNmqaioyOjyDPOb3/xGqampLf6UYmO4XC598sknSkxMNLqUZpefn+/z9wwPD9ell16q/Px8g6oKLjk5OWrbtq3atWtndCmG+ctf/qIDBw5o2rRpRpdiuM8++0xJSUlasWKFhgwZol69eun222/X/v37jS7NEDfddJMOHz6s9evXq7S0VMeOHdPixYuVmJioIUOG1Hs9fIeuFlOmTJHT6dSdd97pOSL3wx/+UPPmzTO4MmMUFxfL6XRqzZo1GjRokFasWKHCwkI99dRTeuCBB/TCCy8YXWLA7d+/X1u2bNG2bduMLiUorV+/XkeOHAmJ90xpaaliYmJ8lsfExKikpMSAioLLnj17tHXrVk2bNk02m83ocgxRWVmpRYsW6YEHHqj/96FasMLCQu3bt08HDx7U448/rrCwMM93xt58881a308t2cCBA5WVlaVZs2Zp/vz5kqTLL79ca9euVXh4eL3XExKBrqysrF6nfrp06aLw8HBt2LBBv/vd7zRnzhylpqbqyJEjWrZsmX75y19q8eLFAai4+TWkJxdCbUxMjJ599lnPBhYVFaUZM2Zo9+7duuKKK5q13ubWkH6EhYVp3rx5GjduXIs9AtXQ98w3ffTRR/qf//kf3XnnnRo4cGBzlRj03G631ymUUFRYWKh7771XvXv31uTJk40uxzDZ2dlq166d0tPTjS4lKLjdblVUVGj58uXq0aOHJCk1NVWjRo3SSy+9FHLbyscff6zZs2frxhtv1MiRI3X27FmtWrVKkydP1osvvljvDwEhEejeeustzZ0796LjXn31VV1yySVavHixZs+erQkTJkg6n57j4uI0bdo0TZgwQampqc1dcrNrSE+6du0qSUpLS/P65T148GBJ0sGDB00f6BrSj8OHDys/P19PP/20ZyqbqqoqSeeP1kRERCgiIqJZ621uDelHSkqK5+cDBw5o6tSpGj16tGbPnt2cJQaNmJiYWqc0Kisra7GBvz7Kyso0efJktWrVStnZ2SH7PdPjx49r7dq1WrFihc6ePStJniviKyoqVF5eHnJf5YmNjVX79u09YU6SEhIS1L17dx06dMjAyowxf/58DR48WI8++qhnWf/+/TVs2DC98sormjhxYr3WExKBLj09vd6fjHbv3q3q6mqvX1KSPD8fPXq0RQS6hvREkjp16vSdj1mt5v8qZkP6sWPHDpWUlGjkyJE+jw0cOFCTJ0/Wgw8+6O8SA6qh24d0/r1x11136fvf/76eeuqpkDk6lZiY6PNduerqah09elQ33nijQVUZq6qqSpmZmTp16pReeuklORwOo0syzLFjx/T111/r7rvv9nlswoQJ6tOnj15++WUDKjNOYmKiTpw44bPc7Xa3iN8nDZWfn+/z+yQuLk4JCQk6evRovdcTEoGuITp27ChJ2rdvn9fpor1790qqO9i0ZCNGjNCOHTtUXV3tOUq3c+dOSVLPnj2NLC3gxo4dqyuvvNJr2bZt2/TnP/9Za9as8WxDoaSwsFB33nmn2rdvr5UrVzboex9mN2zYMGVnZ6uoqMgTXN566y1VV1dr+PDhBlcXeE6nUzNnztSBAwe0YcOGkN1nXpCSkqJ169Z5Ldu/f78WLlyoxx9/XL179zaoMuOMGDFC27ZtU15enpKSkiRJX331lQ4fPhySp6U7duyoffv2eS0rLCxUQUFBg94/BLpvad++vcaMGaNly5bJ6XSqV69eOnz4sJYvX65+/fqpV69eRpdoiEmTJun111/XtGnTdPvtt6ugoEBLlizR6NGjfY5mtnSdO3dW586dvZZ99NFHstlsGjRokEFVGefcuXO66667dPr0ac2ZM8fnlEnfvn2NKSxAMjIytGHDBk2dOlVTp07V6dOntWjRIv30pz8NyVOu8+bN09tvv63Zs2fr3Llz+vTTTz2PXX755SF3UUBMTMx37hdSU1NbxBmfhrr22muVmpqqGTNmaObMmQoPD9eKFSsUFxenW265xejyAm78+PF64oknNG/ePI0aNUqlpaV67rnn1Lp1a91www31Xo/FHaoTq9Xh7Nmzys7O1ltvvaUvv/xS7du319VXX62ZM2fWOsdSqNi7d68WLVqk3bt3KzIyUmPGjNFDDz0Ucjvo2ixfvlxr167VJ598YnQpAXfs2DGNGjXqOx/Pzc0NYDXGOHLkiObPn6+cnBy1atVK119/vR588EG1atXK6NICbuTIkTp+/Hitj61bty4kP/R824cffqgJEyZoy5YtIXmETpJOnz6tJ598Uu+8846cTqcGDhyouXPnqnv37kaXFnBut1svv/yyNm3apKNHj6p169bq3bu37r//fiUnJ9d7PQQ6AAAAkwu9bx8CAAC0MAQ6AAAAkyPQAQAAmByBDgAAwOQIdAAAACZHoAMAADA5Ah0AAIDJEegAAABMjkAHAABgcgQ6AGiAgoIC9evXT/fff7/X8rffflupqal65plnDKoMQCgj0AFAAyQkJGjSpEnavn279u7dK+n8vTlnzpyp2267zSfoAUAgEOgAoIEmTZqk+Ph4Pf3009q9e7cyMzP1k5/8RI8++qhnzKZNmzR27FilpqZq+fLlBlYLIBQQ6ACggSIjI3Xffffp/fff1x133KFhw4Zp/vz5slgsnjEJCQmaMWOGRo0aZWClAEKF3egCAMCMunbt6vnzokWLZLPZvB4fPXq0JOl///d/A1kWgBDFEToAaKD9+/drypQpSktLU0VFhf7whz8YXRKAEEegA4AGOHz4sCZNmqS+fftq3bp1GjVqlJYvX66ysjKjSwMQwgh0AFBPx44d08SJE9WtWzctX75cYWFhmjVrlkpLS7Vq1SqjywMQwgh0AFAPBQUFmjhxotq1a6fnnntOrVq1kiQlJibqxhtv1Lp163Ts2DGDqwQQqixut9ttdBEA0NI4nU7V1NTo17/+tRISEjR16lTZ7XafiycAwB8IdADQDJYvX66srCyvZQsXLlR6erpBFQFoyQh0AAAAJsd36AAAAEyOQAcAAGByBDoAAACTI9ABAACYHIEOAADA5Ah0AAAAJkegAwAAMDkCHQAAgMkR6AAAAEyOQAcAAGByBDoAAACTI9ABAACY3P8Di9Zau/C6kXoAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X = np.concatenate([create_circle_samples(10, 4), create_circle_samples(16, 6), create_circle_samples(6, 1)])\n",
"y = np.concatenate([np.full(10, 1), np.full(22, -1)])\n",
"\n",
"plot_samples(X, y, \"Dataset 3\")\n",
"plt.xlim(-8, 8)\n",
"plt.ylim(-8, 8)\n",
"plt.savefig(\"../assets/Q4_data3.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm8AAAHQCAYAAAD3Qo21AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABGZUlEQVR4nO3deXxU1f3/8fdMJoFAMiGBgAXZEg0Ihk3LIilUlgISvhooigpFiwoEAVEsuLRWRMAWUQgiqwoIomhBQUBR+sUvKFAVC4IgJFQQlSUJTFhCkpn7+4Nfplwmy2SykBtez8ejD8m555w595Mrvnu3sRmGYQgAAACWYL/SCwAAAID/CG8AAAAWQngDAACwEMIbAACAhRDeAAAALITwBgAAYCGENwAAAAshvAEAAFgI4Q0AAMBCCG8AytQ//vEPNWvWTM2aNdP27dt9thuGoZ49e6pZs2YaMmTIFVhh+cjf7x9//LHIfikpKd76NGvWTK1bt1aXLl00bNgwLV26VGfOnAl4DV9//bVSUlLkcrkCnqMsbd68WSkpKX73X7t2re69917dcsstuvHGG5WQkKARI0bo66+/LsdVAtZDeANQLmrWrKl3333Xp33Hjh06fPiwataseQVWVXksXLhQb7/9thYuXKgJEyboV7/6lf7+978rMTFR+/btC2jOnTt3avbs2ZUqvM2ePdvv/qdOnVK7du30zDPP6LXXXtMTTzyhkydPavDgwdqxY0c5rhSwFseVXgCAqum2227TmjVr9MwzzygsLMzb/u6776pt27alOsNUFbRs2VJRUVHen/v27avBgwdr8ODBGjlypD766COFhIRcwRVWvMGDB/u0denSRZ06ddK7776r9u3bX4FVAZUPZ94AlIu+fftKungpLF9WVpY+/vhjDRgwoMAxs2fP1sCBA9W+fXu1a9dOSUlJWrlypQzDMPXr1q2bhg8fro0bN6pfv36Kj49X9+7dtWTJElO/7du3q1mzZnr//fc1depUde7cWa1atdLgwYO1d+9en8/fvXu3RowYofbt2ys+Pl533HGH1q1b59Pvm2++0aBBgxQfH6+EhAS9+OKLysvLK3GNLte8eXONGDFCP/30k+lzt27dqpEjR6pLly6Kj49Xz5499Ze//EUZGRnePikpKfrb3/4mSerevbvPpet169bpj3/8oxISEtSqVSv16dNH06dP17lz50xrOHLkiMaNG6eEhATdeOONuuWWWzR06FB99913pn7r1q3TXXfdpTZt2qht27YaNmyYqaYTJ07UsmXLJMl0mbi4y8qXq1mzpkJCQhQUFFSicUBVxpk3AOUiLCxMvXr10nvvvadBgwZJuhjk7Ha7+vTpo8WLF/uMOXr0qO666y7Vr19f0sWQNHnyZB07dkwPP/ywqe93332nKVOm6OGHH1adOnW0Zs0aPf/888rNzdWwYcNMfV966SW1aNFCkydPVlZWlmbPnq0hQ4Zo9erVatiwoSRp27ZteuCBB9S6dWv99a9/VXh4uNatW6dx48YpOztb/fv3lyQdPHhQ9913nxo0aKBp06apevXqWr58uSmklka3bt3097//Xf/61790xx13SJIOHz6stm3bauDAgQoPD9fRo0f1+uuv65577tGaNWsUHBysgQMH6vTp01q6dKlmz56t6OhoSdJ1110nSfrPf/6jLl26aOjQoQoNDVVaWpoWLFigXbt2mULvgw8+KI/Ho8cff1z169dXZmamdu7caboUO3fuXL388svq37+/Ro4cqdzcXC1atEj33nuvVq5cqeuuu07Jyck6d+6cPvroI7399tvesXXr1i22Bm63Wx6PR8eOHdP8+fNlGIbuvffesigvUDUYAFCG3nvvPSMuLs7YtWuXsW3bNiMuLs74/vvvDcMwjAEDBhgTJ040DMMw+vbtawwePLjQedxut5Gbm2vMnj3baN++veHxeLzbbr31VqNZs2bGd999Zxpz//33G+3atTPOnTtnGIbh/fykpCTT+B9//NFo2bKl8dRTT3nbevfubdxxxx1Gbm6uac7hw4cbnTt3Ntxut2EYhvHII48YrVq1Mk6cOOHtk5eXZ/Tu3duIi4szjhw5UmR9Zs2aZcTFxRnp6ekFbs/Ozjbi4uKMBx54oMDtHo/HyM3NNY4ePWrExcUZn3zyiXfbwoUL/VpD/hw7duww4uLivHXMyMgw4uLijDfeeKPQsT/99JPRokUL47nnnjO1nzlzxujcubMxduxYb9uzzz5rxMXFFbmWgvTq1cuIi4sz4uLijM6dOxtffvlliecAqjLOvAEoN+3bt1ejRo303nvvKSkpSbt379bEiRML7f/FF19o3rx52r17t889cenp6apTp4735+uvv17Nmzc39UlMTNTWrVu1Z88e3XzzzaZ2m83m/blBgwZq27at95LiDz/8oLS0NE2YMEGSTJdAu3Tpon/+8586dOiQYmNjtX37dnXq1Mm0lqCgIN12220lujm/MMZll4ili/s+c+ZMbd68WcePH5fH4/FuS01NVffu3Yud98iRI3r55Ze1bds2paenmz4nLS1NzZs3V61atdSoUSMtWrRIHo9HHTp0UPPmzWW3//cOmy1btigvL0+33367qU7VqlXTr3/96wKfMC6plJQUnT9/Xj/99JNWrFihBx98UK+++qo6dOhQ6rmBqoDwBqDc2Gw29e/fX0uXLtWFCxfUpEkTU6i61K5duzRs2DC1b99ezz33nK655hoFBwfrk08+0dy5c5WdnW3qf2l4urzt1KlTfvXNf6rz5MmTkqQXXnhBL7zwQoHry8zM9M5d1GeX1tGjRyX99/Kix+PRH//4Rx0/flzJycmKi4tTaGioDMPQnXfeqQsXLhQ759mzZ3XPPfeoWrVqeuSRR9SkSRNVr15dv/zyix5++GFvbW02m9544w298sorWrhwoaZNm6ZatWqpX79+euSRRxQWFuat1e9///sCP+vSoBeo66+/XpLUqlUr9ejRQ0lJSXr++ef1wQcflHpuoCogvAEoV/3799esWbO0YsUKjRs3rtB+H374oRwOh+bNm6dq1ap52z/55JMC++eHiILaatWq5Vff/H6RkZGSpOHDh6tnz54Ffl7Tpk29cxf12aW1adMmSfI+Wfn9999r3759mjZtmpKSkrz9fvjhB7/n3LZtm44fP66lS5eantjMysry6dugQQNNmTJFknTo0CGtX79es2fPVk5OjiZNmuSt1axZs7z3JpYnh8OhFi1aaP369eX+WYBVEN4AlKt69epp2LBhSktL896AXxCbzaagoCDTmZvs7OxCz7YcOHBA+/btM106Xbt2rWrWrKmWLVua+q5du1b333+/99Lp0aNHtXPnTt1+++2SpJiYGDVp0kT79u3To48+WuT+dOjQQZs2bdLJkye9Z9vcbneBT6WW1L59+zRv3jw1aNBAffr0kSTvmi9/bciKFSt8xuf3ufxsXEnmuFTTpk2VnJysjz/+2PskaUJCghwOhw4fPqxevXoVOT7/87Kzs1W9evUi+xbmwoUL+uabb9S4ceOAxgNVEeENQLkbP358sX26du2q119/XY899pjuuusunTp1SosWLSr0XWd1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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X_map = MAP.abs(MAP.norm(X, [0.4, 0.4]), 4)\n",
"\n",
"plot_samples(X_map, y, \"Mapped Dataset 3\")\n",
"plt.savefig(\"../assets/Q4_map3.png\")\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"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.11.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

Xet Storage Details

Size:
177 kB
·
Xet hash:
216c9bdc1d1a4be6b88259719ebe34ccffb62a0d68735fae270662752f0b3b3a

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.