Skip to content

Instantly share code, notes, and snippets.

@ljbelenky
Created March 9, 2021 23:36
Show Gist options
  • Save ljbelenky/2fc540fd74943886f5398f678d80f82e to your computer and use it in GitHub Desktop.
Save ljbelenky/2fc540fd74943886f5398f678d80f82e to your computer and use it in GitHub Desktop.
Comparison of Classifiers
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.patches import Rectangle\n",
"from matplotlib.colors import ListedColormap\n",
"from sklearn import neighbors, tree\n",
"from sklearn.preprocessing import StandardScaler as SS\n",
"\n",
"\n",
"n = 300\n",
"overlap = 4\n",
"X0 = np.random.normal(size = (n))\n",
"y = np.random.normal(size = (n))>.5\n",
"df = pd.DataFrame({'X0':X0, 'y':y })\n",
"def X1_func(row):\n",
" return row.y*(3*row.X0) + (1-row.y)*(-2*row.X0) + overlap * np.random.random()\n",
"df['X1'] = df.apply(X1_func, axis=1)\n",
"\n",
"X = SS().fit_transform(df[['X0','X1']])\n",
"\n",
"fig, ax = plt.subplots(figsize = (8,8))\n",
"ax.scatter(X[y==0, 0], X[y==0, 1])\n",
"ax.scatter(X[y==1, 0], X[y==1, 1])\n",
"ax.set_title('Original Data');\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"def plot_classification_tree(ax, X, y):\n",
" ax.plot(X[y==0, 0], X[y==0, 1], 'r.', label='A')\n",
" ax.plot(X[y==1, 0], X[y==1, 1], 'b.', label='B')\n",
" \n",
" ax.set_xlabel('Feature 0')\n",
" ax.set_ylabel('Feature 1')\n",
"\n",
" model = tree.DecisionTreeClassifier()\n",
" \n",
" model.fit(X, y)\n",
" \n",
" xlim = ax.get_xlim()\n",
" ylim = ax.get_ylim()\n",
" plot_classification_thresholds(ax, X, y, 0, model.tree_, xlim, ylim)\n",
" \n",
" ax.set_xlim(xlim)\n",
" ax.set_ylim(ylim)\n",
" ax.set_title('Decision Tree')\n",
"\n",
"def plot_classification_thresholds(ax, X, y, inode, tree, xlim, ylim):\n",
" threshold = tree.threshold[inode]\n",
" if tree.feature[inode] == -2:\n",
" color = ['orange', 'blue'][np.argmax(tree.value[inode])]\n",
" ax.add_patch(Rectangle((xlim[0], ylim[0]), xlim[1]-xlim[0], ylim[1]-ylim[0], fc=color, alpha=0.4))\n",
" return\n",
" if tree.feature[inode] == 0:\n",
" ax.plot((threshold, threshold), ylim, 'k', lw=0.5)\n",
" plot_classification_thresholds(ax, X, y, tree.children_left[inode], tree, (xlim[0], threshold), ylim)\n",
" plot_classification_thresholds(ax, X, y, tree.children_right[inode], tree, (threshold, xlim[1]), ylim)\n",
" else:\n",
" ax.plot(xlim, (threshold, threshold), 'k', lw=0.5)\n",
" plot_classification_thresholds(ax, X, y, tree.children_left[inode], tree, xlim, (ylim[0], threshold))\n",
" plot_classification_thresholds(ax, X, y, tree.children_right[inode], tree, xlim, (threshold, ylim[1])) \n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(8,8))\n",
"plot_classification_tree(ax, X, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare to a KNN Model"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeIAAAHiCAYAAAA06c+jAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABTZklEQVR4nO3dfXRd1X0n/O++erEljCTAtFNhZIfGdVJHgSSezqwZ1w+ukuDQmgTisAJqaCZN3KRTEq+nU5qg1ToOFQEyk8chT0PHkEyaVDGLRSE1JJAUlRnCmpU+MX1MhJN4yBBbGPcpGLCEkWy93P38cXWke4/2Pve87XP2Puf7WavLvVfSvUfHwfvu/d2/3xZSShAREVE+KnlfABERUZlxICYiIsoRB2IiIqIccSAmIiLKEQdiIiKiHHEgJiIiyhEHYiIiohxxICZynBDiqBDinXWPPyiEeFUI8X8IIaQQ4ru+7/8bIcRnF/7/yxe+5yu+73lSCPHhLK6fqOw4EBMViBDi9wD8JYDfBnBs4el/I4T4dwE/9jqADwkh1hm+PCJS4EBMVBBCiD8A8F8AXCGl/J91X7oDwHDAj54C8HUAu41dHBFpcSAmKoZPAPgcgAEp5UHf174C4Nfql68VhgG8XwixwdQFEpEaB2KiYngXgB8CGFN8bRq1gfYvdD8spfz/APwVaoM5EWWIAzFRMXwCwK8BuEcIIRRfvwfALwshtge8xu0ArhBCXGriAolIjQMxUTH8C4ABAL+J2lJ0AynlDIA9AG4BoBqoIaV8GcDehe8hooxwICYqCCnlCdQG421CiP9L8S3fBLASwLaAl/kigH8H4M3pXyERqXAgJioQKeU4gN8CsAPA531fmwfw5wDOD/j5SdR2WWu/h4jSJaSUeV8DERFRaXFGTERElCMOxERERDniQExERJQjDsREREQ54kBMRESUo9Y83nT16tVy3bp1ebw1ERFR5p566qmTUsoLVV/LZSBet24dDh7096UnIiIqJiHEMd3XuDRNRESUIw7EREREOeJATERElCMOxERERDniQExERJQjDsREREQ54kBMRESUIw7EREREOeJATERElCMOxERERDniQExERJQjDsREREQ54kBMRESUIw7EREREOeJATERElKNcziNOzY/vA0Y/B0wcB7rXAOvfDTz7/fiPB/689rppvqbrj3lPnLgnP/rVG7HrJ+tx4tQ0ens6sPVNF+Lxn72U2+M/uWIDAOAL3ztizTXl/biM9+TCf3kjHv36hTh7aiVW9JzBtg+/hJd++edO3ZM/uWID3ve2i4wOZUJKafQNVDZt2iQPHjyY7EV+fB/w0CeB2el0LgoAKm2AEMD8THqv6Trek+UsvCfTsh1/OvtRHKhuzvtSAABtFQEIYHY++39fbFW2e3L6cC9eebQfcm5pvida53D+tjGs2ngCgBv3pKOtBZ+/pj/xYCyEeEpKuUn1NXeXpkc/l+4gDADV2eB/XMdmgL2vAXsma3+O2fMPsTHN7kkZWXhPOsQMbmq9L+/LWDRblVb/45qHst2TU09saBiEAUDOteLUExsWH7twT6Zn5/GF7x0x+h7uLk1PHI/+M2MzwOhZYEIC3QIYWAH0t4f/2YfOALPe+8vaYyD8axAZ1CtezvsSiBbNT3ZEet5mJ06lPOnzcXdG3L0m2vd7A+nEwqcvbyANO6sdPbs0CHtmF54nssAJeUHel0C0qKVLPXjpnrdZb4/ZDw/uDsTr3x3t+5MOpBOa5RPd80QZkhIYrV6W92UQLerZcgSida7hOdE6h54tZpd5Tdj6pguNvr67A/Gz34/2/UkH0m6hft69VRYqICGAgcqhvC+DaNGqjSdw/rYxtHRNAZBo6Zpq2Kjlksd/9pLR1y9PRtwt1IOuboD1G1gBfPsMUPU9P4Pa8jZzYsoZM2KyzaqNJ5wceP2YEetEzYgHVgBtvufaFp4Po78dUH3rPJgTkxWYEROZwYxYJ2pG3N8ObF+5NAPuFrXHUWayug9FzIkpZ8yIicwxnRG7uzQdNSMGaoNukiXkpMvbRIZ4GfHuvC+EaMHpw7049cQGzE92oKVrGj1bjji7TG06I3Z3RhynjjippMvbRAYxIyZbeF215ic7AQjMT3bilUf7cfpwb96XFgszYp2oGXEa0ljeJjKEGTHZIkxXLZeYzogTL00LIS4G8A0AvwxAAtgnpfxS0tdtav27gYNfNf42yyRd3iYygBkx2aRIXbUAN+qI5wD8sZTy1wH8WwD/UQjx6ym8brA4GTFRQbGOmGxSpK5agAMZsZTyn6WU/7Tw/78G4KcAzJ4ZBeSTERNZjBkx2aJIXbUAxzJiIcQ6AG8D8I+Kr+0UQhwUQhx86aUUPl3kkRETWYwZMdmiSF21AAcyYo8QYhWAvwWwS0o56f+6lHIfgH1A7TzixG+YV0ZMZCFmxGSbonTVAtzIiCGEaENtEB6RUj6Qxms2xYyYaBEzYiJzrM+IhRACwFcB/FRK+cXklxQSM2KiBsyIicxwISP+9wA+BOC3hBCHFv7vyhReN1jHecbfgsglp3BO3pdAVEg9nf5OTulKnBFLKZ8EwB6PRDmTbHmeiaxaNxapRaTrTP+35W6v6elX874CIqucJ17P+xIKz2vd6HWN8lo3Akh1kMzqfSicielZo6/v7kDcvQaYeD7vqyCyBsuXzAtq3ZjmAJnV+0RV1lm6M+VLmWP5kt3GZmrnNE/IWk/ugRVsDWoQy5eykVXrRhtbRJZ5ls5jEHVYvqSX5yA4NgM8cqbx7OYJCTx0pvb/czA2gscgZqOla3rhRKHlz7v4PlHYOkvPgvXlS7lh+ZLa2Ext0PPOTfYGwbGZ7N5b9W/FLGofDsgYli+Zl1XrRhtbRNo4S8+KC+VL+WCLS7XRs7VBr15Wg6DqvetNcFuvScyIzcuqdaONLSKLdpBDFMyIdZgRq+kGuywGwWbv0c0qN1OYEZuj2qC05hOPp/6a/kHWthaRPVuONGTEQP6z9Kw40eIyF8yI1XSDXRaDYNB7tKGWVZMRbHFphrdBqZbXisUNSqcP91r1mlmwcZaeFdMZsbszYmbEagMrajlt/RJxVoOg6r0BoAPAe1Zyo5ZhzIjTZ2KDksubnmybpWfFdEbs7kDMOmI1b7DLY9d0nu9NqELguRXX44RcjTvmrsWB6ua8L8l5JjYoBb3msduvLFV9riuYEeswI9brb89v8MvzvUtMSqBVVAEAa8RJ3NZ2DzALDsYJmSgj0r2m1ym4TPW5rmBGrMOMmGiR8MXznWIGN7Xel8/FFIiJMiLVa/p5S9VkB2bEOsyIiQIxM07Om5Gm2dbR/5o1yzc6lqE+1xXMiHWYERMFYl1xOkxsUKp/zeN3bbWuixY1Mp0Ru7s0vf7deV+B3tgMsPc1YM9k7c8suloR1WFdsTts7KJFjZgR69iaEefZYpJoAeuK3VHm+lxXMCPWsTUjDmoxyd3EejytKXXMiN1R1vpcV7DXtI6tvabzbDHpKq4iGMGMmCgdrCPWsbWOuFuoB132WdbjKkLqmBFnI0zPaHIfzyPWsTUjzrPFpKu4ipA6nk9sntcz2mtX2awRBwdtdzEj1rE1I2abx+i4imAEM2KzovSMPvm9jXj90Fqwe5abWEesY3MdMds8RsNVBCOYEZsVtg/16cO9DYOwx5WDHoh1xHo21xFTNP3twPaVSzPgblF7zA8zsTEjNk/XcMP/fK1VpXp1h92z3MCMWMfWjNhmNpcIcRUhVcyIzevZcqQhIwbUjTiCBlt2z3IDM2IdWzNiW3klQt7yr1ciBHAALChmxGaF7UOtP21JsnuWI5gR69icEduoqCVCNs/yc8aM2LwwjThUM2dA4pzLjjEfdgQzYh1mxNEUsUSIjUC0mBHbQ9XC8oLfOYTVVxzO+9IoJGbEOsyIoyliiVBRZ/kpYEa8XJ51vGxh6TbTGbG7M2JmxNEMrKiVBNVzvUSoiLP8FDEjXuI136hltWKxjvf04d68L40cwF7TOrb2mrZVEUuEgmbzPH6SGXGdoOYbRM2w17SOrb2mbVa0EiFVIxBPyXeFMyNuFLb5RlJsY1lMzIh1mBHny4bdyv52on4lzouZETfSlRClWccbtfc0uYMZsQ4z4vzYtFu5vx3Yda7+6yXOi5kRL+nZcgSida7hOVXzjSS4/F1crCPW6V4DPPm/85+VlZGNu5WLuCs8IWbES8I230giq+Vvyh4zYp0XLgYeOsxOUXmwcbcyD45owIx4OdMlRFksf1M+TGfE7i5Nf21UPyujYGMztV3Feybj7S7WzTLznH0WcVd4Al5GTNnJYvmb8sFe0zqvqrbKotSZYChp9Jy2dfZZtF3hCTEjzlYWy9+UD2bEOue1qQfjEmeCoaSR7/p3KzOft5LtGXERS33YQauYmBHrfGQAuPNR+2Zltksr3+Xs02q2Z8Qs9SGXMCPWueh5ZoJx2JjvUupsz4hZ6kMuYUasM3Gcs7I4bM13KXU2Z8Qs9SGXsNe0DntNx8PdxaVRhcBzK67Hk+2fxFWVJ/O+nAa6kh6W+pCNmBHrsNd0fFxJKDwpgVZRBQCsESdxW9s9wCxwoLo55yur6dlypCEjBljqQ/ZiRqzDXtNEWsIX+XeKGdzUel8+F6OwauMJnL9tDC1dUwAkWrqmcP62MW7UIisxI9Zhr2miSGzLjFnqQ65gRqzDjJgoEtvriolsZTojdncgXv/uvK+AyBm21xUT2YwZsQ4zYqLQbK8rJrIZM2IdZsREkWSdERexhSWVE3tN63SvASaez/sqymdshj2mHeXVFZ+Qq3HH3LVGS5nYwpKKhBmxDjPi7HknN3l9qb2Tm6Ieoxj2vZIc1UgNvLriigDWVGp1xSabfLCFJRWJ6YzY3RkxM+LspXFyUxhRj2rkLL0pXV3xgRkzs2K2sKQiMZ0RuzsjZkacvbRObmomaMD3y3KWXjAmM2O2sKQiYUasw4w4e91CPeimfXJTlAE/q1m6XwFm4Sbrim1tYckNZBQHe03rsNd09oNBVic3RRnws5ql14u6dG4h03XF3uBm06Dn6gYyfnjIHzNinbJnxHkMBt7rmh78owz4Wc3S6+U1C0+RV1e82+B72NbCMmgDmU3XWc/VDw9FwzpinbJnxHkNBmmd3BQ0m48y4JuapQddX7NZuCPL1rb1njbNxQ1kLn54KCJmxDplz4jzWJJNS5jZfNgBP2jQjjsgNru+oFm4Q8vWZes93dI1jfnJTuXztnLxw0MRMSPWKXtGnMeSbFrSns2rBu0kA2Kz6wuahTuybG1b7+m0c1DV69m6gSyIix8eioi9pnXKnhEPrKj941/PxMYpE7KYzUcpgQp7Hd7z/e3A9pVLH3q6Re1xf7szKxU29Z72ctDagCMWc9CT39uI43dtxbHbr8Txu7bi9OHeRK8HwLkzkHu2HIFonWt4zvYPD0XEjFin7BlxVhunTMhiNp9kQAxzfbqlc4dWKmzJiHU56OuH1gKo3bcwm5TqZ8Hez9W/3qknNmDNJx63euD1s3H3eRkxI9Ype0YMpLdxKmtJN1iFyX6TDIhJri+rEq8UZNl7Oog+71QPpqpByL+7ONr72M223edlxF7TOuw17a6gpd1mwnbSSrJ0n+T6kvxshrLuPR0kSt45P9mhXKZWzaqTvA9RPdYR65Q9I3Zd3Nl82M1QSZfuk6w2OLBSkXXv6SCqTVSAhH9GXCOUy9TNZrvMVSkJZsQ6Zc+IyypK9uvAgGiTvDJjVQ668pIXMfXMGu0s179MrdtdXNuUxVyVkmFGrMOMuJwc2gzlmjzrilU56Ok1r2o3XwGNs2BdaZLtu6LJDawj1il7HXFZObQZyiVBdcV59Tr2Bufjd21tWkubx+5i9oAuD2bEOsyIy8nlsi2L6XpP29DrWDfbXXnJiwuD9NJAuOYTj2dyTTbcF8oOM2IdZsTuSLv3cpjs15F+zzZRZcQ29DoOkyFnPRDacF8oO8yIdZgRuyGP3ssO9Xu2iSojtqXXsT9DPn7X1lwHQlvuC2WDdcQ6rCN2Q5JWky69p+N0GbGu9jbvmty8B0Jb7wuZ4USvaSHE14QQLwohnknj9UJhRuyGrHovj80Ae18D9kzm1++5/hr2vra8yYjFdL2nbe11nPdAaOt9ITNMZ8RpzYi/DmBbSq8VDjNiN+jKitIsN/J324p6LSauQdfxy2KqjHjVxhNWHpSQ90Bo630hM5zIiKWUTwgh1qXxWqExI3ZDFuVGqqVoP9MlTrrl8EfOJN80ltHGM10dsY29jm04DMHG+0JmFKaOWAixE8BOAOjr60v+gqwjdkMW5UZhZsKmd03rrmEawLRvlgyEv5aMNp7Zdj5xGBwIKSuFqSOWUu4DsA8ANm3alDysY0bsDtOtJoO6be0619z7hrkGP1Vf7CBhe2snpKsjJiJ3MuLsMSMmT5KTlkxeg06UTWMZbjyz5XxiIts4kRHnghlxuQTlpDZ021Jdw4ysLU2rjM2Eu74Me2vn2WuayGZOZMRCiP0ALgewWghxHMBuKaXZAJcZcXmEyUltOGnJfw1jM8ADZ9TfG3ZpOaPe2i5mxERZcSIjllJel8brRMKMuDwyyklT19+uH4jDLi1nNNtnRlzDgxxIhb2mdZgRl0deDTrSkMbSckaz/bJnxDzIgXSYEet0nAdMv5L3VVAWwg5mNh704NCxjadwTt6XkCse5EA6PZ1hd2LG4+5ATOURZjCz9aAHGzaShSQtW2DIepk47/7VZC/T/224OxBPv5r3FVAYacxSwwxmNufINmwkC+E88Xrel7Aoj2Xilq5pzE92Kp+ncpuYbta6Lxl3B2KWL9kvzVlqs8EsKEe2ccm6niXXV4XAcyuuxwm5GqPVyzBQOYRecVL5+I65a3GgutnYteSxTNyz5UjD4A/wIAeq4TGIOjwG0X5ZHkeo2/zUAbsPY7DksAgpgVZRRUUAayoncUPLY1hTOal9fFvbPbiq8qSx68ljmZgHOZCOE+VLuWD5kv2y3O2sy5EBe5esAWuW1IWI9rhTzOCm1vtwYMbMrDivZWL2ryYVtrjUYfmS/bI4AtHT3w5sX7n02t2i9lj377YtpU8Ol2aZLHfK+5hDonosX9JhRmy/rEt3VDmyl736mTybOIoMW1imzWRLTBuOOSTyMCPWYUZsP90sNcslYRsOhAhi+/VpsCUmlQkzYh1mxG7Iu3THpjreoN3RNlxfBKZbYrLLFdmELS51yp4RW1Ly4oS8PwwAzUu58r6+GExmxOxyRTZhRqxT5ozY1i5SpuX14SON99Xtjn7gTO1rDn6QMpkRs8sV2cSJYxBzUeZjEC0peclUXh8+or6vbtAO2gXt4Acp0xkxu1yRTUxnxO5u1ipzRuxwyUuDsRlg72vAnsnan0FNLLJsDhL3fYOaczTbBZ3F75IiLyM2heVLZBNmxDplzohdKXkJWtKNOtPM68NHlPcNGrRVpVxh38syI2M7MDS6G+MTa1DpOmOkrIjlS2QTZsQ6Zc6IXThar9lAG3V5Pa8PH1HeN2jQ9u+O1r2X5UbGdmDnQ1/G1Gxt2djkbmZ2uSJbsI5Yp8x1xDbU5zbTbEk36gw3r3rbKO/brJNYfzuw61zgmpVO1g4DwNDo7sVB2OPtZiYqKtYR65Q5IwbsL3lpNtBGneHmVW8b5X3DrlQ4WjsMAOMTa5TPq3YzZ32eMJEpzIh1ypwRu6AD6j7P3r/XcZbX8/rwEfZ9owywtn+Q0ujrPo5jE33LnvfvZnalIQc/LFAYzIh1ypwRF4HDs8JAjg6wAELVSw8P7GnIiAGgo20Kv3n5ARzBuYvPudCQw5UPC5Q/ZsQ6Zc6IXaD7AFn/vJeZ7u6q/enqAFYEIc9FHuy/H/u234i+7nEIVLG2exx3b78RD152Y8P5xC405Aj6sEBUjxmxTtkzYtu5UmLVTJrdvKK+VpadxCLsYh/svx+D/fcve4n684ldaMjhwocFsgPPI9ZhRmw3R08VahBylmjktdJ87wAjYzuwbu8YKhNzWIdfYATXNX5DhNrm+t7TuoYcKy95Ecfv2opjt1+J43dtxenDvYmuPwndhwKbPiyQHUxnxO4OxN3q3ZtkCRdKrJpJq5vX2AzwoKKZR9BrZdBJzKsJPjbRB4kKjmEdduLuxsE4wgpGFQLPrbgeT7Z/Etf334fzt42hpWsKgERL1xQ633IcU8+sWZgpi8VMNq/BmN27KCz2mtYpc69pU9JeCs1741LS3yeNbl7ezFb3I1HfI8XuW6qa4CmcgyHcikHsrz2xviXUa0kJtIoqAGCNOInb2u4B+oEDGzcvfs/xu7ZatYGL3bsoLGbEOsyI01W0E52S/D7eAK4TJedWzWzDvFYGGbuuJngcdeVJz86Hei3hu6xOMdOQGQN2ZrLs3kVhsI5Yhxlxuop2olPc38c/gPtFybnHZprPYHUzzqh11jFm/7qa4D6MLz3QXX+I9/OfV+zCBi4iFWbEOsyI01WUE508cX+foBlslJzbG9Cb0c04o2TsMTd2DQ/sQWfbVMNznXgdw7h56QnVDDzk+70qz8GT7Z9czI0HLj/ATJYSu6ryZMP/rurL5kxhRqzDjDhdRSk38gioc1nv14lzbvCuc/Vf82u2JO0Jer+wGXvM2b9XguSdpNSHcQzj5qV8WDcDD/F+EkC3mMIF4jSAWm784GU34moAo//9KmayFMtVlSdxW9s96BS1D32L+xFmgQPVzU1+Oj5mxDrMiNMVZik0y7rWsHTXpBvfJILz47Q+kIRdSUjjg06C1YyGmuDFe4ngv98Q7yewtHnL0ylm8NVLh7D5zRE+0BDVuan1vsVB2KPaj5A2ZsQ6zIjT1azlZNqbudIY1OMOqFHPDY5T/6x7f7806qrT+vAQdgauez+B2t9JwGv4c2OiKHrFSc3zZv93xV7TOuw1nb6gf4jT3MyV1qAed0B9QJPdqs4NjvshQfX+KmmsKJg6n1r3YUn3u0k0/Xs8IS/Qvt1VlSdxU+t96BUncUKuxmj1MgxUDmkf3zF3rdHlSMpGlL/3KiqooLrsNbwa9jD/u4n6+I65a/FU17uM3gMhZfabcTZt2iQPHjyY7EUe/j+ZEWdpz6T+a7u7or3W3tf0M7goOWyza9INJGm9fzP1768S4f2kbCwR8h6PjO1YynjFOIblzRjsvjd5bKDaPd6GpQ1jXpMS1a+m+b2kBL4x/07snvvIsq/5s7+g39kzJdvx6dmPcjB2WJy/96wfT8t2PPOOv8C/vuoPYvyGS4QQT0kpN6m+5u6uaWbE2Wp26H0Uae3QbnZNukMlsmq/6b3/NSsjv99i68k9r2Ld3jF865kdmJMVVKXAnKwsDsINnbHkOuxsuwcjA/8h+Uy7WWevoBxe8/coBDBQOaT8mir789cm62qVyV1x/t6zftwhZvCv//eXYZK7AzEz4mylOXilNajHvaas229GfL9lA+xEH3Y+9GXcO/Z+XHJ2ZHFpTtkZa7YTQ6O7k1/zwmA6guuwDr9ABfO1XtQTH1z6nhh/j7osT5f9NcPM2W1x/94zZ3i8YUZM4aR5fnBamWaSa8qy/WbEjWm6AfbT/7AHrb92CCfkaqwRJ/WdsTTPR9ItMDLxQezE3ZjCOQCw2IsaY5+s7bSO8feoy/J02V8z9ZmzP2tkhpy9qDn/KazC+Tid92U3Z7hvhbsDMeuIs5fW4JXmoJ53P+tmYmxM0w2kL0z0Yi0O4Y65a3Fb2z36zljdKXx6H1iBoQduXRyEPVM4B0Oju2sDccS/R38/6hvEY4vLgBVUl2VzzUgJjFYvA5BffSktUf0d1P8dqx7PSQGJpfJ+a61/t9GXd3cgZkbsNtsH0LTE2G2uG2C9VpAHqpuBWeCPt34Rn/7OrQ2z5862KQwP7El+3f3tGH9g+TUAvg8KEf4eo2ZzYV5voHIIu5FffSktiZP3tgpHOvcZHm+YEROZFGNjmqr1pL8V5IHqZvyXDe9CxxVH0Nc9DoEq1naPY9/2G5cadCSkm1mnMuOu49+YNjK2I/TPehlxXvWltMSZvDcOZsQazIjJBTGabXgD6Z+Ofg4vTPQqW0EuZnFvP4nq2yvLulilYXj9n2Hnwa80LE934nUMr/+z1N7D25jmzeq9jWkAQn2g8DLnMPWlv//0MNtrRpRGjW8hMCPWYEZMLgi5ocmfj179lgP4xw2/pMw3/VmcNl9N2L1s8NlvApjFEG7FOPqWelE/ey+AdOqtg3Z+NxuI6zNn1T2o//r/eOZy/OCRqzC/8F7zk5145dF+AOBgrBE1842T8zuDGbEGM2JyQcgNTUIAc7KCCiROyAsCd/yGyeJS6V42ITGI/UuHQCw+H+7Hw0iy8ztK5jw0uhvTvgFfzrXi1BMbOBBrpFHjWxiGxxt3B2JmxGSToNlnyA1NFUhccnak6feFyuLSaEmawYlcfR3P49j02uXPp5xD6wb2+Umzx9u5rNCZb1TMiDWYEReDbSc6xbmelHpnB/Vhbvy+Wh0x4Gtx2X0cwwN7aku6aXQvM9XD2jM2g+Gzn2moVQaAzpbX09n5XafZTvSyCsqAC535RmU4I3Z317ThNXvKQMwD7a27nmbtIEOor4ltZrR6GaTUd+AaGduhn7V2oNZre89k7c+g381EB7KxmaX3f/AMBqv7sQ8fw1ocre38xlHsa9+Z2s5vj2onekfbFAYuP5Dq+7jEy4DXVE6iIoA1lZO4oeWxxcetopb5EoyPN+4OxMyI3ZfCAJaquNeTwuwzqA+z30DlEIRo0uJS1f6zAmAG0T5o6Pp1x+H/oLPwxyD24yjegCpacBRvwOD0t+K/h8Zg//3Yt/1GrK0r9bp7+4346qVDqb+XK+JkwKXFOmINZsTuS+vwh7TEvZ6UemeHrXn1srvAjU6q2ewKYGTe1zt69jrgEc2xkCkbeeQarJute29cp/7GFDPoeoP99+Porn5Ud5+Ho7v6Mdh/f6nrjJkBR8CMWIMZsft0m4GA2vJl1nlx3M1JKWWpQX2TVdmddqNTx8J/F75NYiN7flvdO3oaGLxjPzANYzn9yNgO7Jy+c/l7A427sk2cghWgvs64iL2pmQGnhBmxBjNi96mWTz155MUGT3PyZ23+x1OyHXfMXQsA2PDT1/Dtr/wh+m55Fpd8aQz/4/DlyuxuGDejE683vE4nXscwblZe5pDQ9I7GrbVBGDB234dGd+vf2/ucY/oULB+vztjLR29ruwdXVZ7M5L2zwAw4Rawj1mBG7D5/ja1f1HKbtK8nxdOc/HXCSzOTlxvqhk8f7sUPvrdhseZV12lKCCxkqXJ5w43p/QC6ll3DuNT0jobveQP3XbuMjj7g6uwG33q6842L0puaGXCKWEeswYy4GLwBbM+k+utZ58UGD6Pw1wmrTg0+9cSGxe5PHm2nqW6BwQlFww3NUrr2tCaML//muPddU/6lfe+O5606/KNImTEz4BQxI9ZgRlwsGTSPyNPI2I5QvaP7Jp9V/rxyRhkxmx4e2IOdf3cnpuZ9vaNVS9lx7ntAPfXwwJ6GntLAwklR7/lc8OtlXGOuOy85qww56nm+pe39nDVmxBrMiIslbj5rqfrs7Q+/8wV86IG78cLERQDEYp/j04d7ATRmeZFOPArIplWZ9GD//fi9t42gRcwBkGjBHH6v8t8wWPHNqOPe94DyL1X5UOBJUTnUmPsz4/o8NYsMuVmmG/UxM+AUMSPWYEZcLEnyWQt5mfC9Y+/HXx38KKTvM299n+P6LE87c9R1mtIspasy6cnDF+Ovn/5dzMvaf/bzaMVft3wE//7SH9UOeEh635uUfw323x++UUcaLTojapafms6Q0+jtzAzYEGbEGsyIi8dgPpuHCiQ+PHrnskHY4/U5rs/yvIFK2bYyxvvXZ9LH/2GrOn9+9hYM7vp25NdfJs14wbYa8wUmM2RmuhZjRqzBjJgsd0JeEHiowEXdJ5Rn6UaaOQbw18h+efJK5fcty5/jZrNp9qa2dM9AUIbc7LFXnsa6XgfxPGINnkdMFvN6R7d0TWN+snPZ1wWquH3gz1ERZs5xrT+Ld42o5Ztf77oJr02et+x7G/LnJAdYpBkvmD5wIgb/PQ06m1f1+Att/xUCAu1iTvk9hT7P13XMiDWYEZPFvN7RPVuO4JVH+yHnlv5TE6ji45vuwSC+BeytDVoi5UxclW8O/9YefOrh/9xwLcvy56TZbFrxgoV7BpLmsyvEfOTXJEswI9ZgRkxZSFBC0yteXixROvXEBsxPdqClaxpfH7gRvyu+lcrRiVH8x7d+HXvmfg/n/OACPK/Ln23KZgu2Z4AcxoxYgxlxuYzN1A4n8FoxdgB4j+GOTAnPGV7ME9+2GqOXNmaB+FL2u4KrEHjx7Zej+vbK4hLrMllls7adQ00UhBmxBjPi8hibAf7uDFC/sjcN4Nu+QTHtf9wTLNMG5YkVVCEnJJRDm6GZZ/31qLLIxcdZZLMJP+AQZY4ZsQYz4vIYPds4CHuqWBoUTfzjnmCZtml+mPGuYNX1eHXGVYilGXIW2WySHJozacoDM2INZsTlETTweV8z0QDC5GBpwa5gr874uRXXN37BdDYb9wMOZ9KUF8PjjbstLg2v2ZNFggY+72smNhmZbLsZ4uhE07wMe2TsA1i3dwyVPa9i3d4xjIztMPvGur/PZh9wgj5sEZnEjFiDGXF5DKxYnhEDtY+R3qBoYvYaZ5k2ytKpiZlnyPf3MuORsR34+MN3LrbU1B27mKq4qwE27eimcmFGrMGMuDy8gSRo17SppV7VYKkb7PJeOo3w/l5mPDS6u6GvNRBw7GJa4ubQHVj6+/c/T2QSM2INZsTl0mz2mFUDiKDBLoeDChrEeH/l8YoBz6eGNcLkEtYRa7COmPyy+Mc9aLDLe+k0xvv3dR/HsYk+5fPWUc2Gg54nSgvPI9bgecSUh6DBLiiP3vua0bN0AcTaBDU8sAedbVMNzwUeu6gyNlP7/fZMJvo9R8Z2BG8ai7vJiygpZsQazIgpD0GbwlQ5tSeLvDhGTp742MWUcvGRsR0N5zAvbhobn1s6K7kDtalDfVOwnA+CoJIwPN4IKZMvmwkhtgH4EoAWAPdIKW8L+v5NmzbJgwcPJnvTz/YA4G5Jyph/4AFqg4FXelS/kUulWwC7zo3+nv7sG9BvGMuy4cXe19S/q0DtP8+Q17Bu75hyiXwtjuIo3rD0RAuAdtSWo9nQgzIjgM+eSvYKQjwlpdyk+lriGbEQogXAXwJ4F4DjAH4khDggpfxJ0tcOxIyY8tBsU5iXU++ZVP981LxYNeP89pnaQDdf91z9LDTLgUn3+8i6r4eYIWs3jcE3OM8DaBfATRE/zBAl4UAd8W8A+LmU8jkAEELcC+C9AMwOxKwjpiAmZ4ZhBru0Sm1Um8NU5zX4d0dnNTPWLdUHXZuCdtMYxpd/M+uGKWsOZMQXAaifmh4H8G/83ySE2AlgJwD09S3/Dy4yZsSkY7KeN+kAN4el5dwwPx9l0JmQ6qVik/l0UC7uv4YAwwN7GjJiAOjE6xjGzcu/mZuzKGuGx5vMdk1LKfdJKTdJKTddeOGFyV+QdcSkY6oVojfAe4OKN8CpdgnrSmpmofx57Y7hqIOObsAL+v2T7Hr2t+rUXa7q96h738HR/4Z9l34Ca7vHIVDF2u5x7Nv0hxhs29/4M9ycRXlwoI74BQAX1z1es/CcWcyIScdUPW+UhhlhlmwXfn7kgauxs+VOTM2fA8DXZnLgW8tnnBU0ZsRhqa4njdWD+qV63WY2/+CpeN/Bp7+Bwe33Nb5v30qetkT5c6CO+EcA1gsh3iCEaAfwQQAHUnjdYKwjJh1T9aZRBvj1LaFfdgi3Lg7CHq/NpPJwiPetBN7rey4M1felvXoQ9jCLsO/b317bZb67q/YnB2HKg+0ZsZRyTgjxRwC+h1pxwdeklIcTX1kzzIhJx1Tf6SgHSzwbfrq6bGew97y3k1i3Oaz+OV0ZkUf3+5tYPQizmS3vLmREUbiQEUspvyul/DUp5a9KKYfTeM2mmBGTjqkjBqMcixgwoIzgOqzDL1DBPNbhFzgfLyu/L1KbSdW1eYJ+/7y6VbFLFrnEgYw4H8yIKYiJetooB0toZs8jbddh5+zdmMJCHox1aMdZtOEMZrFy8fs6W17H8MxnahuowmSjcQ+90O169nZgm8pkTa1aEJngQB1xPlhHTHkIO8BrBpqh1s9jarYxD57BClyAl7Cq418wPn0x+jqex/DZz2BwemHHcNgNVHE+fPgH8Homy57CfnDIulMYkYrtGXFumBGTzTQDzfgDFyu//RVcgJM3vbH2YO9rwLRvUJwF8OAZ4IEz5hqUqHJmk8c4NvvgkPf5zkQenkeswYyYbKcYaPpGQxw7mFLbyMhs20Cl21n9wJna1zg7pqwYHm/cPQax47y8r4AoslDHDobZsJRGgxI/2zZQBX0ACGqmQpQ2w+ONuwMxkYMG++/Hvu03NnaQ2n4jACx11pr5BUYq1zV/sbRnqppd4SPrPxR8TrAJYzP6Ll0eEx9GiHLg7tL09Kt5XwGR3sImo5GJD2JI3Ipx2ddw1u9g//2QEpAQ2D/2fux8uO4s3um12NlyN9AhMDj9raUjBf3Snqkqcu2R9R/CzqfvWn5OMBD+zOKovGw4zOcM1h1TFgyPN+7OiA1vJyeKbWEgGZn4IHbibhyT6yBRWRzEvBnlPCoAJG7+h90Nhx0AwNT8ORhq/3yto9TVK8PXLyfl62Q19Owty6/N6/pliiob1mHdMWWB5UsaLF+irIUtpVkYSIZw62K9sMcbxK5/y/1oFbXzDJ/XncVb31nLe10TZTy632tsRn9OsOb5VISd5cb9MMKSKIqK5UsaLF+iLEUppVkYSIJaV4q6iVyfGMcxuW7Z9/WJurN4TTQoAfS/1/gc8PQc+jCOY1Bcm67rV8AgNzK2A0OjuzE+saZhmX4Z3VI8sNQoJe4AypIoisOFFpe5YPkSZSnK4QgLy6XKQ+2xfBAbljejE683PNeJ1zEsFWfxpk33ez01B8wCw1Bcm3+XtyfgmMiRsR3Y+dCXcWyiT7lM3yBoQpz0AAhTR2RSsbF8SYMZMWUpSo3twu7jsIPYYPe92IePYS2O1nZS4yj24WMY7L431qVqzzYOe/3A4mA4iP3Lr237jeqZbMAgNzSqyMF1WbPJMirbaqXJDcyINZgRU5ainLy0MFMbHL0XmMDSrmkxjuHZm2vPo25ZdWAFBh/aj8HZ/Uuv0QZgYOWyl27Gm3mG3uWs+73qlocHsR+D2L/0/f3nqt88YJAbR4SsOWof6iiZb5S/RyKP4YzY3RkxM2LKUpSTl4DF3ceDu7+Do1e/GdW2FhyVb6gNaP5mFCmeFhVp5hn0e72jNfpO7YCZrC5TVj4f5X4ELIcrRf17HJuptf7cM1n7kw1EyoktLjWYEVOWkuxcVizZjsxeh6EHb8X4A3X1xbuS1+VG3uUc9Hv1RdxdHDCTHcaehpk6EJA1e9cV894G9seO8vfIjV3k4TGIGjwGkbIWd+eybyl0BNdhJ+7GlFw4CjHFJhl93SF6Wfvpfq+ov2/AIDeI2u8Vatd0FHEyX1ODPBUXM2INZsSkISUayoOiPk6dL5cMqi+OPDD58tHh9X/W0AkLaDLz9NGVGIW+ZwGDnNdRLFW6zLcjhdfmxi7yMCPWYEZMGkIAc7KCqhQ4Xl2Nb8y/E8erq5WP52QlvUFYlyf6csmg+uLI7+fLRwef/gb2XfqJZb2swwyAQSVG9fc01XuW1MAKoEXx/Fkkz3NtOwSD8mN4vBFSZv/pbtOmTfLgwYPJXuSzPQjXjJbKqCoFLjk70vT7nltxPSpx/12tn412AJgBMF/39TYsbTKq+9514hfKBh5ru8dxdFd/+PdXnR8M1HY8Xx1hs9fCta2beE7ZvMO7Lu+eJrpnJtwxCUwrnu8WtXrjuPwZMdD4d0olIoDPnkr2CkI8JaXcpPqauzNi1hFTgBPygpDftzreG/hno9NoHISBxkYRdT2ch6++pflRiGEE1QCHOSJwbKY2iD1wZqHEKHim7t3T2PfMFNUgDCRfQk5xNzs5zvB44+5AbHjNvij8Cx5RH5+VLZiRrYHfE/VxUs1ef0q24465a0O91h1z12JKNv7D6n+9kR8rGmSEPZhAMRjojkKMnJ8GLZE26xblfZCoG8SCOoFJCYxWLwMQ7p5lKu4ScpjSJN8hGByES4oZsQYz4lCi5KWqx38y+wf4T7M7I/2MsQw25O/06dmP4kB1c6jXOlDdjE/PflR7/d/88Qew82FFbjrxwcDXHcF1WIdfoIJ5ZXerwf77a8u9u8/D0V39+kE4aLBQ1cTWC5oRKj5IBHUCEwIYqBwCsPye5Z4ZR60NBqLXH1O5MSPWYEYcWti81ARTeWJWv5P8q36MK8qB1oqjOCrfoPyZxfKkup3RnW1T0We9YTLKsRngQc3ZvUEZ6Z5J7bUP4VaMo29ZiZHunluRGUc9UUmXryfNlamgzGbE7pYvsY44tLB5qZn3Xo014qSB183md9IeUSj7aoNi/SBZAdACDM0GlCfhW+EHjDB1rN6fUVpCAtqyn0Hsx2DbfmUWqrvnpv6OI4la88zSJIqCGbFGThlx0nw068dR8lITwuSJNv9Oq7omlM9f3H18+Uae960EOkXwpqcoy6FhB4s4m4p0y9odUP6slMAtP/4jHL9rK47dfiWO37UVpw/3Aqhlx7lmxHGwNImi4HnEGjllxF4+WYHECXkBRquXYaByCL3iZSsf3zF3bei81IQD1c3ALHBT632Z/E6nD/fi1BMbMD/ZgZauafRsOYJVG0/Evv72LUfR+ug5mJtbGpg62qZw68Ae9SzsgTP6M3zFeLROTVEPmkipC5bKt57ZgW9+9w8wv9AoZH6yE688Wiu1GnjbIXvqisOKerAElRszYo0cM+I8M1fSO324F6882g85t/T5UrTO4fxtY4kGY//g/vWBG/G7b9VkvXtfw8jEB5dnxHi9drShd4qR3+6u5c9pMuKRS2/A0LO3pNsqsv49FYPzur1jytaZLV1TmNn1K/lnxHFEzZWpxJgRq+WYEeeZuZLeqSc2NAzCACDnWnHqiQ2JBuJVG080/Pzl7f9d/80LRxpiFkubnjCO4U27Mfhs7VjEZXTLof5Zq6gdFrHz4FcWB/k0+1TrDjkYGb8WxyYuVv7I/GSHHRlxHHF7h1P5sNe0hoFe0xLAvKygVVSXnvP11M07cyW9+Ul1g2Hd8zrNlrdHq5fhhspjUA6fdWcRD07sb5xpjcVYDvVtxkq1T7XfI2eUp0TtPPgVQP3boqVrunY/xGPxlqddnpW6fO0UDTNiDQNr9gLAhOzEtFxpbeZKei1d05if7FQ+H5Z/ebs+C/UG44HKIc2wtCDoNCMg+j/edbunAzeCeSU5cQaFsRllhyrVwO8RrXPo2XKkdj/iDsKuHjPo8rVTdDyPWMPQ+ZDnidfxjrP7Gp7THKlOlunZckSZEfdsORL6NcIsb/cmWYaNsxxat2FLuxEM48t3Y3vvF4amC5du4AfkYvYe+37YeMxg2FluGtfOGbU7DJ9H7G75kqE1e+a/7lq18QTO3zaGlq4pABItXVORN2qFWd7OvNdyXYas7H6F1zGMmxt/plmLSz9NqZSu7eUFXS/h0Nt24LkV16Ma95+RtGt5w7SsbPbzYcvLkl47O3u5hXXEaj/61Rsx7XB9KpmxauMJrPnE41j7p9/Fmk88HnmTlm4Zu/75zHst19X8DmI/9uFjWIujS32qdbuxowxomg1juraXXxr4DNZUTqIigFZRXfr9owyGadbypjGwBc1yw15j2GuP8l6UP/aaVtv1k/X404AewXEeR+lRTMXUs+UIROtcw3P+5e3Mei17g9oDZ2oh0sKkfLD7Xhy95s1Lfaq771X/fJQBbWAFRip1/bHxC4zguqWBXxxtPKDCV74lBKIPhnF6ROukMbBFmeUmvXZ29nILM2K1E6em8QI248BM48Dpz3OjPqZy82bQzZqCHKgu/W/vuRXXp38h/s1A06j9Q3/NSozgegyN7sb4Awt1xOv/DINPfyNRc4oRXI+d4s6lsiisw07cDWCh7aXcr651rhc1N427eU0laGALu4ktagMV3bWHyX6jvBflz3BG7OxA3NvTgRdOhd8NSxSWv264GSN1tJpBbeSBq7Gz5U5MzdfVET99F3ApMPjsN2MPaEOjuxdf0zOFczCEW2vL3mEGiDizvLRqeXUDW/37N9vEFrXbluraw+6mZmcvtzAjVtv6pgvzvgQiAIZ6LWsGlSHcunzAnO3E0LO3RDo313+947rDLdAXfoDIs39zsyMhPUHL1XF6dvvpVgUe9C3Rp/FelB3WEas9/rOX8r4EIgCIX0cbRDPDC6wj1lEslYr+9sWe6VUI9HUfV7aw7BPj4QeIsLM8E2U7qqXiPGbouteWWD4zZmcvdzAjVjvBZWnKSLNOW4nqinVUgxoC6oi7NRmWYql05NtXY+iRz2N8+mJUus7g6wM3YnhgD3Y+9GVMzS41ROlsm8Lw9lvCDxZhMt84jTDCDtz+gS3ozGFTgj4A6PLyJB9MWIucDdYRq/X2RGtbSBSH12mr1rFLLHba8o4ABAzVFXtLl74xQ1dONDywR/06vqXSEVyHndW7cWx6LSQqmJ/sxM6Ha72q922/EWu7xxt3R0dtm9nfHrxEHnV3c5KypDR3ZYfVbIncP0gn+f1Yi5wdZsRqzIgpidOHe5Vn6/oFddrymDhzGQDQ346Rd9zQUFIEAPsqH8PajmPhBkzfP/yqlpXTs534zOhnMdh/P47u6kd193n4xaf60zvRKeB6mj6fpCwpjxxW8wFqkX82nuT3Yy1ydpgRqzEjprjC9JP2hOm0lfTM5SpEw0EjnpGxHdj59JcxhdpysVdStO/tf4ijv/3WcL+sb6lUlzE/P7EGx6urA68nFVHLdpLW2+aRw/oO6likmo0n+f1Yi5wdZsRqzIgprijHJYY9SKK+rtgTtoZdV4c8NLq7IbMFFkqKnr0Fg/i28meW8WXNuowZAC77f+/Hqo0nzNRFa64HQPBysav1tmFrpJP8fq7eGxcxI1ZjRkxxRTkuMUynraR0GbO2pChoh7Sfb3l2uGMIAqrZrlhcbo+VeYdtbRl1uTiPnDctzfJyINnv5/K9cQ0zYjVmxBRXmH7SnjQOkmhGlzHrdkL3dR8PlzF7+tshP1UbEAZvehi6b/U+iESui466aSjMAFX/vUWut03y+xX93tiEGbEaM2KKK+pxiVE7bUWly5j/eOsX8env3Lq8pGhgD4RAQx1ws0y3/vsv6v5nvDBx0bLv8T6IRK6LNn2cYdHrbZP8fkW/N7ZgRqzGjJjiCttPOkuqjBkbgI65I1j9gwvw/MRCX+mBPYu7mSuQuOTsSOhM1/v+M7/5IsSjv6z9IKKsiw6qV+WmISo69ppWY69pCtKsCYfpWW5aVm08gSfftgNrKssHxyrE4nnAFWXu28g7a1v1QWTg8gP46qVD6BUnl79esyYc3DRERWc4I3Z2IN76pgvxNz9UH1pO5RalPMkFd8xdi9va7kGnWMpcpcTicnQFtfOAg5aTpaxlv576DyJXVZ5seP1lr9ds6TloJzQ7P1ERMCNWY0ZMOlHKk/Lgn62vvORFnHnul7Szd3+GrMqEm2W6QtSyX9Wxnze13tcwyC97vTBLz61YGog7ALxnZe3/j9rOkshGzIjVmBGTTpTypKypZuuvH1oLrxWTbvaexvnHveJlzfNNemUHLT37l60BwKv2Mr2JiygrrCNWYx0x6UQpT8qaarbu74fob6HpF7e3tZcRA7Xl6CfbP7mYMWuNzQAzmhnxjAQeWX4wxeJgy01cVBTMiNWYEZNO1PIkE3SbxcLOyoO+T5cZh82Im2bCHtVst17Q55qgowhd2cTFfJs8hjNiZ2fEzIhJJ4smHEGCTmwKOysP+r4D1c349OxHcby6GlUpMCcroTNiIEQm7FEtLYflDVyudn7iyUZUjxmxGjNiCpJneVLQZjHVbL12avzSSBhm9h4nM/Yy4tDnJ8ddQvYG27D9lm2ky7cf5GazUmIdsRrriMlWQZvFvA8Hr45uRHW6DbUB2BuEJcTKGZz/zp9E+hBxQq7GmhCDa9S648BD7ut1AGgX6sHW1c5Put9bgju/y4i9ptXYa5ps1Wyz2KqNJyDa5rD80FqBSvt85Jl82POQW0UVFVH7M1Qv6WaH3AO1r79nZfje0a4IyrF55m/5sI5YjRkxpaFZB644wmwWS7PEKk6dcahe0qql5fUtwLPz7i01R6VqUlKPO7/LhRmxGjNiSspUB64wvazDnnMcVhp1xkquLi0n5f3OD56B8rgqV3Z+UzqYEasxI6akdJuqXh3dmHhW3GyzmMkSq7CZMTXhDca69p0eljkVHzNiNWbElJRuGbg63YbTh3uNvrfJEqvI5wmTXrMzf6OWOY3NAHtfA/ZM1v5kOZQbmBGrMSOmpHTLw4CI1Jc6bs5sqsQq8nnCFCxoeT5KG89mp1iRvZgRqzEjprB0A2XPliN4+eHLsHz3cvhNUzae9BS6TpiSi9LGk7233cVe02rsNU1hBHW5WrXxBMRK9dJg2E1TQc078hK3FzXFoNu0pXqevbfdxYxYjRmxu04f7sXxu7bi2O1X4vhdW43msc0GyvPf+ROI1rmGr0fZNGXjSU/MiDMUpY1nlEGb7MJe02rMiN0UNEM1odlAmXTTlI0nPTEjzlCzzVz1XO69XXbMiNWYEbspaIZqIlMNU6+bZNOUDSc9+TEjzljYWmuXe2+XHeuI1VhH7Kasl3JND5RhmndkjXXEOQhbS1zWBimu43nEajyP2E1pd5RqJouBMs+TnlRGq5fhBvEYl6ezUpSyJDYm0WMdsRozYjflsZRr20BpWmYZMf/hrolblmTT/SvKhwlTmBGrMSN2k41LuUWTSUbMf7iXxClLsu3+scY5mM0ZsRDiAwA+C+DNAH5DSnkwjYsKgxmxu9KcoZo4Pcl1mWTE/Id7ie7c5qCyJNvuH2ucg1leR/wMgGsAPJHCtUTCOmLKuhTKFUbriL1eyfyHe0mcsiTb7h9rnIPZnBFLKX8KACKHXSHMiCntUqiizK6NZcT+5VQVW/7hzjJ/jVOWFGcWbZLq/GXWOC8pSkYshNgJYCcA9PX1JX49ZsSUZimUjT2j4zKWEauWU+vZ8g93FvmraqDfdW74n7dt4GONc7C8M2IhxGMA/pXiS0NSyr8L+0ZSyn0A9gHApk2bEq+/MCOmNEuhsm40YpKxjDho2dSmf7hN569pDPQ2DnyscdbLu45YSvlOo1cQE+uIKc1SKBt7RsdlrI44aDk1ymzQNNP5q26gfzDGYMyBzw3sNa3GjJiS9omuZ2PP6LiMZcSu9Eo2vfFIN6BL1GbGY+oTvchhNmfEQoirAXwZwIUAviOEOCSlvCKVK2uCGTEB6ZVCrbzkRbx+aC3qzybOu2d0XMYyYhuXU1VM56+6lQGgvCVcRZd3RhxESvkggAdTupZImBFTWk4f7sXUM2tQPwgDEp1vOW40Hza1S9toHbGJ5dS0dzib/sCgGujrlbGEq+jyzohtxYyY0qLaqAUInHnulwAcNvKeJndpO9Vr2tQOZ5P5q/e6D56pLUf72VLCRelhRqzGjJjSksdGraBd2kk5dR5x0A5nm/W3A1evdCMzp+QMZ8TODsTMiCkteWzUChr8k3YGc+o8Yts6TEXR3w5sX7k0A+4WtcfMh4vH5ow4T8yIKS15nAilq4EGROIlaqfOI7atw1RULEEqB8t7TeeGvaYpLWmWQYXVs+UIROuc8mtJl6jvmLsWU7JxcDDWezoMrz/1nsnan/XlPa6URFG52dxrOk/MiClNWZ9Z7L3Xyw9fhsbd2jVJ8ukD1c3ALHBT633oFS+jCoFWUY39eok024zlSkkUlZvNdcR5YkZMrlu18cRC+VI6bTrrHahuxoGZzQCA51Zcn+i1EgnThYrLu2Q7wxmxs0vTvT3utR4k8lMtUaedT5+Qq1N7rcjK0IUqaOmdioEZsRozYiqCLPJpo+cTNxO06SpMmZLtg5y39O594PCW3m27TkqGGbEaM2I7FOUM3zyZzqdzrStO0oUqi+MMg947TG5t+qQnsgMzYjVmxPkr0hm+Ybn4wSPXuuIkXajyGuSifABwuQ6awmNGrNbT6a95oKyZ7A5lI++DR21zlVj84JG0AYdpp7Aq3wuI24Uqr0EuSrcv0yc9kR06zjP68s4OxLnWRRKAYp3hG4arHzys+G8lThcq3WDWAbO5cZQPAKyDphQ4uzQ9Ma0LnSgruu5QLp7hG4arHzzOE6fzvoSaqGVKqny5BcBZANO+zVHe66chSrcv1kGXw/SrRl/e2Rkxy5fyl0XpjU3y6EmdhlzLl5JQzaLbAfh7k6R9SETUWW5/O7DrXGB3V+1PDsLFw/IlNZYv5S+P1pB5cvWDR67lS0n5BzndZ540c2Me5kB+LF9SY/mSGVF3BWfdGjJP3u/p2q5pp45FbEZAvfs67d+P3b6oHsuX1Fi+lL4yliNF5eIHD6eORWxGN/F1dcZPbmD5khoz4vS5uiuYgjmbEauwXIjyYDgjdnZGvPVNF+Jvfjie92UUiqu7gm1ha7OP0epluEE8VozladVOapvKhcJ25CK3MCNWY0acvrKVI6XJ5mX9QmXENpcL5dmSk8xiRqzGjDh9PVuONAwmgBu7gm0QtKyf90BcqIwYsHcjFftOF5fhjNjZgbi3pwMvcDBOlau7gtOSZGnZ5mX9E3I11hRtMLaR7X2nuWweHzNiNWbEZri4KzgNSZeWbV7WL1RGbLMoHbmyxmXzZJgRqzEjpqTqZ8AQEpCNRQRRlpZtXtYvVEZsM5s3knHZPBlmxGrMiCkJ/wwYUj1ShV1atnlZv3AZsa1s3khm+7K57ZgRqzEjpiRUm6tUoiwt27qsz4w4Q7ZuJLN52dwF7DWtxl7TlESYma4tS8tJOd1rmtLB4xqTYUasxoyYktBtroKoAlJYtbScVKkyYu4MVjO5bF6Ge86MWI0ZMSWh21xVxNOjSpMRc2dwMBPL5mW55+w1rcZe05REmY5wLFSv6SBBO4PJjLLcc9YRq7GOuLzS6uls6+aqtJWmjpg7g7NXlnvOjFiNGXE52dzT2ValyYht3Rlc5AzV1nueNsMZsbNL08yIy4lHNUZXmozYxp3BXobqDVZehjo2k981pcnGe24CM2I1ZsTlZHNPZ1uVJiPubwe2r1yajXWL2uM8Z59Fz1BtvOcmMCNWY0ZcTjb3dLZVaTJiwL6GGmXIUG275yYYzoidnREzIy6nni1HIFrnGp4rSuMNU0qTEdtIl5UWLUMtOtYRqzEjLqewPZ3T2lldBKXJiG1k80EQFB57Taux13R5NSs74s7qRuw1naMoHa2KvLvadew1rcZe06TDndWN7pi7FlOy8R909p7OUH87sOtcYHdX7U/dIFzk3dWuY0asxoyYdLizutGB6mZ8evajOF5djaoUmJMVZsa2KfruatcxI1ZjRkw63Fm93IHqZhyY2QwAeG7F9TlfDS1Tht3VLmMdsRrriEmHO6uDlaau2CXcXW03ZsRqzIhJp0wHOsTB84ktVJYOVa5ir2k1ZsQUpCwHOsTBumILmTwvmJJjRqzGjJgoHtYVWyrLDlUslYqGdcRqrCMmD5t3RMO64pLzSqW8XdpeqRTAwViHGbEaM2IClpp31HZJi8XmHacP9+Z9adZiRlxyLJWKjnXEasyICWDzjjiYEZccS6Wi43nEasyICWDzjjiYEZccS6WiY0asVoaMmNlnc1Gad/B+1jAjLjkeRBEdM2K1omfEzD6bO324F9WZFgCNS2qq5h28n0uYEZdcfzuwfeXSDLhb1B5zo5Ye64jVip4RB2WfZZzF+flPWKqRqHTM4ryBw8vuEe/nEmbElGmpVBEwI1YrekbM7DOYamAFBETbnHJg5f1cwoyYKCL2mlYreq9p3QEFZT64oF7UgZX3cwl7TRNFxIxYregZMQ8uCBZ1YOX9XMKMmCgi1hGrFT0j5sEFwaIOrLyfS5gRE0XEXtNqRc+IAR5cEMS7L1HKkXg/a5gRE0XEOmK1MtQRUzAOrPGwjpgoImbEakXPiIlMYUZMFBHriNWKnhGTGrtjJceMmCgiZsRqZciIqZG/iYfXHQsAB+MImBETRcQ6YrWi1xHTcjxpKR2sIyaKiBmxGjPi8mF3rHQwIyaKiHXEasyIy4fdsdLBjJgoIvaaVmNGXD7sjpUOZsREETEjVmNGXD7sjpUOZsREERnOiJ3dNb31TRfib344nvdlUMbYxCO50epluEE8xuVporBYR6zGjJhYUxwPM2KiiFhHrMaMuNxYUxwfM2KiiGzOiIUQXxBC/EwI8WMhxINCiJ6UrqspZsTlxpri+JgRE0VkeR3x3wN4i5TyrQD+F4DPJL+kcFhHHM3pw704ftdWHLv9Shy/aytOH+7N+5ISYU1xfKwjJorI5jpiKeX3pZRePckPAZj92FCHGXF43jLu/GQnALG4jOvyYMya4viYERNF5FAd8UcAPJLi6wViRhxeEZdxWVMcHzNioojyPo9YCPEYgH+l+NKQlPLvFr5nCMAcgJGA19kJYCcA9PX1xbrYejyPOLwiLuN6G7K4azo6nkdMFFHedcRSyncGfV0I8WEAvwNgQEp98iSl3AdgHwBs2rQpcULFOuLwWrqmF5allz/vMtYUx8M6YqKIbM6IhRDbANwE4Cop5VQ6lxQOM+LwuIxL9ZgRE0VkeR3x/w1gBYC/F7X/sn8opfx44qsKoewZcZRmFlzGpXrMiAtobAYYPQtMSKBbAAMrgP72vK+qOPLOiINIKd+Y1oVEVeaMOE4zCy7jkocZccGMzQAPnQFmFx5PyNpjgINxWiyvI85NmeuIi7gLmrLDOuKCGT27NAh7Zheep3TYnBHnqcwZcRF3QVN2mBEXzITmU5XueYrOoTriTJU5I2YzC0qCGXHBdGs+Vemep+hs7jWdpzL3muYuaEqCvaYLZmAF0OZ7rm3heUoHM2K1MmfEqzaewPnbxtDSNQVAoqVrCudvG+NmLAqFGXHB9LcD21cuzYC7Re0xN2qlh+cRq5U5Iwa4C5riY0ZcQP3tHHhNYkasVuaMmCgJZsREETEjVitzRkyUBDNiooiYEauVOSMmSuKOuWsxJRuXMZkZU2bGZoC9rwF7Jmt/js3kfUXNMSNWK3tGTBTXgepmYBa4qfU+9IqXUYVAq6jmfVlUBq52AWNGrMaMmCi+A9XN2DxzJy45O4IKOAhTRlztAmZzr+k8lbnXNFGa2HuaMuNCFzDVARqbf9XoWzo7I2ZGTJQO1hVTZmzvAuYtnXsfDLyl8xcuNvq2zg7EzIiJ0sG6YsqM7V3AdEvnXxs1+rbOLk0zIyZKB+uKKTPehixbz07WLZG/6h+d0+XsQNzT2YZXp8zeHKIyOIVVOB+n874MKgubu4B1C/Vg3NNi9G2dXZpmpkWUDv63RLRAt3R+xXlG39bZGfHENGfDRGk4T3A2TARAv3T+Ji5NK7F8iSi+qypPLjT0OIkqKqwlJvKols7Z4lKN5UtE8VxVeRK3td2DNZWTqAigVVS5PE0UxHCLS2cHYpYvEcVzU+t96BSN/X1ZvkQUwHCLS2eXplm+lK7Th3tx6okNmJ/sQEvXNHq2HOF5xwXFciWiiHgMohqPQUzP6cO9eOXRfsxPdgIQmJ/sxCuP9uP04d68L40M4DGIRBExI1ZjRpyeU09sgJxrXByRc6049cSGnK6ITGJLS6KImBGrMSNOz/ykenVB9zy5jS0tiSLiMYhqzIjT09Klvpe658ltzIiJImJGrMaMOD09W45AtM41PCda59Cz5UhOV0QmMSOmXI3NAHtfA/ZM1v4cm2n+M3ljRqzGjDg9qzaewPnbxtDSNQVAoqVrCudvG+Ou6YK6Y+5aTMnGhgXMjCkTumMGbR+MDWfEzpYvMSNO16qNJzjwlsSB6mZgFgudtV5GFQKtgp21KAO6YwZHz9p7EATAOmIdZsRE8R2obsaBmc0AgOdWXJ/z1VBp6I4Z1D1vC2bEasyIidLBzJgyEbT83G35Nn5mxGpFyYhPH+7F8bu24tjtV+L4XVvZRIMyx7piysToWf3XBlZkdx1xMCNWK0JG7HW08pppeB2tADCvpcywrpgyEbT8bHM+DLCOWKcIGTE7WpENWFdMmdAtP9u+LA0wI9YpQkbMjlZkA2bElImBFUCb77k22L8sDTAj1ilCRsyOVmQDZsSUif52YPvKpRlwt6g9tn1ZGmBGrFOEjLhny5GGjBhgRyvKHjNiykx/uxsDrx/riNWKkBF7G7J4DjDliRkxUROGM2JnB+Leng68UJDBmAMv5emEXI01HIyJ9JgRqxUhIyayATNioiZ4HrFaETJiIhswIyZqgnXEakXIiIlswIyYqAnWEasVoY6YyAasIyZqghmxGjNionTwfGKiJlhHrMaMmCgdPJ+YqAnWEasxIyZKD88nJgrAjFiNGTGRGcyMiXyYEasxIyYyg3XFRD6sI1ZjRkxkBuuKiXxYR6zGjJjIDNYVE/kwI1ZjRkxkBjNiIh9mxGrMiInMYEZM5MOMWI0ZMZEZzIiJfJgRqzEjJjKDGTGRD88jVivKecRxnD7ci1NPbMD8ZAdauqbRs+UIzzSm1PB8YiIfZsRqZc2ITx/uxSuP9mN+shOAwPxkJ155tB+nD/fmfWlUEMyIiXyYEauVNSM+9cQGyLnGhQw514pTT2zI6YqoaJgRE/kwI1Yra0Y8P6ku29I9TxQVM2IiH9YRq5W1jrilS/0BRPc8UVSsIybyYUas9idXbEBHW0uqr9lWEWhrsXtNrmfLEYjWuYbnROscerYcMfJ+LtyTrBX9ntwxdy2mfecTR1ZpA1oSvkbR8J4s58I9aesABv7c6Fs4OxC/720X4fPX9OOing4IABf1dOB3/21fosdf+MCl+MKOS1N9zbQff/z3W/HGa46gpWsKgETXhTN44zVHcO7GE0bez4V7kvXjot+Tp7rehWfe8RdA98UARO3PTb8f7fH7vgK89y+TvUbRHvOeuHlPtt8JvPXa4AEpISFz2B65adMmefDgwczfl4iIKA9CiKeklJtUX3N2RkxERFQEHIiJiIhyxIGYiIgoRxyIiYiIcsSBmIiIKEcciImIiHLEgZiIiChHHIiJiIhyxIGYiIgoR4kGYiHELUKIHwshDgkhvi+E4KG4REREESSdEX9BSvlWKeVlAB4GYLYzNhERUcEkGoillJN1D88BkH3jaiIiIoe1Jn0BIcQwgBsATADYmviKiIiISqTpjFgI8ZgQ4hnF/70XAKSUQ1LKiwGMAPijgNfZKYQ4KIQ4+NJLL6X3GxARETkstWMQhRB9AL4rpXxLs+/lMYhERFQmQccgJlqaFkKsl1I+u/DwvQB+FubnnnrqqZNCiGO+p1cDOJnkegqM90aN90WP90aP90aP90Yv6b1Zq/tCohmxEOJvAWwAUAVwDMDHpZQvxHytg7pPC2XHe6PG+6LHe6PHe6PHe6Nn8t4kmhFLKd+f1oUQERGVETtrERER5cimgXhf3hdgMd4bNd4XPd4bPd4bPd4bPWP3JrVd00RERBSdTTNiIiKi0rFmIOYBEnpCiC8IIX62cH8eFEL05H1NthBCfEAIcVgIURVCcLcnACHENiHEESHEz4UQn877emwhhPiaEOJFIcQzeV+LbYQQFwshHhdC/GThv6dP5X1NthBCrBRC/D9CiKcX7s2e1N/DlqVpIUSX17taCPFJAL8upfx4zpdlBSHEuwH8g5RyTghxOwBIKf8058uyghDizaiVz/1XAP9JSlnqTjFCiBYA/wvAuwAcB/AjANdJKX+S64VZQAixBcBpAN8I03ioTIQQvwLgV6SU/ySEOBfAUwDex//dAEIIAeAcKeVpIUQbgCcBfEpK+cO03sOaGTEPkNCTUn5fSjm38PCHANbkeT02kVL+VEp5JO/rsMhvAPi5lPI5KeUMgHtRa7ZTelLKJwC8kvd12EhK+c9Syn9a+P9fA/BTABfle1V2kDWnFx62LfxfquOTNQMxUDtAQgjxPIBB8EhFnY8AeCTviyBrXQTg+brHx8F/UCkCIcQ6AG8D8I85X4o1hBAtQohDAF4E8PdSylTvTaYDcVoHSBRRs3uz8D1DAOZQuz+lEebeEFFyQohVAP4WwC7fKmWpSSnnpZSXobYa+RtCiFSjjcTHIEYhpXxnyG8dAfBdALsNXo5Vmt0bIcSHAfwOgAFpS7CfkQj/uyHgBQAX1z1es/AcUaCF/PNvAYxIKR/I+3psJKU8JYR4HMA2AKlt+rNmaVoIsb7uYegDJMpACLENwE0ArpJSTuV9PWS1HwFYL4R4gxCiHcAHARzI+ZrIcgsbkr4K4KdSyi/mfT02EUJc6FWqCCE6UNsImer4ZNOu6dQOkCgaIcTPAawA8PLCUz/kjvIaIcTVAL4M4EIApwAcklJeketF5UwIcSWAvQBaAHxNSjmc7xXZQQixH8DlqJ2i8y8Adkspv5rrRVlCCLEZwA8AjKH2bzAA3Cyl/G5+V2UHIcRbAfw1av89VQDcJ6X8XKrvYctATEREVEbWLE0TERGVEQdiIiKiHHEgJiIiyhEHYiIiohxxICYiIsoRB2IiIqIccSAmIiLKEQdiIiKiHP3/UeafjwBJWBQAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"knn = neighbors.KNeighborsClassifier(2).fit(X,y)\n",
"xx = np.linspace(X[:,0].min(), X[:,0].max(), 101)\n",
"yy = np.linspace(X[:,1].min(), X[:,1].max(), 101)\n",
"\n",
"\n",
"predictions = []\n",
"xs, ys = [],[]\n",
"for x in xx:\n",
" for yi in yy:\n",
" predictions.append(knn.predict([[x,yi]])[0])\n",
" xs.append(x)\n",
" ys.append(yi)\n",
"predictions = np.array(predictions)\n",
"\n",
"fig, ax = plt.subplots(figsize = (8,8))\n",
"\n",
"ax.scatter(np.array(xs)[predictions], np.array(ys)[predictions])\n",
"ax.scatter(np.array(xs)[~predictions], np.array(ys)[~predictions])\n",
"ax.scatter(X[y==0, 0], X[y==0, 1], color = 'red')\n",
"ax.scatter(X[y==1, 0], X[y==1, 1], color = 'blue')\n",
"ax.set_title('KNN');\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Compare to a SVC"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.svm import SVC\n",
"\n",
"m = SVC().fit(X,y)\n",
"\n",
"predictions = []\n",
"xs, ys = [],[]\n",
"for x in xx:\n",
" for yi in yy:\n",
" predictions.append(m.predict([[x,yi]])[0])\n",
" xs.append(x)\n",
" ys.append(yi)\n",
"predictions = np.array(predictions)\n",
"\n",
"fig, ax = plt.subplots(figsize = (8,8))\n",
"\n",
"ax.scatter(np.array(xs)[predictions], np.array(ys)[predictions])\n",
"ax.scatter(np.array(xs)[~predictions], np.array(ys)[~predictions])\n",
"ax.scatter(X[y==0, 0], X[y==0, 1], color = 'red')\n",
"ax.scatter(X[y==1, 0], X[y==1, 1], color = 'blue')\n",
"ax.set_title('Support Vector Classifier');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare to Quadratic Discriminant analysis"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA\n",
"m = QDA().fit(X,y)\n",
"\n",
"predictions = []\n",
"xs, ys = [],[]\n",
"for x in xx:\n",
" for yi in yy:\n",
" predictions.append(m.predict([[x,yi]])[0])\n",
" xs.append(x)\n",
" ys.append(yi)\n",
"predictions = np.array(predictions)\n",
"\n",
"fig, ax = plt.subplots(figsize = (8,8))\n",
"\n",
"ax.scatter(np.array(xs)[predictions], np.array(ys)[predictions])\n",
"ax.scatter(np.array(xs)[~predictions], np.array(ys)[~predictions])\n",
"ax.scatter(X[y==0, 0], X[y==0, 1], color = 'red')\n",
"ax.scatter(X[y==1, 0], X[y==1, 1], color = 'blue')\n",
"ax.set_title('Quadratic Discriminant Analysis');"
]
},
{
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment