Professional Documents
Culture Documents
Bai 7 - Thu Vien
Bai 7 - Thu Vien
X: 5000x400 là 5000 ảnh nhị phân chữ số viết tay có kích thước 20x20
- Đọc dữ liệu, reshape một số ảnh về kích thước 20x20 rồi show ra màn hình
(plt.imshow)
- Chia dữ liệu thành 70% train, 30% test (train_test_split) đảm bảo tính ngẫu nhiên và
đồng đều về nhãn.
+ Hệ số regularization: 0.1
BÀI 7:
CODE:
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"gpuType": "T4"
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "4apjFLa4Svmr",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 822
},
"outputId": "5b72905e-3335-4d18-8e4c-7bff3b6bec19"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1000x400 with 10 Axes>"
],
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAxsAAAFBCAYAAAAfVLJxAAAAOXRFWH
RTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRw
bG90bGliLm9yZy/
bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAApKklEQVR4nO3debjddXU/
+m/
MDBlIHkISpoYgEgIog2EqBBDhoUDFFhEhhCEURNBgKTJIBOERaxkakaGMFrBAa
QgtoiJSxjIqQhhkDoOFEFJIyDxC7h/ee/u79/msRbLJ5+Sck9frz7VcZ++z93d/9ndxHt/
psnz58uUNAADAKvap1f0EAACAzsmyAQAAVGHZAAAAqrBsAAAAVVg2AACA
KiwbAABAFZYNAACgCssGAABQRbcV/R/269ev5vOgg5ozZ06bPE7//
v3b5HHoWGbPnt1mjzVgwIA2eyw6jlmzZrXJ4/
Tt27dNHoeOZe7cuW3yOO4BKVnRe0B/
2QAAAKqwbAAAAFVYNgAAgCosGwAAQBWWDQAAoArLBgAAUMUKR9+yY
j766KNi/cMPPwxnunbtGvY+9Sn7IJ/
c8uXLw96yZcvCXnRtui6B9ij6rs3OwOw7uEuXLp/
4OcGazh0DAABQhWUDAACowrIBAABUYdkAAACqsGwAAABVSKNqQZYs1ad
Pn2J90KBB4cyMGTPC3oIFC4p1aUBrriwdJUqW6t27dziz6aabhr3p06cX63PmzAlnun
VzrHR2S5cuDXuLFy8u1rPrNjvPevXqtdI/
j84tu16GDBlSrGeJU2+99VbYi1KssueQJV/
RvkTnSJQs2jT5+Zf1WhE9v+w7vT1em+5YAQCAKiwbAABAFZYNAACgCssGAAB
QhWUDAACowrIBAABUIaMysGTJkrC35ZZbhr0JEyYU61/4whfCmfvuuy/
snXHGGcX6G2+8Ec5079497NHxZdF6AwYMKNaPP/74cObMM88Mez/
96U+L9QsuuCCcmTZtWtgTV9pxZBHfW2yxRdjbfffdi/UsSjKL/
77rrruK9UWLFoUz4pc7vuz6y97fiy66qFjfaaedwpnLLrss7F1//
fXFenbNZjG71JF9t2Rxr9H3aRYtO2rUqLC3zTbbFOvZ+Zc99+icu+2228KZ+fPnh73s
2qwZi+svGwAAQBWWDQAAoArLBgAAUIVlAwAAqMKyAQAAVGHZAAAAqlgj
8gGzOK/FixcX65/5zGfCmYkTJ4a9XXbZpVh/
7733wpl99tkn7N1///3F+rXXXhvOZL+v6NH2JYp3zGIfhwwZEvaOOeaYYv2oo44KZ7
KYvIMPPrhY79GjRzgzfvz4sJf9Xq7N1SM6L7Lox9NPPz3sHXTQQcX6smXLwpm5c
+eGvauvvrpY/9nPfhbO/PGPfwx7n/qU/8bWnkTXX9+
+fcOZb33rW2EvimWOYsGbJj7nmqZpJk+eXKxnEd9ZNG/
NeNHOLvuOyCLhM9tvv32xPnbs2HAmu2cbNmxYsd7qfVl0bm6yySbhTHaPOm/
evJaexyfl1AUAAKqwbAAAAFVYNgAAgCosGwAAQBWWDQAAoIpOk0aV/T/
9u3btGvb23XffYv073/lOOPPnf/7nYS9KRHjppZfCmaz3gx/
8oFhfuHBhOHP99deHvSxFiDqyBKaNNtqoWN9rr73CmW9+85thb/
DgwcX6okWLwplf//rXYS9KV9twww3DmSztJ3stqKeV8/
Giiy4KZ774xS+GvVmzZhXr3bt3D2ey3nHHHVesT5kyJZx5/
fXXw540qjqyJJvs+ovS8EaMGBHOjBkzJuxFZ+CCBQvCmShBqGma5vjjjy/Wf/
jDH4Yzc+bMCXtS91r30Ucfhb311lsv7I0ePTrsff/73y/W119//ZaeR/
betyI6G7/0pS+FM5MmTQp7zz333Eo/
1qrg1AUAAKqwbAAAAFVYNgAAgCosGwAAQBWWDQAAoArLBgAAUEWnib6
NImebpmlGjhwZ9q688spifdCgQeHMb3/727A3cODAYj2K48ueQ9M0zR577FGsZ9Gj
4kXb3uLFi8NeFB/bNHG08Wc/
+9lwppVo2Sz2MYvJ23TTTYt18Y0dy5IlS8Le5ptvXqxn12AWkRjFQv7mN78JZ4YPH
x72Ntlkk7BH+5HFgfbq1SvsjRs3rljP4kr79esX9qKzqZVrtmma5vDDDy/
W77nnnnDmzjvvDHs140U7i+j9yK6jM844I+wdccQRYS+KZc6uiez7L/
rnBV599dVwZsaMGWEv+hwsW7YsnGmP/
GUDAACowrIBAABUYdkAAACqsGwAAABVWDYAAIAqLBsAAEAVHSr6Not03
WijjcLexIkTw97QoUOL9SzW7tRTTw17O+ywQ7H+/
PPPhzOPPvpo2Dv66KOL9SwWcMiQIWFv5syZYa9r165hjzw+NIu3/cd//
MewN2LEiGJ9ypQp4UwW+xhFiGbve/
Z7RTGNUVwgq08WhfjFL34x7F188cXFehb//cYbb4S9008/vVh/
6qmnwpkLL7ww7H3mM58Je7Qf2Tmy7rrrhr2xY8cW65///
OfDmSxqPPo+veuuu8KZL33pS2Eveh677757OJPdPzg7P150r5edY/vtt1/
Yy+Lio4jbm266KZx58cUXw96BBx5YrGcR81n092677Rb2OhJ/
2QAAAKqwbAAAAFVYNgAAgCosGwAAQBWWDQAAoArLBgAAUEW7jL6NYs
/WW2+9cOass84Ke1G8aNM0zRVXXFGs//
rXvw5nstizF154IexFskjfpUuXFus77bRTOJNFBv7yl78Me6Jv/
ySKwtt1113DmYsuuijsbbHFFmHvvvvuK9ZPPPHEcCaKimyapjn44IOL9bPPPjucefrpp
8Pe9OnTi/
UsSpDVI4vUjCK5m6ZpBg8eXKx36dIlnMnOuTvuuKNYz+JPW4mmpO1l18QXvvCF
sHfEEUeEvc0337xYf+KJJ8KZ2267LexF11/0Xdo0TfO1r30t7EXX5tZbbx3OZN+l2fPI
Xt/OJjuvovj+c889N5zJorpnzJgR9qLY7ewae//998PejTfeWKzPnj07nNl///
3D3qGHHlqsd+vWLm/
fQ+4YAACAKiwbAABAFZYNAACgCssGAABQhWUDAACool3+39mXLVtWrO+z
zz7hzGGHHRb2JkyYEPYuvfTSYj1LR1nVqU1LliwJe1ESS5ZE0KtXr7CXJUCsSbLXI
Xpts8Sz4cOHh70rr7wy7F188cXFepaecf/994e9KG0sSw9avHhx2Hv+
+eeL9a222iqcYfXIUu3WX3/9sBedMdE53DRN8x//8R9hr2fPnsX6X/
7lX4YzO+64Y9iLfi/pefVEr/mAAQPCmfHjx4e9/fbbL+zNmzevWH/
qqafCmQsuuCDsRYlOUepV0+SJZ1Fvo402Cmeyx5oyZUrY6969e9jriLJ0rUWLFoW9
Aw44oFiPUqqaJv9OnzRpUtj7yU9+Uqz36dMnnMnuv6LUqehcbJqm2XPPPcPeOuusU
6y/
99574Ux75C8bAABAFZYNAACgCssGAABQhWUDAACowrIBAABUYdkAAACq
WG3Rt1nU3NChQ4v1b33rW+FMFNHZNE1z4403hr0o3jGLNsvi3FqRRVa2Ious5E+y
mLw99tijWN9mm23CmXPPPTfsTZw4Mez16NGjWM+uv9/97ndhr5WoZDqO7KzYc
MMNw94OO+yw0o91yy23hL2777477EXn4yGHHBLODBo0KOxFEY9ZPPSqPqP5k
yyiOIt7jeJtmyY+O6+66qpwJot3jz4j2Zmf3Y9E36eTJ08OZ15+
+eWwtyadxdnr2q9fv7C37bbbFutrrbVWOBPFvjdN/
h289tprF+utniHRP5uQXX8LFiwIe9lr2JH4ywYAAFCFZQMAAKjCsgEAAFRh2QAA
AKqwbAAAAFVYNgAAgCraZfTtVlttVawPHz48nLn88svD3qxZs8JeFEPXauxZFG+2
dOnScGbTTTcNextvvHGx/
uCDD4YzTzzxRNiLolY7o+w132677cJeFMXYp0+fcGbx4sVhL7vWW4lBjKL1sl4W
mZrFjm6xxRbFeteuXcMZPrnoHMmul2OPPTbsDRs2LOwtXLiwWL/
55pvDmZkzZ4a9jTbaqFjv379/OJNdT1Gk5aOPPhrOrEnxoq3Kojh79uxZrB9//
PHhTPS+N00cX9w0TfP0008X64sWLQpnunfvHvaic3/IkCHhzPbbbx/
2rrjiimL9oosuCmey74Ps/O5sshj+kSNHhr3ddtutWJ8zZ044c/vtt4e9999/P+yt6rMien/
nz58fzvziF78Ie1FkePYZaI/
XWPt7RgAAQKdg2QAAAKqwbAAAAFVYNgAAgCosGwAAQBWrLbIjS8KIkqCyd
Ioo0aJp4rSVpmmatdZaK+xFsnShKAkjS9LKUi2iFKG///u/
D2feeeedsLcmpVFlCUwbbrjhSvdeeOGFcOa3v/
1t2IuSXVqVJaVFKShZOsVxxx0X9kaPHl2sX3/99eFM9rqzYqIzZt111w1nttlmm7CXp
T1FZ1ariXz7779/sT5ixIhwJvv8XHLJJS09D3LZ+xtdf1mqT/
a9mPWGDh1arGdpgtn9wwEHHFCs77fffuHM1KlTw150bWb3Fe0xDWh1yK6xvn37h
r0oISpLdHrjjTfCXvadFKU6ZddYppW5ddZZJ+xFz+/dd98NZ7I0tFbP9U/
KJwIAAKjCsgEAAFRh2QAAAKqwbAAAAFVYNgAAgCosGwAAQBWrLfo2E0Vz
LViwIJyZNWtW2Mti96JItCVLloQzvXv3Dntjxowp1r/5zW+GM2+++WbYO/
DAA4v1GTNmhDNrUrxtW+rTp0/
Yy66JLCIxutaza3bZsmVhb+TIkcX6UUcdFc4cc8wxYe/
2228v1s8777xwJosZFAm5YqL4xCy2MIqLbJr8THjyySeL9Szq+Stf+UrYO+WUU4r17
DPyzDPPhL3p06cX66srwrGzyCI6o2tp2LBhLT3WtGnTwt6LL75YrI8aNSqc2W233cL
e4YcfXqxvvfXW4cwFF1wQ9m699dZi3fX38bLXaIMNNgh7a6+9drGeRbpm8d6ZViN
uI9G94y677BLOfO973wt7USzuT3/603Am+kw1zeq7P/
TNDwAAVGHZAAAAqrBsAAAAVVg2AACAKiwbAABAFZYNAACginYZfRtFkQ
0cODCcGTt2bNh7++23V/o57LPPPmEvi93bfvvti/
WnnnoqnDnnnHPC3rvvvlus9+zZM5zhT7Io0CzW8w9/+EOxvuuuu4YzZ555ZtgbPXp0
2Pv9739frG+xxRbhzJAhQ8LeTjvtVKxvttlm4czEiRPD3nXXXVesv/
fee+FM9rqzemSRw1GcZBS73TRNc9ppp4W9oUOHFus///
nPw5nsGoyilMUofzJZLGkUr519l2677bZhLzvPrrrqqmI9i+gcMWJE2IvuH5599tlw5ua
bbw57S5cuLda7d+++0s+hs2olwv25554LezNnzizW+/
XrF85k70cWx57F6UaymN3oc3D+
+eeHM9ttt13Yi+4BH3/88XCmPZ6N7e8ZAQAAnYJlAwAAqMKyAQAAVGHZAAA
AqrBsAAAAVay22JgsCWP+/
PnF+sKFC8OZLDllhx12CHtRqsAGG2wQzkRpRU3TNBdffHGxfsMNN4Qzs2fPDntS
p1qXpSJNnTo17J100knFepYatssuu4S9nXfeOewtWLCgWF977bXDmcz9999frB999N
HhzL333hv2os+HxKn2J0sgWbRoUdjbY489ivU999wznMmSgqZPn16sZ4lTb731Vtjr1
atX2KNtRd/NTRMnWH2czTffvFjP0oXefPPNsDdlypRi/
cILLwxnXn755bAXnXVrWuJUppXXIrsHXLJkSbGepVH95Cc/
CXtXX3112MuupUh2T/nVr361WF9nnXXCmQceeCDsXX755cX6f/
7nf4Yz7fH72V82AACAKiwbAABAFZYNAACgCssGAABQhWUDAACowrIBAAB
U0WX5CmaWZZFjrcgeNop7HTduXDjzjW98I+xtsskmYe+///u/i/V//dd/
DWduuummsPfss88W61l8YxZZ2d7NmTOnTR6nf//
+bfI4TRNHOPbt2zecOeKII8Jedm0OGDCgWH/
wwQfDmYcffjjs3XbbbcV6Fi2axZi2d1ls9KoWvVc1ROdjFgc6duzYsDdhwoSwF73/2
WNF51zTNM2pp55arD/
zzDPhTBabmkVktgezZs1qk8fJzp9V7cMPPyzWBw8eHM6cf/75Ye+v//
qvw94LL7xQrN93333hTBbX/
dBDDxXrc+fODWeya729y36vVamVe8BW7vOapmn+4R/+oVjPvmc/
+uijsJd9x7VyvmSPFfWy+8Yzzjgj7L333nvFenv5ZxFW9B6w497lAgAA7ZplAwAAq
MKyAQAAVGHZAAAAqrBsAAAAVVg2AACAKlZb9G0mig7LIsqGDBkS9vr06RP2
FixYUKxPmzYtnMliGjtyhF4rOmP0bSSKg2yapunatWvYGzp0aNiLrpf3338/
nMle81YiU1fwCGiXOmv0bSSLXMyMHz8+7B100EHF+r/
927+FM4899ljYi6JH11prrXCmvcfbZjpj9G0kOwOzMzqLzI2iW//nf/
4nnFm6dGnYi6LkszO6I5+B7Tn6NvtcZ+/hyJEji/
VLLrkknMnu81o5N7Pr5YMPPgh7kyZNKtYnT54czsycOTPsRd/
d7eWaFX0LAACsVpYNAACgCssGAABQhWUDAACowrIBAABUYdkAAACqaJfRt
5HsqWaRfNlcFM2WxZ515JjGVW1Nir7NZNdYFrsXzUXxjR/
XW9OsadG3mRrnYyS7BrOzszNak6JvM9k5l11/0bWUXWO+g/
9Xe46+zWTvYXS9tBr93R60ema2l4jbiOhbAABgtbJsAAAAVVg2AACAKiwbAABA
FZYNAACgim6r+wmsjCy9oFu3DvWr0Mlk1+aals7D6uF8ZHWSoMfKyFKWWkko6
8jae+LUqtA53zkAAGC1s2wAAABVWDYAAIAqLBsAAEAVlg0AAKAKywYAAFB
Fl+VrQuYWAADQ5vxlAwAAqMKyAQAAVGHZAAAAqrBsAAAAVVg2AACAKiw
bAABAFZYNAACgCssGAABQhWUDAACowrIBAABUYdkAAACqsGwAAABVW
DYAAIAqLBsAAEAVlg0AAKAKywYAAFCFZQMAAKjCsgEAAFRh2QAAAKqwb
AAAAFVYNgAAgCosGwAAQBWWDQAAoArLBgAAUIVlAwAAqMKyAQAAVG
HZAAAAqrBsAAAAVVg2AACAKiwbAABAFZYNAACgCssGAABQhWUDAACoo
tuK/g/79OlT83nQQc2bN69NHqd///
5t8jh0LLNnz26zxxowYECbPRYdx6xZs9rkcfr27dsmj0PHMnfu3DZ5HPeAlKzoPaC/
bAAAAFVYNgAAgCosGwAAQBWWDQAAoArLBgAAUIVlAwAAqGKFo28BWH
N89NFHYe/
DDz8Me126dCnWu3XzdQOwJvKXDQAAoArLBgAAUIVlAwAAqMKyAQAAVGH
ZAAAAqljj40GiVJUlS5a09PN69epVrEcJLbCysiSgxYsXF+vLly8PZ6JrtmmapmvXriv
+xGi3smSp6JoZNGhQOLPeeuuFvXnz5hXr06dPD2c+9Sn/3WtNtWzZsmJ90aJFq/
RxsrOsZ8+eYc+1yf9f9h0cXc9RvWlauzY72j2lTxEAAFCFZQMAAKjCsgEAAFRh2Q
AAAKqwbAAAAFVYNgAAgCo6TfRtFu2ZxZQNHTq0WN9xxx3DmSwK7/bbby/
WFyxYEM506xa/DVFPHF/
nEF23S5cuDWcGDx4c9vbee+9ivXv37uHMXXfdFfaiuNLsmmX1yOK6+/fvH/
bGjBlTrH/ta18LZ0aPHh32nn/++WJ93Lhx4czTTz8d9rJoZjqG7Dz79Kc/
Xazvtdde4UwW+xn13nnnnXDm7rvvDntRNHRHix5l5WRx4euuu27YGzlyZLE+YsSIc
OaVV14Je4888kixnp337fH+sP09IwAAoFOwbAAAAFVYNgAAgCosGwAAQBWW
DQAAoArLBgAAUEWHyq/M4m2zqK8TTjgh7B144IHF+lZbbdXS89hvv/
2K9Sz69tVXXw17kyZNKtajSNKmaZquXbuGPdpeFr0c2XnnncPekUceGfYOOuigYj2
LD73xxhvD3plnnlmsz5w5M5zJYnZZMdEZk8Ud7rHHHmHv9NNPD3sbbrhhsX7NNd
eEMz/+8Y/D3qmnnlqsX3311eHMaaedFvb+67/+q1jPokedgW0viwrN3qvozPr+97/
f0s+LzJkzJ+xl8d/nn39+sf6HP/
whnHH9dRzR93N2D3jOOeeEvWhugw02CGdmzJgR9m644YZi/
cILLwxnsvvN1RXZ7C8bAABAFZYNAACgCssGAABQhWUDAACowrIBAABU0W
V5Fq30f+jTp0/t5/
Kxli1bFvb23nvvsHfttdeGvQEDBhTrixcvDmey5KsePXoU61kiUfYW/
O53vyvWx40bF868/fbbYS977q2YN2/
eKv15kf79+7fJ47QqS2IZOHBg2ItSgqKUtKbJP4vZZyTSrVscSveLX/yiWP/
e974XzmTJGqv6+ps9e/Yq/XmZ6KyoITovTj755HDm6KOPDnu//OUvw94ll1xSrP/
xj38MZ7K0kzPOOKNY//a3v93Sz3viiSeK9Sxha9q0aWEvS2Zbwa/D/
49Zs2at9Ewr+vbt2yaP06rs7Mmuze9+97vF+jrrrBPOZOdtJEvJW7hwYdg7/vjji/Wf//
znLT3WqjZ37tw2eZz2cA9YQ3T23HzzzeHMV77ylZX+edk9YPYdHN1jHXHEEeHM
gw8+2NJjtWJF7wH9ZQMAAKjCsgEAAFRh2QAAAKqwbAAAAFVYNgAAgCosG
wAAQBWrNgNrFVm6dGmx/tnPfjacOf/888Nev379wt6iRYuK9a5du4YzWUzj1KlTi/
VNNtkknMmiyHbeeedi/Rvf+EY4k0VCRtG8fDJLliwJewcddFDYO/
zww4v1LEay1RjlVn7el7/85WL9lVdeCWfOO+
+8sNe7d+8Vfl6dXXT2NE0ctxnFhDZN00yYMCHsRfG2TRPHdGZnRXY+3nPPPcX6
O++8E8689957Ye/YY48t1q+77rpwJjsDn3zyybDXs2fPsEd+zR555JFh7wc/
+EHYi6KIs3jbLEI7ujazmfnz54e96HPQpUuXcIb2JbqnbJqm2XzzzYv1TTfdNJzJopIj2f
WSfW+/
9tprxfqUKVPCmex8Xl38ZQMAAKjCsgEAAFRh2QAAAKqwbAAAAFVYNgAAgC
osGwAAQBXtMvo2irwbNWpUODNixIiwN2/evLC31lprFeuzZs0KZ84666yw96tf/
apY32+//
cKZU045JewNHTq0WN96663DmSziL4tYE+WXy+Jt995777B34oknhr1Womqz9yl67
6N404/rRZ/
FbbfdNpwZMGBA2MsiJttjXN8nlcUKb7jhhmFv7NixxfqFF14Yzlx11VVhL4uxzc6LSP
ZevfTSS8V6FpecxYk//vjjxXoWd37FFVeEvb/6q78Ke+++
+26x3hmvzVZkZ0/22X711VfD3siRI4v17LrMosEfeeSRYr3V8/tHP/
pRsT5t2rRw5tFHHw17WdQ9rcvO2uz8O+mkk4r17J4yuzajqNr+/
fuHM9l3ZnStL168OJxpj/
xlAwAAqMKyAQAAVGHZAAAAqrBsAAAAVVg2AACAKiwbAABAFastgy2K1Gy
aOO513Lhx4UwWA5bFi955553F+i233BLOTJo0KexFrrvuurAXRfU1TdOcdtppxfpuu
+0WzmQxu1E0b9OI5Pt/RNdLdo3tu+++YW/
jjTcOe3Pnzi3WW40hjiL5nnnmmXBm6tSpYW/06NHFehZD/Rd/8RdhL/
vsRK97R45kXrRoUdjLXqeNNtqoWJ84cWI4k52pbRndGr1f2fPr3bt32IticbMI8ptuuins
HXLIIWHvxz/+cbEu+vZPssjPKDa4afLXL/qZWRzyeeedF/YmT55crGfR0Nk9QhSP//
7774czHfnMas+y96lnz55hb5999gl7Y8aMKdazKOcsxju6Z8vO+5NPPjnsRdH0vXr1C
meyf+5hdfGXDQAAoArLBgAAUIVlAwAAqMKyAQAAVGHZAAAAqlht8UPLli0Le
wcddFCxvuWWW4YzWVLQww8/
HPZOOOGEYn3atGnhTJYC0Iqnn3467EWpB4ceemg4M378+LD32GOPhb0PPvigW
M8SSDqjDz/8sFjPEqei1Kamae3anDJlSjhz/PHHh70XXnihWD/
ppJPCmZkzZ4a9G2+8sVjfYYcdwpnPfe5zYe/f//3fw16WNNIZZefIm2++udI/r71/
TltN6InSWLL0oyuvvDLs7b///
mGvvb+Gq9vSpUvD3sCBA8PeJptsEvaitKcJEyaEM5dddlnYi86Re+
+9N5zZc889w16PHj1WeiY6h5tGstknkX2XHnbYYWHv7LPPDnvRvV428/vf/
z7svfbaa8V6lq6WPffos7PddtuFM/fdd1/
YW12po05WAACgCssGAABQhWUDAACowrIBAABUYdkAAACqsGwAAABVrLb
o248+
+ijsbbHFFsV6FEHXNE3z6quvhr0sCjaKT1zV8baZ7LHuvvvuYn3MmDHhzKc//
emwt/baa4e9KAK1M8ZBZtHLG2+8cbF+/
vnnhzObbrpp2HvrrbfCXhTvOHXq1HAmi7V75513ivUojq9pmmb99dcPe1FM4/
z588OZ7LlHscJN0zmvs0wW47jeeusV62vaa5TJvg9ef/31sDd48OCw5/
X9k+j7edSoUeHMiSeeGPZ69+4d9u66665i/
Y477ghnshjl6D3Mzugsdjv6rsjOVNfRJxNFLG+22WbhTPTPGDRNft9z1FFHFev3339/
OJPFF0f3c88//3w4M2nSpLD37W9/u1jv379/
ONMeY+R9IgAAgCosGwAAQBWWDQAAoArLBgAAUIVlAwAAqMKyAQAAVL
Haom8zUexeFif3xhtvhL05c+aEvSzCrK1kz+GJJ54o1h944IFwZt999/3Ez6kzyOKV+/
XrF/aOO+64Yj2KxG2aPGque/fuYS+KhMyieR9//
PGwF31Gss9O9jpFUbUDBgwIZ7beeuuw161bfOREj5XFXLZ32e/
74osvhr1FixYV61EkbtPkZ2D2PNY0Ykk/XnQmbLfdduHM9ttvH/ay8/
Ghhx4q1qdNmxbOZGdqdHZm51wmul468rnUHmTXRHReZfHKw4cPD3tXXXVV2H
v44YeL9Vb/
+YPo98p+3ywGvbNw6gIAAFVYNgAAgCosGwAAQBWWDQAAoArLBgAAUEW7
jCiJUh6yNIlBgwaFvSy5opXkq1WtlSSjgQMHhjOtpm50VNHrl6WFHHvssWFv3LhxK
/0cXnvttbCXJV+dffbZxfqECRPCmZdeemnFn9j/
Lft8HHHEEWFvq622KtafeuqpcGby5MlhL0vZ6owpQT169Ah7Tz75ZNh7++23i/
UzzjgjnPn6178e9rIzoaO+7lF6WdM0zbBhw8Jez549w170OrWH1ML2IEpJ+zjZmXXv
vfeu9M9rJQlq6tSpYS97f19//fVi/c/+7M/Cmew7nT/
JXqPBgwcX63vttVc488orr4S9Sy+9tKXn0YroDMnOnSFDhoS96LtgypQp4Ux7PK865
rcMAADQ7lk2AACAKiwbAABAFZYNAACgCssGAABQhWUDAACool1G3y5cuL
BYzyLKNttss7B36KGHhr3LLrusWM9iFVd1rNjSpUvD3ujRo4v1ffbZJ5yZNm1a2Msi
MFuJE2wPousie5+GDh0a9nr16lWsP/DAA+HMOeecE/b69+8f9rII40j2HkbX7d/
93d+FM+PHjw97UWTld77znXDmoYceCntZ/
F9nlH2mFixYEPauvfbaYv3iiy8OZ0477bSwd8EFF4S96JrJInHb8qyIPt/
ZubnjjjuGvSwic02KLM1+127dyrcG22yzTTiTfbafeeaZsPfss88W69nzy76fFy9eXKwfe
eSR4UwWj3/FFVcU69dcc004E32H8L+y93CnnXYq1ocPHx7O/
OhHPwp72T1RFk8eyZ57dG6efPLJ4cxhhx0W9m699dZi/
a233gpn2uO9nL9sAAAAVVg2AACAKiwbAABAFZYNAACgCssGAABQhWUDAA
CoYrVF32ZRc//yL/9SrGdxhqNGjQp7WSTk4MGDi/
WrrroqnHn99dfDXiSLKx0yZEjYO/
HEE4v1LHotivNtmqaZMWNG2MuiLjubLFYx6t15553hzGOPPRb2svc+kkXXZdf6SS
edVKzvv//
+4czkyZPDXhTp+8Ybb4Qza1q8bauyyMU77rijWN94443DmSxacf78+WEvivBcsmRJ
OBPFi7Yqi6mOrqdDDjkknNl9993DXvQZWdNkZ0z03t9zzz3hzNixY8PeAQccEPaieO
0rr7wynBk0aFDYi6Lu11tvvXAmu9ZbiVbnk1m2bFmxnn2XZudpFkUcvffZYw0bNizs
RfdsRx99dDiTfa7OO++8Yr0t/
3mGVWHNubsEAADalGUDAACowrIBAABUYdkAAACqsGwAAABVdFmexfL8H/
r06VP7ufy/oqSTLbfcMpy55JJLwt6uu+4a9qLEgUceeSSc+ed//
uew99ZbbxXrWTrAmDFjwt5Xv/
rVYv3SSy8NZ7773e+Gvex5ZOkkkXnz5q30TCv69+8f9qL3MPtdf/jDH4a9v/
mbvynWn3zyyXDmhhtuCHvPPvts2ItS2bp1i4PizjrrrLC33XbbFetRwlvTNM0//dM/
hb3nnnuuWO/
du3c408p11KrZs2e32WMNGDCgzR4rOpaz1JwsgSlKFWuapllnnXWK9d/
85jfhzP333x/
2os9jlnaXpWwdfvjhxXp2DV5wwQVh75Zbbgl7WaJNZNasWSs904q+ffuu0p/
XSiLfCSecEM6MHz8+7GXpUVHy0MKFC8OZ7IxZe+21i/
XsvX344YfDXpQiNG3atHAmO79Xtblz57bJ46zqe8As7Sk6a3/1q1+FM1mq59SpU8Pe
rbfeWqxnaU8HH3xw2IvuN2+77bZw5m//9m/D3vTp04v1LNG1La3oPaC/
bAAAAFVYNgAAgCosGwAAQBWWDQAAoArLBgAAUIVlAwAAqKJdRt9GstjHL
BZ37NixYW/PPfcs1keOHBnOZJFjK/hyrrDJkycX61Ec38dZ1bGk7SH6NnrNs/
di7733DntRvONOO+200s+haZpm6dKlYS+SRSd+8MEHYW/ixInFehZ9O3/+/
LDXXuL1Ip01+rYV2fk4bNiwsBedgaNHjw5nsvMxkkXfvvfee2HvnnvuKdazGMyXX3
457GVnYCvnY0eNvs1EsaRZ3PCoUaPC3qmnnhr2oqjQ7EzNYlMj2fV3/
fXXh70zzzyzWM/OzeyxVrWOGn2bid77U045JZz5+te/
HvYGDhwY9qLv2iw6/5133gl7UQz+lVde2dLPa8sY5VaIvgUAAFYrywYAAFCFZQ
MAAKjCsgEAAFRh2QAAAKqwbAAAAFV0qOjbzIcffhj2sjjDjTfeuFjPYh+//
OUvh70oYjKLpbzzzjvD3jXXXFOsT5s2LZzJIttWtfYQfRtpNTpx8803L9Yvv/
zycKZnz54tPY8o1u6BBx4IZ+6++
+6w99BDDxXrixYtWunn0BGIvl0xy5YtC3tRNHO/
fv3CmVZiWLNzePHixWEvisXN4kV79Oix4k/
sE+qM0beR7NzMvuM+97nPhb1zzz23WB8+fHg4k33//
exnPyvW33333XDmlVdeCXtRLOmqjpFv1ZoUfZu95p///
OfD3jHHHBP21l133WL9rrvuCmemTp0a9rLv50hH/
g4WfQsAAKxWlg0AAKAKywYAAFCFZQMAAKjCsgEAAFRh2QAAAKroNNG3m
VYiULOZFXzJVokoxjaLfWxL7Tn6NtPKNZHFPralLP4vul7aS0zjqib6tp7sem8PZ2B7s
SZF37Yqi6ZvD+dq9n3a3q+/zhh9G8nOnewaW9Xnle/g/
yX6FgAAWK0sGwAAQBWWDQAAoArLBgAAUIVlAwAAqKLb6n4CbaGV5AA6t1
auCdcKa5L2knhHx5ednc5VVlT2vd2t2xpxO9th+TYBAACqsGwAAABVWDYAAIAq
LBsAAEAVlg0AAKAKywYAAFBFl+XLly9f3U8CAADofPxlAwAAqMKyAQAAVG
HZAAAAqrBsAAAAVVg2AACAKiwbAABAFZYNAACgCssGAABQhWUDAACo4
v8Cb7Dyg3fopFQAAAAASUVORK5CYII=\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron
.py:686: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (300)
reached and the optimization hasn't converged yet.\n",
" warnings.warn(\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFW
HRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXR
wbG90bGliLm9yZy/
bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4pElEQVR4nO3deZhU1Z3/8
c+ttdfqBXoDmkVREEFEVNI6URKIyBgDMZMY46hxEv1p8PmFGJMJk9+o40wGdR
6NSTSSjJOgThKXGDVhNBFBcNSOCoiKIgqyNNDdLE139Vrr+f1RdGELQgN1762u
fr+epx66bt1b9a1DNfXhnHPPtYwxRgAAADnC43YBAAAAmUS4AQAAOYVwAwA
AcgrhBgAA5BTCDQAAyCmEGwAAkFMINwAAIKf43C7AaclkUjt37lRxcbEsy3K7H
AAA0A/
GGLW3t2vYsGHyeA7fNzPows3OnTtVW1vrdhkAAOAYNDQ0aMSIEYfdZ9CFm+Li
YkmpxgmFQi5XAwAA+iMcDqu2tjb9PX44gy7c9A5FhUIhwg0AAANMf6aUMKEYA
ADkFMINAADIKYQbAACQUwg3AAAgpxBuAABATiHcAACAnEK4AQAAOYVw
AwAAcgrhBgAA5BTCDQAAyCmEGwAAkFMINwAAIKcQbjKooaVL7ze3u10GAA
CDGuEmQ559u1Ez7l6pf3ziLRlj3C4HAIBBi3CTIVNHlcnnsfTGtlb98c2dbpcDAMCg
RbjJkMpQnq4//0RJ0h3PvqeeWMLligAAGJwINxl0zXknaFhJnna29ei/
XtrsdjkAAAxKhJsMyvN79f0Lx0uSfv7CRu1q73G5IgAABh/
CTYZ9YfIwTa4tVWc0obufe9/
tcgAAGHQINxnm8Vj64d+eIkl6au0O5t4AAOAwwo0NzhpdpupQnnpiSb26ucXtcgAA
GFQINzawLEvTx1VIklZs2OVyNQAADC6EG5v0hpuVG3a7XAkAAIML4cYm544d
Kp/H0od7OrV1b6fb5QAAMGgQbmxSnOfXGaPKJEl//
XCvy9UAADB4EG5sdHJVkSSpoaXb5UoAABg8CDc2GlaaL0na0Uq4AQDAKYQbG
w3vDTf7CDcAADiFcGOjEWX03AAA4DTCjY2GlxZIkprCPYonki5XAwDA4EC4sV
FlcVB+r6VE0qi5PeJ2OQAADAqEGxt5PJZqSph3AwCAkwg3NktPKm7tcrkSAAAGB
8KNzYaX0XMDAICTCDc2G85aNwAAOIpwY7Penpvt9NwAAOAIwo3NRtBzAwCA
owg3NhtaHJQktXbFXK4EAIDBgXBjs4KAV5LUGYm7XAkAAIMD4cZmhQGfJCkS
T7JKMQAADiDc2Kwg6E3/3BVLuFgJAACDA+HGZgGvR16PJUnqihBuAACwG+H
GZpZlpefddEWZdwMAgN0INw7onXfTFaXnBgAAuxFuHNA774YzpgAAsB/
hxgH03AAA4BzCjQPye9e6Yc4NAAC2I9w4oDA9oZieGwAA7Ea4cUBBcP+wFHNu
AACwHeHGAYXpYSl6bgAAsBvhxgEF6QnF9NwAAGA3wo0DDlw8k54bAADsRrh
xQOH+OTfdDEsBAGA7wo0DCjgVHAAAxxBuHMAifgAAOIdw4wAuvwAAgHMI
Nw4oYBE/
AAAcQ7hxAKeCAwDgHMKNA5hzAwCAcwg3DmDODQAAziHcOOCjPTfGGJerA
QAgtxFuHJC/f0JxPGkUTSRdrgYAgNxGuHFA79lSEqsUAwBgN8KNA/
xejwK+VFNzZXAAAOxFuHFIYe9aN0wqBgDAVq6Gm4ULF+qss85ScXGxKisrNXfu
XG3YsOGIxz3+
+OMaP3688vLyNGnSJD3zzDMOVHt8ete6oecGAAB7uRpuVq5cqXnz5umvf/
2rli5dqlgspgsuuECdnZ2feMwrr7yiyy67TN/
4xjf0xhtvaO7cuZo7d67WrVvnYOVHr4CeGwAAHGGZLDo3effu3aqsrNTKlSt13nnn
HXKfSy+9VJ2dnVqyZEl626c+9SmdfvrpWrRo0RFfIxwOq6SkRG1tbQqFQhmr/
Ujm3Pey3mxo1QNXnqmZE6oce10AAHLB0Xx/
Z9Wcm7a2NklSeXn5J+5TX1+vmTNn9tk2a9Ys1dfXH3L/
SCSicDjc5+aG3jk3nVyCAQAAW2VNuEkmk5o/
f77OPfdcTZw48RP3a2pqUlVV356PqqoqNTU1HXL/
hQsXqqSkJH2rra3NaN39lZ5zE2HODQAAdsqacDNv3jytW7dOjzzySEafd8GCBWpra
0vfGhoaMvr8/RX0p5o6EifcAABgJ5/bBUjSDTfcoCVLlujFF1/
UiBEjDrtvdXW1mpub+2xrbm5WdXX1IfcPBoMKBoMZq/
VYBb2pcBONs0IxAAB2crXnxhijG264QU8+
+aSWL1+uMWPGHPGYuro6LVu2rM+2pUuXqq6uzq4yM6K354ZwAwCAvVztuZk3b
55++9vf6umnn1ZxcXF63kxJSYny8/MlSVdeeaWGDx+uhQsXSpK+/e1v6/
zzz9ddd92liy66SI888ohWrVqlX/7yl669j/
4I9PbccG0pAABs5WrPzf3336+2tjZNnz5dNTU16dujjz6a3mfbtm1qbGxM3z/
nnHP029/+Vr/85S81efJk/
f73v9dTTz112EnI2aD38gv03AAAYC9Xe276s8TOihUrDtr25S9/WV/
+8pdtqMg+veEmQrgBAMBWWXO2VK4L+lLr3BBuAACwF+HGIQxLAQDgDMKN
Q5hQDACAMwg3DknPuYmxiB8AAHYi3Dgk6KPnBgAAJxBuHMKcGwAAnEG4c
UiQcAMAgCMINw5hnRsAAJxBuHFI7zo39NwAAGAvwo1DAkwoBgDAEYQbh6T
XuaHnBgAAWxFuHHJgzg3r3AAAYCfCjUOCTCgGAMARhBuHsM4NAADOINw45
KMTio0xLlcDAEDuItw4JOhNnQpujBRLEG4AALAL4cYhvT03EqeDAwBgJ8KNQ/
qEG+bdAABgG8KNQ7weSz6PJYlwAwCAnQg3DmKtGwAA7Ee4cRCngwMAYD/
CjYNYyA8AAPsRbhzExTMBALAf4cZBXDwTAAD7EW4cFPClFvJjWAoAAPsQbh
wUZEIxAAC2I9w4iLOlAACwH+HGQememwTr3AAAYBfCjYN6JxRHYvTcAABgF
8KNg4J+TgUHAMBuhBsHcSo4AAD2I9w4KMAKxQAA2I5w4yDCDQAA9iPcOCi4
fxE/
hqUAALAP4cZBrHMDAID9CDcOSk8oZp0bAABsQ7hxUHrODevcAABgG8KNgw6
sUEy4AQDALoQbB3HhTAAA7Ee4cRATigEAsB/
hxkGscwMAgP0INw4KeFnnBgAAuxFuHNQ75ybChGIAAGxDuHEQc24AALAf4cZ
BB8INi/
gBAGAXwo2DmFAMAID9CDcOYp0bAADsR7hxECsUAwBgP8KNgzgVHAAA+xF
uHMScGwAA7Ee4cVDvsFQiaZRIGperAQAgNxFuHNTbcyMxNAUAgF0INw4i3AA
AYD/
CjYN8HkuWlfo5wkJ+AADYgnDjIMuyDlxfip4bAABsQbhxWMDLWjcAANiJcOOwg
I+1bgAAsBPhxmEMSwEAYC/
CjcO4vhQAAPYi3DgsQLgBAMBWhBuHpcNNglPBAQCwA+HGYb1nS0Vi9NwAA
GAHwo3DDvTcEG4AALAD4cZhnC0FAIC9CDcOY0IxAAD2Itw4rHcRP3puAACwB
+HGYenLLxBuAACwBeHGYUE/4QYAADsRbhx24MKZrHMDAIAdCDcO4/
ILAADYi3DjsACnggMAYCtXw82LL76oiy++WMOGDZNlWXrqqacOu/
+KFStkWdZBt6amJmcKzgB6bgAAsJer4aazs1OTJ0/
Wfffdd1THbdiwQY2NjelbZWWlTRVmHuvcAABgL5+bLz579mzNnj37qI+rrKxUaWl
pv/aNRCKKRCLp+
+Fw+KhfL5PS15bi8gsAANhiQM65Of3001VTU6PPfe5zevnllw+778KFC1VSUpK+1d
bWOlTloaUX8ePCmQAA2GJAhZuamhotWrRITzzxhJ544gnV1tZq+vTpWrNmzSces2
DBArW1taVvDQ0NDlZ8sCAXzgQAwFauDksdrXHjxmncuHHp++ecc442bdqkH//
4x3r44YcPeUwwGFQwGHSqxCM6MOeGdW4AALDDgOq5OZSzzz5bGzdudLuMfm
NCMQAA9hrw4Wbt2rWqqalxu4x+Y50bAADs5eqwVEdHR59el82bN2vt2rUqLy/
XyJEjtWDBAu3YsUMPPfSQJOmee+7RmDFjdOqpp6qnp0cPPPCAli9frueee86tt3DU
WOcGAAB7uRpuVq1apc985jPp+zfeeKMk6aqrrtLixYvV2Niobdu2pR+PRqP67ne/
qx07dqigoECnnXaann/+
+T7Pke2YUAwAgL0sY4xxuwgnhcNhlZSUqK2tTaFQyPHXf3t7my6+9yXVlOSpfsEM
x18fAICB6Gi+vwf8nJuBhjk3AADYi3DjMObcAABgL8KNwzgVHAAAexFuHBb4yI
TiQTbdCQAARxBuHNYbbiTm3QAAYAfCjcN6rwoucTo4AAB2INw4LPiRnhvm3QA
AkHmEG4dZlpXuvSHcAACQeYQbF3DGFAAA9iHcuICF/AAAsA/
hxgUs5AcAgH0INy44sNZNwuVKAADIPYQbF/
ROKGZYCgCAzDumcNPQ0KDt27en77/22muaP3+
+fvnLX2assFzGnBsAAOxzTOHma1/7ml544QVJUlNTkz73uc/
ptdde0w9/+EPddtttGS0wFzHnBgAA+xxTuFm3bp3OPvtsSdJjjz2miRMn6pVXXtFvfv
MbLV68OJP15SROBQcAwD7HFG5isZiCwaAk6fnnn9cXvvAFSdL48ePV2NiYuepyV
MDnlUS4AQDADscUbk499VQtWrRI//u//
6ulS5fqwgsvlCTt3LlTQ4YMyWiBuYgJxQAA2OeYws0dd9yhX/
ziF5o+fbouu+wyTZ48WZL0xz/
+MT1chU8W9PeGG04FBwAg03zHctD06dO1Z88ehcNhlZWVpbdfe+21KigoyFhxuSp
v/7AUPTcAAGTeMfXcdHd3KxKJpIPN1q1bdc8992jDhg2qrKzMaIG5KG9/
z013lJ4bAAAy7ZjCzZw5c/
TQQw9JklpbWzVt2jTdddddmjt3ru6///6MFpiL8vypnpsehqUAAMi4Ywo3a9as0ac//
WlJ0u9//3tVVVVp69ateuihh/TTn/
40owXmot6em0iMYSkAADLtmMJNV1eXiouLJUnPPfecLrnkEnk8Hn3qU5/
S1q1bM1pgLsrv7bmJ0XMDAECmHVO4GTt2rJ566ik1NDToL3/5iy644AJJ0q5duxQK
hTJaYC7KI9wAAGCbYwo3N998s2666SaNHj1aZ599turq6iSlenGmTJmS0QJzUTAdb
hiWAgAg047pVPC/+7u/09/8zd+osbExvcaNJM2YMUNf/OIXM1Zcrsrbf/
mFbnpuAADIuGMKN5JUXV2t6urq9NXBR4wYwQJ+/
cSwFAAA9jmmYalkMqnbbrtNJSUlGjVqlEaNGqXS0lL967/+q5JJhlqO5MCp4LQVAA
CZdkw9Nz/84Q/1X//
1X7r99tt17rnnSpJeeukl3Xrrrerp6dGPfvSjjBaZa3rPlorQcwMAQMYdU7h58MEH9cA
DD6SvBi5Jp512moYPH65vfetbhJsj6F3nhmEpAAAy75iGpVpaWjR+/
PiDto8fP14tLS3HXVSuy+NsKQAAbHNM4Wby5Mm69957D9p+77336rTTTjvuonJd
+tpS9NwAAJBxxzQsdeedd+qiiy7S888/
n17jpr6+Xg0NDXrmmWcyWmAuCvo4WwoAALscU8/N+eefr/fff19f/
OIX1draqtbWVl1yySV655139PDDD2e6xpzTOywViSdljHG5GgAAcotlMvjt+uabb+q
MM85QIpG9PRLhcFglJSVqa2tz7VIRHZG4Jt7yF0nSe/
96YTrsAACAQzua7+9j6rnB8eldoVhiaAoAgEwj3LjA5/
XI57EkMakYAIBMI9y4hNPBAQCwx1GdLXXJJZcc9vHW1tbjqWVQyfN71BFhWAo
AgEw7qnBTUlJyxMevvPLK4yposOB0cAAA7HFU4ebXv/
61XXUMOvkBhqUAALADc25ckr6+VJyeGwAAMolw45K83mGpKOEGAIBMIty4J
H22FD03AABkFOHGJelhKebcAACQUYQblxxY54aeGwAAMolw4xIW8QMAwB6E
G5f0Dktx+QUAADKLcOOS3rOlIoQbAAAyinDjEubcAABgD8KNSzhbCgAAexBuX
MI6NwAA2INw4xKGpQAAsAfhxiW94aabYSkAADKKcOOSA3Nu6LkBACCTCDc
u4VRwAADsQbhxCSsUAwBgD8KNS/ID+4elOFsKAICMIty4JLh/
WKo7SrgBACCTCDcuyQ/
0ni1FuAEAIJMINy4pDvokSZ2RuIwxLlcDAEDuINy4pDjPL0lKGqmToSkAADKGcO
OSPL9HPo8lSWrviblcDQAAuYNw4xLLslSclxqaau+Ju1wNAAC5g3Djot6hKXpuAA
DIHMKNi3p7bsL03AAAkDGEGxcxLAUAQOYRblzUOywV7mZYCgCATCHcuIieG
wAAMs/VcPPiiy/
q4osv1rBhw2RZlp566qkjHrNixQqdccYZCgaDGjt2rBYvXmx7nXYJMaEYAICMczXc
dHZ2avLkybrvvvv6tf/mzZt10UUX6TOf+YzWrl2r+fPn65vf/Kb+8pe/
2FypPei5AQAg83xuvvjs2bM1e/bsfu+/aNEijRkzRnfddZck6ZRTTtFLL72kH//
4x5o1a5ZdZdrmQLih5wYAgEwZUHNu6uvrNXPmzD7bZs2apfr6+k88JhKJKBwO97ll
iwPr3NBzAwBApgyocNPU1KSqqqo+26qqqhQOh9Xd3X3IYxYuXKiSkpL0rba21olS+
4VhKQAAMm9AhZtjsWDBArW1taVvDQ0NbpeUlj4VnGEpAAAyxtU5N0erurpazc3
NfbY1NzcrFAopPz//
kMcEg0EFg0Enyjtq9NwAAJB5A6rnpq6uTsuWLeuzbenSpaqrq3OpouMTYkIxAAAZ5
2q46ejo0Nq1a7V27VpJqVO9165dq23btklKDSldeeWV6f2vu+46ffjhh/
r+97+v9957Tz//+c/
12GOP6Tvf+Y4b5R+33mGpjkhcxhiXqwEAIDe4Gm5WrVqlKVOmaMqUKZKkG2+8
UVOmTNHNN98sSWpsbEwHHUkaM2aM/ud//
kdLly7V5MmTddddd+mBBx4YkKeBSweGpZJG6owmXK4GAIDcYJlB1mUQDodV
UlKitrY2hUIhV2sxxmjsD59VImlUv+Czqik59LwhAAAGu6P5/
h5Qc25yjWVZTCoGACDDCDcu4/
pSAABkFuHGZb09N2F6bgAAyAjCjcsYlgIAILMINy4rZlgKAICMIty4rDQ/
FW72dUZdrgQAgNxAuHFZZSh1aYjd7RGXKwEAIDcQblxWWZwnSdpFuAEAICM
INy6rKE713BBuAADIDMKNyyrT4abH5UoAAMgNhBuXpYelwhEungkAQAYQblz
WO6E4Ek+ykB8AABlAuHFZnt+bXshvN0NTAAAcN8JNFkjPuwkzqRgAgONFuMkC
vfNudncQbgAAOF6EmyzQO+
+GnhsAAI4f4SYLcDo4AACZQ7jJAqxSDABA5hBuskAFE4oBAMgYwk0WYFgKAI
DMIdxkgcrQgVWKAQDA8SHcZIFhpalw0x6JK9wTc7kaAAAGNsJNFigI+FRW4Jck7
djX7XI1AAAMbISbLDG8LF8S4QYAgONFuMkSw0v3h5tWwg0AAMeDcJMlhpcWS
JK27+tyuRIAAAY2wk2WSA9L0XMDAMBxIdxkifSwFHNuAAA4LoSbLDGCnhsA
ADKCcJMlesPNno6oemIJl6sBAGDgItxkiZJ8vwoDXkn03gAAcDwIN1nCsqz0pOLtzL
sBAOCYEW6yCJOKAQA4foSbLDJqSKEkacveTpcrAQBg4CLcZJETK4skSR80t7tcC
QAAAxfhJouctD/
cbNzd4XIlAAAMXISbLNIbbrbv61Z3lNPBAQA4FoSbLDKkKKjywoCMkTbRewMA
wDEh3GSZsRX7h6Z2EW4AADgWhJssM7aKcAMAwPEg3GSZ3nk3H+zijCkAAI4F4
SbLjE2HG3puAAA4FoSbLHNyVbEkaeveLi6gCQDAMSDcZJnK4qDKCvxKJA3zbg
AAOAaEmyxjWZbGV4ckSe82hl2uBgCAgYdwk4VOqUmFm/
WEGwAAjhrhJgudUpOad/
NeI2dMAQBwtAg3WSjdc9MUljHG5WoAABhYCDdZaGxlkbweS61dMTWFe9wuBw
CAAYVwk4Xy/
F6dWFEoiXk3AAAcLcJNluodmnp7O+EGAICjQbjJUmeNLpckvbJpj8uVAAAwsBBus
tS5Y4dKkt7Y1qruKCsVAwDQX4SbLDV6SIGGleQpmkjq9S0tbpcDAMCAQbjJUpZl6
Zz9vTcvMzQFAEC/
EW6y2Lljh0iSXtm41+VKAAAYOAg3WezcE1M9N+t2tqmpjfVuAADoD8JNFqsM5en
MUWUyRnp2XaPb5QAAMCAQbrLcRafVSJKWvEW4AQCgPwg3We5vJ9XIsqTVW
/
dpZ2u32+UAAJD1CDdZriqUl17Qb8lbO12uBgCA7Ee4GQDmnj5ckvTYqu1cJRwAgC
Mg3AwAF0+uUb7fq427OrRm2z63ywEAIKsRbgaA4jx/
emLxI681uFwNAADZjXAzQHz1rFpJqbOmWjqjLlcDAED2ItwMEFNHlWni8JC6Yw
n9+uXNbpcDAEDWItwMEJZlad70sZKkxa9sUbgn5nJFAABkJ8LNADLr1GqdWFGo
9p647lu+0e1yAADISoSbAcTjsfSPF46XJP3ixQ/1vx/
sdrkiAACyD+FmgLng1Gp9bdpISdKNj72pPR0RlysCACC7EG4GoH+
+aIJOrirS7vaIvvvYm0omWdgPAIBeWRFu7rvvPo0ePVp5eXmaNm2aXnvttU/cd/
HixbIsq88tLy/PwWrdlx/w6meXnaGgz6OV7+/
Wrzh7CgCANNfDzaOPPqobb7xRt9xyi9asWaPJkydr1qxZ2rVr1yceEwqF1NjYmL5t3b
rVwYqzw7jqYv3z5ydIku7483t6e3ubyxUBAJAdXA83d999t6655hpdffXVmjBhghYtW
qSCggL96le/
+sRjLMtSdXV1+lZVVfWJ+0YiEYXD4T63XHH5tJGadWqVYgmjG363RvtY3A8AA
HfDTTQa1erVqzVz5sz0No/
Ho5kzZ6q+vv4Tj+vo6NCoUaNUW1urOXPm6J133vnEfRcuXKiSkpL0rba2NqPvwU2
WZemOL52m4aX52rq3S//
n4dWKxBNulwUAgKtcDTd79uxRIpE4qOelqqpKTU1Nhzxm3Lhx+tWvfqWnn35a//
3f/61kMqlzzjlH27dvP+T+CxYsUFtbW/
rW0JBb12YqLQjo11efpeI8n17b0qIbfvuGYomk22UBAOAa14eljlZdXZ2uvPJKnX766
Tr//PP1hz/8QRUVFfrFL35xyP2DwaBCoVCfW645uapYv/
j7qQr4PFr6brP+7+8IOACAwcvVcDN06FB5vV41Nzf32d7c3Kzq6up+PYff79eUKVO0
cePgXrH3nLFD9csrpirg9ejZdU2a/
+haxQk4AIBByNVwEwgENHXqVC1btiy9LZlMatmyZaqrq+vXcyQSCb399tuqqamxq
8wBY/q4Si264gz5vZb+561GXfffq9UVjbtdFgAAjnJ9WOrGG2/Uf/7nf+rBBx/
U+vXrdf3116uzs1NXX321JOnKK6/UggUL0vvfdttteu655/Thhx9qzZo1+vu//
3tt3bpV3/zmN916C1nls+OrdP/lUxX0efT8+l2ac+/L+uObO1noDwAwaPjcLuDSSy/
V7t27dfPNN6upqUmnn366/vznP6cnGW/btk0ez4EMtm/
fPl1zzTVqampSWVmZpk6dqldeeUUTJkxw6y1knZkTqvTbaz6lax9apQ92dej//u4N/
XHtDv3ssjOUH/C6XR4AALayjDGD6r/04XBYJSUlamtry8nJxR/
V2hXVg69s1c9XbFQkntSk4SVaeMkkTRxe4nZpAAAclaP5/
nZ9WAr2KS0I6NszT9JvvjlNJfl+vb2jTV+49yX9v6feVmsXC/4BAHITPTeDRGNbt/
79mff0pzd3SpKKgz59+cxaff2c0Ro5pMDl6gAAOLyj+f4m3Awy9Zv26l/
+9I7ea2qXJFmWNGN8lf7h3NGqO3GILMtyuUIAAA5GuDmMwR5uJCmZNFr5wW7
9+uUtevH93ent46uLdWXdaH1+co1CeX4XKwQAoC/
CzWEQbvrauKtDD76yRU+s2a6uaOq6VEGfR5+bUKUvTR2hT48dKp+XqVkAAHcR
bg6DcHNobd0xPb6qQY+tatD7zR3p7RXFQc09fZguOWOETqmhvQAA7iDcHAbh5v
CMMXpnZ1i/
X71df3xzp1o6D5xVNaEmpM9PrtHfTqzR6KGFLlYJABhsCDeHQbjpv1giqRUbdusPa
7Zr2fpdin7kWlXTx1XocxOqdHJVsSqKghpZXiCPh8nIAAB7EG4Og3BzbFq7onrm7S
Y9u65RL23co49/
asYMLdRXzqzVlJGlOqUmpJJ8JiQDADKHcHMYhJvjt2VPp55Ys11rG1q1dW+Xms
M9isT7XoH8hKGF+uz4Sn1uQpWmjipjUjIA4LgQbg6DcJN5nZG4nnxjh158f7fe2RnW
jtbuPo8PLQro7z81SmOGFiqeMKopydOkESUq5nRzAEA/
EW4Og3Bjv9auqOo37dXS9c1a/
t4utXbFDtrH77V05qhynVRVpHNOHKrPjq9UwEfvDgDg0Ag3h0G4cVY8kdQz65r0+
KoGJY2RJUtbWzrV0NK3d6cw4NUJFUWaMrJUZ44uV3lBQKfUFGtIUdClygEA2YR
wcxiEm+ywcVeHVm9t0XtN7VryVqN2t0cO2sdjpSYqt3XHdEpNSHNPH66OSFwnVh
TpnBOHcHYWAAwihJvDINxkn3giqQ/
3dGrjrg7Vb9qr9Y1htXRG9eGezk88pqYkT9PHVWpcVZEqivM0ZWSphpXmO1g1A
MBJhJvDINwMHA0tXdq0u0OhfL+WvNmotQ37VF4Y0GubWxTuiR+0/4kVhZpxSpX
KCwMqDHhVXhjUZ8ZXqCDgc6F6AEAmEW4Og3Az8PXEEnpl0x69snGvGtt6tK2lS
+82hpVIHvxRLsn3qzqUp9buqM4cVa5pJ5RrfHVI5YUBjSjLV57f68I7AAAcLcLNYR
BuclO4J6bl63dpzbZ96ojE1R1N6J2dYW1r6frEYwJejyYOD6mmJF9ejyWPJZ01plzTx
pRrZHkhZ28BQBYh3BwG4WbwSCSNXv1wryKJpAr8XtV/
uFdvNrRq4+4OtXbG1B45eGirl2VJRUGfSgv8Ki8IaOLwEo0aUiC/
16PywoBOrCjSKTUheZnUDACOINwcBuEGUuoCoVv3dumtHW3a2xFRImnUEYnrp
Q/
2aH1jWJ3RxBGfozDgVWHQp8pQUFNqy1RZHFQo369Qvk9DCoMaUhRQaUFAXZ
G4Sgr8qizOc+CdAUBuItwcBuEGR2KMUUtnVK3dMbV1x9TU1qO1Da3a0x5RJJHU
7vaI3t0ZVsdhen4O5YyRpSovDCrcHdPujoimjirT2WPKFY0nVRDwqiTfr9KCgE4YW
qiywoBN7w4ABibCzWEQbpAJ8URSW/
Z2KRJPaPOeTr29o03h7pjC3XG1dce0pyOiPR1RtXVHVRDwqa374FWaD6c6lKdTaoo
1viYkS9I7O8M6uapInz6pQiPK8hVPGoW7Y+qMJjSiLF9jhhSy7g+AnEa4OQzCDdzQ
2NatlzfuVSyRVGHQp+KgT8+vb9b2fd0K+jzqiibU1h3T3o6Idrb1HPXz+zyWivN8GlF
WoKpQUNGE0dCigMoLAuqMJlRW4NeIsgKNKMuXz2vJ7/
Vo1JAClRUE5PNYsiyCEYDsRrg5DMINsl17T0wbmtq1vqld6xvDSiSMTqkp1tqGVr21
o027whEFfB4V5/mU7/
dq857Og67KfjQ8lhT0eTW8LF81JXkK98RVHPQplO9Ta1dM5YUBjasq1klVxTLGqD
Oa0JihBfJYljojCYXyfSrNDygv4FG4O65Qvk8VRUElTeq5CU4AMoFwcxiEG+SaeCK
pXe0RhXti2rq3S3s7ovJ7Le1qj6i1K6rCoE8tnVE1tHRpR2u3jJF64gnt2NetQywNlBEBr
0fRRFKFgVRoKgz6VBDwKt/
vU37Aq+K8VO+VlDqrzeux9vcqedTaFVPA59HQooBGDynUqCEF6oomtGl3h5JGKgp
6VV2Sr8rioPze1On6PbGEwt0xeT2WygsDBCogBx3N9zdLtwIDnM/
r0bDSfA1TvsZX9z+wR+NJdccSisQS6oomtLWlS3vaIyrO86m9J672nphKCwJqDvdoQ
1O7PtjVIb/
XUn7Aq827O2VZlgqDXrX3xNXaFVN3LKHiPJ86I3FFE6mepM5oQu83d9jyvi1LGlo
UVCjPp617uxTfn9RqSvI0rDRf4e6Ygn6PPJalaDypIUUBlRcG5fdaCng96eE5v9ej9p64
drR2q8DvVVlhQOWFfpUVBFReGFBZQUAej6WkMZKRSgtSj3ksS+GemDojcfm8ln
wejwqDXlUU5ym4f42k3v86GqV+yPd7CV6AAwg3wCAV8HlSCxXm+yVJo4cWHtfz
GWNkWZZ6Ygnt6Ygo3+9Va3dMO1u71RVNqDuaUPf+INXeE1NHT1wejyXLSgWth
pYuGSOVFgQUTSTVHO7Rlj2d2tUekddjafSQAgV9XoV7YmoO9yiWMNrdHklfdNV
jSUkjNbb1qPEY5i05weexVJTnS58hl+f3Ktwd09CioEoL/
Nq4q0OJpFFJvl+jhhTK45G6owkVBHzqiSXUGU2oMOBVUZ5PRUGfivf/me/
3KmmkWDKpRMIonjRKmlSPWFUoTz5P6u+lIJA6pjCYqsHIyGNZ8nosNYcj2tnareG
l+Rpelq/ioE/
RRFIBr0elBQH5vAdC2UfjWd+slrrjsaTiPL8CXo8i8YTyA155PZa6owmVFgTksaTWr
pgsS/J7U59D5n4hkwg3ADKi94spz+/
ViLICSdKQoqBOrCg6ruftisbl9VgK+g5cKiOZNGrpiqqprUf7uqI6saJINSV56okltWbbP
rV1x1Sa71c0kVTSGPk8Hu1uj6i1O6Z4Iql40igaTyqeTCqWMMrzeTSirECReEItnTHt6
4qqpTOqfV2pmzGpL3FjpH2dUbV1x5Q0SoeLeNIonkiqIxI/
5HXPesWTRq1dsf3v68BaSh8/
pjOaOKaJ5QOB35sKUz2xvvPEeoNO0OuR3+eRx5JiiVS7SlL+/
jAY9Hn2ryieeh7Lktp74orGkyrJ98tjWYonU3/
HJfl+Fef5FY0nFIknlUwa5Qe8isaT6omlAmZ+wKuCgFcFgdTQqSQ1tfXI67FSITCRV
CyeTP2ZSCrP51VJgV+l+QFFEwmFu+OyrFSs81ipgOaxUj97POpz31Lv/
f3b9tfvOcp9emIJtUfi8lj7ex89lvz7A2IqKHrk/0jPpO8jvZU+T6r9Wjoj6o4llO/37X//
3nQIPVBHqpYDNUmWUvVE4gntao9IRvL7PArsfy0jo/
aeuII+j6aMLHPyo9UHc24AIIN6YgnF9n8h934xSJKRUqfvR+IK+DzqjKR6skJ5PjWFe
7SvK6aTKotUEPBqT0dUW/
d2yuuxlOf3qisaV54v9eXTHU19sXX0xNURSd26onH5PKkvN6/
XSv1pWYokkmpu65FRakisIxJXe0/
q8iQBn0eWlZrzFE8YlRWmzqjbvq9Lu9oj6uiJy79/7lRrV7TP/KyPf218/
Eukd1HMj4ZCDC5njy7XY9fVZfQ5mXMDAC7J83s/8YKsRcFD/5N7UlVxn/
ujhhRq6ij3/
tebCYmkUTyZ3D80lepJyfN5tKs9olgiqZqSfHks7e8ZMYokEorGUz1p0Xiqx83vTfUIG
Bl1x1JDm709MAljlEgamf09aAGfR/u6YjL7j/
NYltq6Y+qIpHoRgr7Uts5oXEGfV3l+j3r2D5N2RhPqjsbVFU0omTSqKsmTMalew95h
s95aemIJtXaneveCXo9C+4d1U1OyjJJGSppUXcnkR++nZl4lTf/
3McYomfzYfWP2ny3pV9KkgmkskWq3VE9k6udYIvmRxz7aW5lqt9ICvwr2h+Wu/
UPG3dHEgbp6a0mm/jT7X7+3Pr/Xo4rioHwe68DfWyIpY6RQvk/
DSt1dkZ1wAwDIOK/
HkteTCnkfDXvDSvP77OfzeqSAJPkdrA65jsseAwCAnEK4AQAAOYVwAwAAcgrhB
gAA5BTCDQAAyCmEGwAAkFMINwAAIKcQbgAAQE4h3AAAgJxCuAEAADmFc
AMAAHIK4QYAAOQUwg0AAMgphBsAAJBTfG4X4DRjjCQpHA67XAkAAOiv3u/
t3u/
xwxl04aa9vV2SVFtb63IlAADgaLW3t6ukpOSw+1imPxEohySTSe3cuVPFxcWyLCujz
x0Oh1VbW6uGhgaFQqGMPneuoa2ODu3Vf7RV/9FWR4f26j872soYo/
b2dg0bNkwez+Fn1Qy6nhuPx6MRI0bY+hqhUIgPfj/RVkeH9uo/2qr/
aKujQ3v1X6bb6kg9Nr2YUAwAAHIK4QYAAOQUwk0GBYNB3XLLLQoGg26XkvV
oq6NDe/UfbdV/
tNXRob36z+22GnQTigEAQG6j5wYAAOQUwg0AAMgphBsAAJBTCDcAACCnEG4
y5L777tPo0aOVl5enadOm6bXXXnO7pKxw6623yrKsPrfx48enH+/
p6dG8efM0ZMgQFRUV6Utf+pKam5tdrNg5L774oi6+
+GINGzZMlmXpqaee6vO4MUY333yzampqlJ+fr5kzZ+qDDz7os09LS4suv/
xyhUIhlZaW6hvf+IY6OjocfBfOOFJbff3rXz/
oc3bhhRf22WewtNXChQt11llnqbi4WJWVlZo7d642bNjQZ5/+/
N5t27ZNF110kQoKClRZWanvfe97isfjTr4VR/SnvaZPn37Q5+u6667rs89gaK/
7779fp512Wnphvrq6Oj377LPpx7Ppc0W4yYBHH31UN954o2655RatWbNGkydP1qxZ
s7Rr1y63S8sKp556qhobG9O3l156Kf3Yd77zHf3pT3/S448/
rpUrV2rnzp265JJLXKzWOZ2dnZo8ebLuu+++Qz5+55136qc//
akWLVqkV199VYWFhZo1a5Z6enrS+1x+
+eV65513tHTpUi1ZskQvvviirr32WqfegmOO1FaSdOGFF/b5nP3ud7/r8/
hgaauVK1dq3rx5+utf/6qlS5cqFovpggsuUGdnZ3qfI/
3eJRIJXXTRRYpGo3rllVf04IMPavHixbr55pvdeEu26k97SdI111zT5/
N15513ph8bLO01YsQI3X777Vq9erVWrVqlz372s5ozZ47eeecdSVn2uTI4bmeffbaZN2
9e+n4ikTDDhg0zCxcudLGq7HDLLbeYyZMnH/Kx1tZW4/
f7zeOPP57etn79eiPJ1NfXO1RhdpBknnzyyfT9ZDJpqqurzX/
8x3+kt7W2tppgMGh+97vfGWOMeffdd40k8/
rrr6f3efbZZ41lWWbHjh2O1e60j7eVMcZcddVVZs6cOZ94zGBtK2OM2bVrl5FkVq5c
aYzp3+/dM888Yzwej2lqakrvc//995tQKGQikYizb8BhH28vY4w5//zzzbe//
e1PPGYwt1dZWZl54IEHsu5zRc/
NcYpGo1q9erVmzpyZ3ubxeDRz5kzV19e7WFn2+OCDDzRs2DCdcMIJuvzyy7Vt2zZJ
0urVqxWLxfq03fjx4zVy5MhB33abN29WU1NTn7YpKSnRtGnT0m1TX1+v0tJSnXnm
mel9Zs6cKY/Ho1dffdXxmt22YsUKVVZWaty4cbr++uu1d+/
e9GODua3a2tokSeXl5ZL693tXX1+vSZMmqaqqKr3PrFmzFA6H0/9Lz1Ufb69ev/
nNbzR06FBNnDhRCxYsUFdXV/
qxwdheiURCjzzyiDo7O1VXV5d1n6tBd+HMTNuzZ48SiUSfvyxJqqqq0nvvvedSVdlj2r
RpWrx4scaNG6fGxkb9y7/8iz796U9r3bp1ampqUiAQUGlpaZ9jqqqq1NTU5E7BWaL3/
R/qc9X7WFNTkyorK/s87vP5VF5ePuja78ILL9Qll1yiMWPGaNOmTfqnf/onzZ49W/
X19fJ6vYO2rZLJpObPn69zzz1XEydOlKR+/
d41NTUd8rPX+1iuOlR7SdLXvvY1jRo1SsOGDdNbb72lf/zHf9SGDRv0hz/
8QdLgaq+3335bdXV16unpUVFRkZ588klNmDBBa9euzarPFeEGtpo9e3b659NOO03T
pk3TqFGj9Nhjjyk/P9/FypBLvvrVr6Z/
njRpkk477TSdeOKJWrFihWbMmOFiZe6aN2+e1q1b12eeGz7ZJ7XXR+dmTZo0STU1
NZoxY4Y2bdqkE0880ekyXTVu3DitXbtWbW1t+v3vf6+rrrpKK1eudLusgzAsdZyGDh
0qr9d70Izw5uZmVVdXu1RV9iotLdXJJ5+sjRs3qrq6WtFoVK2trX32oe2Ufv+H+1xVV
1cfNGk9Ho+rpaVl0LffCSecoKFDh2rjxo2SBmdb3XDDDVqyZIleeOEFjRgxIr29P793
1dXVh/zs9T6Wiz6pvQ5l2rRpktTn8zVY2isQCGjs2LGaOnWqFi5cqMmTJ+snP/
lJ1n2uCDfHKRAIaOrUqVq2bFl6WzKZ1LJly1RXV+diZdmpo6NDmzZtUk1NjaZOnS
q/39+n7TZs2KBt27YN+rYbM2aMqqur+7RNOBzWq6+
+mm6buro6tba2avXq1el9li9frmQymf7Hd7Davn279u7dq5qaGkmDq62MMbrhhhv05J
NPavny5RozZkyfx/
vze1dXV6e33367TyBcunSpQqGQJkyY4MwbcciR2utQ1q5dK0l9Pl+Dpb0+LplMKhKJ
ZN/
nKqPTkwepRx55xASDQbN48WLz7rvvmmuvvdaUlpb2mRE+WH33u981K1asMJs3bz
Yvv/
yymTlzphk6dKjZtWuXMcaY6667zowcOdIsX77crFq1ytTV1Zm6ujqXq3ZGe3u7eeON
N8wbb7xhJJm7777bvPHGG2br1q3GGGNuv/12U1paap5+
+mnz1ltvmTlz5pgxY8aY7u7u9HNceOGFZsqUKebVV181L730kjnppJPMZZdd5tZbss
3h2qq9vd3cdNNNpr6+3mzevNk8//zz5owzzjAnnXSS6enpST/HYGmr66+/
3pSUlJgVK1aYxsbG9K2rqyu9z5F+7+LxuJk4caK54IILzNq1a82f//
xnU1FRYRYsWODGW7LVkdpr48aN5rbbbjOrVq0ymzdvNk8//
bQ54YQTzHnnnZd+jsHSXj/4wQ/
MypUrzebNm81bb71lfvCDHxjLssxzzz1njMmuzxXhJkN+9rOfmZEjR5pAIGDOPvts8
9e//
tXtkrLCpZdeampqakwgEDDDhw83l156qdm4cWP68e7ubvOtb33LlJWVmYKCAvPFL
37RNDY2ulixc1544QUj6aDbVVddZYxJnQ7+z//
8z6aqqsoEg0EzY8YMs2HDhj7PsXfvXnPZZZeZoqIiEwqFzNVXX23a29tdeDf2Olxbd
XV1mQsuuMBUVFQYv99vRo0aZa655pqD/
nMxWNrqUO0kyfz6179O79Of37stW7aY2bNnm/
z8fDN06FDz3e9+18RiMYffjf2O1F7btm0z5513nikvLzfBYNCMHTvWfO973zNtbW1
9nmcwtNc//MM/
mFGjRplAIGAqKirMjBkz0sHGmOz6XFnGGJPZviAAAAD3MOcGAADkFMINAAD
IKYQbAACQUwg3AAAgpxBuAABATiHcAACAnEK4AQAAOYVwAwAAcgrhBsC
gM3r0aN1zzz1ulwHAJoQbALb6+te/rrlz50qSpk+frvnz5zv22osXL1ZpaelB219//
XVde+21jtUBwFk+twsAgKMVjUYVCASO+fiKiooMVgMg29BzA8ARX//
617Vy5Ur95Cc/
kWVZsixLW7ZskSStW7dOs2fPVlFRkaqqqnTFFVdoz5496WOnT5+uG264QfPnz9fQo
UM1a9YsSdLdd9+tSZMmqbCwULW1tfrWt76ljo4OSdKKFSt09dVXq62tLf16t956q6S
Dh6W2bdumOXPmqKioSKFQSF/5ylfU3NycfvzWW2/
V6aefrocfflijR49WSUmJvvrVr6q9vd3eRgNwTAg3ABzxk5/8RHV1dbrmmmvU2Nioxs
ZG1dbWqrW1VZ/97Gc1ZcoUrVq1Sn/+85/V3Nysr3zlK32Of/
DBBxUIBPTyyy9r0aJFkiSPx6Of/vSneuedd/
Tggw9q+fLl+v73vy9JOuecc3TPPfcoFAqlX+
+mm246qK5kMqk5c+aopaVFK1eu1NKlS/Xhhx/
q0ksv7bPfpk2b9NRTT2nJkiVasmSJVq5cqdtvv92m1gJwPBiWAuCIkpISBQIBFRQUq
Lq6Or393nvv1ZQpU/Tv//7v6W2/+tWvVFtbq/fff18nn3yyJOmkk07SnXfe2ec5Pzp/Z/
To0fq3f/s3XXfddfr5z3+uQCCgkpISWZbV5/
U+btmyZXr77be1efNm1dbWSpIeeughnXrqqXr99dd11llnSUqFoMWLF6u4uFiSdMU
VV2jZsmX60Y9+dHwNAyDj6LkB4Ko333xTL7zwgoqKitK38ePHS0r1lvSaOnXqQcc
+//
zzmjFjhoYPH67i4mJdccUV2rt3r7q6uvr9+uvXr1dtbW062EjShAkTVFpaqvXr16e3jR4
9Oh1sJKmmpka7du06qvcKwBn03ABwVUdHhy6++GLdcccdBz1WU1OT/
rmwsLDPY1u2bNHnP/95XX/99frRj36k8vJyvfTSS/rGN76haDSqgoKCjNbp9/
v73LcsS8lkMqOvASAzCDcAHBMIBJRIJPpsO+OMM/TEE09o9OjR8vn6/0/
S6tWrlUwmddddd8njSXVCP/
bYY0d8vY875ZRT1NDQoIaGhnTvzbvvvqvW1lZNmDCh3/UAyB4MSwFwzOjRo/
Xqq69qy5Yt2rNnj5LJpObNm6eWlhZddtllev3117Vp0yb95S9/0dVXX33YYDJ27FjFYj
H97Gc/04cffqiHH344PdH4o6/X0dGhZcuWac+ePYccrpo5c6YmTZqkyy+/
XGvWrNFrr72mK6+8Uueff77OPPPMjLcBAPsRbgA45qabbpLX69WECRNUUVGhb
du2adiwYXr55ZeVSCR0wQUXaNKkSZo/
f75KS0vTPTKHMnnyZN1999264447NHHiRP3mN7/RwoUL+
+xzzjnn6LrrrtOll16qioqKgyYkS6nhpaefflplZWU677zzNHPmTJ1wwgl69NFHM/
7+ATjDMsYYt4sAAADIFHpuAABATiHcAACAnEK4AQAAOYVwAwAAcgrhBgA
A5BTCDQAAyCmEGwAAkFMINwAAIKcQbgAAQE4h3AAAgJxCuAEAADnl/
wPCRdXaJ8nk8gAAAABJRU5ErkJggg==\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Accuracy on test set: 0.946\n"
]
}
],
"source": [
"import numpy as np\n",
"from scipy.io import loadmat\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.neural_network import MLPClassifier\n",
"\n",
"# Đọc dữ liệu từ file .mat\n",
"# Đường dẫn đến tệp .mat\n",
"ex7 = '/content/drive/MyDrive/Colab Notebooks/ex7data.mat'\n",
"\n",
"data = loadmat(ex7)\n",
"X = data['X']\n",
"y = data['y'].ravel()\n",
"\n",
"# Chuyển đổi kích thước một số ảnh về 20x20 và hiển thị\n",
"sample_images = X[:10, :]\n",
"sample_images_reshaped = sample_images.reshape(-1, 20, 20).transpose(0, 2, 1)\
n",
"fig, axes = plt.subplots(2, 5, figsize=(10, 4))\n",
"for i, ax in enumerate(axes.flatten()):\n",
" ax.imshow(sample_images_reshaped[i], cmap='gray')\n",
" ax.axis('off')\n",
"plt.show()\n",
"\n",
"# Chia dữ liệu thành tập train và tập test\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y,
random_state=42)\n",
"\n",
"# Train mạng neural network\n",
"clf = MLPClassifier(hidden_layer_sizes=(100, 50), activation='logistic',
learning_rate_init=0.1,\n",
" shuffle=True, solver='sgd', alpha=0.1, max_iter = 300,
random_state=42)\n",
"clf.fit(X_train, y_train)\n",
"\n",
"# Hiển thị đường cong loss\n",
"plt.plot(clf.loss_curve_)\n",
"plt.xlabel('Iteration')\n",
"plt.ylabel('Loss')\n",
"plt.show()\n",
"\n",
"# Độ chính xác trên tập test\n",
"accuracy = clf.score(X_test, y_test)\n",
"print('Accuracy on test set:', accuracy)"
]
}
]
}
Kết quả: