Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

Trong dữ liệu ex7data.

mat chưa dữ liệu lưu dưới dạng dict gồm:

X: 5000x400 là 5000 ảnh nhị phân chữ số viết tay có kích thước 20x20

y: 5000x1 là nhãn của các ảnh tương ứng

Các bạn làm các công việc sau:

- Đọ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.

- Train một mạng neural network với các thông số sau:

+ 2 lớp ẩn: 100, 50

+ Hàm kích hoạt: sigmoid

+ Learning rate khởi tạo: 0.1

+ Trộn dữ liệu mỗi vòng lặp

+ Phương pháp tối ưu: stochastic gradient descent

+ Hệ số regularization: 0.1

- Show đường cong loss trong quá trình học

- Show độ chính xác trên tập test

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ả:

Accuracy on test set: 0.946

You might also like