{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. logistic_regression(逻辑回归)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 备注\n",
"运行环境:python 3.6 \n",
"现在我知道我应该考虑列向量,而Tensorflow对数据的形状非常挑剔。 但是在numpy中,正常的一维ndarray已经被表示为列向量。 如果我重新塑造$\\mathbb{R}^n$ 为 $\\mathbb{R}^{n\\times1}$,它不再是列向量了,而是是1列的矩阵,那使用scipy会有麻烦。\n",
"*所以我们应该把TensorFlow的数据视为特殊情况。 我们继续使用numpy的惯例。"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"plt.style.use('fivethirtyeight')\n",
"import matplotlib.pyplot as plt\n",
"# import tensorflow as tf\n",
"from sklearn.metrics import classification_report#这个包是评价报告"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 准备数据"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" exam1 | \n",
" exam2 | \n",
" admitted | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 34.623660 | \n",
" 78.024693 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" 30.286711 | \n",
" 43.894998 | \n",
" 0 | \n",
"
\n",
" \n",
" 2 | \n",
" 35.847409 | \n",
" 72.902198 | \n",
" 0 | \n",
"
\n",
" \n",
" 3 | \n",
" 60.182599 | \n",
" 86.308552 | \n",
" 1 | \n",
"
\n",
" \n",
" 4 | \n",
" 79.032736 | \n",
" 75.344376 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" exam1 exam2 admitted\n",
"0 34.623660 78.024693 0\n",
"1 30.286711 43.894998 0\n",
"2 35.847409 72.902198 0\n",
"3 60.182599 86.308552 1\n",
"4 79.032736 75.344376 1"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv('ex2data1.txt', names=['exam1', 'exam2', 'admitted'])\n",
"data.head()#看前五行"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" exam1 | \n",
" exam2 | \n",
" admitted | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 100.000000 | \n",
" 100.000000 | \n",
" 100.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 65.644274 | \n",
" 66.221998 | \n",
" 0.600000 | \n",
"
\n",
" \n",
" std | \n",
" 19.458222 | \n",
" 18.582783 | \n",
" 0.492366 | \n",
"
\n",
" \n",
" min | \n",
" 30.058822 | \n",
" 30.603263 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 50.919511 | \n",
" 48.179205 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 67.032988 | \n",
" 67.682381 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 80.212529 | \n",
" 79.360605 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 99.827858 | \n",
" 98.869436 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" exam1 exam2 admitted\n",
"count 100.000000 100.000000 100.000000\n",
"mean 65.644274 66.221998 0.600000\n",
"std 19.458222 18.582783 0.492366\n",
"min 30.058822 30.603263 0.000000\n",
"25% 50.919511 48.179205 0.000000\n",
"50% 67.032988 67.682381 1.000000\n",
"75% 80.212529 79.360605 1.000000\n",
"max 99.827858 98.869436 1.000000"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set(context=\"notebook\", style=\"darkgrid\", palette=sns.color_palette(\"RdBu\", 2))\n",
"\n",
"sns.lmplot('exam1', 'exam2', hue='admitted', data=data, \n",
" size=6, \n",
" fit_reg=False, \n",
" scatter_kws={\"s\": 50}\n",
" )\n",
"plt.show()#看下数据的样子"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def get_X(df):#读取特征\n",
"# \"\"\"\n",
"# use concat to add intersect feature to avoid side effect\n",
"# not efficient for big dataset though\n",
"# \"\"\"\n",
" ones = pd.DataFrame({'ones': np.ones(len(df))})#ones是m行1列的dataframe\n",
" data = pd.concat([ones, df], axis=1) # 合并数据,根据列合并\n",
" return data.iloc[:, :-1].as_matrix() # 这个操作返回 ndarray,不是矩阵\n",
"\n",
"\n",
"def get_y(df):#读取标签\n",
"# '''assume the last column is the target'''\n",
" return np.array(df.iloc[:, -1])#df.iloc[:, -1]是指df的最后一列\n",
"\n",
"\n",
"def normalize_feature(df):\n",
"# \"\"\"Applies function along input axis(default 0) of DataFrame.\"\"\"\n",
" return df.apply(lambda column: (column - column.mean()) / column.std())#特征缩放"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(100, 3)\n",
"(100,)\n"
]
}
],
"source": [
"X = get_X(data)\n",
"print(X.shape)\n",
"\n",
"y = get_y(data)\n",
"print(y.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# sigmoid 函数\n",
"g 代表一个常用的逻辑函数(logistic function)为S形函数(Sigmoid function),公式为: \\\\[g\\left( z \\right)=\\frac{1}{1+{{e}^{-z}}}\\\\] \n",
"合起来,我们得到逻辑回归模型的假设函数: \n",
"\t\\\\[{{h}_{\\theta }}\\left( x \\right)=\\frac{1}{1+{{e}^{-{{\\theta }^{T}}X}}}\\\\] \n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def sigmoid(z):\n",
" return 1 / (1 + np.exp(-z))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGmCAYAAABbQQ/3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8FPXh//H37Mxu7kASAnIFIQLWogJq1a8iFkXrfaAC\nKrFK61WtWopH+9V6IKjVflW8rdXWeoBoW/HXaouiWKwWUFSsULkiAYUkJCSba4/5/P4IrIQkSEKS\nye6+no8Hj92d2Z19T5bdvDOfmVnLGGMEAAAQB3xeBwAAANhTFBcAABA3KC4AACBuUFwAAEDcoLgA\nAIC4QXEBAABxg+ICJJgbb7xRw4cP9zpGi2bPnq3hw4erpKSkQ+733nvv6aSTTtKIESN0/vnnd2TU\nNnFdt0nWDz74QMOHD9crr7ziWSYgUTleBwDQsSZOnKgjjzzS6xgtGj9+vAoKCpSbm7vXy3JdV9Om\nTZNt27rpppu0zz77dEDCtgsGg/rhD3+osWPH6uqrr5YkFRYW6p577tHo0aM9yQQkMooLkGBGjRql\nUaNGeR2jRfvvv7/233//DllWaWmptm7dqosvvlgXXHBBhyyzPSorK/Xpp59q7NixsWm9evXSGWec\n4VkmIJExVAQgLoXDYUlSRkaGx0kAdCWKCxBHtm3bphtvvFHHHnusRowYoeOPP1733XefGhoaYvdp\naR+XtWvX6oorrtChhx6qww8/XDNmzNDcuXOb7Ecye/ZsjRo1SqtXr9bFF1+skSNHasyYMXryySdl\njNFTTz2lY489VqNGjdLUqVOb7X+yceNGTZ8+XUcccYQOPPBAnX766Zo7d26T+7S078qXX36pq6++\nWocddpgOP/xw3X333bFS0prZs2fruOOOkyQ99NBDGj58uD744INW943Zdfrs2bN14IEHav369brs\nsss0atQoHXbYYbrhhhtUUVHR5LHBYFAzZ87Uscceq4MPPlinnXaaXnrpJUmN+7LsmqOkpKTFfVyi\n0ah++9vf6sQTT9SIESN09NFH61e/+pW2bt0au8+Oxy1evFi33XabjjzySB188MG66KKLtHLlyt3+\nTIBkwVAREEeuvfZa/ec//1FRUZF69+6tjz76SE888YQqKyt1xx13tPiYTZs2xXZcveSSS+Q4jp57\n7jnNnz+/2X3D4bAuuugiHX/88TrhhBP08ssv695779X777+vjRs36oc//KEqKir029/+VjfddJOe\nffZZSdKGDRt03nnnqaGhQRdeeKHy8/P197//XTfffLPWr1+v66+/vsVsZWVlmjRpUux5U1NT9fzz\nzzcrD7saP368srKyNGvWLI0fP17jx49XYWGh/v3vf+/xz9J1XRUVFenQQw/VDTfcoE8//VTz5s1T\nfX29HnjgAUlSKBTSBRdcoC+++ELnnXee9t9/f73zzjv63//9X9XV1enkk0/WTTfd1CRHbm6uNm7c\n2Oz5rrvuOr3xxhs64YQTVFRUpHXr1umFF17Q+++/r5deeknZ2dmx+/7v//6vevfurSuvvFLbtm3T\nb3/7W/34xz/WwoUL5Th8bCO58Q4A4kR5ebnee+89XX/99Zo6daok6dxzz5UxRhs2bGj1cQ899JCq\nq6v16quvqrCwUJJ0xhln6Ac/+EGz+4bDYZ1++um64YYbJEmHHXaYTjnlFH300UdasGBBbKfajRs3\n6rXXXlMoFFIgENBvfvMbVVZWat68efrud78rSbrgggt05ZVX6ne/+53OOussDR06tNnzPfXUU9q6\ndatefvnl2OPOOussnXrqqaqtrW11nfbff39lZmZq1qxZGj58eLv2J4lEIjr55JN14403SpImTZqk\nzZs3a8GCBaqrq1NaWprmzZunlStX6t5779Vpp50mqXHn5wsvvFBPPPGELrzwQh1//PHfmmPRokV6\n4403VFRUpF/+8pex6YcccoiuvfZaPfbYY03KXV5enp5//nnZti1JCgQCuu+++/TBBx/oqKOOavO6\nAomEoSIgTmRlZSk9PV3PP/+83njjjdgv9lmzZumZZ55p8THGGL355psaM2ZMrLRIUp8+fXT66ae3\n+Jjjjz8+dn3fffeVJI0ePbrJkUADBgyQMUZlZWWKRqN6++23dfTRR8fKhyT5fD5dfvnlMsborbfe\navG5Fi1apAMPPLDJ4/Ly8nTKKafs/ofRQU466aQmt7/zne8oEomosrJSkvT2228rNzdXp556auw+\nlmXpnnvu0XPPPSfLsvboeXas/2WXXdbs+QcPHqw333yzyfQTTjghVlp25JIad0gGkh3FBYgTgUBA\nt99+u8rLy/XTn/5Uhx9+uKZOnao5c+Y02cdlZ5WVlaqsrIwVkJ0NGTKkxcf06tUrdn3HsEReXl6T\n++z4peq6rioqKlRbW6vBgwc3W9aOstTS0MmO6QUFBXucraPtelh2IBCQ1Lg/ivRNvl0LSv/+/TVo\n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\njNExxxyjfffdV5I0cuRITZs2rcl95s6dqxdffFGO4+iKK67Q97//fQ+Stk91dbWmT5+uYDCocDis\nG2+8UaNGjWpyn3h9DV3X1a233qpVq1YpEAhoxowZGjRoUGz+W2+9pYcffliO42jChAk677zzPEzb\nPuFwWL/4xS+0ceNGhUIhXXHFFTruuONi85955hm99NJLsc+T2267TUOGDPEqbrudddZZyszMlCQN\nGDBAs2bNis1LhNfxlVde0Z/+9CdJUkNDgz7//HMtXrxY2dnZkuL/dfz4449177336tlnn1VxcbFu\nvPFGWZaloUOH6le/+pV8vm+2f3zb+7bDGMTccccd5sQTTzTXXnttbNrpp59uiouLjeu65kc/+pH5\n7LPPmjzmd7/7nXnwwQeNMca89tpr5o477ujSzB3h0ksvNe+++26z6ZMmTTLl5eUeJOoY69evN5dd\ndlmr87ds2WJOPfVU09DQYKqqqmLX48UDDzxgnn76aWOMMWvWrDFnnnlms/vE62v4xhtvmBtuuMEY\nY8xHH31kLr/88ti8UChkjj/+eFNZWWkaGhrM2WefbUpLS72K2m7z5s0zM2bMMMYYU1FRYcaOHdtk\n/rRp08ynn37qQbKOU19fb84444wW5yXK67izW2+91bz44otNpsXz6/jEE0+YU0891Zx77rnGGGMu\nu+wy8/777xtjjLn55pvN3//+9yb33937tiMxVLST0aNH69Zbb43dDgaDCoVCKigokGVZOvroo/Xe\ne+81ecyyZcs0ZswYSdIxxxyjf/3rX10Zea/9/e9/V3Z2to4++ugm013XVXFxsW655RZNmjRJ8+bN\n8yhh+3322WfavHmzpkyZoh//+Mdau3Ztk/mffPKJRo0apUAgoKysLBUUFGjlypUepW27H/7wh5o0\naZIkKRqNKiUlpcn8eH4Nd35fjRw5UitWrIjNW7NmjQoKCtSjRw8FAgEdcsghWrJkiVdR2+0HP/iB\nrrnmGkmNWwdt224y/7PPPtMTTzyhyZMn6/HHH/ci4l5buXKl6urqdMkll6ioqEjLly+PzUuU13GH\nTz/9VKtXr9bEiRObTI/n17GgoECzZ8+O3f7ss8/0ve99T1Lj77vd/T7c9X3bkZJyqOill17S73//\n+ybTZs6cqZNPPlkffPBBbFowGIxt4pSkjIwMbdiwocnjgsFgbNN7RkaGqqurOzF5+7S2vgcddJAe\nf/xx/eY3v2n2mNraWl144YW6+OKLFY1GVVRUpBEjRmj//ffvqtht0tI63nLLLbr00kt10kknaenS\npZo+fbpefvnl2PydXzup8fULBoNdlrktdvcalpaWavr06frFL37RZH68vYY72/W9Z9u2IpGIHMeJ\nq9dtd3YM3wWDQf30pz/Vtdde22T+KaecovPPP1+ZmZm66qqrtHDhwrgaypSk1NRUTZ06Veeee67W\nr1+vH//4x3r99dcT6nXc4fHHH9dPfvKTZtPj+XU88cQTVVJSErttjJFlWZJa/n23u/dtR0rK4nLu\nuefq3HPP/db7ZWZmqqamJna7pqYmNm7Z0n1amt8dtLa+q1evVnZ2dotjkGlpaSoqKlJaWpok6Ygj\njtDKlSu77S+9ltaxrq4u9lfsoYceqi1btjR547X0+nbX/T9aew1XrVqln/3sZ7r++utjfwntEG+v\n4c52fW1c1419+MXT6/ZtvvrqK/3kJz/R+eefr9NOOy023Rijiy66KLZeY8eO1X/+85+4+YW3w+DB\ngzVo0CBZlqXBgwerZ8+eKi0tVd++fRPqdayqqtK6det0xBFHNJmeKK/jDjvvz/Jtvw+lpu/bDs3R\n4UtMIJmZmfL7/fryyy9ljNE///lPHXrooU3uM3r0aL3zzjuSpEWLFumQQw7xImq7vPfeezrmmGNa\nnLd+/XpNnjxZ0WhU4XBYH374ob773e92ccK989BDD8W2UqxcuVJ9+/aNlRZJOuigg7Rs2TI1NDSo\nurpaa9as0bBhw7yK22arV6/WNddco/vuu09jx45tNj+eX8PRo0dr0aJFkhp3kN/5dSksLFRxcbEq\nKysVCoW0dOnSZjslx4OysjJdcsklmj59us4555wm84LBoE499VTV1NTIGKMPPvhAI0aM8Chp+82b\nN0933XWXJGnz5s0KBoPKz8+XlDivoyQtWbJERx55ZLPpifI67nDAAQfERiUWLVrU4u/D1t63HSkp\nt7i0xW233aaf//znikajOvroo3XwwQdLki655BI99thjmjx5sm644QZNnjxZfr8/djRSPFi3bp2O\nOuqoJtOefvppFRQU6LjjjtMZZ5yh8847T36/X2eccYaGDh3qUdL2ufTSSzV9+nS98847sm07djTD\nzus4ZcoUnX/++TLG6Lrrrmu2n0h3dt999ykUCunOO++U1Fi0H3300YR4DcePH6/Fixdr0qRJMsZo\n5syZmj9/vmprazVx4kTdeOONmjp1qowxmjBhgvr06eN15DZ77LHHVFVVpUceeUSPPPKIpMYta3V1\ndZo4caKuu+46FRUVKRAI6Mgjj2yxnHZ355xzjm666SZNnjxZlmVp5syZ+tvf/pZQr6PU+Fk6YMCA\n2O2d/68mwuu4ww033KCbb75Zv/nNbzRkyBCdeOKJkqTrr79e1157bYvv287At0MDAIC4wVARAACI\nGxQXAAAQNyguAAAgblBcAABA3KC4AACAuEFxAQAAcYPiAgAA4gbFBQAAxA2KCwAAiBuc8h9At/bB\nBx+oqKio1fmzZs3S2Wef3YWJAHiJU/4D6NbKysq0ePHiJtMikYjuueceRaNRvfLKKyooKPAoHYCu\nxhYXAN1ar169dMYZZzSZdtttt2nbtm165JFHKC1AkmEfFwBx5aWXXtLzzz+vK664QuPGjfM6DoAu\nxlARgLjx4YcfqqioSEcccYSeeOIJ+Xz87QUkG4oLgLiwefNmTZgwQYFAQK+88op69uzpdSQAHmAf\nFwDdXkNDg6688kpVVVXpxRdfpLQASYziAqDbu/nmm7VixQrdfffdOuCAA7yOA8BDFBcA3dpzzz2n\nv/zlLzrssMOUlpamV199VTuPcBcUFGjUqFEeJgTQlSguALq1Tz/9VJK0ZMkSLVmypNn8s846i+IC\nJBF2zgUAAHGDYwkBAEDcoLgAAIC4QXEBAABxg+ICAADiBsUFAADEDYoLAACIGxQXAAAQNyguAAAg\nblBcAABA3KC4AACAuPH/AcjaArQEMTkZAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(8, 6))\n",
"ax.plot(np.arange(-10, 10, step=0.01),\n",
" sigmoid(np.arange(-10, 10, step=0.01)))\n",
"ax.set_ylim((-0.1,1.1))\n",
"ax.set_xlabel('z', fontsize=18)\n",
"ax.set_ylabel('g(z)', fontsize=18)\n",
"ax.set_title('sigmoid function', fontsize=18)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# cost function(代价函数)\n",
"> * $max(\\ell(\\theta)) = min(-\\ell(\\theta))$ \n",
"> * choose $-\\ell(\\theta)$ as the cost function\n",
"\n",
"$$\\begin{align}\n",
" & J\\left( \\theta \\right)=-\\frac{1}{m}\\sum\\limits_{i=1}^{m}{[{{y}^{(i)}}\\log \\left( {{h}_{\\theta }}\\left( {{x}^{(i)}} \\right) \\right)+\\left( 1-{{y}^{(i)}} \\right)\\log \\left( 1-{{h}_{\\theta }}\\left( {{x}^{(i)}} \\right) \\right)]} \\\\ \n",
" & =\\frac{1}{m}\\sum\\limits_{i=1}^{m}{[-{{y}^{(i)}}\\log \\left( {{h}_{\\theta }}\\left( {{x}^{(i)}} \\right) \\right)-\\left( 1-{{y}^{(i)}} \\right)\\log \\left( 1-{{h}_{\\theta }}\\left( {{x}^{(i)}} \\right) \\right)]} \\\\ \n",
"\\end{align}$$\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0., 0., 0.])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theta = theta=np.zeros(3) # X(m*n) so theta is n*1\n",
"theta"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def cost(theta, X, y):\n",
" ''' cost fn is -l(theta) for you to minimize'''\n",
" return np.mean(-y * np.log(sigmoid(X @ theta)) - (1 - y) * np.log(1 - sigmoid(X @ theta)))\n",
"\n",
"# X @ theta与X.dot(theta)等价"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.69314718055994529"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cost(theta, X, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# gradient descent(梯度下降)\n",
"* 这是批量梯度下降(batch gradient descent) \n",
"* 转化为向量化计算: $\\frac{1}{m} X^T( Sigmoid(X\\theta) - y )$\n",
"$$\\frac{\\partial J\\left( \\theta \\right)}{\\partial {{\\theta }_{j}}}=\\frac{1}{m}\\sum\\limits_{i=1}^{m}{({{h}_{\\theta }}\\left( {{x}^{(i)}} \\right)-{{y}^{(i)}})x_{_{j}}^{(i)}}$$"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def gradient(theta, X, y):\n",
"# '''just 1 batch gradient'''\n",
" return (1 / len(X)) * X.T @ (sigmoid(X @ theta) - y)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ -0.1 , -12.00921659, -11.26284221])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gradient(theta, X, y)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# 拟合参数\n",
"> * 这里我使用 [`scipy.optimize.minimize`](http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html#scipy.optimize.minimize) 去寻找参数 \n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import scipy.optimize as opt"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"res = opt.minimize(fun=cost, x0=theta, args=(X, y), method='Newton-CG', jac=gradient)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" fun: 0.20349770172083584\n",
" jac: array([ 1.98942032e-06, 1.34698328e-04, 1.47259166e-04])\n",
" message: 'Optimization terminated successfully.'\n",
" nfev: 73\n",
" nhev: 0\n",
" nit: 30\n",
" njev: 270\n",
" status: 0\n",
" success: True\n",
" x: array([-25.16227358, 0.20623923, 0.20147921])\n"
]
}
],
"source": [
"print(res)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 用训练集预测和验证"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def predict(x, theta):\n",
" prob = sigmoid(x @ theta)\n",
" return (prob >= 0.5).astype(int)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.87 0.85 0.86 40\n",
" 1 0.90 0.92 0.91 60\n",
"\n",
"avg / total 0.89 0.89 0.89 100\n",
"\n"
]
}
],
"source": [
"final_theta = res.x\n",
"y_pred = predict(X, final_theta)\n",
"\n",
"print(classification_report(y, y_pred))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 寻找决策边界\n",
"http://stats.stackexchange.com/questions/93569/why-is-logistic-regression-a-linear-classifier\n",
"> $X \\times \\theta = 0$ (this is the line)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-25.16227358 0.20623923 0.20147921]\n"
]
}
],
"source": [
"print(res.x) # this is final theta"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 124.88769463 -1.0236254 -1. ]\n"
]
}
],
"source": [
"coef = -(res.x / res.x[2]) # find the equation\n",
"print(coef)\n",
"\n",
"x = np.arange(130, step=0.1)\n",
"y = coef[0] + coef[1]*x"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" exam1 | \n",
" exam2 | \n",
" admitted | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 100.000000 | \n",
" 100.000000 | \n",
" 100.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 65.644274 | \n",
" 66.221998 | \n",
" 0.600000 | \n",
"
\n",
" \n",
" std | \n",
" 19.458222 | \n",
" 18.582783 | \n",
" 0.492366 | \n",
"
\n",
" \n",
" min | \n",
" 30.058822 | \n",
" 30.603263 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 50.919511 | \n",
" 48.179205 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 67.032988 | \n",
" 67.682381 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 80.212529 | \n",
" 79.360605 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 99.827858 | \n",
" 98.869436 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" exam1 exam2 admitted\n",
"count 100.000000 100.000000 100.000000\n",
"mean 65.644274 66.221998 0.600000\n",
"std 19.458222 18.582783 0.492366\n",
"min 30.058822 30.603263 0.000000\n",
"25% 50.919511 48.179205 0.000000\n",
"50% 67.032988 67.682381 1.000000\n",
"75% 80.212529 79.360605 1.000000\n",
"max 99.827858 98.869436 1.000000"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe() # find the range of x and y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> you know the intercept would be around 125 for both x and y"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nzh1lAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set(context=\"notebook\", style=\"ticks\", font_scale=1.5)\n",
"\n",
"sns.lmplot('exam1', 'exam2', hue='admitted', data=data, \n",
" size=6, \n",
" fit_reg=False, \n",
" scatter_kws={\"s\": 25}\n",
" )\n",
"\n",
"plt.plot(x, y, 'grey')\n",
"plt.xlim(0, 130)\n",
"plt.ylim(0, 130)\n",
"plt.title('Decision Boundary')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# 3- 正则化逻辑回归"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" test1 | \n",
" test2 | \n",
" accepted | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.051267 | \n",
" 0.69956 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" -0.092742 | \n",
" 0.68494 | \n",
" 1 | \n",
"
\n",
" \n",
" 2 | \n",
" -0.213710 | \n",
" 0.69225 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" -0.375000 | \n",
" 0.50219 | \n",
" 1 | \n",
"
\n",
" \n",
" 4 | \n",
" -0.513250 | \n",
" 0.46564 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" test1 test2 accepted\n",
"0 0.051267 0.69956 1\n",
"1 -0.092742 0.68494 1\n",
"2 -0.213710 0.69225 1\n",
"3 -0.375000 0.50219 1\n",
"4 -0.513250 0.46564 1"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv('ex2data2.txt', names=['test1', 'test2', 'accepted'])\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nH+5xT+gQTWpoAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set(context=\"notebook\", style=\"ticks\", font_scale=1.5)\n",
"\n",
"sns.lmplot('test1', 'test2', hue='accepted', data=df, \n",
" size=6, \n",
" fit_reg=False, \n",
" scatter_kws={\"s\": 50}\n",
" )\n",
"\n",
"plt.title('Regularized Logistic Regression')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# feature mapping(特征映射)\n",
"\n",
"polynomial expansion\n",
"\n",
"```\n",
"for i in 0..i\n",
" for p in 0..i:\n",
" output x^(i-p) * y^p\n",
"```\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def feature_mapping(x, y, power, as_ndarray=False):\n",
"# \"\"\"return mapped features as ndarray or dataframe\"\"\"\n",
" # data = {}\n",
" # # inclusive\n",
" # for i in np.arange(power + 1):\n",
" # for p in np.arange(i + 1):\n",
" # data[\"f{}{}\".format(i - p, p)] = np.power(x, i - p) * np.power(y, p)\n",
"\n",
" data = {\"f{}{}\".format(i - p, p): np.power(x, i - p) * np.power(y, p)\n",
" for i in np.arange(power + 1)\n",
" for p in np.arange(i + 1)\n",
" }\n",
"\n",
" if as_ndarray:\n",
" return pd.DataFrame(data).as_matrix()\n",
" else:\n",
" return pd.DataFrame(data)\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"x1 = np.array(df.test1)\n",
"x2 = np.array(df.test2)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(118, 28)\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" f00 | \n",
" f01 | \n",
" f02 | \n",
" f03 | \n",
" f04 | \n",
" f05 | \n",
" f06 | \n",
" f10 | \n",
" f11 | \n",
" f12 | \n",
" ... | \n",
" f30 | \n",
" f31 | \n",
" f32 | \n",
" f33 | \n",
" f40 | \n",
" f41 | \n",
" f42 | \n",
" f50 | \n",
" f51 | \n",
" f60 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1.0 | \n",
" 0.69956 | \n",
" 0.489384 | \n",
" 0.342354 | \n",
" 0.239497 | \n",
" 0.167542 | \n",
" 0.117206 | \n",
" 0.051267 | \n",
" 0.035864 | \n",
" 0.025089 | \n",
" ... | \n",
" 0.000135 | \n",
" 0.000094 | \n",
" 0.000066 | \n",
" 0.000046 | \n",
" 0.000007 | \n",
" 0.000005 | \n",
" 0.000003 | \n",
" 3.541519e-07 | \n",
" 2.477505e-07 | \n",
" 1.815630e-08 | \n",
"
\n",
" \n",
" 1 | \n",
" 1.0 | \n",
" 0.68494 | \n",
" 0.469143 | \n",
" 0.321335 | \n",
" 0.220095 | \n",
" 0.150752 | \n",
" 0.103256 | \n",
" -0.092742 | \n",
" -0.063523 | \n",
" -0.043509 | \n",
" ... | \n",
" -0.000798 | \n",
" -0.000546 | \n",
" -0.000374 | \n",
" -0.000256 | \n",
" 0.000074 | \n",
" 0.000051 | \n",
" 0.000035 | \n",
" -6.860919e-06 | \n",
" -4.699318e-06 | \n",
" 6.362953e-07 | \n",
"
\n",
" \n",
" 2 | \n",
" 1.0 | \n",
" 0.69225 | \n",
" 0.479210 | \n",
" 0.331733 | \n",
" 0.229642 | \n",
" 0.158970 | \n",
" 0.110047 | \n",
" -0.213710 | \n",
" -0.147941 | \n",
" -0.102412 | \n",
" ... | \n",
" -0.009761 | \n",
" -0.006757 | \n",
" -0.004677 | \n",
" -0.003238 | \n",
" 0.002086 | \n",
" 0.001444 | \n",
" 0.001000 | \n",
" -4.457837e-04 | \n",
" -3.085938e-04 | \n",
" 9.526844e-05 | \n",
"
\n",
" \n",
" 3 | \n",
" 1.0 | \n",
" 0.50219 | \n",
" 0.252195 | \n",
" 0.126650 | \n",
" 0.063602 | \n",
" 0.031940 | \n",
" 0.016040 | \n",
" -0.375000 | \n",
" -0.188321 | \n",
" -0.094573 | \n",
" ... | \n",
" -0.052734 | \n",
" -0.026483 | \n",
" -0.013299 | \n",
" -0.006679 | \n",
" 0.019775 | \n",
" 0.009931 | \n",
" 0.004987 | \n",
" -7.415771e-03 | \n",
" -3.724126e-03 | \n",
" 2.780914e-03 | \n",
"
\n",
" \n",
" 4 | \n",
" 1.0 | \n",
" 0.46564 | \n",
" 0.216821 | \n",
" 0.100960 | \n",
" 0.047011 | \n",
" 0.021890 | \n",
" 0.010193 | \n",
" -0.513250 | \n",
" -0.238990 | \n",
" -0.111283 | \n",
" ... | \n",
" -0.135203 | \n",
" -0.062956 | \n",
" -0.029315 | \n",
" -0.013650 | \n",
" 0.069393 | \n",
" 0.032312 | \n",
" 0.015046 | \n",
" -3.561597e-02 | \n",
" -1.658422e-02 | \n",
" 1.827990e-02 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 28 columns
\n",
"
"
],
"text/plain": [
" f00 f01 f02 f03 f04 f05 f06 f10 \\\n",
"0 1.0 0.69956 0.489384 0.342354 0.239497 0.167542 0.117206 0.051267 \n",
"1 1.0 0.68494 0.469143 0.321335 0.220095 0.150752 0.103256 -0.092742 \n",
"2 1.0 0.69225 0.479210 0.331733 0.229642 0.158970 0.110047 -0.213710 \n",
"3 1.0 0.50219 0.252195 0.126650 0.063602 0.031940 0.016040 -0.375000 \n",
"4 1.0 0.46564 0.216821 0.100960 0.047011 0.021890 0.010193 -0.513250 \n",
"\n",
" f11 f12 ... f30 f31 f32 f33 \\\n",
"0 0.035864 0.025089 ... 0.000135 0.000094 0.000066 0.000046 \n",
"1 -0.063523 -0.043509 ... -0.000798 -0.000546 -0.000374 -0.000256 \n",
"2 -0.147941 -0.102412 ... -0.009761 -0.006757 -0.004677 -0.003238 \n",
"3 -0.188321 -0.094573 ... -0.052734 -0.026483 -0.013299 -0.006679 \n",
"4 -0.238990 -0.111283 ... -0.135203 -0.062956 -0.029315 -0.013650 \n",
"\n",
" f40 f41 f42 f50 f51 f60 \n",
"0 0.000007 0.000005 0.000003 3.541519e-07 2.477505e-07 1.815630e-08 \n",
"1 0.000074 0.000051 0.000035 -6.860919e-06 -4.699318e-06 6.362953e-07 \n",
"2 0.002086 0.001444 0.001000 -4.457837e-04 -3.085938e-04 9.526844e-05 \n",
"3 0.019775 0.009931 0.004987 -7.415771e-03 -3.724126e-03 2.780914e-03 \n",
"4 0.069393 0.032312 0.015046 -3.561597e-02 -1.658422e-02 1.827990e-02 \n",
"\n",
"[5 rows x 28 columns]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = feature_mapping(x1, x2, power=6)\n",
"print(data.shape)\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" f00 | \n",
" f01 | \n",
" f02 | \n",
" f03 | \n",
" f04 | \n",
" f05 | \n",
" f06 | \n",
" f10 | \n",
" f11 | \n",
" f12 | \n",
" ... | \n",
" f30 | \n",
" f31 | \n",
" f32 | \n",
" f33 | \n",
" f40 | \n",
" f41 | \n",
" f42 | \n",
" f50 | \n",
" f51 | \n",
" f60 | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 118.0 | \n",
" 118.000000 | \n",
" 118.000000 | \n",
" 118.000000 | \n",
" 1.180000e+02 | \n",
" 118.000000 | \n",
" 1.180000e+02 | \n",
" 118.000000 | \n",
" 118.000000 | \n",
" 118.000000 | \n",
" ... | \n",
" 1.180000e+02 | \n",
" 118.000000 | \n",
" 1.180000e+02 | \n",
" 118.000000 | \n",
" 1.180000e+02 | \n",
" 118.000000 | \n",
" 1.180000e+02 | \n",
" 1.180000e+02 | \n",
" 118.000000 | \n",
" 1.180000e+02 | \n",
"
\n",
" \n",
" mean | \n",
" 1.0 | \n",
" 0.183102 | \n",
" 0.301370 | \n",
" 0.142350 | \n",
" 1.710985e-01 | \n",
" 0.115710 | \n",
" 1.257256e-01 | \n",
" 0.054779 | \n",
" -0.025472 | \n",
" 0.015483 | \n",
" ... | \n",
" 5.983333e-02 | \n",
" -0.005251 | \n",
" 9.432094e-03 | \n",
" -0.001705 | \n",
" 1.225384e-01 | \n",
" 0.011812 | \n",
" 1.893340e-02 | \n",
" 5.196507e-02 | \n",
" -0.000703 | \n",
" 7.837118e-02 | \n",
"
\n",
" \n",
" std | \n",
" 0.0 | \n",
" 0.519743 | \n",
" 0.284536 | \n",
" 0.326134 | \n",
" 2.815658e-01 | \n",
" 0.299092 | \n",
" 2.964416e-01 | \n",
" 0.496654 | \n",
" 0.224075 | \n",
" 0.150143 | \n",
" ... | \n",
" 2.746459e-01 | \n",
" 0.096738 | \n",
" 5.455787e-02 | \n",
" 0.037443 | \n",
" 2.092709e-01 | \n",
" 0.072274 | \n",
" 3.430092e-02 | \n",
" 2.148098e-01 | \n",
" 0.058271 | \n",
" 1.938621e-01 | \n",
"
\n",
" \n",
" min | \n",
" 1.0 | \n",
" -0.769740 | \n",
" 0.000026 | \n",
" -0.456071 | \n",
" 6.855856e-10 | \n",
" -0.270222 | \n",
" 1.795116e-14 | \n",
" -0.830070 | \n",
" -0.484096 | \n",
" -0.483743 | \n",
" ... | \n",
" -5.719317e-01 | \n",
" -0.296854 | \n",
" -1.592528e-01 | \n",
" -0.113448 | \n",
" 1.612020e-09 | \n",
" -0.246068 | \n",
" 2.577297e-10 | \n",
" -3.940702e-01 | \n",
" -0.203971 | \n",
" 6.472253e-14 | \n",
"
\n",
" \n",
" 25% | \n",
" 1.0 | \n",
" -0.254385 | \n",
" 0.061086 | \n",
" -0.016492 | \n",
" 3.741593e-03 | \n",
" -0.001072 | \n",
" 2.298277e-04 | \n",
" -0.372120 | \n",
" -0.178209 | \n",
" -0.042980 | \n",
" ... | \n",
" -5.155632e-02 | \n",
" -0.029360 | \n",
" -3.659760e-03 | \n",
" -0.005749 | \n",
" 1.869975e-03 | \n",
" -0.001926 | \n",
" 1.258285e-04 | \n",
" -7.147973e-03 | \n",
" -0.006381 | \n",
" 8.086369e-05 | \n",
"
\n",
" \n",
" 50% | \n",
" 1.0 | \n",
" 0.213455 | \n",
" 0.252195 | \n",
" 0.009734 | \n",
" 6.360222e-02 | \n",
" 0.000444 | \n",
" 1.604015e-02 | \n",
" -0.006336 | \n",
" -0.016521 | \n",
" -0.000039 | \n",
" ... | \n",
" -2.544062e-07 | \n",
" -0.000512 | \n",
" -1.473547e-07 | \n",
" -0.000005 | \n",
" 2.736163e-02 | \n",
" 0.000205 | \n",
" 3.387050e-03 | \n",
" -1.021440e-11 | \n",
" -0.000004 | \n",
" 4.527344e-03 | \n",
"
\n",
" \n",
" 75% | \n",
" 1.0 | \n",
" 0.646562 | \n",
" 0.464189 | \n",
" 0.270310 | \n",
" 2.155453e-01 | \n",
" 0.113020 | \n",
" 1.001215e-01 | \n",
" 0.478970 | \n",
" 0.100795 | \n",
" 0.079510 | \n",
" ... | \n",
" 1.099616e-01 | \n",
" 0.015050 | \n",
" 1.370560e-02 | \n",
" 0.001024 | \n",
" 1.520801e-01 | \n",
" 0.019183 | \n",
" 2.090875e-02 | \n",
" 2.526861e-02 | \n",
" 0.002104 | \n",
" 5.932959e-02 | \n",
"
\n",
" \n",
" max | \n",
" 1.0 | \n",
" 1.108900 | \n",
" 1.229659 | \n",
" 1.363569 | \n",
" 1.512062e+00 | \n",
" 1.676725 | \n",
" 1.859321e+00 | \n",
" 1.070900 | \n",
" 0.568307 | \n",
" 0.505577 | \n",
" ... | \n",
" 1.228137e+00 | \n",
" 0.369805 | \n",
" 2.451845e-01 | \n",
" 0.183548 | \n",
" 1.315212e+00 | \n",
" 0.304409 | \n",
" 2.018260e-01 | \n",
" 1.408460e+00 | \n",
" 0.250577 | \n",
" 1.508320e+00 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 28 columns
\n",
"
"
],
"text/plain": [
" f00 f01 f02 f03 f04 f05 \\\n",
"count 118.0 118.000000 118.000000 118.000000 1.180000e+02 118.000000 \n",
"mean 1.0 0.183102 0.301370 0.142350 1.710985e-01 0.115710 \n",
"std 0.0 0.519743 0.284536 0.326134 2.815658e-01 0.299092 \n",
"min 1.0 -0.769740 0.000026 -0.456071 6.855856e-10 -0.270222 \n",
"25% 1.0 -0.254385 0.061086 -0.016492 3.741593e-03 -0.001072 \n",
"50% 1.0 0.213455 0.252195 0.009734 6.360222e-02 0.000444 \n",
"75% 1.0 0.646562 0.464189 0.270310 2.155453e-01 0.113020 \n",
"max 1.0 1.108900 1.229659 1.363569 1.512062e+00 1.676725 \n",
"\n",
" f06 f10 f11 f12 ... \\\n",
"count 1.180000e+02 118.000000 118.000000 118.000000 ... \n",
"mean 1.257256e-01 0.054779 -0.025472 0.015483 ... \n",
"std 2.964416e-01 0.496654 0.224075 0.150143 ... \n",
"min 1.795116e-14 -0.830070 -0.484096 -0.483743 ... \n",
"25% 2.298277e-04 -0.372120 -0.178209 -0.042980 ... \n",
"50% 1.604015e-02 -0.006336 -0.016521 -0.000039 ... \n",
"75% 1.001215e-01 0.478970 0.100795 0.079510 ... \n",
"max 1.859321e+00 1.070900 0.568307 0.505577 ... \n",
"\n",
" f30 f31 f32 f33 f40 \\\n",
"count 1.180000e+02 118.000000 1.180000e+02 118.000000 1.180000e+02 \n",
"mean 5.983333e-02 -0.005251 9.432094e-03 -0.001705 1.225384e-01 \n",
"std 2.746459e-01 0.096738 5.455787e-02 0.037443 2.092709e-01 \n",
"min -5.719317e-01 -0.296854 -1.592528e-01 -0.113448 1.612020e-09 \n",
"25% -5.155632e-02 -0.029360 -3.659760e-03 -0.005749 1.869975e-03 \n",
"50% -2.544062e-07 -0.000512 -1.473547e-07 -0.000005 2.736163e-02 \n",
"75% 1.099616e-01 0.015050 1.370560e-02 0.001024 1.520801e-01 \n",
"max 1.228137e+00 0.369805 2.451845e-01 0.183548 1.315212e+00 \n",
"\n",
" f41 f42 f50 f51 f60 \n",
"count 118.000000 1.180000e+02 1.180000e+02 118.000000 1.180000e+02 \n",
"mean 0.011812 1.893340e-02 5.196507e-02 -0.000703 7.837118e-02 \n",
"std 0.072274 3.430092e-02 2.148098e-01 0.058271 1.938621e-01 \n",
"min -0.246068 2.577297e-10 -3.940702e-01 -0.203971 6.472253e-14 \n",
"25% -0.001926 1.258285e-04 -7.147973e-03 -0.006381 8.086369e-05 \n",
"50% 0.000205 3.387050e-03 -1.021440e-11 -0.000004 4.527344e-03 \n",
"75% 0.019183 2.090875e-02 2.526861e-02 0.002104 5.932959e-02 \n",
"max 0.304409 2.018260e-01 1.408460e+00 0.250577 1.508320e+00 \n",
"\n",
"[8 rows x 28 columns]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# regularized cost(正则化代价函数)\n",
"$$J\\left( \\theta \\right)=\\frac{1}{m}\\sum\\limits_{i=1}^{m}{[-{{y}^{(i)}}\\log \\left( {{h}_{\\theta }}\\left( {{x}^{(i)}} \\right) \\right)-\\left( 1-{{y}^{(i)}} \\right)\\log \\left( 1-{{h}_{\\theta }}\\left( {{x}^{(i)}} \\right) \\right)]}+\\frac{\\lambda }{2m}\\sum\\limits_{j=1}^{n}{\\theta _{j}^{2}}$$"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(118, 28)\n",
"(118,)\n"
]
}
],
"source": [
"theta = np.zeros(data.shape[1])\n",
"X = feature_mapping(x1, x2, power=6, as_ndarray=True)\n",
"print(X.shape)\n",
"\n",
"y = get_y(df)\n",
"print(y.shape)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def regularized_cost(theta, X, y, l=1):\n",
"# '''you don't penalize theta_0'''\n",
" theta_j1_to_n = theta[1:]\n",
" regularized_term = (l / (2 * len(X))) * np.power(theta_j1_to_n, 2).sum()\n",
"\n",
" return cost(theta, X, y) + regularized_term\n",
"#正则化代价函数"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.6931471805599454"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"regularized_cost(theta, X, y, l=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"this is the same as the not regularized cost because we init theta as zeros...\n",
"因为我们设置theta为0,所以这个正则化代价函数与代价函数的值相同"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# regularized gradient(正则化梯度)\n",
"$$\\frac{\\partial J\\left( \\theta \\right)}{\\partial {{\\theta }_{j}}}=\\left( \\frac{1}{m}\\sum\\limits_{i=1}^{m}{\\left( {{h}_{\\theta }}\\left( {{x}^{\\left( i \\right)}} \\right)-{{y}^{\\left( i \\right)}} \\right)} \\right)+\\frac{\\lambda }{m}{{\\theta }_{j}}\\text{ }\\text{ for j}\\ge \\text{1}$$"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def regularized_gradient(theta, X, y, l=1):\n",
"# '''still, leave theta_0 alone'''\n",
" theta_j1_to_n = theta[1:]\n",
" regularized_theta = (l / len(X)) * theta_j1_to_n\n",
"\n",
" # by doing this, no offset is on theta_0\n",
" regularized_term = np.concatenate([np.array([0]), regularized_theta])\n",
"\n",
" return gradient(theta, X, y) + regularized_term"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 8.47457627e-03, 7.77711864e-05, 3.76648474e-02,\n",
" 2.34764889e-02, 3.93028171e-02, 3.10079849e-02,\n",
" 3.87936363e-02, 1.87880932e-02, 1.15013308e-02,\n",
" 8.19244468e-03, 3.09593720e-03, 4.47629067e-03,\n",
" 1.37646175e-03, 5.03446395e-02, 7.32393391e-03,\n",
" 1.28600503e-02, 5.83822078e-03, 7.26504316e-03,\n",
" 1.83559872e-02, 2.23923907e-03, 3.38643902e-03,\n",
" 4.08503006e-04, 3.93486234e-02, 4.32983232e-03,\n",
" 6.31570797e-03, 1.99707467e-02, 1.09740238e-03,\n",
" 3.10312442e-02])"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"regularized_gradient(theta, X, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 拟合参数"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import scipy.optimize as opt"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"init cost = 0.6931471805599454\n"
]
},
{
"data": {
"text/plain": [
" fun: 0.5290027297127737\n",
" jac: array([ 1.05541650e-07, 6.13738958e-08, -7.04772465e-08,\n",
" -1.36777274e-08, -2.84652117e-08, -3.41659162e-08,\n",
" -5.15630062e-08, -1.74645557e-08, 7.50726574e-09,\n",
" 1.18564041e-08, 1.78853446e-08, 1.12436692e-08,\n",
" 8.73092759e-09, 5.56139873e-08, 4.12686771e-09,\n",
" -2.49410770e-08, -6.34978298e-09, -1.34271390e-08,\n",
" -2.13487848e-09, 4.54710087e-10, -4.37439525e-09,\n",
" -1.26745782e-09, -3.40985521e-09, 7.34158338e-09,\n",
" -7.74561697e-09, -9.84723852e-11, 9.65250750e-10,\n",
" -1.18501368e-08])\n",
" message: 'Optimization terminated successfully.'\n",
" nfev: 7\n",
" nhev: 0\n",
" nit: 6\n",
" njev: 66\n",
" status: 0\n",
" success: True\n",
" x: array([ 1.27273981, 1.18108974, -1.43166669, -0.17513036, -1.19281478,\n",
" -0.45635758, -0.9246528 , 0.62527237, -0.9174247 , -0.35723884,\n",
" -0.27470605, -0.29537769, -0.14388711, -2.0199599 , -0.36553508,\n",
" -0.61555685, -0.27778507, -0.32738029, 0.12400668, -0.05098942,\n",
" -0.04473108, 0.01556645, -1.45815829, -0.20600596, -0.29243192,\n",
" -0.24218804, 0.02777165, -1.04320421])"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('init cost = {}'.format(regularized_cost(theta, X, y)))\n",
"\n",
"res = opt.minimize(fun=regularized_cost, x0=theta, args=(X, y), method='Newton-CG', jac=regularized_gradient)\n",
"res"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 预测"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.90 0.75 0.82 60\n",
" 1 0.78 0.91 0.84 58\n",
"\n",
"avg / total 0.84 0.83 0.83 118\n",
"\n"
]
}
],
"source": [
"final_theta = res.x\n",
"y_pred = predict(X, final_theta)\n",
"\n",
"print(classification_report(y, y_pred))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 使用不同的 $\\lambda$ (这个是常数)\n",
"# 画出决策边界\n",
"* 我们找到所有满足 $X\\times \\theta = 0$ 的x\n",
"* instead of solving polynomial equation, just create a coridate x,y grid that is dense enough, and find all those $X\\times \\theta$ that is close enough to 0, then plot them"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def draw_boundary(power, l):\n",
"# \"\"\"\n",
"# power: polynomial power for mapped feature\n",
"# l: lambda constant\n",
"# \"\"\"\n",
" density = 1000\n",
" threshhold = 2 * 10**-3\n",
"\n",
" final_theta = feature_mapped_logistic_regression(power, l)\n",
" x, y = find_decision_boundary(density, power, final_theta, threshhold)\n",
"\n",
" df = pd.read_csv('ex2data2.txt', names=['test1', 'test2', 'accepted'])\n",
" sns.lmplot('test1', 'test2', hue='accepted', data=df, size=6, fit_reg=False, scatter_kws={\"s\": 100})\n",
"\n",
" plt.scatter(x, y, c='R', s=10)\n",
" plt.title('Decision boundary')\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def feature_mapped_logistic_regression(power, l):\n",
"# \"\"\"for drawing purpose only.. not a well generealize logistic regression\n",
"# power: int\n",
"# raise x1, x2 to polynomial power\n",
"# l: int\n",
"# lambda constant for regularization term\n",
"# \"\"\"\n",
" df = pd.read_csv('ex2data2.txt', names=['test1', 'test2', 'accepted'])\n",
" x1 = np.array(df.test1)\n",
" x2 = np.array(df.test2)\n",
" y = get_y(df)\n",
"\n",
" X = feature_mapping(x1, x2, power, as_ndarray=True)\n",
" theta = np.zeros(X.shape[1])\n",
"\n",
" res = opt.minimize(fun=regularized_cost,\n",
" x0=theta,\n",
" args=(X, y, l),\n",
" method='TNC',\n",
" jac=regularized_gradient)\n",
" final_theta = res.x\n",
"\n",
" return final_theta"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def find_decision_boundary(density, power, theta, threshhold):\n",
" t1 = np.linspace(-1, 1.5, density)\n",
" t2 = np.linspace(-1, 1.5, density)\n",
"\n",
" cordinates = [(x, y) for x in t1 for y in t2]\n",
" x_cord, y_cord = zip(*cordinates)\n",
" mapped_cord = feature_mapping(x_cord, y_cord, power) # this is a dataframe\n",
"\n",
" inner_product = mapped_cord.as_matrix() @ theta\n",
"\n",
" decision = mapped_cord[np.abs(inner_product) < threshhold]\n",
"\n",
" return decision.f10, decision.f01\n",
"#寻找决策边界函数"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"draw_boundary(power=6, l=1)#lambda=1"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAdkAAAGlCAYAAAC2p4y4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVPX+P/AXAwwDQ4gLuIAYmEIJgiKQoBcVxcS18ppZ\nUnldvtUlrcQ1TbtkuV5vWl61TM3lWrn9XCpRUm6aG3jNDUJBEFJBcWOaYZiB3x/jGZh9OzNzzvB+\nPh4+lJkzM2cA530+y/v9dmtoaGgAIYQQQlgncPYJEEIIIa6KgiwhhBBiJxRkCSGEEDuhIEsIIYTY\nCQVZQgghxE4oyBJCCCF2QkGWcM6sWbMQHh6u8ScyMhLJycnIzMxEUVGRXV9//PjxGDBggEWPWbVq\nFcLDw1FeXm6ns+LGa7KBr+dNiDU8nH0ChBgye/ZstGzZEgAglUpRVlaGnTt34qeffsL69euRkJBg\nl9f9v//7P0ilUoseM2jQIISEhKBVq1Z2OSdCCD9RkCWcNXDgQAQHB2vcNn78eLz44ouYNm0aDh8+\nDLFYzPrrJiUlWfyYiIgIREREsH4uhBB+o+liwivt27fHzJkzUV1djZ07dzr7dAghxCgKsoR3nnvu\nOQiFQvz3v//VuP3cuXN444030KNHD/To0QMTJkzAb7/9pvP48+fPY9KkSejVqxcSEhIwefJkFBYW\nqu/XXpOVy+X4+OOPkZKSol4bXrhwIR48eKA+Rt86471797BgwQL07dsXkZGRGDx4MNatWwelUqnx\nuKioKFy/fh1TpkxBjx49EBcXh5kzZ+LevXtmfT+Ki4uRnp6O7t27o1+/fvjXv/6Furo6jWPMPRd9\na6Xat1tyzmVlZcjIyEBcXBwSEhKwePFinXMDgEuXLiEjIwOJiYno1q0bevfujffffx+3bt3S+V5l\nZ2cjKSkJPXr0wH/+8x+Eh4djyZIlOs+5bNkyREZGavycCHE0mi4mvOPl5YWQkBAUFBSobzt+/Dim\nTJmCiIgITJ06FXK5HLt27cIrr7yCr7/+Gr169QIAnD17Fq+//joCAwMxceJEiEQibN68Genp6di5\nc6fO9DQAfPTRR9i/fz/S09PRsWNHFBUVYevWrSgtLcWGDRv0nuODBw8wduxYVFRUYOzYsQgNDcXx\n48exfPlyXL58GStXrlQfW19fj/T0dPTq1QszZ87EhQsX8P3330Mmk+Ff//qXye/H1KlTkZCQgJkz\nZ+L06dP44osvcPPmTXz66acWn4u5zDnnO3fuYOzYsairq8Nrr70GkUiEbdu26QTiwsJCjBs3Dp06\ndcLkyZPh7e2N/Px87N27F6Wlpfj+++/VxyoUCsyfPx9vvPEG5HI54uPj0a1bN/z444+YMWOGxvMe\nPHgQffv2RYsWLSx+f4SwhYIs4SU/Pz+UlZUBUH3gf/jhh4iKisKWLVvg7u4OAHj11VcxatQoZGVl\nYc+ePQCAxYsXw9/fHzt37lRvqkpOTkZaWhq2bdum80ENAPv27cOLL76I9957T32bj48P/vvf/0Ii\nkehdF16/fj2uX7+Ozz//HAMHDgQAvPLKK1i4cCG2bduG559/HsnJyQBUgSMtLQ2zZs0CAIwdOxa3\nb9/G4cOHIZVK4e3tbfR7kZycrA6Ur7zyCmbPno1du3bhjTfeQHh4uEXnYi5zzvmrr75ST+t369YN\nAPD8889j2LBh+PPPP9XPtW3bNri5uWHz5s3w9/cHALz00kuoq6vDgQMHcP/+ffXt9fX1eOONNzB5\n8mT144cPH45PP/0Uv/32G7p37w5ANatRUVGB6dOnW/S+CGEbTRcTXlIoFHBzcwMAXL58GTdu3MDA\ngQPx4MEDVFdXo7q6GjKZDP3798eVK1dw+/Zt3L17F7/99huGDx+uDrAAEBoaip07d2LSpEl6X6td\nu3Y4ePAgdu3ahYcPHwIApk2bhp07dxrceJWTk4POnTurgxrjrbfeAgAcOXJE4/YhQ4ZofP30009D\noVDg/v37Jr8Xf/vb3zS+Hj9+PADg2LFjVp2LuUydc25uLqKiotQBFgBat26NoUOHajxuwYIFyMnJ\nUQdSAKipqYGXlxcAaARkAIiLi9P4Oi0tDQKBAD/88IP6tgMHDsDHxwf9+/e36r0RwhYayRJeun//\nvjpdhhnRLlmyRO/aHAD88ccf6hFup06ddO5/5plnDL7WggULMG3aNMyePRvz5s1DTEwMBg0ahBdf\nfBFPPPGE3seUl5ejb9++OrcHBATAz88PFRUVGrdrp/4IhUIA0FgzNSQsLEzj65CQEPU5WHMu5jJ1\nzhUVFUhJSTF5vm5ubrh37x7Wrl2LwsJClJWV4Y8//gDThbO+vl7j+NatW2t83bZtW8THx+Onn37C\nzJkzUV9fjx9//BEpKSkmZwEIsTcKsoR3ampqcOPGDfTr1w9A44fw1KlTERMTo/cxYWFhKCkpAQD1\nCNhcvXv3xs8//6z+c/z4cXzyySfYuHEjdu3apTc31lib5vr6enh6emrcZuk5GXss89rMRYWl56LN\nUKA3dc5ubm6QyWQ6t2ufz8GDBzF9+nQEBgbi2WefxV/+8hdERkbil19+wdq1a3UeLxDoTsANGzYM\nH3zwAc6fPw+ZTIaqqioMGzbM6PkR4ggUZAnv/Pjjj2hoaFCPkoKCggCo1kkTExM1jv3tt9/w4MED\niEQitG/fHkDjyLeppUuXokWLFhprfYBqZ/GVK1fQrl07DB06FEOHDkV9fT2+/vprLFmyBAcOHFBP\nzzYVFBSkDupNVVVVoaamRn0ubKioqECXLl3UXzOvy4xozT0XJnjJ5XKN4+7cuWPVeQUHB6O0tFTn\n9hs3bmh8vXz5cnTq1Ak7d+6Ej4+P+vZ9+/aZ/VqDBw/GRx99hJycHEilUvj7+1uV70wI22hNlvBK\nZWUlPvvsM7Rt2xbDhw8HAERGRiIgIADffPMNJBKJ+tiamhr1NK+7uzvatm2LiIgIHDhwADU1Nerj\nbty4gc2bN+sNJvfu3cNLL72kMaISCASIiopS/1uf/v3749q1azh8+LDG7evWrQMA9SicDd9++63G\n119//TXc3NzUaUjmnktAQAAAaOzarqmpUa/tWio1NRVFRUXIzc1V3/bo0SPs3btX47j79++jQ4cO\nGgH25s2bOHToEADzpsz9/PyQnJyMY8eO4dixYxg8eLDJETohjkAjWcJZhw8fVm9Qqq2tRXFxMfbs\n2YPa2lqsX78eIpEIAODp6YkPPvgA7777Ll544QWMHj0aXl5e+O677/DHH39g2bJl8PBQ/arPnj0b\nEydOxIsvvoi//vWvEAgE2LJlC/z8/PRufGKC+bZt2yCVStGjRw/cv38fW7ZsQZs2bXQ2/zCmTJmC\nQ4cOYdq0aXj55Zfx5JNP4uTJkzh06BBSU1Mt3s1rzL59+1BTU4Pu3bvj2LFj+PnnnzFx4kT12rO5\n5zJw4EBkZWXho48+QkVFBYRCIb799luN4GeJN954A/v27UNGRgZee+01tGrVCjt27NCZLv7LX/6C\ngwcPYv78+YiKikJ5eTm+/fZbdWnLphdOxgwbNgxTp04FAGRlZVl1zoSwjYIs4axPPvlE/W9PT0+0\nbdsWAwYMwKRJkxAaGqpx7HPPPYcWLVpgzZo1+OKLLyAQCNClSxesWbNGY4fps88+i02bNuGzzz7D\n559/Di8vL8TFxSEzM1M9ktP2j3/8Ax07dsSBAwdw4MABeHt7o3fv3nj33XcN1ir29/fHjh07sHLl\nShw8eBAPHz5Ex44dMWPGDLz++uu2f3OaWL9+PbKysrB//360bdsWs2fP1ngNc8+lVatWWL9+PZYv\nX47PPvsMLVu2xJgxYxAWFoZ3333X4vPy9fXF1q1bsXTpUuzYsQNKpRJpaWno0qWLRhBcsGABfHx8\nkJOTg71796Jdu3YYNWoUBg0ahJdffhknT540ujGN0b9/f/j6+sLX11edF02Is7k1GNsVQQghPCGX\ny5GYmIiXXnoJmZmZzj4dQgDQmiwhxEUcOHAAjx49wgsvvODsUyFEjaaLCSG8tmHDBuTn5yM3Nxf9\n+/dH586dnX1KhKjRSJYQwmtKpRK//PILoqOjacMT4RxakyWEEELshEayFlIoFCgvL4dCoXD2qRBC\nCOE4CrIWunXrFlJSUjT6XBJCCCH6UJAlhBBC7ISCLCGEEGInFGQJIYQQO6EgSwghhNgJBVlCCCHE\nTijIEkIIIXZCQZYQQgixEwqyhBBCiJ1QkCWEEELshLrwEGIlaa0C54uq8FAih59YiOguAfD2ov9S\nhJBG9IlAiBWyT5Xi8JkyyOuU6tt2H72KgXEhGJTQyYlnRgjhEgqyhFgo+1QpDp4o0bldXqdU306B\nlhAC0JosIRaR1ipw+EyZ0WMOnymDrJa6NBFCaCRLiEXOF1VpTBHrI69T4nxRFRIi2zvorNhH682E\nsIP+1xBigYcSOavHcRGtNxPCHgqyhFjATyxk9TiuofVmQthFa7KEWCC6SwCEnu5GjxF6uiO6S4CD\nzog9tN5MCPsoyBJiAW8vDwyMCzF6zMC4EIh4uH5pyXozIcQ8/PskIMTJmOlS7XVLoac7r9ctm8N6\nMyGORkGW8J9EAuTlAbGxgFjskJcclNAJfWOCdHbg8nEEy3D19WZCnIG/nwiEAKoAO2AAcPo0EB8P\n5OQ4LNCKvDx4naajLbpLAHYfvWp0ypiv682EOAutyRJ+y8tTBVhA9Xd+vub9EgmQm6v6mxjlyuvN\nhDgLBVnCb7GxqhEsoPq7Z8/G+5hRbnKy6m8KtCYNSuiEtMRQnR3UQk93pCWG8na9mRBnoUtSwm9i\nsWqKOD9fFWCbThXrG+X27euc8+QRV1xvJsRZ6H8N4T+xWH/wZEa5zHpt01EuMcrV1psJcRaaLib8\nYskaKzPKzc116IYoQghhUJAl/GHNGiszyqUASwhxAs4H2fnz52Pu3LlGj7lw4QLGjh2L6OhopKam\nYs+ePRr3S6VSzJs3DwkJCejVqxc++OADSGgTDKuktQqcvHgTh06V4uTFm5Dao/SeqZ3EHOaQ7w8h\nhHM4uybb0NCAzz77DDt27MDo0aMNHlddXY2JEydi2LBh+Pjjj3HixAnMnTsXbdq0QZ8+fQCoAvWl\nS5ewdu1aKBQKzJkzB/Pnz8fy5csd9XZcmsO6tkREqEakEonq7/Bw9p7bjqirDSHNFyeD7I0bNzBn\nzhwUFRWhQ4cORo/97rvv4Ovri7lz50IgEKBz5864fPkyNmzYgD59+uDWrVvYv38/Nm7ciJiYGABA\nVlYW0tPTMWPGDLRt29YRb8llObRrS0FB4xSxRAIUFgKBgew8txms6bFKXW0Iad44OV2cn5+P9u3b\nY9++fQgODjZ67NmzZxEXFweBoPGtxMfHIz8/Hw0NDcjPz4dAIEDPJjtLe/bsCXd3d+Tl5dntPTQH\nDu/aYiwn1s6yT5ViwfpfsSO7ED+cKMGO7EIsWP8rsk+VGnwMdbUhhHAyyI4cORJLlixBQIDp8m23\nbt3SGY0GBgZCKpXi3r17uH37Nlq1agVPT0/1/R4eHmjVqhVu3rzJ+rk3Jw7v2uKk3cLMaFT7vTKj\nUUOBlrraEEI4OV1sCZlMBqFQs2A587VcLodUKoWXl5fO44RCIWpra40+96pVq7B69Wr2TtbFOKVr\ni6GcWDboaTRg7mi0b0yQTrEG6mpDCOHkSNYSIpEIcrnmhxTztbe3t977mWN8fHyMPndGRgYKCws1\n/hw5coS9k+c5rnVtkdXJcKbiPHKKj+NMxXnI6mTmP9hAepAto1GufX8IIY7H+5Fsu3btUFWl+QFX\nWVkJHx8fPPHEE2jXrh2qq6uhVCrh7q6qx6pQKFBdXY1AB26acUUO7dpiop1dTvEJHC05AbmyTn3b\nvoJs9AtNxICwRNPPb6AEoy2jUepqQwjh/Ug2NjYWZ8+eRUNDg/q2U6dOoWfPnhAIBIiNjYVCocC5\nc+fU9+fl5aG+vh6xsbHOOGWX4bCuLSaKUOQUn8Chq8c0AiwAyJV1OHT1GHKKT5h+DQObqmwZjVJX\nG0II74KsXC5HVVWVegp49OjRqK6uxocffohr167hm2++wf79+zFx4kQAQNu2bTFkyBDMnTsXeXl5\nOHv2LObNm4eRI0dS+g4LHNK1xUgRClmdDEdLjAfRoyUnIFMYX383tKkqukuAznvTZmw0Sl1tCGne\neHcJfe7cOaSnp2Pz5s1ISEhAmzZt8OWXXyIrKwujRo1Chw4dsHjxYvTu3Vv9mKysLGRlZWHy5Mnw\n8PDA4MGDMWfOHCe+C9di964tRgr9X6gs1BnBapMr63DxdgF6BUUbfx09m6qY0ai+XFeGqdEodbUh\npPlya2g6z0pMKi8vR0pKCo4cOWIyh5ewSCLR284up/g4Dl3NNfnw1KeSzVubNUBf1SahpztnqzZZ\nUziDEMI++l9H+EPP9eATXr5mPdTPy7acWj6NRqmMIyHcwbs1WdIMGdn4FBUYDqG7p5EHA0J3T0S2\njbD5NESKWiRUF2FQZBskRLbnbIC1pnAGIcQ+KMgSTjDapcbIxieRpwj9Qo1PA/cLTYTIQ7cgiUWs\nabNnIVs79VAZR0K4h3uX4qTZMTm9GREBPP00cOWK3prFzFqrdp6s0N3T/DxZUwzk0bKFjSleSwpn\nJES2t+l8CSHmoSBLrMbG5hpTXWoE0j+RMvN1VYCNiAD27dNbjGJAWCISQ2Jx8XYBHtZK4OclRmTb\nCNtHsAwjO5xtxVanHirjSAj3UJAlVmFj5GXO9Obvew4jhRlBFhQYbW8n8vAynaZjLSaPtukOZxNV\nqMxhS21kbVTGkRDuoTVZYjG2NteYM715vd1TeBSp6gPs6PZ2Opg8WibAsrBGy2anHlsLZ7g6W9e8\nCbEGjWSJRdgceZkzbSn38sbpVduQ4n5HJ0fWqVhao2VzipeNwhmuitKaiLPQSJZYhM2Rl7nTlr5t\n/BtHkFyhXes4PFxVktHCES3bU7xUxlEXpTURZ2p+l7TEJmyOvMzuUtPBRxXAbFj7ZF3TNdrwcGD4\n8MZNURY0lLdHpx4+Fc6wNzZnXgixBo1kiUXYHHmZ06UmNbINRENS7ZqfajVmjbagwGAeryn26tQj\n8vJAQmR7DEroxNnCGY7A5swLIdagIEsswvbmGlPTmymCKqsDmMMYaJNnLpritR9KayLO1jwvb4nV\n7LG5xuj0pqSN3fJTWaMvvQewKMWHpnjtg9KaiLPR/2BiMWZkxWZXGmZ6U6+PPgLc3ICkJO6syWrT\nbpPHpPhYsE5r9HtArGKPNW9CLEFBlljFISMvfYGKL7RTfDZsACZM4O5FgouitCbibLQmS6xm9801\nRhoDcF7TdVqxGHjnHe5t3GomaM2bOBNdvhHusmO9YLtj1mk3bFAFWMAujQWIeWjNmzgL/YYR7jK0\noYgvxGLVFPGWLY0XCkzRCi7l/NoBG80j2EZr3sQZKMgSbtPeUMRxsjoZLlQW4lFtDZ7w8kVUYDhE\nLBSt4BMqYUhIIwqyhLAkp/iETk/bfQXZqp62ffuqRrBN15iPHwdEIpca1bLVto8QV0EbnwhhQU7x\nCRy6ekwjwAKAXFmHQ1ePIaf4hOZmqNhYYM4cblayspK5JQxl1P2GNCMUZAl5TFYnw5mK88gpPo4z\nFechq5OZ/bijJSeMHnO05ARkXh6qKeLcXODjj1W7pwH+7Zw2gEoYEqKLposJgYmp3rBEo4+9UFmo\nM4LVJlfW4eLtAlVT+b59VSNXvu6cNoBKGBKii4IsafaYqV5tzFQvAKOB9lFtjVmv87C2yZQw33dO\n60ElDAnRRdPFpFkze6pXUWvw/ie8fM16LT8vrUDK7Jx2gQALsN88ghBXQEGW8Ja1a6hNWTLVa0hU\nYDiE7p5Gn0Po7onIthEWnx9DWqvAyYs3cehUKU5evAmplZuH2HoefezVto8QPqPfdsJLtqyhNmXV\nVK8WkacI/UIT9U45M/qFJkLk4WX2eTXFVt6pI/JX7dE8ghA+oyBLeMfWNdSmrJ7q1cK8nnbgF7p7\nWhz4m2Ir79SR+atUwpCQRvRbT3jF3DXUxJBYs0aOUYHh2FeQbXTK2Nyp3gFhiUgMicXF2wV4WCuB\nn5cYkW0jrB7Bmpt32jcmyGgAY+t5LMFGCUMulmYkxFKc/I1VKpVYuXIldu/eDYlEgr59+2L+/Plo\n06aNzrHjx4/HaaaKjpYtW7YgLi4Ox44dw+TJk3XuP3bsGNq1a8f6+RMrmdHk3OJ0GRPYnuoVeXiZ\n9brm0Jd3KqyVIqj8d1QEd4Xcy1udd2osoFmSv8qV2r5UmpG4Ck4G2VWrVmH37t1YvHgx/P39sXDh\nQmRkZGD79u16j62ra/zQra+vx//93//B19cXPXr0AAAUFhbimWeewbp16zQe27p1a/u+EWI+M5uc\ns7GGqs1eU7220s4nFdZK8daa99CprAClIRH44s0VkHt5m8w75Vv+KpVmJK6Ec0FWLpdj8+bN+OCD\nD5CUlAQAWLFiBVJSUpCfn4+eWkn7/v7+Gl+vW7cON27cwA8//AAPD9XbKyoqQteuXREQQKkDnKWv\nd6yexgBsraFqY3uqlw3a+aRB5b+jU5lql3OnsgIEVRShJKy7ybxTPuWvOmNqmxB74lwKT0FBASQS\nCeKZGq8AgoODERQUhLNnzxp9bFVVFdasWYN3331XI6AWFRWhc+fOdjtnwoKmdX2NVECyZ7oMM9U7\nICwRvYKinRpgAd2804rgrigNUb2v0pAIVAR1MSvvlE/5q1Sakbgazl0K3rp1CwDQtm1bjdsDAwPV\n9xmyfv16tG7dGmPHjlXfplQqUVxcjIsXL2LEiBGorq5GVFQUMjMzERYWxv4bINb76CPAzQ1ISjK4\nJmvvdBkuYfJOmSlSuZc3vnhzBYIqilAR1AVyL2+kmZF3qv08+nAlf5XNqW3aOEW4gHO/cVKpFAKB\nAJ6emqMVoVCI2lrDVXdqamqwc+dOZGZmwt298aq9rKwMtbW1kMvlyMrKglwux5o1a/DKK69g//79\nRtdlV61ahdWrV9v+pohx+tZjjeDqGqo9aOedyr28URLWHUJPd6RZsAmIL/mrbE1t08YpwhWcC7Ii\nkQj19fVQKBTqNVVAtVbr7e1t8HFHjhyBUqnEiBEjNG4PDQ3FqVOn4OfnB4FANTu+evVq9OvXD3v3\n7sWECRMMPmdGRgYyMjI0bisvL0dKSoo1b40YYuZ6bFNcXEO1F6vyTvXs1OZD/mp0lwDsPnrV6JSx\nqalt2jhFuIQ7/7sea99elUJQVVWl/jcAVFZW6kwhN3XkyBH069cPPj4+Ovdpb47y9vZGx44dcfPm\nTZbOmtiEWY+1sCMNm+kyXGdR3mnTmYGQEODoUSA01PLncQJbp7Zp4xThGs5tfIqIiIBYLNbIfS0v\nL0dFRQXi4uIMPi4vLw/PPvuszu2HDx9Gjx49UF1drb6tpqYG169fR5cuXdg9eRdlj3q3Gs9Z8hDS\nHw6p+qwaSN0hFmg6M1BWBjzzDFBZ6dxzssCghE5ISwzV2awl9HRHWmKo0VEobZwiXMO5SzmhUIhx\n48ZhyZIlaNmyJVq3bo2FCxciPj4eMTExkMvlePDgAVq0aAGhULUuU1lZiTt37qBr1646zxcXFwdf\nX19kZmYiMzMTSqUSK1asQMuWLTFy5EhHvz3escfalt7nZNYGnRBgZXUyXKgsxKPaGjzh5YuowHCI\nPEX8PY/YWNUItuzxiE4mA779FnjjDZPFPrjC2qltvuUEE9fHuSALANOmTYNCoUBmZiYUCoW64hMA\nnDt3Dunp6di8eTMSEhIAqKaWAaBFixY6z9WiRQts3LgRS5cuRXp6OhQKBZKSkrBp0yZ4ebne+h2b\n7LG2xTynsFaKUK3KRfZeL9MXxE7cyGel0YCt2Gp4AEAVQI8eVY1gZTLV10OHNk4hx8YCH38M9Olj\nUbB19MWINVPbfMoJJs2DW0NDQ4OzT4JPmI1PR44cQXBwsLNPR43tdAVprQIL1v9qcgPKwkm9zV7b\nYp4TNTV6KxdZ85zm0hfE/qyTQlmvNFjgIvWpZL0Bju1gY6jhganzMKmyUjWCHTMGKCgAkpM17zdS\nWUvfOfJhN7c9fm8JsQX9lrkAe0zp2qPeLfOcoQYqF1nznObQF8TqG+pxX/YQ9Y+vMfUFWn2NBlgd\ncYL9hgcaAgOBv/9d9W+xuHFzGaPpTm4jdaPZ7Hpkb3zKCSbNA+c2PhHLMNOv2gGRmX7NPlVq1fPa\nY22LOVZf5SJrn9MUQ0FMWidTB9hHcon6301pN2tngo12gwIm2OQUGw+W+rDRNN4sYrFq1PrTT6pA\nCjTu5GZ2Iycnq/6WNNZ9ltXJcPzyUTx5oQSeMv0/l6MlJyBTGM5hdzRbNk4Rwja6nOMxe6Yr2GNt\nizlWX+Uia5/TFENBTNlQr/53fUMDpAoZxJ66edhMowF7jTjt0fDAILEYSE1VVdTKz1cFWLFYtavb\nQJ7ypev/w2vT1yCksBw3unTAT6+nojTySdSJGn9GlnQ9AhyztsuHnGDSPNBvHI/Zs4UZG0UB1B5P\nRUZHRmO3p7tG5SKrn9NMhoKYu5vmJE59vf73yTQaYLvFHsNeDQ+MEos1i30Yy1POy0NIYTkAoGPR\nH5g4dyPKwoOxfslEjUBbc+8OcC3X5M5ltqfbjXFmTjCVdCQMmi7mMXumKzBrW8aYtbZVWQnExQHJ\nyfAekorUSN2ewBY/pwUMBTFvTxEEbm7qrwUC3QL6TRsN2GvEac+GB2ZjppL15SnHxqIsXHODX0hh\nOToUVai/9pTJ0Wv8NL3TzU3ZY7qdi7JPlWLB+l+xI7sQP5wowY7sQixY/6vVSzeE3yjI8pi90xVs\nXtuqrFSNjK5cUX19+jRS3O84dL3MUBATuAngK1QFEzcADQ0NeFhbA4n8T9Q/nkpu2mjAXiNOpuGB\nMQ5peMCMbrVGod2ejMGmZW9i/cev40aXIABAWXgw/nj8bwB48tpt+P7vouoLZrpZi7nT7Vxa27WG\nvfZIEP6i+QseY3VK1wCr17YkEtXIprTJh8rTTwM9e2KQWOyw9TJjXXv8vHwhU9SiViHHfdlD9e0P\na2uQENzIHf2sAAAgAElEQVRDY/oyKjAc+wqyjU4ZWzvi5HLDA5GnCEnP9MMhoRvWRT6JDkUV+KNL\nkMZUcedBLwLxeUbLYtprut1WbE7rUklHog/9pHnMUekKVq1t5eWpcjMZnTqpCiQ8Hik5cr3MUBD7\ns04Kbw8vtPFpBalChvp6JQQCd3h7iFD2oAI5xSfUj7V3iz0uNzxo+v0rjQpV385cBPQLS1RNMzfd\nTKXFoRu8zMR26ps990gQ/qIgy3NcamHWdNdoi/ZC9IjrBcGZs0BEBHDsmCpv00m0g5jIQ4iDv/8M\nRb2qDrO+ncXau4XtPeLkcsMDkxcB2puptDhlg5cR9qhmRiUdiT4UZF0AF9IV9O0aPTj/eaRJ3kDs\nsNc4USu3aRA7U3FeHWAN0Td9yeURp73ZchFgz+l2S9lrWpdKOhJ9KMi6CGemKxiqCCQRuuE74QM8\nuH2eMxWBGLZMX3J5xMk2ttYs7T3dbgl7Tes6Yo8E4R8KssQyEgnwyy+qf/fpA5nQ3X5lAe2Ia9OX\nXMT2miVXNnjZa1qXSjoSfeinTczDBNdZs4D//U91W2wsLm1fzcldo6ZwafqSi+yxZglwY7rdntO6\nXNojQbiBgiwxrbIS6NevMd+VkZcH5OcBLU0/hSN3jZqDS9OXXGPvVBRnT7fbe1qXC3skCHfQT72Z\nM1lHlsl3LdBToD42FugZC5T8bPJ1uDjtypXpS67heyqKqXVkR0zrOnOPBOEWCrLNmFl1ZLXzXcPD\ngSVLAJEISEpCN6E79pb9wttpVy5MX3INn1NRzF1Hpmld4igUZJspYz1Cf76YjRanzyF2+OuaxeP1\n5LuKAN5Puzp7+pJrDK1F1rvVodarEvWCWgjqvSASheo9zlksXUemaV3iCPTb1AwZqiPrKZOj08Xr\nGLwxGx2LKlAftwmCn382Wc2Hpl2dw14t4/StWUq8i/GnTwka3FS3ubm54aeqP1BXnMSJn6+168g0\nrUvsjYJsM6SvjqynTI5JM75UtzUDAMGZM429RY1U8wFo2tXR7NkyTnvNUuJdDIn4qsYxfmIhFPUK\n9QyGswMt39eRieuiINsM6SvEEFRUoRFgAeBB96fRQk+xd0No2tUxjE31sxX0mGnVQ2eu4U+fxilY\nNzc3+ImFGlPKXMiD5vM6MnFt1OquGdJXiKGiS5C6b+iNLh2wftHruPb9Bk6UQySNHNkyblBCJ4wa\n5o+WLTzRwtcLrfxE6BAg1lmzZfKgnYlKGhKuopFsM6SvEEOdSIj1SyaqW5m5icUYH9rDiWfJXfZa\nCzWHo1vG1dZLIfY23lQecH4eNJU0JFxFQbYZMlSIoU4kVLcyS+X4jmB7MxRI7bkWag5Ht4zjS/lJ\nKmlIuIp+43jM6uLtEgkGlCsg6BCPnNvnaEewFkOBtJ1vIMoeVOgcz+ZaqCmmgl59Qz2kilpcv1eG\nMxVim0fZfCo/SbmvhIvcGhoaGpx9EnxSXl6OlJQUHDlyBMHBwU47D31J92Z9mEgkwIABqrzX+HjI\nDv2AizU3aEfwY4Y2FdU31ONWTRWeEIoNBjqhuyfmJGfY9fsnq5NhUa7+etGPamvwSK4awbbzDYDA\nTcDKRZOh7wkj9alkTl2UyfRcfNIIljgL/ebxkE3F23/5RRVgAeD0aYh+u4ReJtJzmgtjm4qkdTLU\nNzTgkVwCsVAMgZubzjGOaIRgaKr/UW0NHjyeSvbz8oXATaA+J1tH2XzLg6bcV8IlFGR5xqbi7RKJ\nqosOIzZWVWCCADC+qUjZUA8AqG9ogFQhg9jTW+9xjtgApB306hvq8UgugcDNDb5CMfz0jLSZNBs0\nNFi1aYvyoAmxDgVZnrEp6f6XXxrb1AHA/PmUotOEsU1F7m6N2W719Ya//47aANQ06P12qwDSOhm8\nPUXqEaw2ubIO287vwfX7N6zetEV50IRYjvJkeYbVpHuRY9JO+MLYpiJVAFNNEQsE7nqPcfQGICbo\nPdkyGGKhj8EACwAPa2uQ98dvOiN1Zjo5p9h47i0hxDoUZHnGpqT7Pn1UU8SA6u+kJBbPzHayOhnO\nVJxHTvFxnKk4D1mdzKGvHxUYDqG7/pxQgZsAvo/XYr099F+cOKsRgjk7jmvkEoMXBwB7BSyaC2mt\nAicv3sShU6U4efEmpLUKZ58S4ShOThcrlUqsXLkSu3fvhkQiQd++fTF//ny0adNG7/FTp07Fjz/+\nqHFb7969sXHjRgCAVCrFokWLcOjQISiVSjz33HOYPXs2xDycKrUp6V4sVnXRMVLs31mcnX8KmG7k\n7ufli8jAcNyqqeTUBiBTaTbSxxcrhi4OAMds2nIV5rbTIwTgaJBdtWoVdu/ejcWLF8Pf3x8LFy5E\nRkYGtm/frvf433//He+//z6ef/559W1CYeNIbv78+bh06RLWrl0LhUKBOXPmYP78+Vi+fLnd3wvb\nbE66F4v1Fvu3OueWBY6oxWsuc3bSyhS1nNoAZOriQNlQjycM7IhuytlVm/jApp39pFniXJCVy+XY\nvHkzPvjgAyQ9ns5csWIFUlJSkJ+fj55au2HlcjnKysrQvXt3BATojt5u3bqF/fv3Y+PGjYiJiQEA\nZGVlIT09HTNmzEDbtm3t/6ZYxnbSvTOvzM2txevIAvSmdtJycQOQsYuD2A7dUXS32ORzOLtqk7mc\nVdbSpp39pNni3G9CQUEBJBIJ4uPj1bcFBwcjKCgIZ8+e1QmyxcXFUCgU6Ny5s97ny8/Ph0Ag0Hhc\nz5494e7ujry8PKSlpdnnjdgZWw2nnX1l7uhavObiYiA1xdDFARoaDBawYHClapMpzlxWoHZ6xBqc\nC7K3bt0CAJ0RZmBgoPq+pn7//Xd4enpi1apVyM3NhZeXF5577jm89dZb8PLywu3bt9GqVSt4ejZu\naPHw8ECrVq1w8+ZN+74ZO7M16Z4LV+a21uJ1ZrF+LjJ0cWBsOpm5n+s5r85eVqB2esQanAuyUqkU\nAoFAIygCqjXW2lrd3Y9Xr6qaSYeFheGVV17B77//jk8//RS3bt3C4sWLIZVK4eWl++Fh6PmaWrVq\nFVavXm3Du+EAiQTIy1PtJtba6GTLlTlbwc2WAvRc2CzFF3yr2qSNC8sK1E6PWINzQVYkEqG+vh4K\nhQIeHo2nJ5fL4e2tW2Vn2rRpmDBhAvz9/QEA4eHhcHd3x7vvvotZs2ZBJBJBLte9spTL5fDx8TF6\nLhkZGcjIyNC4jaldzAtadYqRk6MRaK29MmczuFlbgN7Zoxo+4nPVJi4sK1A7PWINzuXJtm+vGjFV\nVVVp3F5ZWal3k5JAIFAHWEbXrl0BqKae27Vrh+rqaiiVjf8xFAoFqqurERgYyPbpc0tenkadYuTn\na9xtzZU5E9zYKmrA7Iw1Rnsq05GNy10NM508ICwRvYKieRFgAce3+NOH2dlvDLXTI9o4F2QjIiIg\nFotxmgkOUI0eKyoqEBcXp3P81KlT8fbbb2vcdvHiRQiFQoSEhCA2NhYKhQLnzp1T35+Xl4f6+nrE\nMoUZXFVsrGoEC6j+1to0Ft0lAEJPwwUKAM0rc3sFtwFhiUh9KlmnEITQ3VNvhxdLRjXENXClr+2g\nhE5ISwzV+X8j9HRHWmIope8QHZy75BIKhRg3bhyWLFmCli1bonXr1li4cCHi4+MRExMDuVyOBw8e\noEWLFhAKhRg8eDDee+89fP3110hJScHly5exePFiTJgwAWKxGGKxGEOGDMHcuXOxaNEiNDQ0YN68\neRg5ciQv03csIharpogNFJ+wNOfWnlN2lkxlcmFUQxzLWX1t9e09YGtnP2keOPlbMW3aNCgUCmRm\nZkKhUKgrPgHAuXPnkJ6ejs2bNyMhIQFpaWmQy+X46quv8M9//hOtW7dGeno6pkyZon6+rKwsZGVl\nYfLkyfDw8MDgwYMxZ84cZ709xzJQfIJhSc6tvYObuWkzXBnVEMcxVXADYH+HtKm9B5SmQ8xBTdst\nxJWm7Wwzp9H1mYrz2HnpoMnnGt0tza45psYalzMc0UCdOJ6+wGePHdJ8a1RPuIuTI1nieObk3Dpr\nyk6bM0Y1hBscsUOaC+lCxHVQkCVm41Jw43veJ7GevatxcSFdiLgOCrLEIlwKbnzO+yTcRRvrCJso\nyBKLcSm48bHGMOE22lhH2ERBlliFgptlqMYyf3Bl7wFxDRRkCbEzqrHML1zae0D4j4IsIXZENZb5\niUt7Dwi/UZB1RUY67xDHoVQQfuPS3gPCXxRkXY2JzjvEcSgVhP9o7wGxFecaBBAbmei8QxyHUkEI\nITSSdTVM5x1mJKvVeYc4DqWCEGtJ9ZQ59aYGBLxEPzVXY6LzTnPnyFQaSgUh1sg+VarTsGP30as6\nDTsIP1CQdUUmOu80V45OpaFUEGKp7FOleltPyuuU6tsp0PILrcmSZoFJpdEeVTKpNDnFxncBW8vS\nhvSk+ZLWKnD4TJnRYw6fKYOsVuGgMyJsoJEscXnOTqWhVBBijvNFVRpTxPrI65Q4X1RFvWx5hIJs\nM9TcSvxxIZWGUkGIKQ8lclaPI9xAQbaZaY4l/iiVhvCBn1jI6nGEG2hNthlx1rqks1EqDeGD6C4B\nEHq6Gz1G6OmO6C4BDjojwgYKsq5GIgFyc1V/N2HuuqRMUWvPs3OKqMBwnY1H2iiVhjibt5cHBsaF\nGD1mYFwIRJQvyysUZJ1EWqvAyYs3cehUKU5evAkpGzsGmZKKycmqv5sEWkvWJZ1JVifDmYrzyCk+\njjMV5yGrk9n8nEwqjTGUSkO4YFBCJ6QlhuqMaIWe7khLDKX0HR6iSyInsFuyub6Sio/zZfmwLmnP\n9WLqqkL4YlBCJ/SNCdKp+EQjWH6in5qD2TXZ3EhJRa6vSzqiJRyl0hC+EHl5UJqOi6Ag60DmJpv3\njQnSuWo1q5apkZKKXC7x58g8VkqlIYQ4EgVZB7I22dyi6WUDJRW5XOKPC3mshBBiDxRkHciaZHM2\np5e5ui7Jh/ViQgixBgVZB7I02dyW6WVDuLguyfX1YkIsRa3qCIN+6g4U3SUAu49eNTpl3DTZ3F61\nTLm2Lsnl9WLCfVwrE0qt6khTFGQdiEk21zf9y2iabN5caplyeb2YcBvXyoRSqzqijYpROJglyebN\nqZYptYQjluJamVBqVUf04eRIVqlUYuXKldi9ezckEgn69u2L+fPno02bNnqPP3jwINauXYvS0lIE\nBATgr3/9K/72t7/B3V0VyI4dO4bJkyfrPO7YsWNo166dXd+LPuYmm1s6vcx3XFwvJtzk7PaF+lCr\nOqIPJ4PsqlWrsHv3bixevBj+/v5YuHAhMjIysH37dp1jjx07hunTp2POnDn4y1/+gsuXL2PevHmo\nq6vD22+/DQAoLCzEM888g3Xr1mk8tnXr1g55P/qYk2xu6fSyK+DaejHhJi6mfTWX5R1iGc59Osvl\ncmzevBkffPABkpKSAAArVqxASkoK8vPz0bNJFSMA+M9//oPU1FS8+uqrAICQkBBcu3YNu3btUgfZ\noqIidO3aFQEB/BvxMdPH2hsphJ7utJGCNFtcTPtqTss7xHxmBdkHDx6gRYsWeu9TKBS4e/cu2rZt\ny8oJFRQUQCKRID4+Xn1bcHAwgoKCcPbsWZ0g++abb8LHx0fjNoFAgIcPH6q/LioqQlpaGivn5wxU\ny5QQTVxM+2puyzt8cffuXZw6dcrqGDB9+nR4eHjg008/terxRjc+rVu3DvHx8Xj22WfRt29fbNmy\nReeYS5cuoV+/fla9uD63bt0CAJ2gHRgYqL6vqe7du+Opp55Sf11TU4Pt27ej7+OqR0qlEsXFxbh4\n8SJGjBiBPn364M0330RxcTFr5+wIzPTyoIROSIhsTwGWNGuca18okcD71AmkRurfN8JwteUdPli2\nbBlycnKc9voGf9rbt2/HypUrMWbMGISFhSE7OxtZWVk4d+4cli5dCoHAPhuTpVIpBAIBPD21dpkK\nhaitNd7rVCqV4q233kJtbS3ef/99AEBZWRlqa2shl8uRlZUFuVyONWvW4JVXXsH+/fuNrsuuWrUK\nq1evtv1NNXNcy2Mk/MeptC+mxeTp00iJjwcWb8Shi3doeYcjGhoanPr6BoPstm3bMGnSJLz77rsA\ngPT0dGzatAmffvop3N3dsWTJEruckEgkQn19PRQKBTw8Gk9PLpfD29vb4OOqq6vx1ltv4erVq9iw\nYQOCgoIAAKGhoTh16hT8/PzUFwarV69Gv379sHfvXkyYMMHgc2ZkZCAjI0PjtvLycqSkpNjyFpsV\nruUxEtfBmTKhWi0mU9zvIGlS72a7vMMMxC5dugQ3NzfExsZi0aJFaNu2LU6cOIFly5bh2rVrCA4O\nxvvvv48BAwYAgNH7zp49i08//RS///47OnbsiEmTJmHUqFEAgFmzZsHb2xu3bt3C8ePHERoainnz\n5qFXr17qTbQAkJ+fj5ycHDx69AhZWVk4fPgwRCIRBgwYgJkzZ8LX11f9Wv/4xz9QUlKClJQUnVhk\nKYPD0fLycvTu3Vvjttdeew1z587F//t//w9Lly61+kWNad9eteO2qqpK4/bKykqD677l5eV4+eWX\nUV5eji1btqB79+4a9/v7+2uMvL29vdGxY0fcvHmT5bN3fZY0VedaHiNxPQPCEjEnOQOju6Uh9alk\njO6WhjnJGY69gGNaTALqFpPNdXmnpqYGU6ZMQWJiIvbv34+vvvoK5eXlWLNmDa5du4bJkydjwIAB\n2Lt3L8aMGYOpU6fixo0bRu+rqqrC5MmTMXz4cOzbtw9vv/02srKyNKaAv/vuO3Tu3Bm7d+9GQkIC\nJk+ejDt37mDChAkYMmQIBg8ejO+//x4AMGfOHNy7dw9bt27F2rVrUVJSgtmzZwNQDdamTJmCpKQk\n7NmzB2FhYTh06JBN3xODP/k2bdqgpKQEzz77rMbtr776KioqKrBhwwa0a9dOJ6DZKiIiAmKxGKdP\nn8bIkSMBqIJoRUUF4uLidI6/e/cu0tPT4e7uju3bt6Njx44a9x8+fBiZmZk4cuQIWrVqBUD1i3D9\n+nWMGTOG1XN3dZaMSrmYx0hck9PTvoy0mGxupFIppkyZggkTJsDNzQ0dO3ZEamoqzp07h++//x5R\nUVH4+9//DgB48sknIZFIIJFIsHfvXoP37dy5EwkJCXjttdcAAJ06dUJxcTE2bdqkHumGhYVh+vTp\nAFQj2yNHjmD//v14/fXXIRKJoFAo0KpVK5SVlSE7OxsnT56Ev78/AGDx4sUYMGAAbt68iZycHPj7\n+yMzMxNubm7IyMjAzz//bNP3xGCQHThwID777DO0bt0azz77LPz8/NT3zZgxAxUVFfjkk0/Qv39/\nm05Am1AoxLhx47BkyRK0bNkSrVu3xsKFCxEfH4+YmBjI5XL1bmehUIiFCxfi3r172LRpE0QikXoE\n7ObmhjZt2iAuLg6+vr7IzMxEZmYmlEolVqxYgZYtW6qDODHN0qbqXMxjJBxSUgIsWQL06wcMG8b/\nwGSgxWRzExAQgOeffx4bN27ElStXcPXqVRQWFqJ79+64du0aunXrpnH8W2+9BUCVpmnovi+++AL/\n/e9/0aNHD/V9TNBkNL1PIBDgmWee0bu59dq1a2hoaNAbt65fv46rV6+ia9eucHNzU98eGRkJudz6\n3GaDQfbtt9/G1atX8c477+Cll17CwoUL1fe5ublhxYoVmD17Nvbt26dxQmyYNm0aFAoFMjMzoVAo\n1BWfANV8f3p6OjZv3ozo6GhkZ2ejvr4ef/3rXzWew93dHZcvX0aLFi2wceNGLF26FOnp6VAoFEhK\nSsKmTZvg5UUjKHNYMyrlYh4j4QCJBNi/Hxg7VvX1v/8NREcDx4/zP9AS3L59Gy+++CKefvpp9OnT\nB2PGjMHRo0eRl5ens5m1KWP3KRQKDB06VB10GU2XALXXTJVKpd64pFQq4ePjgz179ujcFxAQgEOH\nDulslPL09LRPkPX19cX69etRUFCgd3eWh4cHli5diqFDh9o8Z63vuWfNmoVZs2bp3JeQkIDCwkL1\n11euXDH5fJ07d8a///1vVs+xObFmVMrFPEbiZJWVqpGr9v/Z8+dVQVYkUq1vUrDlrezsbIjFYqxf\nv1592zfffIOGhgZ06tQJ58+f1zj+jTfewJAhQ4zeFxoairy8PHTq1Lgze+vWraisrFRvzG0aB5RK\nJQoKCtCnTx8A0Ai2oaGh+PPPP6FUKhEWFgYAKC0txSeffIKPPvoIXbp0QU5OjsZmp8uXL2u8tqVM\n5uFERESgsLAQ9+7d03t/t27dNPJUieuxZlTKuTxG4lwSiWo6Vd9FcWQkMGcOkJys+vPTT6rjCe/4\n+/ujsrISx48fx40bN7Bu3TocOnQIcrkcL7/8Ms6fP49169ahtLQUmzZtwrlz59C7d2+j940bNw6X\nL1/G8uXLcf36dfz4449YunSpxkbYvLw8fPnllyguLsaiRYvw559/YujQoQAAHx8f/PHHH7h9+zY6\nd+6Mvn37YsaMGTh//jwKCgowc+ZM3L17F4GBgRg6dChqa2vxj3/8A8XFxVi3bh3+97//2fQ9MSvZ\ndfbs2bhx44be+65cuYJ//vOfNp0E4TZrRqVMHqMxzmhfZ8nuaMKiX34Bfv+98evQUGDSJOA//wGW\nLVOlwQCqv597TpV3SoGWd4YMGYIRI0Zg2rRpeOGFF3Dy5EnMnj0bJSUlCAgIwOeff459+/Zh2LBh\n2LVrFz7//HN07NgRHTt2NHhfUFAQ1q5dixMnTmDYsGFYvHgxMjIyMG7cOPXr9uvXD2fPnsWoUaNw\n6dIlbNy4UV2lcOTIkSgrK8OIESPQ0NCAJUuWoFOnTpgwYQJeffVVBAYG4osvvgAAtGjRAl999RUu\nX76MUaNG4dSpUzbv3XFrMJCpO2XKFFy9ehUAUFFRgYCAAAiFujU37969i6CgIBw4cMCmE+ELJk/2\nyJEjCA4OdvbpOISsToZFuatNNlWfk5yhEzT17Uh2eB4jB8+l2fnpJ1XwZOzdC4wYofp3k2IOGnJz\naTMRMWnWrFlQKBRYtmyZs09FL4Nrsm+++aY6r4jZet10NxegWnj28/PD888/b9+zJE5lS3UdrrSv\ns3R3NGFZjx5AeDhQWKhad21a0IVJgTl+XDVtnJenzjdlA1UcI85kMMjGxMQgJiYGgGoh+a233tLJ\nQSXNhy3VdZydx0g5u04mkQDDh6sCbEQEcPCg7uYmsRhITQWSkhrzTQHVaNaGzVBUcYw4m8HpYn3+\n/PNPdceb7Oxs3Lx5E/37929Wwbc5Thc3JVPUOn1UaqkzFeex89JBk8eN7pZGObv2kJur2tDU9GtT\n08BNp5Dj41UjXQsDraHZC0bqU8kUaIndmbXxqbi4GKmpqeqm5ytXrkRGRgYWLVqE4cOHIz8/364n\nSbiDGZUOCEtEr6BozgdYgHJ2nU5P2UGTtOoBw8LPGHNnL2QK401HCLGVWUF2+fLlcHd3R0pKCuRy\nObZt24a0tDScPXsWffr0od3FhNMoZ9fJmDXX3FzzR6TWBOYmLMntJsSezAqyZ86cwXvvvYeoqCic\nPn0ajx49wksvvQRfX1+MHTsWFy9etPd5EmI1ytnlAKbsoLlTvtYE5iZo9oJwhVlBtq6uTp1zlJub\nC29vb8TGxgJQbYqypQ0QIfbG1ZzdZkUiUQVMS3JfLQ3MTdDsBeEKs4Js165dcejQIVRVVeHHH39E\nnz594OHhgbq6OmzduhVdu3a193kSYpMBYYlIfSpZZ0QrdPekDTD2xmxiSk52WJEJmr0gXGHWEPSd\nd97B22+/ja1bt0IoFGLSpEkAgMGDB+Pu3btUF5jwAldydpsdfZuY7FxkwpbcbkLYZFaQTUpKwr59\n+3DhwgVER0cjKCgIADBhwgQ8++yzVLuY8Iazc3abJWYTE5OOY0uRCYlEFbTNyJ21JbebELZYlCcL\nqNoO3bt3Dy1btmyWa7HNPU+WEKtIJKqKTg0NQJ8+1hWXsDJ3lo+53fYgrVXgfFEVHkrk8BMLEd0l\nAN5eze8z3BClUomVK1di9+7dkEgk6harbdq0sel5zQ6yFy9exD//+U+cOXMGCoUC3333Hb755ht0\n7NgRb7/9tk0nwScUZAmxAgvFJXSKWvz0k6pKFDEp+1QpDp8pg7xOqb5N6OmOgXEhGJRgfRs3tjnz\nQmDlypX4/vvvsXjxYvj7+2PhwoVwd3fH9u3bbXpeszY+5efnY9y4cbh//z4mTZqk7i/brl07rF69\nGtu2bbPpJAghLs7G4hIAVFPEj7MaAKjqHDejTj3SWgVOXryJQ6dKcfLiTUhrFWY9LvtUKQ6eKNEI\nsAAgr1Pi4IkSZJ8qtcfpWiz7VCkWrP8VO7IL8cOJEuzILsSC9b865Pzkcjk2b96M9957D0lJSejW\nrRtWrFiB/Px8m4stmRVkly1bhsTEROzcuRNvvvmmOshOmzYNr732ms2RnhDi4iIiGkeuYrGqWYCl\nxGLg448bv87Lsy5Y85C1AUhaq8DhM2VGjzl8pgwyMwO2vTj7QqCgoAASiQTxTAEUAMHBwQgKCsLZ\ns2dtem6zguylS5fw8ssvA9DsMg8A/fv3N9hrlhBCAAAFBY2jTolE1SzAGn362FQJio9sCUDni6p0\nHqdNXqfE+aIqVs7VGly4ELh16xYAaDSCB4DAwED1fdYyK8iKxWLcvXtX7323b9+G2MoOGYSQZoKN\nkSzzWBsqQfGNrQHooURu1uuYe5w9cOFCQCqVQiAQwNNTK49eKERtrW31rc0KsgMGDMDKlStx+fJl\n9W1ubm6oqqrC2rVrkdx0MwIhhGhjayQL2FQJim9sDUB+YqFZr2PucfbAhQsBkUiE+vp6KBSaFyty\nuRze3t42PbdZQXb69Olo2bIlRo8ejYEDBwIAZsyYgdTUVCiVSkyfPt2mkyCEuDgbC/4bZE25Rh6x\nNQBFdwmA0NPd6GOFnu6I7hJg8bmxhQsXAu3btwcAVFVpXqxUVlbqTCFbyqwgW1RUhK1bt2LBggXo\n0VTqdD4AACAASURBVKMHEhMTERYWhvfffx8bN27EqVOnbDoJQoiLs8c0rxPKNTqarQHI28sDA+NC\njD52YFwIRE7Ml+XChUBERATEYjFOMzvgoUrXrKioQFxcnE3PbdZ3Nj09HTt27MCYMWMwZswYjftO\nnjyJmTNnYsiQITadCLGNRfllFlTNIYQ1zDQvW5xQrtHRorsEYPfRq0anjE0FICYPlqt5ssyFwMET\nJQaPsfeFgFAoxLhx47BkyRK0bNkSrVu3xsKFCxEfH4+YmBibntvgWc+cORM3b94EADQ0NGDBggXw\n9dXtbHH9+nWbK2IQ2+hLNN999Kr+/0BsFAUghAvYLNfIUWwFoEEJndA3JkjnQtyZI9imuHAhMG3a\nNCgUCmRmZkKhUKgrPtnKYMWno0ePYtOmTQCAX3/9FVFRUTpBViAQwM/PD+PGjbN5SM0XXKv4xGzv\nNyQtMVTzF1S7ak5urtOu/mV1MlyoLMSj2ho84eWLqMBwiDxFTjkX4kBszqSwUa6RB/hSsclWMj0z\ncly5ELCWWWUVx48fjwULFqBz586OOCdO41KQldYqsGD9ryankhZO6t34i8qRkWxO8QmbCrdTgOYp\ntn//OPL77AiuGICaA7N+Qt988429z4NYwZLt/QmRqt1z6g0o+fmq6TUnBVh9Lcjkyjr17cYCrb4A\nva8gmzqr8AHb66jaz3f8uMvWMxZ5eTT+Pya8YdbuYsJNVm/vd2KeoaxOhqMlJ4wec7TkBGQK/Qng\nTIBuGmCBxgCdU2z8uYmTaaXyyKKewZmK88gpPo4zFechq5NZ/nwuWs/Y2lrFhFtoroHH2Mwvc9T0\n64XKQp0AqU2urMPF2wU6fV/NDdCJIbHNspUZLzAzKceP49zNS9j/y1pIhI2lWi2ekWDqGT/3nOpr\npp4xz3cZW7SZkXAaJ0eySqUSy5cvR58+fdCjRw+88847uHPnjsHjL1y4gLFjxyI6OhqpqanYs2eP\nxv1SqRTz5s1DQkICevXqhQ8++AASF7jaZSu/LKf4BBblrsbOSwdx6Goudl46iEW5q+0yKnxUW2PW\ncQ9rdX8+lgRowm0P3n8HPV5/D6+/9zk8ZY0zLVbNSHCtnrGNBTKcXSyfsIuTQXbVqlXYvXs3Fi9e\njC1btuDWrVvIyMjQe2x1dTUmTpyIbt26YdeuXRg/fjzmzp2LX375RX3M/PnzkZeXh7Vr1+Lf//43\nTp8+zcrWbGdjI9Hc0dOvT3jppoHp4+elO5VtS4Am3FF7NActLqrKKnYs+gNh+UU6xxhbMtDBpXrG\nNhbI4EKxfMIuzgVZS/v6fffdd/D19cXcuXPRuXNnjB8/HiNGjMCGDRsAqLor7N+/Hx9++CFiYmLQ\nq1cvZGVl4cCBA7h9+7aj3x7rBiV0QlpiqM6IVujprpu+o8XW9VFrRAWGQ+juafQYobsnIttG6Nxu\nS4Am3FFyv1zj67SvftIYzQJWzEhwpZ6xjX1zuVAsn7CLc0HW0r5+Z8+eRVxcHASCxrcSHx+P/Px8\nNDQ0ID8/HwKBAD2bTCH17NkT7u7uyMvLs++bcZBBCZ2wcFJvjB0UjrTEUIwdFI6Fk3qbXLu5UFmI\nBokET14o0fmQY7A9/SryFKFfqPH1tn6hiXrXVG0J0LI6mW0bbAhrbkV3we2g1uqv25bfQYeiCp3j\neDkjYWONZi4Uyyfs4tzGJ0v7+t26dQvPPPOMzrFSqRT37t3D7du30apVK40WRh4eHmjVqpW6opUr\nsGZ7v+ReFSbN+BIhheUoCw/G+iUTUSfS3STF9ocds6nF0jxZJkDrS/9h6AvQlPLDLeKWAVi7Ygqm\nTF+PtjeqUBYejD+6BOkcx8sZCRtT5LhQLJ+wi3NB1tK+fjKZDEKhUOdYQDX1LJVK4eWlOyoyp0/g\nqlWrsHr1akvfAm+0LSxDSKFq6i6ksBwdiipQGhWqc5w9PuwGhCUiMSQWF28X4GGtBH5eYkS2jTC5\nK9jSAG1rTi5hX1RgOPa1bonVq99Gh6IK/NElSOfiztCMhLUsqu1tKxtqNLNRq5jYbv78+VAqlfj4\n449tfi7OBdmmff08PBpPz1BfP5FIBLlcaz3n8dfe3t5672eO8fHxMXouGRkZOhuumIpPriA0ZSRu\nhC9Ax8IbBkcTbH/YNSXy8NJJ0zGHuQGaUn64qemMhL6LOsDwkoE1+JQOw4Vi+c1ZQ0MDPvvsM+zY\nsQOjR49m5Tk595Nq2teP+TdguK9fu3bt9PYA9PHxwRNPPIF27dqhuroaSqUS7u6qzUEKhQLV1dUI\nDAy04zvhPpF/a1z7/mvs/2mH3tEEwO6HHZvMCdC25OQS+7J2ycBShmp7M+kwADgXaLlQLN9ZnFku\n9caNG5gzZw6KiorQoUMH1p6Xc0G2aV+/kSNHAjDe1y82Nha7du1CQ0MD3NxUSe2nTp1Cz549IRAI\nEBsbC4VCgXPnzqFXr14AgLy8PNTX1yO2aaWYZqpfZArqfbxxs+QEYMcPO2eglB9us3bJwFzmpsP0\njQni3MiQ611z7MHZeyfy8/PRvn17rFixAu+99x5rz8u5n5ipvn5yuRwPHjxAixYtIBQKMXr0aHz5\n5Zf48MMP8dprr+HEiRPYv38/1q9fD0C1gWrIkCGYO3cuFi1ahIaGBsybNw8jR460ueO9q7D3h52z\nUMoP91m7ZGAOq2p7c0hzqlXMhb0TI0eOVA/s2MS5IAsY7+t37tw5pKenY/PmzUhISECbNm3w5Zdf\nIisrC6NGjUKHDh2wePFi9O7dW/18WVlZyMrKwuTJk+Hh4YHBgwdjzpw5znp7nGTPDzt7MrahJSow\nHPsKso1OGdtzzZk4F6XD8IOr750wq9UdacSlVne2cuiOSzswp8emoStkRupTybyeEieGnbx4Ezuy\nC00eN3ZQeLMZMXLRmYrz2HnpoMnjRndLc9hAYPz48QgJCXHN3cXEMQztuEyNbIMUQRU7DbXtyNwN\nLY7aYEO4h9Jh+MHV905QkG2GDAUo1NTgqdcmA2UFQEgIcPQoEKo/xcKZLN3Q4qprzsQ4SofhB1ff\nO0G/XTxl7VSvsQAVVP47OpU9LqFYVgY88wxQWgpwLNXJmg0tfF1zJrbhWjoM35do7MHV9040758u\nT9mSXG8sQFUEd8XdFoFo/aBSdYNMBnz7LfD3v7N27mygDS0uTCJRFdlncbmCK+kwfCqK4UjWlkvl\nCwqyPGNrcr2xwCP38sbqv6/E7MWvQ6iQqz7kxoyx/aRZRvVdXRTTJu70aVVxfRbb1jk7HYaPRTEc\niWt7J7755hvWnouCLI+wkVxvKvDcb90eH837D/4mu4zQaZM4N1UM0IYWl6WvTZwlNYDtMApmA5+L\nYjiSq+6d4FyrO2IYG70mo7sE6PSe1VbXqg3afziTkwEWYKdZPeGgpm3iIiKA8HDzH2tjs3R7oh6x\n5mP2TgwIS0SvoGjeB1iAgiyvsLEWaXGAkkiA3FxOfWgBtjWrJxwlFgP79gFPPw0UFADDh5v/e2dj\ns3R7oj0EzRtd6vMIW2uRZu+4tOMaGRu4sqGFsKigALhyRfVvS6aMIyJUv5sSiepvS0bBdkZ7CJo3\n+jTiETbXIs0KULaukTmAsze0EJYxU8bMhV14uGomxdQ667lzjaNeiQQoLOTMcgftIWjeKMjyCNvJ\n9SYDlPYHXs+eZj0v5QISq4nFqhmT/HxVgB0+XPX7FxEBHDumP3BWVgJTpzZ+HRtr9u+qI1BRjOaN\nfqo849Dkeu0PPDN2blqdCyiRAPv3A4cPAwMHAsOGcWpqmjiQWKyaMcnNbZxJKSgA+vUDzpzR/L2o\nrFRdAJaWNt62aBHnfne4VhSDOA41CLAQVxoEyPSMFu12Jdx0bdbIiMJgucbHDG5IqqwEEhOBa9ca\nb+vcGThxgjNTfsQJJBKgVy9VgGXk5jYuWei7/+mndQPxY85sCK4+B0f+vyWcQD9dnnLoWmTTtVkD\nIwqrcgGZ0WtGBlCllb5w7VrjVDUF2uZJLFZd0PXrp9oMpb1kkZenGWA7dVLV29YTYJ3dEJxBewia\nH0rhIabFxqpGsIwrV3RSJCzOBaysBKKjgbFjdQMso7QU6NMHWLZMdTxpfgIDVRd0ubm6u9u182oN\nXJAx7Q61a+MyDcFzio33MiXEFhRkiWnMiOLpp1Vf6ykUYFEuoESimvJrOj0MAK1bA6+8AnTo0Hhb\nURGQmanqClRieCraVcjqZDhTcR45xcdxpuI8ZHUyZ5+S8zFrtNojVGbPQG4ucPas3gBrbkNwmaKW\nzTMmRI2mi4l5AgNVU3HM1N3w4RojC4tyAfPygN9/17zD01M1YgkNVY1amddh1NYCPXqoUjU42H6P\nDVyZ0uQVJgAbcKGy0Gh3F0A1or14u4C6NBG7oJEsMZ92oYANG9S5ieaUaxR6uiO6gw8glQIxMY13\nBAWp8hqZ4MlMEe7dC3g1Kav24IGq/Z4LTh3TlKZ9uHpDcMJ9FGSJ+ZqugYnFwDvvqOvEmlOuMTWy\nDURDUoHnngPc3VVB9KefNAMsQywGRoxQBfUWLRpvZ9rvuRCa0rQfV28ITriPgiwxH7MG9tlnjdV1\nmtSJNVVPOKW2rHGXcl4e0LIlkJpqPKcxNFQ1RSx6nGrh4wN07MipWsq2rqNaMqXpyuyxHh0VGA6h\nu6fRY0w1BKd1cmILWpMllhGLgQkTgC1b9Ja+M1iuUVEL9JnV+DyWVOUJDVXtNP7mG2DrVmDUKNTE\nROLsN/+EuGWAU/IdGWyso9KUpv3Wo21tCE7r5MRWFGSJ5UyUvhMFBmrmAkokwJo1wP/+13jb/PmW\nVeUJDATi4oDp0wEAvv+7iCs/fYvSqFCnfegx66jamHVUAGadU3Of0mTr+2iItQ3B7X1epHmgIEus\nY27pO307hYHG6V8LHG1Vh7DwYIQUlqMsPBh/dAkC4JwPPXPXURNDYk32xIwKDMe+gmyjU8ampjT5\nis3vozGWNgR31HkBVOvb1dFPktiGKVTBVN5hClX07asawSYna1blYR6TlGTRy8jqZMi5fQ5HlkxE\nh6IKdYB98kIJKroEoU4kZO1DzxxspobYOqXJZ45MsWEagnPpvKyu9U14g4KsC3PIFbKx0nfaZe/C\nw1WbppKSLC7grv7QEwlRGhUKT5kck2Z8qR7Vrl8yEXIRND707Fmrlu11VGunNPmOq+vRjjgvQ7W+\n5XVK9e0UaPmPgqyLcugVMpPXmp+vCrBMAG3aKs9YqzIzaH/oBRVVIKSwHAAQUliODkUVKI0KVX/o\n2XvDij3WUS2d0nQFXF2Ptvd5WVXrm/ASpfC4IOYKWbuWMHOFnH2q1MAjbaCv9J0ZZe/Mpf2hV9El\nCGXhqi5ITddn/bzEDinswEZqiD7MlOaAsET0Cop2aoB1ROqKvb6PtrL3eVlc65vwFl0iuRjOXSGb\nKHtnLu3NQXUiIdY3WZ+tEwkhdPfEU61DseL4OqPPxcbarauvozoqdYWr30d7n5dFtb4Jr9FI1sW4\n6hUy86HXVN3j9dk6kapucr/QRBTdLXFYYYcBYYlIfSpZZ8QjdPdE6lPJvF1HdXSJR0d9Hy0dmdvz\nvCyq9U14jXMj2bt37+Kjjz7C8ePH4enpiRdeeAHvvvsuPDz0n2pdXR3Wrl2LPXv24M6dOwgNDcXb\nb7+NgQMHqo9ZsmQJvvrqK43Hhfz/9u49Lqo6/x/4a4AZLuMtlYsPLgYqoKmIKOQlLxh2eaTtaroV\n1m/dS/4KWaIevyJ220wfralb2sKa7eYlw/21m9l287srWmHeQNDfFj5QYDUFkpul4ggzXM7vj+mM\nDHNhZpiZc2bm9Xw8fBRnzpz5nMNh3ud8zvvzecfEoLi42KX7IgVvvkK2JTno8/NHbdqWsxJpvO05\nqjuHrvTm6uPo6J25q9qVNC4UH35Za/WCWKX0R9K40AF9DklPdkE2OzsbCoUCRUVFaGpqQl5eHgIC\nApCbm2t2/S1btuCjjz7C2rVrMWbMGPzrX/9CdnY2du/ejenTpwMAqqurkZmZiSeffNLwPn9/65PZ\neypvv0Lu70tPikQae4aGyJ2UVWtcdRwHOqmEK9olzvVtLrtYdPf0GCY9eQFZ/QZPnz6NiooKHDx4\nENHR0UhMTMRzzz2HdevWISsrCyqVcWDo6enB+++/j6effhrp6ekAgFWrVuHYsWPYt2+fIcjW1NTg\nvvvuQ2ioZ18V2jIkx9OukB0ZZmTtS2+SOgpfn6nDt2PCDd3IfXnrxA7OINchNY6S6s7cFmKWf99R\nACqlP8fJehFZBdny8nJERkYiOjrasCw1NRUajQZVVVVISjL+Yu3p6cGWLVsQHx9vtNzPzw/Xr18H\nALS1taGxsRFjxoxx/Q64kK1DcjzpCtnpw4w0GgTdcz9+WVaGxuiR+Msfn8DNYaZ3tp6ckORqch1S\n4yi515O1ONe3DP4+yTlklfjU1NSEsD7DPMSfL1++bLJ+QEAAZs6ciZEjRxqWff311zhx4gTu+jGj\ntfrH4uD79u3DggULsGDBArz88stoa2tz1W44nb1DcvqrhiPlFbKYfFJw8GN8cOoIOrqMk08GNMyo\nosIwxWNEXSv+9/95G8qOW8+e7UlY8dXKK3IdUuMoT7gzDwoMQNrEUchIG420iaMYYL2MW3+b9fX1\nWLBggdnXVCoVFi9ejMBA4zsMpVIJhUIBrbb/WpoXL17E6tWrMXnyZCxduhQAUFtbCwAYNmwYtm7d\nivr6emzYsAG1tbXYvXs3FAqFxe0VFBSgsLDQ1t1zCUeH5MjxCllMPuno0uG7Fg2EQQJuqM8i5GYs\n1O1xRus6NMyozxSPYZeakXkjHN9NnGxXwoovV16R65AaR3nbnTl5Hrd+44aHh2P//v1mX/Pz80NR\nURF0OuOs187OTgiCgJCQEKvbrqysxKpVqzB8+HBs27YNSqX+anz58uXIyMjA8OHDAQAJCQkYOXIk\nli9fjjNnzmDixIkWt5mdnY3s7GyjZdYuFFzBniE5RpVvcOsKWQ56J5+0d3RBEAQAgKDohkatvxDq\nHWgt7ZNV4hSPc+boC8EDSHz9bSSWlNg8jSMrr3jXFI++XHyB5MGtQVapVFp9NhoREYGSEuMvuObm\nZgD6AG3JkSNHkJ2djcTERGzbtg1Dhw41vKZQKAwBViQ+w21sbLQaZOXAG4bk9E0+6e4RTNa5GXIB\nwR0x8BNunZIO7VNYGPDGG8C99+p/rqi4VbDAznaaI1WSjLt5y9Akb7szJ88jq2eyKSkpqKurM3r+\nWlpaCrVajcRE81ea5eXlePLJJ5GWloadO3caBVgA2LBhA5YsWWK0rLKyEgA8IhnKG4bk9E0+8fcz\n7aIXFN3QqpqMljm8T7Nn6+dMBowLFtjZTnOcNZGFJ5DTFI8DIdmkIRqNfkpRjWdkYpNryOoJe3Jy\nMqZMmYLc3Fy8+OKLaG1txaZNm7By5UrD8B2NRoObN28iNDQUOp0Ozz77LG6//Xa89NJLaGtrMyQ0\nqVQqDB06FBkZGXjnnXewceNG/OxnP0NdXR1efvllLFq0CLGxsVLurk08YUhOf8Nw+iafBAcFQNGm\nMHQZi3r8bj13H9A+9S4q37tgQT88IUmGHOP2O3ONBkhP1yfipabqz0c7K0+Rd5BVkFUoFCgsLMSa\nNWuQmZkJtVqNZcuWISsry7DOjh07UFhYiHPnzqGsrAyNjY1obGzEvHnzjLY1Y8YM7Nq1C1OnTsWb\nb76JgoIC/O1vf4NarcYDDzyAZ555xs175xi5D8mxZRhO3+QTP4UCQ9QqXLthnMzm13PrC2/A++TA\nnMlMkvFubp00pFemO8rKbH5kQd5HIfS9nSCrxMSnQ4cOISoqym2fay6YST1o3VI9TJE4XKijswN/\nOFxo0hV7XaPDdY0OgiBAIfhjxPdzERQQKNk+WWpnbyp/JfLnZnts1ym5Ce9k6UeyupMly+Q2JMe+\noUXmk0+GqFUYFKJEe0cXEtRTMH3qHZLuE5NkyGnUauCTT4C//x342c8YYH0Yg6wHkdOQHHuHFlka\nFhIUoMK9k+a5b1iIRqPvyktJMfvF503DV0hCGg1w//36c+2dd/RDyxhofRKDLDnEkaFFkg8LsbEL\nT/J2kuc7ckQfYAH9f48eBRYulLZNJAkGWXKIo0OLJK1Y0zcZZccO4Be/MBtovamyDhFJR1bjZMlz\nJI0LNZkbuS+phxaZSEm5NX5WrQZ+8xv9nS3HMZKzzZ6tP98A/X9nzZK2PSQZBllyiDi0yBq5VPsx\nEMfP/ulPtwKrOLyCyJnEKT4PH+bzWB/HIEsOk3O1H4vUan0XsQMzQhHZRRyrzQDr02R0m0GeSG5D\ni2zSd0YoQH/HYSHjmIjIUTL+JiRPIaehRTYT7zL6ZBy3/88B/Oe7mxaniCRyRH9Tj5L34m+ZfFuf\njONd695Fdcytykx9p4gkstmPY7IP9YTiQGWr1alHyXvxmSz5tl4ZxxdjEvFtuHFlJl1nN/Yfu4Di\n0otStI48ldhDMncuxv6vJcAN4+ITPK98B4Ms+Ta1Gu3/cwBvPl2ArU++Dl1gsNnVDp68hA5tl5sb\nRx6rVw/J6EtnEdlQY3Y1nlfej0GWfN5/vruJ6piJFgMscGuKSCKbpKSgbeIUAPoekobIcWZX43nl\n/fhMlnxef1NE9ig6oQ1sRlnjdfjdNhqTwhIQpAxyU+vII6nVKCv4G858UIyGyHFWL+BsnaKUPBOD\nLPk8a1NEaoLP42bIBQiKblRrgtBw5gw+OVs8oGIBHZ0d+Kb5HNq0NzA4cBCDtpdSjxyGC3GT+13P\n1ilKyTMxyJLbyW04Q9K4UHz4Za1JVSFN8Hlo1LUAAIVCgeAgfRt13Z2Gcnj2BtrPzx8zqfAz0KBt\nLwZ597B0XvUmu6lHyekYZMmtQc9c8XmphzOIU0T2LkDfo+jEzZBbPw9Rq+CnUBi978sLxzAzJsXm\n6jyfnz9mtlbtQIK2veQQ5PuS20WXs5g7r/qS3dSj5HT87fo4dwa94tKLZr9wxOEMACQLtOLnisdC\nG9gMQdENhUKBIWqV2S49XXcnKpvO2lStp6OzA19eOGZ1HXuDtr3kEOT7kuNFlzP1Pa9EKqW/1+wj\nWccg68PcGfTatV04ePKS1XUOnryEu6ZESnZl33uKyLLG66jWBCE4KMDkDra361rbKvh803zO6O7R\nHHuCtr3kEOT7kvNFlzN55NSj5DQcwuOjbA16zhrD95+aFqvPpgB5DGcQp4i8c/xoqIOVVgMsAAwJ\ntG2u4zbtjf5Xgu1B2172BHl3cPf5JzXxvMpIG420iaMYYH0Ig6yPcnfQs3WYglyGM0wKS4DKX2l1\nHZW/EhPDE23a3uDAQTatZ2vQtpfUQb4vT7noIhooBlkf5e6gZ+swBbkMZwhSBmFWdBo07Z24rtFB\n096JHkEwWmde7Eybu1adHbTtJXWQ78vTLrqIHMUg66PcHfSSxoWa1J3tS07DGYpLL+LzA4D2chSu\nt3Xh++sd+K5Fg+saHVT+SiwcO9euJKEgZRDmxVpf356gbS+pg3xfnnbRReQoBlkf5e6gJw5nsEYu\nwxnEhBxdZzfU7XEY8f1cDG67AyE3xqDn8ljcGfKgQ1m46XEzsXDsXJNg50jQtpfUQb4vT7voInKU\n9N9oJAkpxvB5wnAGcwk5fkIAgrWRhp9LKhqRPjXWoWOTHjcTM2NSUNl0Fte1GgwJVGNieKJbgpsY\nxPuOk1X5K90+TpZjSMlX8Az2YVIEPbkPZ7AnIceoUP2PtUORkqIvCG9FUECgS4bp2ELKIN+XJ1x0\nEQ2UPL7ZSDJSBD1xOIMcOZSQI9YOLSvT16b9/PN+A62UpAzyfcn9ootooHgmk6yDnrs5lJDTq3Yo\nysqAU6eAu+5yQeu8E88/8mZMfCLqxaGEnJQU/R0soP9vQgJw+LD+DpeIfBqDLFEvDmVBq9X6LuLD\nh4FPPgEWLQLmztV3ITPQEvk02QXZK1euICcnB9OmTcOMGTOwadMmdHVZn1ptxowZSEhIMPq3detW\nw+sXL17EL3/5SyQnJ2Pu3Ll4++23Xb0b5MEy0kbj/pmxJne0KqU/7p8Zaz4hR63WdxGfPWvadUxE\nPkt2z2Szs7OhUChQVFSEpqYm5OXlISAgALm5uWbXb21txffff489e/Zg9OhbX37qHxNPdDodfvWr\nX2H8+PF4//33UVVVhRdffBFDhgzB8uXL3bJP5HkcTsgRu47FJKipU93TYCKSJVkF2dOnT6OiogIH\nDx5EdHQ0EhMT8dxzz2HdunXIysqCSmWalFJTU4OAgAAkJSVBqTSd0ebAgQNobW3F+vXroVarMXbs\nWFy8eBHbt29nkCWrHErIEbuOT53SB1gxy9iOIT62YvF1IvmTVZAtLy9HZGQkoqOjDctSU1Oh0WhQ\nVVWFpCTTYQfV1dWIjo42G2DFbU6cONFwZytus6CgAK2trRg5cqTzd4R8m9h1LOo9xCclBXjlFWD2\n7AEFWzkWX3clT7yg8NZi9GQfWf3Gm5qaEBYWZrRM/Pny5ctmg6x4J7tq1SpUVlYiPDwcjz/+OH7y\nk58AABobG61uk0GWXK73EJ+KCuDeewc0nlaOxdddSfYXFGZ6Kby9GD3Zzq1Btr6+HgsWLDD7mkql\nwuLFixEYaDzzjFKphEKhgFarNfu+2tpaXL16FTk5OcjNzcXhw4eRn5+P7u5uLF26FB0dHRg+fLjJ\nZwGwuE1RQUEBCgsLbd09IvN6P6cVOTieVo7F111J9hcUZiYiKa5s9Yli9GQbtwbZ8PBw7N+/3+xr\nfn5+KCoqgk5nPONOZ2cnBEFASEiI2fft3r0bOp0OgwbpS3klJiaioaEBu3btwtKlSxEUFGSyTfFn\nS9sUZWdnIzs722iZtQsFIrPE57RHjwL5+fq7HgeTouwpvi6XWZ36Y6kr2B0XFAPuhu4zEUnHiZM4\nWGV9nPXBk5dw15RIzmrlI9z6W1YqlRgzZozF1yMiIlBSYnzV2tzcDEAfoM1RqVQmCVHx8fH4PcZi\n0gAAFwlJREFU7LPPDNu8cMH4qrK/bRI5nVoNLFwIzJplmhQF2JwYJbfi6wNlrSt4cKDapRcUTumG\n7pNN/vXgaOg666y32dzc1+S1ZDVONiUlBXV1dbh8+bJhWWlpKdRqNRITTetcdnV1Ye7cudi5c6fR\n8srKSowdO9awzcrKSrS3txttMzY2FiNGjHDRnhBZICZF9Q2w6ek2TWAht+LrAyF2BfcNpGJX8Mn6\n/2fTdhy5oOjvsz8/b/0O2qD3RCSff46rgm33LSxG7ztkFWSTk5MxZcoU5Obm4syZMygpKcGmTZuw\ncuVKw92qRqNBS0sLACAgIADz58/Htm3bcOjQIcPQnI8//hirV68GAGRkZGDo0KF49tlnUV1djU8/\n/RTbt2/HE088Idl+EhkxN/exBXIrvu4oW7qCa77/Fj1CT7/bsveCwtZu6I4u6zkbBmo12lNn4MSF\n6zjfcA032jvR0yNYfQuL0fsOWT0UUCgUKCwsxJo1a5CZmQm1Wo1ly5YhKyvLsM6OHTtQWFiIc+fO\nAQDy8/MxdOhQvPLKK2hubkZcXBy2bNmC2bNnAwCCgoLw9ttvY82aNXjooYcwYsQI5ObmYsmSJZLs\nI5EJOyawEIuvm0sGErmz+Lo5tjzntOXZstIvAJ3dXQgMsByQHLmgcPZz7d6ZxD0CcLVNi6ttWgxR\nq8wGUxaj9y0KQRCsX3KRETHx6dChQ4iKipK6OeQtNBrzz2otMPc8UYri64626/PzR3Gg9nC/24sZ\nGolL1xosvr5w7Fy799fWz7Zl28WlF00yia9rdLh2Q98dPHSQaaC1ODUneSVZ3ckS+ay+E1j0Q07F\n10X2DLex9dlyalQSEkPHOvWCwlnPtdu1XTh48pLp+34Mqtc1OlzX6DAoWAk/PwWL0fsoBlkiJ3Ln\nLD9i8XXxMw/XN7p1ZqHe+xoUBHzectTq+r2H20wKS8AnZ4uh6+6EskOHyJoGNIyLRGeQyvBzS8Lt\n+gsHbRdmXbyJMzGDcF2rQcS5i7j97p8gaOhwq59nSe/PtsSWbuj/1LQYTTbR2xC1CoNCVGjv6MSE\n2BGYEh/KYvQ+ir9xIieRYpYfqWYW6vu57UENuDH4qsXnkECv55zDxiKoogJ3D05E9cEPcM+uYkTX\nNOBSQhR2rX0cP//9bsScq8e1yeMRlPorYNEiBJaVYWpKin5DFRVA6lsOz5jlrOfa/WUI+ykAdbAS\ncZFDOVzHhzHIEjmBuWdzgGtn+RE/U6Vtx7gL30AhAN/GTYIOwS6dWcjcvvb4aSEIAq7d0Gfk9g20\n4t3pzWF1wJIngLIyzFGrMafXcKWYc/WY9OXXiDlXDwAY+nUVtHv+LwJ7T0kpcnDGLJHYzWyxGzo8\nCfj3v/ULLcwzbWuGMDOJfRuDLNEAWXo215uzZ/kRP1OlbUfWn59GTH01AOBSVDz+nLUFusBgl8ws\nZGlf/Xpu3fVd1+gwKEQJP4UCgD7A/vq5txFzrh43xxQD//1Wv2Kf8cDXJo9H7Kpn0FPeBL+TJ3F1\nQhLeaI/Fz2MSMfrSWVyKiodCoUB03TnrWdjixB6Jifr6vhYm+LD4XFvbpR+zLAb1lBSgpMRkG0nj\nQvHhl7UWu4wBZhITgyzRgFl7Nidy9iw/4mfG1lcbAiwAxNRXI7KhBhfiJhs+MynhNqdVsLG0r4Ha\nMNxQn4Wg6IYgCGjv6II6WD+eN7KmwXB3GvLfb4Hx44GqKn3Q0mj0QewPf8DQWbMwRa0GvvgCJ4v2\nY+8Pg6ALDMbWJ19HZEMNGiLH6bfXUIM7lmZggbmu4t5zCYvbt1KMQXyubeRYqfFdc0WF2bvm4MAA\n3D09xmwPhuju6TF8Duvj+NsnGiBbZ+9x5iw/4rYaouJxKSre6E5WDEYAcLLxJD5rqnZaBRtL++An\nKBFyMxYadS0AoLvXZAwN4yJxKSFKH2hTU4FPPgHOnQMSEvT/7TNsqT0gEHs7I6AL1AdzXWAwLsRN\nNrx+IW4yGipbMWtGl2kA6z2xh3inbG/XckqK/l/vO1kLd81id3zf5+LMJCYRgyzRAEnxbE7cli4w\nGH/O2oLR31bqn8nGToQuMBgAoAk+j3OaesMdpWggFWys7YO6PQ4AcDPkAvz9FIblCrUa5/fuQswP\nqlsBVSw/2acMJTDAnoHeE3v0vpO1pxiDWq3vHj76Y7b0rFlWE6wy0kbjrimRJlnlvIMlgEGWaMCk\neDbX+zN1gcGoSZhu9HqPohPtg77FsCDL3cKOVLDpb1/V7XEY2hWLn84Zho6edofG7w6oZ0CcS/jU\nKYt3yjYRCzrYKCgwgBnEZJas5i4m8kTiszlrnP1srr/P1AY2Y7Da35B8ZI44pMaZnwsAC6fHYebt\nyUiPm4lpkUl2T5Ax4J4BcWKPsDDTYgxEbsYgS+QEGWmjcf/MWKiUxrVEVUp/l02jZ+0z7xg32KZg\n5UgFG1fva9K4UJNt98WsXfIU7C4mr+XO2ZcAaZ7NWfrMb1rP4IMzZ/p9v6Ml8Vy5r8zaJW/Cs5S8\nklQzIUnxbM7cZzpr6kB7P9dZmLVL3oJBlryOFLMvyY0nlMTrD7N2yRvwbCWvIsXsS3LV79SBEpbE\nsxWzdsnTefe3DPkcKWZfkjM5lsQj8iUMsuRVpJh9Se7MTh1IRG7BITzkVVgZhYjkhEGWvArHWBKR\nnDDIkleRYvYlIiJL+E1DXodjLIlILhhkyStxjCURyQG/cchrcYwlEUmNz2SJiIhchEGWiIjIRRhk\niYiIXIRBloiIyEWY+EREXsPdNYSJ+sOzj4i8glQ1hImskV2QvXLlCtauXYujR49CqVRiyZIlyM3N\nRUCA+aYmJCSYXa5QKHD27FkAwMaNG7F9+3aj12NiYlBcXOzcxhORJFhDmORKdkE2OzsbCoUCRUVF\naGpqQl5eHgICApCbm2t2/SNHjhj93NLSghUrVuCxxx4zLKuurkZmZiaefPJJwzJ/f+vz2xLJAbs/\n+8cawiRnsjrjTp8+jYqKChw8eBDR0dFITEzEc889h3Xr1iErKwsqlWnllNBQ44neX3jhBcTHxyMn\nJ8ewrKamBvfdd5/JukRyxu5P27CGMMmZrIJseXk5IiMjER0dbViWmpoKjUaDqqoqJCVZr4n5xRdf\n4NixY9i3bx/8/PSJ021tbWhsbMSYMWNc2nYiZ5K6+9OT7qBZQ5jkTFZ/NU1NTQgLCzNaJv58+fLl\nfoPsG2+8gUWLFiExMdGwrLq6GgCwb98+PPvsswCAOXPm4JlnnsHgwYOd2Xwip5C6+9PT7qBZQ5jk\nzK1Btr6+HgsWLDD7mkqlwuLFixEYGGi0XKlUQqFQQKvVWt12WVkZzp49i9dee81oeW1tLQBg2LBh\n2Lp1K+rr67FhwwbU1tZi9+7dUCgUFrdZUFCAwsJCW3aNyGmk7P6U+g7aEUnjQvHhl7VWjxlrCJNU\n3Bpkw8PDsX//frOv+fn5oaioCDqdcZdOZ2cnBEFASEiI1W1/9NFHmDZtmkm38PLly5GRkYHhw4cD\n0Gcjjxw5EsuXL8eZM2cwceJEi9vMzs5Gdna20TJrFwpEziBV96fUd9COEmsIm7s4ELGGMEnFrWed\nUqm0+mw0IiICJSUlRsuam5sB6AO0JYIg4IsvvsDq1atNXlMoFIYAK4qPjwcANDY2Wg2yRFKQqvvT\nkxOIWEOY5EpWl3YpKSn44x//iMuXL2PUKP0fcWlpKdRqtdFz1r7Onz+PK1eu4M477zR5bcOGDSgt\nLcW+ffsMyyorKwGAyVAkS1J1f3p6AhFrCJMcyWru4uTkZEyZMgW5ubk4c+YMSkpKsGnTJqxcudIw\nfEej0aClpcXofVVVVVCpVIiNjTXZZkZGBs6ePYuNGzfi4sWLOHLkCPLz87Fo0SKz6xNJTez+tMYV\n3Z/ekEAk1hDOSBuNtImjGGBJcrIKsgqFAoWFhRgxYgQyMzORn5+PZcuWISsry7DOjh07MHv2bKP3\ntbS0YMiQIWaTmKZOnYo333wTZWVlePDBB/H8888jPT0dr7zyisv3h8hRGWmjcf/MWKiUxpOmqJT+\nuH9mrEu6P5PGhZp8Xl9MICKyj0IQBEHqRngSMfHp0KFDiIqKkro55OU6zIxXdeXdmaXsYpGrAjyR\nt2JfCpGMid2f7sIEIiLnYpAlIiNMICJyHv7VEJEJd99BE3krWSU+EREReRMGWSIiIhdhkCUiInIR\nBlkiIiIXYZAlIiJyEQZZIiIiF2GQJSIichEGWSIiIhfhZBR26u7WTzXX2NgocUuIiOQhIiICAQEM\nJ+bwqNhJLLOXmZkpcUuIiOSBBVMsYxUeO3V0dKCyshKhoaHw97deFsyXiJWJqH88VrbjsbKdlMeK\nd7KW8ajYKSgoCNOmTZO6GbLEK1nb8VjZjsfKdjxW8sPEJyIiIhdhkCUiInIRBlkiIiIX8V+zZs0a\nqRtB3iEtLU3qJngMHivb8VjZjsdKfphdTERE5CLsLiYiInIRBlkiIiIXYZAlIiJyEQZZIiIiF2GQ\nJSIichEGWbLblStXkJOTg2nTpmHGjBnYtGkTurq6rL5nxowZSEhIMPq3detWN7XYfbq7u/Haa69h\n9uzZSE5Oxm9+8xu0trZaXP+bb77Bww8/jKSkJCxcuBD//Oc/3dhaadl7rHJyckzOoZ///Ofua7BM\n/P73v8dvf/tbq+v48nklOwKRnR555BHh0UcfFaqqqoQvv/xSuPPOO4XXX3/d4votLS1CfHy8cPLk\nSaG5udnwT6PRuLHV7rF582Zh1qxZwpEjR4TKykph2bJlwsMPP2x23StXrgipqanC2rVrhdraWmH3\n7t3ChAkThK+++srNrZaGPcdKEATh3nvvFd566y2jc+jq1atubLG0enp6hC1btgjx8fFCfn6+xfV8\n/bySGwZZssupU6eE+Ph44dKlS4Zl+/btE5KTkwWtVmv2PceOHRMmTJgg6HQ6dzVTElqtVkhOThY+\n+OADw7K6ujohPj5eqKioMFl/27ZtQnp6utDd3W1YlpeXJ6xcudIt7ZWSvcdKq9UKEyZMEI4fP+7O\nZsrGpUuXhBUrVghpaWnCvHnzrAZZXz6v5IjdxWSX8vJyREZGIjo62rAsNTUVGo0GVVVVZt9TXV2N\n6OhoKJVKdzVTEmfPnoVGo0FqaqphWVRUFCIjI1FeXm6yfnl5OaZPnw4/v1t/hqmpqTh16hQEL58j\nxt5jdf78eXR1dWHMmDHubKZsnDp1CqNGjcInn3zSb6UdXz6v5IhBluzS1NSEsLAwo2Xiz5cvXzb7\nnpqaGgQEBGDVqlWYNWsWlixZ4pXPiBobGwEA4eHhRsvDwsIMr/Vd39y67e3t+OGHH1zXUBmw91hV\nV1dDqVSioKAA8+bNwz333IPNmzdDq9W6pb1Se/DBB7Fx40aEhob2u64vn1dyxHqyZKS+vh4LFiww\n+5pKpcLixYsRGBhotFypVEKhUFj8wqutrcXVq1eRk5OD3NxcHD58GPn5+eju7sbSpUudvg9SaW9v\nh5+fn8kdu0qlMntsOjo6oFKpTNYFAJ1O57qGyoC9x6q2thYAEBcXh8zMTFRXV+PVV19FY2MjNmzY\n4JY2ewpfPq/kiEGWjISHh2P//v1mX/Pz80NRUZHJH2pnZycEQUBISIjZ9+3evRs6nQ6DBg0CACQm\nJqKhoQG7du3yqiAbFBSEnp4edHV1ISDg1p+WTqdDcHCw2fX7HkvxZ3PrexN7j9XTTz+NX/ziFxg2\nbBgAICEhAf7+/sjNzUVeXh5uu+02t7Vd7nz5vJIjBlkyolQqrT73ioiIQElJidGy5uZmAKZdfyKV\nSmVyZR0fH4/PPvtsgK2Vl1GjRgEAWlpaDP8P6I+PuWMTERGBlpYWo2XNzc0ICQnB4MGDXdtYidl7\nrPz8/AwBVhQfHw9A3z3KIHuLL59XcsRnsmSXlJQU1NXVGT1/LS0thVqtRmJiosn6XV1dmDt3Lnbu\n3Gm0vLKyEmPHjnV5e90pMTERarUaZWVlhmX19fVoaGjA9OnTTdZPSUlBeXm5UTJKaWkppk6dapS0\n4o3sPVY5OTnIysoyWlZZWQmVSoWYmBiXt9eT+PJ5JUesJ0t2iYiIwJEjR/Dvf/8b48ePR1VVFdau\nXYvHH38cM2fOBABoNBpcu3YNarUafn5+uHjxIt577z3ExcXB398fH3zwAXbt2oV169Z51Rekv78/\n2trasH37dowbNw43btxAfn4+Ro8ejaeeego6nQ7ff/89lEol/P39cfvtt+Ovf/0rGhoaEBMTg88+\n+ww7d+7EmjVrjLK3vZG9x0oQBGzbtg1qtRojRozA8ePH8corr2DFihWYM2eO1LvjVh9++CGGDh1q\nyJ3geSVzUo4fIs/U3NwsPPXUU0JSUpIwc+ZM4bXXXjMak/enP/1JiI+PN/ys1WqF119/XZg/f75w\nxx13CIsWLRIOHDggRdNdrrOzU1i/fr2QmpoqTJ06VcjJyRGuXLkiCIIgnDhxQoiPjxdOnDhhWP/0\n6dPC0qVLhYkTJwoLFy4UPv30U6ma7nb2HqsPP/xQeOCBB4RJkyYJ8+bNE7Zu3Wp03vmKFStWGI2T\n5XklbyzaTkRE5CLsoCciInIRBlkiIiIXYZAlIiJyEQZZIiIiF2GQJSIichEGWSKJuCKxn4MFiOSF\nQZZIAl988QWef/55p27z9OnTWLVqlcXX9+zZg4yMDKd+JhFZxyBLJIF33nnHYmlAR+3du9dQraav\nAwcOYP369U79PCLqHwsEEHmxa9euoaCgAEVFRRgyZIjUzSHyObyTJXKzxx57DMePH0dZWRkSEhJQ\nWlqKH374Ab/73e8wY8YMTJ48GY888ggqKiqM3nf06FEsX74cycnJmD59Op566in897//BQDk5eVh\n7969aGhoQEJCAvbt2wdAX2awuLgYmzdvRnp6utv3lcjXcVpFIjerra1FXl4euru78dJLL2Hs2LHI\nzMzElStXkJOTg9DQULz33ns4evQo9uzZg8mTJ6Ourg4PPPAAli5dioULF+LatWvYvHkzurq6UFxc\njLq6Oqxfvx7ffPMNCgsLERMTg+HDh+PChQuIjIyESqVCXl4eKioqUFxcLPUhIPIZ7C4mcrOxY8di\n0KBB6O7uxpQpU/CPf/wD586dw/vvv49JkyYBAObMmYOHHnoImzdvxs6dO/H111+jo6MDq1atMtRb\nHTVqFA4dOgSNRmMIqiqVClOmTDF8VmxsrCT7SER6DLJEEjt+/DjCw8Mxfvx4dHV1GZbPnz8fb731\nFnQ6HZKSkhAYGIiHHnoI9957L+bMmYO0tDRMnjxZwpYTUX8YZIkkdvXqVTQ2NuKOO+4w+/oPP/yA\nqKgoFBUV4S9/+Qv27t2L3bt3Y8iQIXj00Ufx9NNPQ6FQuLnVRGQLBlkiiQ0ePBhjxozBhg0bzL5+\n2223AQAmT56MwsJC6HQ6VFRU4O9//zu2bduGCRMm4J577nFnk4nIRswuJpKAv7+/4f+nT5+O7777\nDmFhYZg0aZLh36FDh/Duu+9CqVTi3XffRXp6OnQ6HVQqFWbMmIF169YBgGG8be9tEpE8MMgSSWDw\n4MG4cOECjh8/jrvvvhvh4eFYuXIlPvroI5w4cQKvvvoq3nzzTURHR0OhUODOO+9ES0sLsrKyUFJS\ngiNHjuCFF15AYGAg5s+fb9hma2srSkpK0NzcLPEeEhHAIEskiUcffRRKpRK//vWvcfr0aezZswdJ\nSUl49dVX8cQTT+Crr77Ciy++iOzsbADAuHHj8NZbb+HGjRt45plnsHr1aly9ehU7duzA6NGjAQA/\n/elPERkZiaysLHz88cdS7h4R/YjjZImIiFyEd7JEREQuwiBLRETkIgyyRERELsIgS0RE5CIMskRE\nRC7CIEtEROQiDLJEREQuwiBLRETkIgyyRERELvL/AYmV4Zf7iawxAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"draw_boundary(power=6, l=0) # no regularization, over fitting,#lambda=0,没有正则化,过拟合了"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nLCGEECKQ/w/oZEhiy3ciggAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"draw_boundary(power=6, l=100) # underfitting,#lambda=100,欠拟合"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"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.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 1
}