{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "(sec:pandas_4)=\n", "# 판다스 활용: 기초 통계" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**주요 내용**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Series`와 `DataFrame` 객체를로부터 기초 통계 자료를 추출하는 방식을 다룬다.\n", "\n", "* 합, 평균, 표준편차\n", "* 상관관계, 공분산\n", "* 중복값 처리" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**기본 설정**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`pandas` 라이브러리는 보통 `pd` 라는 별칭으로 사용된다." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "랜덤 시드, 어레이 내부에 사용되는 부동소수점 정확도, 도표 크기 지정 옵션 등은 이전과 동일하다." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "np.random.seed(12345)\n", "np.set_printoptions(precision=4, suppress=True)\n", "\n", "import matplotlib.pyplot as plt\n", "plt.rc('figure', figsize=(10, 6))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Series`와 `DataFrame`을 표로 보여줄 때 사용되는 행의 수를 20으로 지정한다. \n", "기본 값은 60이다." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "60" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.options.display.max_rows # 원래 60이 기본." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "기본값을 20으로 변경한다." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "pd.set_option(\"display.max_rows\", 20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 데이터 탐색" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "데이터 탐색을 위한 주요 메서드를 살펴 본다.\n", "\n", "- `head()`\n", "- `tail()`\n", "- `info()`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "설명을 위해 아래 데이터프레임을 이용한다." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearstatepopdebt
one2000Ohio1.50.000
two2001Ohio1.70.125
three2002Ohio3.60.250
four2001Nevada2.40.375
five2002Nevada2.90.500
six2003Nevada3.20.625
seven2002NY8.30.750
eight2003NY8.40.875
nine2004NY8.51.000
\n", "
" ], "text/plain": [ " year state pop debt\n", "one 2000 Ohio 1.5 0.000\n", "two 2001 Ohio 1.7 0.125\n", "three 2002 Ohio 3.6 0.250\n", "four 2001 Nevada 2.4 0.375\n", "five 2002 Nevada 2.9 0.500\n", "six 2003 Nevada 3.2 0.625\n", "seven 2002 NY 8.3 0.750\n", "eight 2003 NY 8.4 0.875\n", "nine 2004 NY 8.5 1.000" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dict = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada', 'NY', 'NY', 'NY'],\n", " 'year': [str(num) for num in [2000, 2001, 2002, 2001, 2002, 2003, 2002, 2003, 2004]],\n", " 'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2, 8.3, 8.4, 8.5],\n", " 'debt':np.linspace(0, 1, 9)}\n", "\n", "frame = pd.DataFrame(dict, columns=['year', 'state', 'pop', 'debt'],\n", " index=['one', 'two', 'three', 'four',\n", " 'five', 'six', 'seven', 'eight', 'nine'])\n", "frame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**`head()` 메서드**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`head()` 메서드는 지정된 크기만큼의 행을 보여준다. \n", "인자를 지정하지 않으면 처음 5개의 행을 보여준다." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearstatepopdebt
one2000Ohio1.50.000
two2001Ohio1.70.125
three2002Ohio3.60.250
\n", "
" ], "text/plain": [ " year state pop debt\n", "one 2000 Ohio 1.5 0.000\n", "two 2001 Ohio 1.7 0.125\n", "three 2002 Ohio 3.6 0.250" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frame.head(3)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearstatepopdebt
one2000Ohio1.50.000
two2001Ohio1.70.125
three2002Ohio3.60.250
four2001Nevada2.40.375
five2002Nevada2.90.500
\n", "
" ], "text/plain": [ " year state pop debt\n", "one 2000 Ohio 1.5 0.000\n", "two 2001 Ohio 1.7 0.125\n", "three 2002 Ohio 3.6 0.250\n", "four 2001 Nevada 2.4 0.375\n", "five 2002 Nevada 2.9 0.500" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frame.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**`tail()` 메서드**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`tail()` 메서드는 지정된 크기만큼의 행을 뒤에서부터 보여준다. \n", "인자를 지정하지 않으면 뒤에서부터 5개의 행을 보여준다." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearstatepopdebt
seven2002NY8.30.750
eight2003NY8.40.875
nine2004NY8.51.000
\n", "
" ], "text/plain": [ " year state pop debt\n", "seven 2002 NY 8.3 0.750\n", "eight 2003 NY 8.4 0.875\n", "nine 2004 NY 8.5 1.000" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frame.tail(3)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearstatepopdebt
five2002Nevada2.90.500
six2003Nevada3.20.625
seven2002NY8.30.750
eight2003NY8.40.875
nine2004NY8.51.000
\n", "
" ], "text/plain": [ " year state pop debt\n", "five 2002 Nevada 2.9 0.500\n", "six 2003 Nevada 3.2 0.625\n", "seven 2002 NY 8.3 0.750\n", "eight 2003 NY 8.4 0.875\n", "nine 2004 NY 8.5 1.000" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frame.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**`info()` 메서드**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "열(columns) 별로 결측치가 아닌 항목의 수와 자료형을 확인해준다.\n", "\n", "- `9 non-null`: 결측치가 아닌 항목이 9개 있음을 의미함.\n", "- `object`: 일반적으로 문자열 자료형을 가리킴." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 9 entries, one to nine\n", "Data columns (total 4 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 year 9 non-null object \n", " 1 state 9 non-null object \n", " 2 pop 9 non-null float64\n", " 3 debt 9 non-null float64\n", "dtypes: float64(2), object(2)\n", "memory usage: 360.0+ bytes\n" ] } ], "source": [ "frame.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 합, 평균, 표준편차" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "기초 통계에서 사용되는 주요 메서드들의 활용법을 살펴본다.\n", "\n", "* `sum()`\n", "* `mean()`\n", "* `std()`\n", "* `idxmax()`/`idxmin()`\n", "* `cumsum()`\n", "* `describe()`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "기본적으로 열 단위로 작동하며, 결측치는 행 또는 열의 모든 값이 결측치가 아니라면 기본적으로 무시된다.\n", "행 단위로 작동하게 하려면 축을 `axis=1` 또는 `axis='columns`로 지정하고,\n", "결측치를 무시하지 않으려면 `skipna=False`로 지정한다." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
onetwo
a1.40NaN
b7.10-4.5
cNaNNaN
d0.75-1.3
\n", "
" ], "text/plain": [ " one two\n", "a 1.40 NaN\n", "b 7.10 -4.5\n", "c NaN NaN\n", "d 0.75 -1.3" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame([[1.4, np.nan], [7.1, -4.5],\n", " [np.nan, np.nan], [0.75, -1.3]],\n", " index=['a', 'b', 'c', 'd'],\n", " columns=['one', 'two'])\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* `sum()` 메서드: 행/열 단위 합 계산" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "one 9.25\n", "two -5.80\n", "dtype: float64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "결측치를 무시하지 않으면, 결측치가 포함된 행/렬에 대한 계산은 하지 않는다." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "one NaN\n", "two NaN\n", "dtype: float64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.sum(skipna=False)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "a 1.40\n", "b 2.60\n", "c 0.00\n", "d -0.55\n", "dtype: float64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.sum(axis='columns')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "시리즈는 하나의 열을 갖는 데이터프레임처럼 작동한다." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "a 1.40\n", "b 7.10\n", "c NaN\n", "d 0.75\n", "Name: one, dtype: float64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['one']" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9.25" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['one'].sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* `mean()` 메서드: 평균값 계산" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "one 3.083333\n", "two -2.900000\n", "dtype: float64" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.mean()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "a 1.400\n", "b 1.300\n", "c NaN\n", "d -0.275\n", "dtype: float64" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.mean(axis='columns')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "결측치를 무시하지 않으면, 결측치가 포함된 행/렬에 대한 계산은 하지 않는다." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "one NaN\n", "two NaN\n", "dtype: float64" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.mean(skipna=False)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "a NaN\n", "b 1.300\n", "c NaN\n", "d -0.275\n", "dtype: float64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.mean(axis='columns', skipna=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "시리즈의 경우도 동일하게 작동한다." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.0833333333333335" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['one'].mean()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "nan" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['one'].mean(skipna=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* `std()` 메서드: 표준편차 계산" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "one 3.493685\n", "two 2.262742\n", "dtype: float64" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.std()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "a NaN\n", "b 8.202439\n", "c NaN\n", "d 1.449569\n", "dtype: float64" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.std(axis='columns')" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "one NaN\n", "two NaN\n", "dtype: float64" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.std(skipna=False)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "a NaN\n", "b 8.202439\n", "c NaN\n", "d 1.449569\n", "dtype: float64" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.std(axis='columns', skipna=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* `idxmax()`/`idxmin()`: 최댓값/최솟값을 갖는 인덱스 확인" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "아래 코드는 열별 최댓값을 갖는 인덱스를 찾아준다." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "one b\n", "two d\n", "dtype: object" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.idxmax()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* `cumsum()`: 누적 합 계산" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
onetwo
a1.40NaN
b8.50-4.5
cNaNNaN
d9.25-5.8
\n", "
" ], "text/plain": [ " one two\n", "a 1.40 NaN\n", "b 8.50 -4.5\n", "c NaN NaN\n", "d 9.25 -5.8" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.cumsum()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
onetwo
a1.4NaN
b8.5NaN
cNaNNaN
dNaNNaN
\n", "
" ], "text/plain": [ " one two\n", "a 1.4 NaN\n", "b 8.5 NaN\n", "c NaN NaN\n", "d NaN NaN" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.cumsum(skipna=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* `describe()`: 요약 통계 보여주기" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "수치형 데이터의 경우 평균값, 표준편차, 사분위수 등의 통계 정보를 요약해서 보여준다." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
onetwo
count3.0000002.000000
mean3.083333-2.900000
std3.4936852.262742
min0.750000-4.500000
25%1.075000-3.700000
50%1.400000-2.900000
75%4.250000-2.100000
max7.100000-1.300000
\n", "
" ], "text/plain": [ " one two\n", "count 3.000000 2.000000\n", "mean 3.083333 -2.900000\n", "std 3.493685 2.262742\n", "min 0.750000 -4.500000\n", "25% 1.075000 -3.700000\n", "50% 1.400000 -2.900000\n", "75% 4.250000 -2.100000\n", "max 7.100000 -1.300000" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 상관관계와 공분산" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "금융 사이트에서 구한 4 개 회사의 주가(price)와 거래량(volume)을 담고 있는 두 개의 데이터를 이용하여\n", "상관계수와 공분산을 계산해본다.\n", "이를 위해 먼저 바이너리 파일 두 개를 다운로드해서 지정된 하위 디렉토리에 저장한다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* 파일 저장 디렉토리 지정 및 생성" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "data_path = Path() / \"examples\"\n", "\n", "data_path.mkdir(parents=True, exist_ok=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* 특정 서버에서 파일 다운로드 함수" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "import requests\n", "\n", "# 파일 서버 기본 주소\n", "base_url = \"https://raw.githubusercontent.com/codingalzi/datapy/master/jupyter-book/examples/\"\n", " \n", "def myWget(filename):\n", " # 다운로드 대상 파일 경로\n", " file_url = base_url + filename\n", " \n", " # 저장 경로와 파일명\n", " target_path = data_path / filename\n", "\n", " data = requests.get(file_url)\n", " \n", " with open(target_path, 'wb') as f:\n", " f.write(data.content)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "두 개의 픽클 파일 다운로드한다.\n", "- pkl 파일: 판다스에서 제공하는 객체를 `to_pickle()` 메서드를 이용하여 \n", " 컴퓨터에 파일로 저장할 때 사용되는 바이너리 파일." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "myWget(\"yahoo_price.pkl\")" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "myWget(\"yahoo_volume.pkl\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "다운로드한 두 개의 데이터를 불러온다.\n", "\n", "- `read_pickle()`: 저장된 pkl 파일을 파이썬으로 불러오는 함수" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "아래 코드는 일별 주가 데이터를 불러온다.\n", "2010년 1월 4일부터 2016년 10월 21일까지의 데이터 1714개를 담고 있다." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AAPLGOOGIBMMSFT
Date
2010-01-0427.990226313.062468113.30453625.884104
2010-01-0528.038618311.683844111.93582225.892466
2010-01-0627.592626303.826685111.20868325.733566
2010-01-0727.541619296.753749110.82373225.465944
2010-01-0827.724725300.709808111.93582225.641571
...............
2016-10-17117.550003779.960022154.77000457.220001
2016-10-18117.470001795.260010150.72000157.660000
2016-10-19117.120003801.500000151.25999557.529999
2016-10-20117.059998796.969971151.52000457.250000
2016-10-21116.599998799.369995149.63000559.660000
\n", "

1714 rows × 4 columns

\n", "
" ], "text/plain": [ " AAPL GOOG IBM MSFT\n", "Date \n", "2010-01-04 27.990226 313.062468 113.304536 25.884104\n", "2010-01-05 28.038618 311.683844 111.935822 25.892466\n", "2010-01-06 27.592626 303.826685 111.208683 25.733566\n", "2010-01-07 27.541619 296.753749 110.823732 25.465944\n", "2010-01-08 27.724725 300.709808 111.935822 25.641571\n", "... ... ... ... ...\n", "2016-10-17 117.550003 779.960022 154.770004 57.220001\n", "2016-10-18 117.470001 795.260010 150.720001 57.660000\n", "2016-10-19 117.120003 801.500000 151.259995 57.529999\n", "2016-10-20 117.059998 796.969971 151.520004 57.250000\n", "2016-10-21 116.599998 799.369995 149.630005 59.660000\n", "\n", "[1714 rows x 4 columns]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "price = pd.read_pickle('examples/yahoo_price.pkl')\n", "price" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "아래 코드는 동일 회사, 동일 날짜의 1일 거래량(volume) 담고 있는 데이터를 불러온다." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AAPLGOOGIBMMSFT
Date
2010-01-041234324003927000615530038409100
2010-01-051504762006031900684140049749600
2010-01-061380400007987100560530058182400
2010-01-0711928280012876600584060050559700
2010-01-081119027009483900419720051197400
...............
2016-10-17236249001089500589040023830000
2016-10-182455350019956001277060019149500
2016-10-1920034600116600463290022878400
2016-10-20241258001734200402310049455600
2016-10-21223848001260500440190079974200
\n", "

1714 rows × 4 columns

\n", "
" ], "text/plain": [ " AAPL GOOG IBM MSFT\n", "Date \n", "2010-01-04 123432400 3927000 6155300 38409100\n", "2010-01-05 150476200 6031900 6841400 49749600\n", "2010-01-06 138040000 7987100 5605300 58182400\n", "2010-01-07 119282800 12876600 5840600 50559700\n", "2010-01-08 111902700 9483900 4197200 51197400\n", "... ... ... ... ...\n", "2016-10-17 23624900 1089500 5890400 23830000\n", "2016-10-18 24553500 1995600 12770600 19149500\n", "2016-10-19 20034600 116600 4632900 22878400\n", "2016-10-20 24125800 1734200 4023100 49455600\n", "2016-10-21 22384800 1260500 4401900 79974200\n", "\n", "[1714 rows x 4 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "volume = pd.read_pickle('examples/yahoo_volume.pkl')\n", "volume" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "주가의 일단위 변화율을 알아보기 위해 퍼센트 변화율을 확인해보자.\n", "\n", "**참고:** 증권분야에서 return은 이익율을 의미한다." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AAPLGOOGIBMMSFT
Date
2016-10-17-0.0006800.0018370.002072-0.003483
2016-10-18-0.0006810.019616-0.0261680.007690
2016-10-19-0.0029790.0078460.003583-0.002255
2016-10-20-0.000512-0.0056520.001719-0.004867
2016-10-21-0.0039300.003011-0.0124740.042096
\n", "
" ], "text/plain": [ " AAPL GOOG IBM MSFT\n", "Date \n", "2016-10-17 -0.000680 0.001837 0.002072 -0.003483\n", "2016-10-18 -0.000681 0.019616 -0.026168 0.007690\n", "2016-10-19 -0.002979 0.007846 0.003583 -0.002255\n", "2016-10-20 -0.000512 -0.005652 0.001719 -0.004867\n", "2016-10-21 -0.003930 0.003011 -0.012474 0.042096" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "returns = price.pct_change()\n", "returns.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**`corr()`/`cov()` 메서드**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "상관계수와 공분산 모두 두 확률변수 사이의 선형관계를 보여주며\n", "차이점은 다음과 같다.\n", "\n", "- 공분산: 두 확률변수 $X, Y$ 사이의 선형관계를 계량화 함. \n", " 양수/음수 여부에 따라 양 또는 음의 선형관계이며,\n", " 절댓값이 클 수록 강한 선형관계임.\n", " 다만, 사용되는 확률변수의 척도(scale)에 많은 영향을 받음.\n", " 따라서 보통 정규화한 값인 상관계수를 사용함.\n", "\n", "$$\n", "\\begin{align*}\n", "Cov(X, Y) & = E((X-\\mu_X)(Y-\\mu_Y))\\\\[2ex]\n", "\\mu_X & = E(X) = \\dfrac{\\sum X}{n}\\\\[1.5ex]\n", "\\mu_Y & = E(Y) = \\dfrac{\\sum Y}{n}\n", "\\end{align*}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- 상관계수: 두 확률변수 사이의 선형관계를 -1과 1 사이의 값으로 표현.\n", " 양수/음수 여부에 따라 양 또는 음의 선형관계이며,\n", " 절댓값이 1에 가까울 수록 강한 선형관계임.\n", "\n", "$$\n", "\\begin{align*}\n", "\\rho & = \\frac{Cov(X, Y)}{\\sigma_X\\cdot \\sigma_Y}\\\\[2ex]\n", "\\sigma_X & = \\sqrt{Var(X)}\\\\[1.5ex]\n", "\\sigma_X & = \\sqrt{Var(X)}\\\\[1.5ex]\n", "Var(X) & = \\dfrac{\\sum (X-\\mu_X)^2}{n}\\\\[1.5ex]\n", "Var(Y) & = \\dfrac{\\sum (X-\\mu_Y)^2}{n}\n", "\\end{align*}\n", "$$ " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "'MSFT'와 'IBM' 사이의 상관계수는 다음과 같다." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.49976361144151144" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "returns['MSFT'].corr(returns['IBM'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "'MSFT'와 'IBM' 사이의 공분산은 다음과 같다." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8.870655479703546e-05" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "returns['MSFT'].cov(returns['IBM'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "전체 회사를 대상으로 하는 상관계수와 공분산을 계산할 수도 있다." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AAPLGOOGIBMMSFT
AAPL1.0000000.4079190.3868170.389695
GOOG0.4079191.0000000.4050990.465919
IBM0.3868170.4050991.0000000.499764
MSFT0.3896950.4659190.4997641.000000
\n", "
" ], "text/plain": [ " AAPL GOOG IBM MSFT\n", "AAPL 1.000000 0.407919 0.386817 0.389695\n", "GOOG 0.407919 1.000000 0.405099 0.465919\n", "IBM 0.386817 0.405099 1.000000 0.499764\n", "MSFT 0.389695 0.465919 0.499764 1.000000" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "returns.corr()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AAPLGOOGIBMMSFT
AAPL0.0002770.0001070.0000780.000095
GOOG0.0001070.0002510.0000780.000108
IBM0.0000780.0000780.0001460.000089
MSFT0.0000950.0001080.0000890.000215
\n", "
" ], "text/plain": [ " AAPL GOOG IBM MSFT\n", "AAPL 0.000277 0.000107 0.000078 0.000095\n", "GOOG 0.000107 0.000251 0.000078 0.000108\n", "IBM 0.000078 0.000078 0.000146 0.000089\n", "MSFT 0.000095 0.000108 0.000089 0.000215" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "returns.cov()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 중복과 빈도" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**`unique()` 메서드**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "시리즈에서 사용된 값을 중복 없이 확인하려면 `unique()` 메서드를 이용한다.\n", "`set()` 함수와 유사하게 작동하며, 넘파이 어레이를 반환한다." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 c\n", "1 a\n", "2 d\n", "3 a\n", "4 a\n", "5 b\n", "6 b\n", "7 c\n", "8 c\n", "dtype: object" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "obj = pd.Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])\n", "obj" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['c', 'a', 'd', 'b'], dtype=object)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uniques = obj.unique()\n", "uniques" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**`value_counts()` 메서드**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "값들의 빈도수를 확인하기 위해 사용한다." ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "c 3\n", "a 3\n", "b 2\n", "d 1\n", "Name: count, dtype: int64" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "obj.value_counts()" ] }, { "cell_type": "markdown", "metadata": { "id": "z1ru7qoX0Nmq" }, "source": [ "## 실전 예제: 붓꽃 데이터셋 분석" ] }, { "cell_type": "markdown", "metadata": { "id": "PuQD7FBI0Nmq" }, "source": [ "아래 링크에 아이리스(붓꽃) 데이터(`iris.data`)가 저장되어 있다." ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "id": "LUVIDcz10Nmq" }, "outputs": [], "source": [ "url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'" ] }, { "cell_type": "markdown", "metadata": { "id": "PuQD7FBI0Nmq" }, "source": [ "`iris.data` 파일에는 아래 형식의 데이터가 150개 들어 있다. \n", "\n", "```python\n", "5.1,3.5,1.4,0.2,Iris-setosa\n", "4.9,3.0,1.4,0.2,Iris-setosa\n", "4.7,3.2,1.3,0.2,Iris-setosa\n", "4.6,3.1,1.5,0.2,Iris-setosa\n", "5.0,3.6,1.4,0.2,Iris-setosa\n", "...\n", "```\n", "\n", "포함된 데이터 특성들 사이의 구분자, \n", "즉 열 구분자는 쉼표가 사용되었으며 각 열의 라벨은 지정되어 있지 않다.\n", "따라서 판다스의 `read_csv()` 함수의 인자를 아래처럼 지정해서 해당 파일을\n", "데이터프레임으로 불러온다." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "id": "LUVIDcz10Nmq" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
..................
1456.73.05.22.3Iris-virginica
1466.32.55.01.9Iris-virginica
1476.53.05.22.0Iris-virginica
1486.23.45.42.3Iris-virginica
1495.93.05.11.8Iris-virginica
\n", "

150 rows × 5 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4\n", "0 5.1 3.5 1.4 0.2 Iris-setosa\n", "1 4.9 3.0 1.4 0.2 Iris-setosa\n", "2 4.7 3.2 1.3 0.2 Iris-setosa\n", "3 4.6 3.1 1.5 0.2 Iris-setosa\n", "4 5.0 3.6 1.4 0.2 Iris-setosa\n", ".. ... ... ... ... ...\n", "145 6.7 3.0 5.2 2.3 Iris-virginica\n", "146 6.3 2.5 5.0 1.9 Iris-virginica\n", "147 6.5 3.0 5.2 2.0 Iris-virginica\n", "148 6.2 3.4 5.4 2.3 Iris-virginica\n", "149 5.9 3.0 5.1 1.8 Iris-virginica\n", "\n", "[150 rows x 5 columns]" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris = pd.read_csv(url, sep=',', header=None)\n", "iris" ] }, { "cell_type": "markdown", "metadata": { "id": "2KCBBeMr0Nmq" }, "source": [ "하나의 데이터에 사용된 값들은 하나의 아이리스(붓꽃)에 대한 꽃잎, 꽃받침과 관련된 특성(features)과 품종을 나타내며,\n", "보다 구체적으로 아래 순서를 따른다.\n", "\n", "```\n", "꽃받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비, 품종\n", "```\n", "\n", "열 라벨을 언급한대로 수정한다." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "columns = ['꽃받침길이', '꽃받침너비', '꽃잎길이', '꽃잎너비', '품종']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "열 라벨의 영문명은 다음과 같다." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "columns_eng = ['Sepal length', 'Sepal width', 'Petal length', 'Petal width', 'Variety']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "열 라벨을 한글명으로 지정해보자." ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비품종
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
..................
1456.73.05.22.3Iris-virginica
1466.32.55.01.9Iris-virginica
1476.53.05.22.0Iris-virginica
1486.23.45.42.3Iris-virginica
1495.93.05.11.8Iris-virginica
\n", "

150 rows × 5 columns

\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비 품종\n", "0 5.1 3.5 1.4 0.2 Iris-setosa\n", "1 4.9 3.0 1.4 0.2 Iris-setosa\n", "2 4.7 3.2 1.3 0.2 Iris-setosa\n", "3 4.6 3.1 1.5 0.2 Iris-setosa\n", "4 5.0 3.6 1.4 0.2 Iris-setosa\n", ".. ... ... ... ... ...\n", "145 6.7 3.0 5.2 2.3 Iris-virginica\n", "146 6.3 2.5 5.0 1.9 Iris-virginica\n", "147 6.5 3.0 5.2 2.0 Iris-virginica\n", "148 6.2 3.4 5.4 2.3 Iris-virginica\n", "149 5.9 3.0 5.1 1.8 Iris-virginica\n", "\n", "[150 rows x 5 columns]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.columns = columns\n", "iris" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "포함된 5개의 특성(열)별 정보는 다음과 같다." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 150 entries, 0 to 149\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 꽃받침길이 150 non-null float64\n", " 1 꽃받침너비 150 non-null float64\n", " 2 꽃잎길이 150 non-null float64\n", " 3 꽃잎너비 150 non-null float64\n", " 4 품종 150 non-null object \n", "dtypes: float64(4), object(1)\n", "memory usage: 6.0+ KB\n" ] } ], "source": [ "iris.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "수치형 특성들의 간략한 통계 정보는 다음과 같다.\n", "즉 품종 특성은 제외된다." ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비
count150.000000150.000000150.000000150.000000
mean5.8433333.0540003.7586671.198667
std0.8280660.4335941.7644200.763161
min4.3000002.0000001.0000000.100000
25%5.1000002.8000001.6000000.300000
50%5.8000003.0000004.3500001.300000
75%6.4000003.3000005.1000001.800000
max7.9000004.4000006.9000002.500000
\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비\n", "count 150.000000 150.000000 150.000000 150.000000\n", "mean 5.843333 3.054000 3.758667 1.198667\n", "std 0.828066 0.433594 1.764420 0.763161\n", "min 4.300000 2.000000 1.000000 0.100000\n", "25% 5.100000 2.800000 1.600000 0.300000\n", "50% 5.800000 3.000000 4.350000 1.300000\n", "75% 6.400000 3.300000 5.100000 1.800000\n", "max 7.900000 4.400000 6.900000 2.500000" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "수치형 특성 각각의 의미는 아래 사진에서 확인할 수 있다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**품종 확인**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "품종은 다음과 같이 확인된다." ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'], dtype=object)" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "varieties = iris.품종.unique()\n", "varieties" ] }, { "cell_type": "markdown", "metadata": { "id": "GOjOv4pl0Nmr" }, "source": [ "150개의 데이터는 아래 세 개의 품종으로 구분된다.\n", "\n", "```\n", "'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "품종별로 각각 50개의 데이터 샘플이 포함되어 있다." ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "품종\n", "Iris-setosa 50\n", "Iris-versicolor 50\n", "Iris-virginica 50\n", "Name: count, dtype: int64" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.품종.value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "품종명을 단순화시키기 위해 유니버설 함수를 정의한다." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "shortening = np.vectorize(lambda x: x.replace('Iris-', '').capitalize())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`shortening()` 함수는 `Iris-` 접두사를 제거한 후에 대문자로 시작하는 품종명을 생성한다." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Setosa', 'Versicolor', 'Virginica'], dtype='\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비품종
05.13.51.40.20
14.93.01.40.20
24.73.21.30.20
34.63.11.50.20
45.03.61.40.20
..................
1456.73.05.22.32
1466.32.55.01.92
1476.53.05.22.02
1486.23.45.42.32
1495.93.05.11.82
\n", "

150 rows × 5 columns

\n", "" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비 품종\n", "0 5.1 3.5 1.4 0.2 0\n", "1 4.9 3.0 1.4 0.2 0\n", "2 4.7 3.2 1.3 0.2 0\n", "3 4.6 3.1 1.5 0.2 0\n", "4 5.0 3.6 1.4 0.2 0\n", ".. ... ... ... ... ..\n", "145 6.7 3.0 5.2 2.3 2\n", "146 6.3 2.5 5.0 1.9 2\n", "147 6.5 3.0 5.2 2.0 2\n", "148 6.2 3.4 5.4 2.3 2\n", "149 5.9 3.0 5.1 1.8 2\n", "\n", "[150 rows x 5 columns]" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**산점도**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "아래 코드는 꽃받침의 길이와 너비를 이용한 산점도를 그린다." ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAIPCAYAAABE0478AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACd8UlEQVR4nOzdeXxU1fnH8c+5M9kTQth3UWQTBBEUXHBDUXHHqlVbd+tu1doq1lqtVazVX1FbsVr3vYpa911wBUFQFtkF2ZewZE8mc+/5/TFhCUlmbmAyk4Tv+/Wa1rn38MyTzJ3Jfe459xxjrbWIiIiIiIhInZxkJyAiIiIiItLYqXASERERERGJQYWTiIiIiIhIDCqcREREREREYlDhJCIiIiIiEoMKJxERERERkRhUOImIiIiIiMSgwklERERERCQGFU4iIiIiIiIxqHASERERERGJIZjsBLYYO3Yst9xyC7/97W8ZN25crW0mTpzIkUceWWP73Llz6dOnj6/X8TyPVatWkZOTgzFmV1IWEREREZEmzFpLUVERnTp1wnGi9yk1isJp6tSpPProowwYMMBX+/nz59OiRYutz9u2bev7tVatWkXXrl3rnaOIiIiIiDRPy5cvp0uXLlHbJL1wKi4u5txzz+Wxxx7jr3/9q69/065dO1q2bLlTr5eTkwNEfjnbF18iIiIiIrJ7KSwspGvXrltrhGiSXjhdddVVnHDCCRx99NG+C6dBgwZRXl7OPvvsw6233lrr8L0tKioqqKio2Pq8qKgIgBYtWqhwEhERERERX7fwJLVweumll5g+fTpTp0711b5jx448+uijDB48mIqKCp599llGjBjBxIkTOeyww2r9N2PHjuWOO+6IZ9oiIiIiIrKbMdZam4wXXr58OUOGDOHDDz9k4MCBABxxxBHst99+dU4OUZuTTjoJYwxvvvlmrft37HHa0h1XUFCgHicRERERkd1YYWEhubm5vmqDpE1H/t1337Fu3ToGDx5MMBgkGAwyadIkHnzwQYLBIK7r+oozbNgwFi5cWOf+tLS0rcPyNDxPRERERER2RtKG6o0YMYJZs2ZV23bhhRfSp08fbrrpJgKBgK84M2bMoGPHjg2RooiIiIhIs+a6LpWVlclOo0GlpKT4ri2iSVrhlJOTQ//+/atty8rKonXr1lu3jxkzhpUrV/LMM88AMG7cOLp3706/fv0IhUI899xzTJgwgQkTJiQ8fxERERGRpqy4uJgVK1aQpDt3EsYYQ5cuXcjOzt6lOEmfVS+a1atXs2zZsq3PQ6EQN954IytXriQjI4N+/frxzjvvMGrUqCRmKSIiIiLStLiuy4oVK8jMzKRt27a+ZpVriqy1rF+/nhUrVtCzZ89d6nlK2uQQyVKfG8BERERERJqj8vJylixZQvfu3cnIyEh2Og2qrKyMpUuXsueee5Kenl5tX5OYHEJERERERJKrufY0bS9eP6MKJxERERERkRhUOImIiIiIiMTQqCeHEBERERGRxst1XWZ/MY8NqzfRumMe/Yf3icvU342RCicREREREam3L16bwsPXPUn+ig1bt7Xp0porx13I8NFDG/S1H374Yf7+97+zevVq+vXrx7hx4xg+fHiDvqaG6omINGHlpRWsWbqO4s0lyU5FRER2I1+8NoW/nHFftaIJIH/lBv5yxn188dqUBnvtl19+meuuu44//vGPzJgxg+HDh3P88cdXW8aoIahwEhFpgvJXbuD+S8YzuvUF/Hqvqzit9QWMGXUX875dmOzURESkmXNdl4evexJqW9Soatv465/Edd0Gef3/+7//4+KLL+aSSy6hb9++jBs3jq5duzJ+/PgGeb0tVDiJiDQx65bnc9UBN/PhMxOprAhHNlqY/tFMrjv0T3z30Q/JTVBERJq12V/Mq9HTVI2F9cs3MPuLeXF/7VAoxHfffcfIkSOrbR85ciRff/113F9veyqcRESamEdueJrN6wvxwl617Z7r4Xkefzv/n7jhhrnKJyIismH1pri2q4/8/Hxc16V9+/bVtrdv3541a9bE/fW2p8JJRKQJ2bSugK/e+BbP9Wrdbz3LpjWbmfLu9ARnJiIiu4vWHfPi2m5n7LiorbW2wRfzVeEkItKErF68ps6iaQsn4LBs7soEZSQiIrub/sP70KZLa6irTjHQtmtr+g/vE/fXbtOmDYFAoEbv0rp162r0QsWbCicRkSYkIzs9ZhvrWV/tREREdkYgEODKcRdGnuxYPFU9v+IfFzbIek6pqakMHjyYjz76qNr2jz76iIMPPjjur7c9FU4iIk3IHv260nGvGFfUDBxy6gGJSUhERHZLw0cP5bZXbqRN59bVtrft0prbXrmxQddxuuGGG/jPf/7DE088wdy5c7n++utZtmwZl19+eYO9JmgBXBGRJsVxHM6/4yzu+fWDte43juH4i0fU+EMmIiISb8NHD+XgU4Yw+4t5bFi9idYd8+g/vE+D9DRt76yzzmLDhg385S9/YfXq1fTv3593332XPfbYo0FfV4WTiEgTM+Lc4RTkF/Lo75/F8zwCAQfPs3iux4hzh3P1QxclO0UREdlNBAIBBh7RL+Gve+WVV3LllVcm9DVVOImINEGjf3sCR51zKJ889wVrlqwjp1U2R559CF17d052aiIiIs2SCicRkSaqZdtcTr/+xGSnISIislvQ5BAiIiIiIiIxqHASERERERGJQYWTiIiIiIhIDCqcREREREREYlDhJCIiIiIiEoMKJxERERERkRhUOImIiIiIiMSgwklERERERHaK63lMXrGcN+fPZfKK5bie1+Cv+fnnn3PSSSfRqVMnjDG88cYbDf6aoAVwRURERERkJ7y/aCF/+fxT1hQXb93WITub2w47iuP27tlgr1tSUsLAgQO58MILOf300xvsdXakwklEREREROrl/UULuerdN7E7bF9bXMxV777Jv0ad3GDF0/HHH8/xxx/fILGj0VA9ERERERHxzfU8/vL5pzWKJmDrtjs//ywhw/YSSYWTiIiIiIj4NnXVymrD83ZkgdXFRUxdtTJxSSWACicREREREfFtXUndRdPOtGsqVDiJiIiIiIhv7bKy49quqVDhJCIiIiIivh3QqTMdsrMxdew3QMfsHA7o1DmRaTU4FU4iIiIiIuJbwHG47bCjAGoUT1ue/+mwIwk4DVNqFBcX8/333/P9998DsGTJEr7//nuWLVvWIK+3hQonERERERGpl+P27sm/Rp1M++zqw/E6ZOc06FTkANOmTWPQoEEMGjQIgBtuuIFBgwZx2223NdhrgtZxEhERERGRnXDc3j05Zq8eTF21knUlxbTLyuaATp0brKdpiyOOOAJra5sMvWGpcBIRERERkZ0ScByGdema7DQSQkP1REREREREYlDhJCIiIiIiEoMKJxERERERkRhUOImIiIiIiMSgwklEJIaSwlLWLF1HWXFZslMRERGRJNGseiIidfj5x+U8/ef/8tUb3+K5HoGgw/BfDOP8O35Jl54dk52eiIiIJJB6nEREarHgu8VcdeCYrUUTgBv2+PyVyVx1wE0smd2wq5OLiIhI46LCSURkB9Za7rvoYSorKrcWTVt4rkd5SQX/uOzfScpOREREkkGFk4jIDhZMW8ySWctqFE1beK7H3G8W8POPyxOcmYiIiCSLCicRkR0sm7syru1ERESaK2tdbMUUbNnbkf+3boO/5tixYznggAPIycmhXbt2nHrqqcyfP7/BX1eFk4jIDjJy0n22y2jgTERERBovW/4Bdv2R2E2/xhbcEPn/9Udiyz9o0NedNGkSV111FZMnT+ajjz4iHA4zcuRISkpKGvR1NaueiMgO9j96AGmZaVSUVtTZJrtlFgMO65vArERERBoPW/4BdvO1gK2+w1sb2d7yQUz6sQ3y2u+//361508++STt2rXju+++47DDDmuQ1wT1OImI1JCZk8GZN54ctc05t4wmNT01QRmJiIg0Hta62MK7qFE0RfZG/rfw7oQM2wMoKCgAoFWrVg36OiqcRERq8avbfsHp15+IMQYn4BBMCeAEHIxjOOeW0fzidyclO0UREZHkCE0Db02UBha81ZF2Dcxayw033MChhx5K//79G/S1NFRPRKQWjuNw+f3nc9q1o/jk+S/YtGYzrTu34uhfDadN59bJTk9ERCR5vPXxbbcLrr76ambOnMmXX37Z4K+lwklEJIr2e7TlnFtGJzsNERGRxsNpG992O+maa67hzTff5PPPP6dLly4N+lqgoXoiIiIiIlIfqUPA6QCYOhoYcDpG2jUAay1XX301r732Gp9++il77rlng7zOjlQ4iYiIiIiIb8YEMC3+uOXZjnsj/9viFowJNMjrX3XVVTz33HO88MIL5OTksGbNGtasWUNZWVmDvN4WKpxERERERKReTPqxmJYPgtO++g6nA6YBpyIHGD9+PAUFBRxxxBF07Nhx6+Pll19usNcE3eMkIiIiIiI7waQfC2lHV82ytz5yT1PqkAbradrC2tqmQW94KpxERERERGSnGBOAtKHJTiMhNFRPREREREQkBvU4iUi9FeQX8uHTk1g6ZxlpGWkcetqB7HdUfxxH12JERESkeVLhJCL18tGzk/i/S8bjuh6OYwDDW+M/oOfgvbjrnVvIa5eb7BRFRERE4k6Xh0XEtxmfzuLeC/5JuNLFehY37OGGXQAW/7CUP510T9Ju2BQRERFpSCqcRMS3F+5+rc7heF7YY/7URfwwcU6CsxIREZGdtTtc8IzXz6jCSUR8KSsu4/tPZ+O5Xp1tAsEAX73+bQKzEhERkZ0RCESmDA+FQknOpOFt+Rm3/Mw7S/c4iYgvofJKX+0qypr/F7CIiEhTFwwGyczMZP369aSkpDTbCZ48z2P9+vVkZmYSDO5a6aPCSUR8yWmVTct2uWxeV1BnG8/16N6/awKzEhERkZ1hjKFjx44sWbKEn3/+OdnpNCjHcejWrRvGmF2Ko8JJRHxxHIeTrzyWZ//yCtarZaywgWBqkGPOOzzxyYmIiEi9paam0rNnz2Y/XC81NTUuPWoqnETEtzNuPJmpH3zP/CkL8bYrnpyAg/Usv3/yKnLyspOYoYiIiNSH4zikp6cnO40moXkOZhSRBpGemca9H93GebefRV6HlgAYA/sfPYD7PrudI395SHITFBEREWkgxu4OcxBup7CwkNzcXAoKCmjRokWy0xFpsjzPo7SwjJS0IGkZaclOR0RERKTe6lMbaKieiOwUx3HIbpmV7DREREREEkJD9URERERERGJQ4SQiIiIiIhKDCicREREREZEYVDiJiIiIiIjEoMJJREREREQkBhVOIiKy1aZ1Baxbtp5wZTjZqYiIiDQqjaZwGjt2LMYYrrvuuqjtJk2axODBg0lPT2evvfbikUceSUyCIiLN2JevT+HKITdxZodLOLf7lZzR/hIev+UFykrKk52aiIhIo9AoCqepU6fy6KOPMmDAgKjtlixZwqhRoxg+fDgzZszglltu4dprr2XChAkJylREpPl5/cF3ueP0+1j0/ZKt24o3l/Dfv/+PP4y4g/LSiiRmJyIi0jgkvXAqLi7m3HPP5bHHHiMvLy9q20ceeYRu3boxbtw4+vbtyyWXXMJFF13Efffdl6BsRUSal/UrNvDIDU8BYD1bbZ/nesyftpjXH3g3CZmJiIg0LkkvnK666ipOOOEEjj766Jhtv/nmG0aOHFlt27HHHsu0adOorKxsqBRFRJqt9x//FIypc7/1LG8+/D7W2jrbiIiI7A6CyXzxl156ienTpzN16lRf7desWUP79u2rbWvfvj3hcJj8/Hw6duxY499UVFRQUbFtmElhYeGuJS0i0owsm78SYhRF+Ss3EioPkZaRlqCsREREGp+k9TgtX76c3/72tzz33HOkp6f7/ndmhyujW66C7rh9i7Fjx5Kbm7v10bVr151PWkSkmcnISsc40f8UBIIOwdSkXmcTERFJuqQVTt999x3r1q1j8ODBBINBgsEgkyZN4sEHHyQYDOK6bo1/06FDB9asWVNt27p16wgGg7Ru3brW1xkzZgwFBQVbH8uXL2+Qn0dEpCkafvpQ3HDN79stAkGHQ047kEAgkMCsREREGp+kXUIcMWIEs2bNqrbtwgsvpE+fPtx00021/pE+6KCDeOutt6pt+/DDDxkyZAgpKSm1vk5aWhppaRpeIiJSm8EjB9JrSA8WzViC53rV9hljMMbwy5tOS1J2IiIijUfSepxycnLo379/tUdWVhatW7emf//+QKS36Lzzztv6by6//HJ+/vlnbrjhBubOncsTTzzB448/zo033pisH0NEpElzHIe7372FvkN7AhAIBgimRC5cZeSkc8cbN9Fz/72SmaKIiEij0KgHra9evZply5Ztfb7nnnvy7rvvcv311/Ovf/2LTp068eCDD3L66acnMUsRkaYtt00L/vHFnfz4zQK+eXMqofJK9hrYnSPOOpj0TPXYi4iIABi7m80xW1hYSG5uLgUFBbRo0SLZ6YiIiIiISJLUpzZI+jpOIiIiIiIijZ0KJxERERERkRhUOImIiIiIiMSgwklERERERCQGFU4iIiIiIiIxqHASERERERGJoVGv4yQiUl8b12zi0d8/y7xvFxEIOAw9YX/Ou+NM0jPTk52aiIiINGFax0lEmo3//v1/PHbTczW2O0GHu94aw5Bj90t8UiIiItJoaR0nEdntTPvg+1qLJgAv7PHHE+5m07rNiU1KREREmg0VTiLSLPz7xmei7vc8y6M3PpugbERERKS5UeEkIs3Czz+uiNnm2/emJyATERERaY5UOIlIs+Dnds1wpZuATERERKQ5UuEkIs1CRnbsWfPa79E2AZmIiIhIc6TCSUSahWPOOzxmm/NuPzMBmYiIiEhzpMJJRJqFK8ZdQNuurevcP3jkQA49bWgCMxIREZHmRIWTiDQLwWCQpxY+xGFnHEQgJbB1e3pWGmf+4RTuef/WJGYnIiIiTV0w2QmIiMRLamoKf3r5BjzPI3/FBlLSU8hr1zLZaYmIiEgzoMJJRJodx3Fo100TQYiIiEj8aKieiIiIiIhIDCqcREREREREYlDhJCIiIiIiEoMKJxERERERkRhUOImIiIiIiMSgwklkNzLz8x/5YsJkiguKk52KxEl5aQVrlq6jeHNJslMREZFGwlqLdddEHtZLdjo1WDcf667C2spkp1Ivmo5cZDdw++l/5+s3pmKt3bqtdac8/vHFnXTcs30SM5Odlb9yA0//+b988vznVFaEwcCQY/fj/NvPpM+BPZOdnoiIJIG1FspexJY8Du7yyEanA2RdAJnnY0wg6r9v8PzKP8AWPwzhuZENJhebeQ4m+3KMyUhqbn4Yu/2Z1G6gsLCQ3NxcCgoKaNGiRbLTEWlwlw36PT/9sLTWfcYxPPvTv2ivNY+alHXL87lm6Bg25xfihbddSXQCDsYY7npnDIOPGZjEDEVEJNGstdjCO6DsBcAAO5zip5+Ayb0fY5Iz4MyWPIktGktkwNv2vWAOpAzEtHoaY9ITnld9agMN1RNpxr55+7s6iyYA61n+MOIviUtI4uKRG55m8/rqRROA53p4nsffzv8nbthNUnYiIpIUoW+riiaoUTQBlL8DFR8nNKUtbHgFtuieqmc7Dh30oPJ7KH0uwVnVnwonkWbsX9c+HrPNqsVrcF2dZDcVm9YV8NUb3+K5tY9Zt55l05rNTHl3eoIzExGRZLKlLwLRhuIFsKUvRNnfcGzZq0R6wepsgS1R4SQiSbR5XaGvdvkrNzZwJhIvqxevqbNo2sIJOCybuzJBGYmISKPgLgCiXQh1IbwwUdlUF/6JWnvBtuc1/skiVDiJNGPBFH83gbZoq/v9moqM7Njjv61nfbUTEZFmxGT7aJPV8HnUxskkdtmRQmOft06Fk0gzdshpB8Zsk5qeQkZGWgKykXjYo19XOu4VYyZEA4ecekBiEhIRkUbBpI8i+nA4B9JPSFQ61Zi0Y4neGxaA9GMxJlr+yafCSaQZ++0jl2Kc6F9CZ485LUHZSDw4jsP5d5xV537jGI6/eARtOrdOYFYiIpJ0GaPBaUPt9zkFwORgMs9JdFYRaYdBcB9qz80ADibr0gQnVX8qnESasdTUVMZ9eWedxdNR5xzKr/50RoKzkl014tzhXPGPCwgEAxjHEEwJ4AScrfuufuiiJGcoIiKJZpwWmFbPQaBz1ZYgW4e+OW0j030HkrP8iDEBTN7jkLJvzdxMNibv35iUvknJrT60jpPIbsB1XZ7444t8/Owk3EqXrn06c/Nz12r9piZu8/oCPnnuC9YsWUdOq2yOPPsQuvbuHPsfiohIs2WtCxWfY0OTAYtJHQxpIzAm+fcPWWuhcjq24lOwoUixlD4qKes3bVGf2kCFk4iIiIiI7Ja0AK6IiIiIiEgcqXASERERERGJQYWTiIiIiIhIDCqcREREREREYlDhJCIiIiIiEoMKJxERERERkRiSP6G7iDQ4z/OY9sEPTH5rGhXlIXoM6M7R5x1Gi1Y5yU4Nay0/frOASf/9muKCEjr36MjIC46gbZfWOxWvrLiMT1/4knlTFhIIBhg8ciAHnTyEYIq+7kRERGTnaR0nkWYuf9VG/jjqbn6a+TOBYACweK4lJS3IH56+hsPPOChpuZUVl3HHL+7nuw9/IBAMYLFgAWu55G+/5ozfnVSveNM/mcUdp/+d0qIyAgEHMLhhl/bd23LP+7fSpVenBvk5REREpGnSOk4iAoDruow57q/8/OPyyPOwixv2sNYSqqjkrrP/wZyv5yctv3t+/RAzPpm1NTcv7OG5Hp5nefT3z/Dpi1/6jrViwSpuPWksZcXlYMENe7hhF4D1yzfw+xF3UFZS3iA/h4iIiDR/KpxEmrGp733P0tnLccNezZ0WjGN4+d43Ep4XwM9zV/D1/6biubXkBhgDz935Cn47xV974F28sIv1arb3XI/8VRv57AX/hZiIiIjI9lQ4iTRjX73xLYFg3R9zL+wx5e3vtvbMJNI3/5uKE6g7N2th+bxVrFq8xle8z1/9pvYCsYrB8MVrk+udp4iIiAiocBJp1irKKmrtgdme51nCleEEZbRNeWkFxjEx24XKQr7iVcRoZ62lvNRfLBEREZEdqXASacb27L8HsQa6tevWhtT01ITks709990DtzJ6T1dKegrtu7fzF69/N5wohVgg6NBjwB71ylFERERkCxVOIs3YcRcdGXU4nHEMp1x1HMbE7vmJt4NPGUJumxZ19jo5AYeRvz6czJwMX/FOvfo4vCi9a27Y44TLjtmpXEVERERUOIk0Y3ntW3LdI5eBoUYBZRzDgMP24dRrRyUlt5TUFG554bcEgoEauTkBh0492nPR2HN8xzvil4dw+JkHgaFaIbilF+qiu85hz/7d4pO8iIiI7Ha0jpPIbmD6J7N46Z7Xt0793bpzK069+nhGX3cCqWkpSc1t0YwlvHD3a3z1xrd4rkd2yyxO+M3RnHXTqeTkZdcrluu6vP3IR7z2wDusWhSZVKLv0J6c+YdTOPS0oQ2RvoiIiDRh9akNVDiJ7EYqyiqorAiTlZuZlOF50YQqKqkorSCzRQaBQGCXYllrKS0sxQkGyMhKj1OGIiIi0tzUpzYIJignEWkE0jLSSMtIS3YatUpNS4lb75cxhqzcrLjEEhEREQHd4yQiIiIiIhKTCicREREREZEYVDiJiIiIiIjEoMJJREREREQkBhVOIiIiIiIiMahwkoQo2lTMmqXrqCirSHYqTUp5aQVrlq6jaFNxslMRERHxxbr5WHcV1lYmOxWRuNJ05NKgZn85l2fueGXrwqup6SmMPP8Izrv9TPLat0xuco1Y/qqNPPPnl/n4uc+prAiDgSEj9+O828+k79CeyU5PRESkBlv+AbZ4PIR/jGwwudjMszHZV2BMRnKTE4kDLYArDWby29/x59PuBcBzva3bnaBD6455PDR5LK075iUrvUZr3fJ8rhl2C5vXF+CFt/u9BRyMMfz17TEMGTkwiRmKiIhUZ0uewhbdTWQwk7fdHgdSBmBaPYMxWpBcGp/61AYaqicNIlRRyb3nP4T1vGpFE4AX9tiwehOPj3k+Sdk1bv/+3dM1iiaIFJ+e5/G38x4iXBlOUnYiIiLVWXcVtmhs1TNvh70eVP4AJc8mOi2RuFPhJA3iq9e/pWhTCXX1Z3phj89e/JLizSWJTayR27y+gC9f/7ZG0bSF9Syb1xXw7bszEpyZiIhI7WzpK4CJ1gJb+lyi0hFpMCqcpEEsn7eSQEogaptwpcuapesSlFHTsGrx2ho9dDtygg7L5q5IUEYiIiIxuD8BMe788FZjbSgh6Yg0FBVO0iAystOxXuzb5zJzdLPo9jKyY4//tq4l3Uc7ERGRhDCZxD6lDKI5yaSpU+EkDeKQ0w6M2nNijKF7/6503Kt9ArNq/Lr360qnHu2jj3gwcMipByYsJxERkWhM+rGAG6VFANKPxRiddkrTpiNYGkSnHh046pxDcZzaKwBrLefdfhbGRKsQdj/GGM6/46w6RzwYx3DchUfStkvrxCYmIiJSl9ThEOwH1DZE3wAGk3VpgpMSiT8VTtJgfvefKxj+i2FAZCrtYEoAYwzB1CC/Hf8bho8emuQMG6ejzhnOleMujPy+HEMwJYATiHxUR5wznGv+dUmSMxQREdnGmACm1eOQsm/Vlu2G5ZlsTN4jmJR9kpWeSNxoHSdpcEvnLGfSf7+meHMJnXp0YMSvhtOiVU6y02r0CvIL+eS5L1j901pyWmVz5NmH0LV352SnJSIiUitrLVROx1Z8CjaECfaFjOO1+K00avWpDVQ4iYiIiIjIbkkL4IqIiIiIiMSRCicREREREZEYVDiJiIiIiIjEoMJJREREREQkBhVOIiIiIiIiMahwEhERERERiSGY7AREpHY/fjOfJ255kXUr8slqkclp1x7PyPOP3KlY4XCYF8e+waSXv6IyFKZ7v6785r5f07lHx52KV5BfyIdPT2LpnGWkZaRx6GkHst9R/XGc5nctZumc5Xz87CQ2rt1M646tGHn+4VpPS0REZDeU1HWcxo8fz/jx41m6dCkA/fr147bbbuP444+vtf3EiRM58siaJ45z586lT58+vl5T6zhJY+d5HjeP/CszPp1VY19e+1wenfV/tGzj/9hdMP0nrj/0VkLllTX2jb7uRK74v/Prld9Hz07i/y4Zj+t6OI4BDG7YpefgvbjrnVvIa5dbr3iNlRt2GXf5v3n/ic8IBB2sBQx4YY9TrjqOKx+4sFkWiiIiIruTJrOOU5cuXbjnnnuYNm0a06ZN46ijjuKUU05hzpw5Uf/d/PnzWb169dZHz549E5SxSMO776KHay2aADatLeDqA272HSsUquS6Q/5Ya9EE8Nq4t3n73x/5jjfj01nce8E/CVe6WM/ihj3csAvA4h+W8qeT7qG5rKn9xB9f5IMnPwPADXt4rocX9gD437/e5/m/TkhmeiIiIpJgSS2cTjrpJEaNGkWvXr3o1asXd911F9nZ2UyePDnqv2vXrh0dOnTY+ggEAgnKWKRhhcNhPnn+i6ht1v68nllfzvUV78W7XqOyIhy1zTO3v+w7vxfufq3OXhYv7DF/6iJ+mBj9wkdTUFJQwusPvUu0GvDV+9+ivLQicUmJiIhIUjWacSau6/LSSy9RUlLCQQcdFLXtoEGD6NixIyNGjOCzzz6L2raiooLCwsJqD5HG6us3puK5Xsx2r/3jHV/xJr78Vcw2m9YWECoPxWxXVlzG95/OjppfIBjgq9e/9ZVbYzb941lU1tFLt0VpURkzJ/2YoIxEREQk2ZJeOM2aNYvs7GzS0tK4/PLLef3119lnn31qbduxY0ceffRRJkyYwGuvvUbv3r0ZMWIEn3/+eZ3xx44dS25u7tZH165dG+pHEdllxZtLfLUrL/PX0xGqiH7yvzWej56Tuob77aiiLHYR1tj57UlqDj+riIiI+JP0WfV69+7N999/z+bNm5kwYQLnn38+kyZNqrV46t27N7179976/KCDDmL58uXcd999HHbYYbXGHzNmDDfccMPW54WFhSqepNEaeHg/X+36Hri3r3Zde3dm3c/5Uds4AYfsllkxY+W0yqZlu1w2ryuos43nenTv3/Q/X3vu281fu2bws4qIiIg/Se9xSk1NZe+992bIkCGMHTuWgQMH8sADD/j+98OGDWPhwoV17k9LS6NFixbVHiKNVeeeHWnfvW3UNo5j+OUto33Fu+y+82K2GXLsQF+zwzmOw8lXHotxTO0NDARTgxxz3uG+cmvM9t5vT3oO3gsnUPvvxQk4DDh8H7r06pTgzERERCRZkl447chaS0WF/xuuZ8yYQceOO7cWjUhjdOebNxMI1v3RvOrBi0hNTfEVa8/+3Tj2wrrXfspqmcktL1znO7czbjyZPkN7Vk1Dvo0TcDAYfv/kVeTkZfuO15j94amrychJr/FeOEGHnLwsbnjs8iRlJiIiIsmQ1MLplltu4YsvvmDp0qXMmjWLP/7xj0ycOJFzzz0XiAyzO++8bVfMx40bxxtvvMHChQuZM2cOY8aMYcKECVx99dXJ+hFE4m7P/t14bNb/0XPwXtW2t+vWmtte/R0nX3lcveLd+PiVXPq3X5Gdt204nnEMQ47bj+eXjierRabvWOmZadz70W2cd/tZ5HVoGYllYP+jB3DfZ7dz5C8PqVdujVn3fl0ZP+1eRp5/BClpkVHNaRmpnHDJ0Tz83b103lsXbERERHYnSV0A9+KLL+aTTz5h9erV5ObmMmDAAG666SaOOeYYAC644AKWLl3KxIkTAbj33nt59NFHWblyJRkZGfTr148xY8YwatQo36+pBXClKQmFKlm/PJ+89i3JzM7Y5XiFG4soKyqjbdc2u7x4q+d5lBaWkZIWJC0jbZdza8zClWFKi8rIapFJIKjlD0RERJqL+tQGSS2ckkGFk4iIiIiIQP1qg0Z3j5OIiIiIiEhjo8JJREREREQkBhVOIiIiIiIiMahwEhERERERiUGFk4iIiIiISAwqnCQhijYVs2bpOirK/C9unCj5qzYy68u5bFyzKdmp1LA5v5BZX85l9ZK1cYm3aV0Ba39eT7gyvMuxKkOVrP15PZvXF8Qhs/gKhSqZO2UBi75fgud5yU5H4mRzeRkrCgsoD1cmO5UarFeMDa/AeiW7HstarLsW667BWh2/IiKNRTDZCUjzNvvLuTxzxyvM+GQWAKnpKYw8/wjOu/1M8tq3TGpu37w1lQev/A/5Kzdu3dauW2uu//flDDl2v+QlBiyY/hNjzxnHigWrt25r0TqHS/72K46/6Kh6x/vqjW95/q8TWDj9JwCyW2Zx4mXHcM6tp5ORlV6vWCWFpTx/56u889jHlBaWAdB3aE/O/dMvGDpq/3rnFk/lpeX8+dS/M+PTWVgvstJCMDXI0b86jOsfvWyX166S5Ph25QoenPI1X69YDkB6MMjpffvx26EH0ybT/wLODcFWLsQWPwAVHwMeEMCmH4fJ/i0m2L1+sayFspexJf8Bd1lko9Mesi6AzAswRmuIiYgk006t4+R5HosWLWLdunU1ruYedthhcUuuIWgdp8SZ/PZ3/Pm0ewHw3G3HiRN0aN0xj4cmj6V1x7yk5PbJC19wz68erHP/nyfcyKGnDU1gRtvMnbKA3x5y69YT/x1deNfZnDNmtO94bzz0Hv/67RMYx1SL6QQceu6/F/d9djvpmf4WsC0tKuP64X9i6Zzl1d7TLbGvf/RyRl0ywndu8RQqD3HOHldQsL6w1v19D+rFg1/dleCsZFd9/NMiLn/nTQC87f5cBYyhQ3YOr511Dm0zs5KSm62cjd1wLhAC3O32BMBkYlq/jAnu7S+WtdjCO6HsOcAA23/+DaQdh2n5D4xR8S8iEk8Nuo7T5MmT2Xvvvenbty+HHXYYRxxxxNbHkUceudNJS/MSqqjk3vMfwnpetRNsAC/ssWH1Jh4f83xScvM8j/+7ZHzUNn87/6EEZVPTX35xf51FE8BTt75EeWm5r1jrV2xg/PVPAtSI6bkeC75bzGvj3vGd28t/e6NG0bR97IeueixpQ/ceuvrxOosmgLnfLOCzF79MYEayqyrCYW788H2stdWKJgDXWtYUF3Hf118kJTdrLbbgZqCC6kUTkee2FFtwq/+AldOqiiaoXjRVPa94Dyo+2ul8RURk19W7cLr88ssZMmQIs2fPZuPGjWzatGnrY+PGjbEDyG7hq9e/pWhTCXX1Z3phj89e/JLizbt+P0B9ffzcF4TKo98jUV5cwZevT0lQRtv8PHdFtaGDtbHW8sJfX/MV7/0nPgVj6o7lWd58OHJiGovrurz1yIc1iqbqbTw+euZzX7nF22cvfRWzzfN3TUhAJhIv7y1aSGGookYZsYVrLW/Mm0tRRRLunaycCeEFRIbn1caFyunY8CJf4Wzpi0C0oXgOtiQ5F5tERCSi3oXTwoULufvuu+nbty8tW7YkNze32kMEYPm8lQRSoo/HD1e6rFm6LkEZbTP3m/m+2s3+al4DZ1LTHJ+vuXDGT77aLZ+/MmZRtGHVJirKQjFjFW8qoWhjcdQ2juOwbO4KX7nFW0Vp7JPn9cs3JCATiZefNm0kGOO+tErPY2VR3T2NDcZd7K9d2N9nNVKE7dhztT0P3IX+YomISIOod+E0dOhQFi3ydwVNdl8Z2elRh5ttkZmTkYBsqstq6e9+iByf7eKpRescX+0yfP7eMrLScZy6e5wgcq9TSlrseWLSMtOidV5te83s+k02ES/GR3Ip6SkJyETiJTMlpcYQvdpkpaQmIJsdGJ/fD77bZRO5tykOsUREpEH4Kpxmzpy59XHNNdfwu9/9jqeeeorvvvuu2r6ZM2c2dL7SRBxy2oFRh3QZY+jevysd92qfwKwiRv92lK92p1x9XANnUtPBpxxAIBh75qwzf3+Kr3jDf3EQbrju9yEQdDjk1AMJBGK/ZnpmGkOOG4QTqPtrww27HPaLYb5yi7e9Bu4Rs81BJw1JQCYSLyN77B21cDIY+rRpS5dkTPSTeggQ4yKBaQGpB/gKZ9JjfS85kH6ir1giItIwfBVO++23H4MGDWK//fbj9NNPZ+7cuVx00UUccMAB1fYNGjSoofOVJqJTjw4cdc6hdfZ2WGs57/azfPUSxFurDnkMPKJf1DYHjhpEdsvsBGW0jeM4nPCbo6O26dKrI30O8DdT1/5H70vvA/autdiJ/O4Nv7z5VN/5nXNL1Wx+tbxtTsBhwOH70O+QPr7jxdOV4y6Iuj8QdLj03l8lJhmJi73yWnFiz944dXxPWCzXDT0oKd8jxsmGrIujt8m+AmN89oZljAanLbXf5+SAycZknl3vPEVEJH58FU5Llizhp59+YsmSJbU+tuz76SefY7llt/C7/1zB8KreByfgEEwJYIwhmBrkt+N/w/DRyZnuG+CeD2+l5+C9at23z8G9uPPNmxOc0TbX/POSOqdC77BnO/417W++YzmOw13vjKHvsF4ABIIBglX3nmXkpHPHG3+g1+AevuP1P6QPf/rvDZHpyw0EUwIEgpGvkQGH78Mdr/8hKSexAAMO68d1//5Nra+fkhbk/s/uoEUrf0MhpfG495hjOa5HTyAyBXnQcTBAaiDA3Ucdw8iqfclgsq+BzAuIXElwiCyN6EQeWVdA5kX+YznZmFbPQaBr1ZYgW5dadNpiWj2DCSS+h15ERLap9zpOn3/+OQcffDDBYPV7IsLhMF9//bXWcZIals5ZzqT/fk3x5hI69ejAiF8NbzQnsHO+msczd7zC5nUFtOrYkvP/8kvfvTkNbfn8lfzn5udZs2Qd2S2zOOvmUzjwuJ1bYNZay9zJC/j6f1MJlVey18DuHHHWwb7Xb9pRWXEZn734FUvnLCctM41DTzuQ3o3k91ZaXMZTt77IrM/n4QQdDvvFMM648WQtftvEzd+Qz7sL51NUUcEeLVtyau99yE1Pzv10O7LuSih7E+vlY5z2kHEyJtBh52JZD0KfYysmAx4mdTCkHYUxuj9PRKQh1Kc2qHfhFAgEWL16Ne3atau2fcOGDbRr1w7XjTYrUPKpcBIREREREWjgBXCttbUOhdmwYQNZWZrxR0REREREmp/YcxBXGT06clO4MYYLLriAtLRtQ3xc12XmzJkcfPDB8c9QREREREQkyXwXTlsWt7XWkpOTQ0bGtnVkUlNTGTZsGJdeemn8MxQREREREUky34XTk08+CUD37t258cYbNSxPRERERER2G/WeHKKp0+QQIiIiIiIC9asNfPU4DRo0yPfaLNOnT/fVTkREREREpKnwVTideuqpW/+7vLychx9+mH322YeDDjoIgMmTJzNnzhyuvPLKBklSZHe0btl6PnhyIquXrqVFXjZHnn3oTq+V5Hke0z74gclvTaOiPESPAd05+rzDGs16WiISEQqXMXPZM7jl3wAWkzqIfbtdREaqRkhE43kelL0UeXilEOwC2b/HSe2X7NREpBmp91C9Sy65hI4dO3LnnXdW2/7nP/+Z5cuX88QTT8Q1wXjTUD1p7Ky1vHDXazz955cxjgEDBoMbdjnopCHc8uJ19Vq4Nn/VRv446m5+mvkzgWAAsHiuJSUtyB+evobDzzio4X4YEfHtp/WTySq5krbpxVR6BgMEjKWwMo21KffRp+OxyU6xUfLCa2HDiWALau5MG4GTNz7xSYlIk9GgC+Dm5uYybdo0evbsWW37woULGTJkCAUFtXxxNSIqnKSxe+/xT/i/Sx+pdZ/jGI745SGMee63vmK5rsvlg37P8nkrccNe9Z0msrzAPz6/k34H997VtEVkFxSUriO8/hhyUsoJOtX/LLsWyt0UinNep2NuryRl2Hh5aw8Cu6HuBhnn4eTemriERKRJadAFcDMyMvjyyy9rbP/yyy9JT0+vbzgR2Y7neTx356tR9ls+ffFL1ixd5yve1Pe+Z+ns5TWLJgALxjG8fO8bO5mtiMTL3OXjyU0tq1E0AQQMpDlhlq76ZxIya9y8so+jF00AZS9GhvKJiOwi39ORb3HddddxxRVX8N133zFs2DAgco/TE088wW233Rb3BEV2J0tnL2fdsvyobYwxfPPmNE67dlTMeF+98S2BoFN74QR4YY8pb3+HG3arhvGJSDLkMoloUzAFHUvXtG8Slk+TUfa8j0aVUPktpA1r8HREpHmrd+F08803s9dee/HAAw/wwgsvANC3b1+eeuopzjzzzLgnKLI7KS+tiNnGGENFWchXvIqyCqwXfTSu51nClWEVTiJJlOpUEGvy2jSnMjHJNCW2zF87r7hh8xCR3UK9CyeAM888U0WSSAPo0rMjgWAAN+zW2cZzPfbs39VXvD3778HEl7+O2qZdtzakpqfWK08Ria8Nld3p6uXXOlQPIOwZVpV3pm2C82r0gv2h0scyKCkDGz4XEWn26n2Pk4g0nBatczjirINxArV/NI1jaNO5FUOO289XvOMuOrLOWFvinXLVcb7XaRORhpHb6qI6iyaIDNWzGWcnMKMmIuc6iDrIEQj0xAmq5BSRXeercGrVqhX5+ZH7LvLy8mjVqlWdDxHZNZfddx7turWpUfA4QYdgapA/vngdgYC/YXV57Vty3SOXgaFGPOMYBhy2D6f6uFdKRBpW7w4jmLIp8ll0vW2FwJaRtlM3HsSAruckI7VGzXGyIft3UVqkQN7DCctHRJo3X0P1/vGPf5CTk7P1v3V1WqTh5LVvyT+njOWle97gvcc/oaSglEDQYfgvhnHOmNHsue8e9Yp33IVH0q5bG16653VmfDILgNadW3Hq1ccz+roTSE1LaYgfQ0TqaWjv/2P60n3IdZ+jR84aAFaUtGadPYMD+lyH42iQSG2c7N/gBdpD4d/Bbplx1ESG5+X+AyfYOan5iUjzUe91nJo6reMkTYnrupQUlJKRnU5K6q4XOBVlFVRWhMnKzdQFEJFGrKRiM551yUrNU8FUD55XDN4mcNrjOLp3U0Riq09tUO/JIc4991yOOOIIDj/8cHr10kJ8Ig0pEAjQolVO3OKlZaSRlpEWt3gi0jCy0lomO4UmyXGywclOdhoi0kzV+zJWdnY2999/P3369KFTp06cffbZPPLII8ybN68h8hMREREREUm6nR6qt2bNGiZOnMjEiROZNGkSCxYsoF27dqxevTreOcaVhuqJiIiIiAjUrzbY6YHTOTk55OXlkZeXR8uWLQkGg3To0GFnw4mIiIiIiDRa9S6cbrrpJoYNG0abNm249dZbCYVCjBkzhrVr1zJjxoyGyFFERERERCSp6j1Uz3Ec2rZty/XXX88pp5xC3759Gyq3BqGheiIiIiIiAg08q96MGTOYNGkSEydO5P777ycQCHD44YdzxBFHcMQRRzS5Qqo52bSugFBZiFYdW8Zl6up4KtpUTElBKXntc3d5VrdQqJLFM5YQSAmy937dm/VUveWlFWxeV0BWbiY5eZopSpqWkOuyvqSE9GCQ1pmZyU5nt1UWKmRz6Uqy0lrTIqPdLsez7gagApy2GNO4/tbEk7UueOuAQNXPumtLOFivGLzN4ORhnKxdzM2ytqQYa6F9djZOI1tewrr5QKjZHyOy+9nldZx++OEHxo0bx3PPPYfnebiuG6/cGkRz7HH6+n9Tef6vr7Lgu58AyG6ZxYmXHcM5fxxNRnZGUnOb/eVcnrnjla0Lr6ampzDy/CM47/YzyWvfsl6xykvLuX30fUz/eCbWixy2wZQAR//6cK5/9LJmVUDlr9rIM39+mY+f+5zKijAYGDJyP867/Uz6Du2Z7PREoiqqqOChb7/hpTmzKA6FANivQ0euPfAgjui+Z5Kz232sLVjE0pV/YUDuVNICLp6F2QW9yGx5A706HFXveLb8A2zxeAj/GNlgciHzl5jsKzEmuX9r4snaEJQ8ji19BrwNkY2BHpjs30D6qfUuoGzlQmzxA1DxMeABAUg/HpP9W0ywfguaW2t5cfZMHp0+lWUFBQB0yM7mov0Gc+F++xNI8t/B2o+RszHZVzSrY0Sal/rUBjtVOM2YMWPrjHpffPEFhYWF7Lfffhx55JH8/e9/3+nEE6G5FU5v/PM9/nXtEziOwfO2vZVOwGHvQXty/8Q7SM9Mzro9k9/+jj+fdi8Anuttyy3o0LpjHg9NHkvrjnm+YoXKQ5zb/Uo2ryuodX+foXvz0Ddjdz3pRmDd8nyuGXYLm9cX4IW3+70FHIwx/PXtMQwZOTCJGYrUraiigjNffYlFGzfgbvfnxTEGz1rGjhjJWf32TWKGu4fVBQsIbDqTlqllBJ1t70PYM1gMC9yx7Nv1NN/xbMnT2KK7iNwa7W23x4GUfTGtnmkWJ8bWhrGbLofQF8D2p0cm8jzrCpyc6/3Hq5yF3fArIARsf2E5ACYT0/plTHBvn7lZbp/4Cc/O+mFLNtWc2LM34447IWm9T7bkKWzR3dR+jAyoOkbSk5KbSDQNOqteXl4eBx54IM8//zw9e/bkmWeeYePGjUybNq3RF03NTf6qjYy//imAakUTRAqVhdN/YsI/3k5CZhCqqOTe8x/Cel61ognAC3tsWL2Jx8c87zveP695os6iCWDelEV88sIXO51vY/Lv3z1do2iCyHvqeR5/O+8hwpXhJGUnEt0j333Lwh2KJgCv6vltn33MxrLSZKS2W1m1akyNogkg6FgcPNq7fyHshnzFsu5qbNGWC1PeDns9qJwFJc/setKNQdnrEPqcmmVJ1fOS8djKub5CWWuxm28CKqheNBF5bkuxBX/yndq3K1fw7Kwfts+mmrcXzufDxYt8x4sn666KcYz8ACXPJjotkbird+H07LPPsmHDBqZNm8Z9993HiSee2Cx6bpqiD574LOp+61nefPh9dnE05k756vVvKdpUQl0v7YU9PnvxS4o3l/iK99lLX8Zs88JfJ9QnxUZp8/oCvnz92xpF0xbWs2xeV8C372oGS2l8XM/jhVk/bC2Sam9jeW3ujwnMaveTX7yMAS1n1yiatgg40Ca9hNkrXvUVz5a+EqOFhy31fyGsMYv8HNF6bALYspf9Bav8AdxF1CwktnCh8jtseLGvcM/P+oFAlN4kxxiem/W9v9ziLHKMRPu9WWzpc4lKR6TB1LtwUqHUeCybtyJmm42rN1NeWpGAbKpbPm8lgZRA1DbhSpc1S9f5ildeEvtnWL9ig69YjdmqxWtr9NDtyAk6LJsb+70XSbTN5eUUVET/rDqOYfGmjQnKaPe0vvBHAib6BbOwZygrn+8voOvjxN5bg7WJ/1sTd+GfqL0/ZwsXKhfWI1b82i3YkF+jJ3d7nrUs3JDv7zXjzY31ewO81ZH7x0SasOZzN/1uKCMrPeZNqk7AITUt8TPaZGSnb53AIZrMHH9j4o0Te8x2ShJ+znjLyI49/tu6lnQf7UQSLSMlJeo1ZwAsZKY0/c9qY5YWzInZxjHW/8xuJovovQkQmaS3GbyvJtbsjw4YnzOcOj5nkoz5mhHZqWkx34XMlFR/rxlvJpPYp5RBdmIyZ5FGRYVTEzb8F8Nww3XPYhgIOhx8ygEEgtF7fhrCIacdGLXnxBhD9/5d6bhXe1/xegzoHrPNsJMG+02v0ereryuderSPfo5i4JBTD0xYTiJ+ZaakcGi3PaIOJwpbj+P37pXArHY/3dsMY1VpLtGuXVkMPdqf4SueST+WmvfobC8AaSMxphmcUmSMAqL9zfQwGcf5i5V6KBBjciaTC6kH+Ap3Qq/eUfc7xnBy7z7+coszX8dI+rHN4xiR3ZqO4CZs0Ih96XPg3jjBmm9jpCfK8Mub/c+aFE+denTgqHMOxamjp8hay3m3n+V7WtcrH7ww6v5A0OGy+86rd56NjTGG8+84q84RD8YxHHfhkbTt0jqxiYn4dPWBw7DUXvsHjGFo5y4M7tgp0WntVhwnwGp7AXV11HsWpm86hLYtfE4Nnzocgv2ovaCI/K0x2b/ZyWwbF5N5AZhUaj89CkCgG6SP8hfLyYasS6K3yb4SY/z1Ep3etx/tsrJqvTARMIbs1FTO3TdJM676OUayLk1wUiLxp8KpCXMch7veuYW+QyNXbwPBAMGq+4oyctK54/Xf03tIj6Tl97v/XMHwXwyL5BpwCKYEMMYQTA3y2/G/Yfjoob5j7XtoX65/9LJaC62UtCD3f3YHLVrFHp7SFBx1znCuHHdh5PflGIIpAZxA5KM64pzhXPOv6H+IRZLpgE5d+OfxJ5FRNRwv6DhbT/SGdunKv088ZZcXEpXYDuhxFd8W/JpKz8G1UOk5hL3I7336pgMZ1OtfvmMZ42BaPQ4pA6q2BNg65MpkY/LGY1L2ie8PkCQm2A2T9yQ4Lau2bDe8LNijakpt/0t8mOxrIPN8IsWDUxXLiTyyroLMC3zHapGWxgunn0WXFrmRdByHYNW6TW0zs3hh9Jm0y0rOQunGBKqOkS1LDWz3ezPZmLxHms0xIrs3X+s4vfnmm74DnnzyybuUUENrbus4QaT3Zu6UhXz9xreEyivZa8AeHPHLQ5K2ftOOls5ZzqT/fk3x5hI69ejAiF8N3+kip7S4jKdufZFZn8/DCToMHz2UX9x4EsFg8xs3XZBfyCfPfcHqn9aS0yqbI88+hK69Oyc7LRFfSkIh3lowjwUbN5ARDDKyR08Gtu+Q7LR2OxuLVzB/1ZMYdwXW5NK57dl0az1op2JZa6FyBrbiE7AhTLAvZBzfLNZv2pG1ISj/EFs5Ewhg0oZD6kE7XfTb8Aoofwvr5WOc9pBxCibgb6j6jjxrmfTzEr5evgxrYUinzhy9V4+tRVQyRY6R6diKT5v9MSLNR9wXwHV8fhiNMbhutDGuydccCycREREREam/+tQGvi7Te1706ZFFRERERESas+T364qIiIiIiDRyO3VjSElJCZMmTWLZsmWEQtUXM7v22mvjkpiIiIiIiEhjUe/CacaMGYwaNYrS0lJKSkpo1aoV+fn5ZGZm0q5dOxVOIiIiIiLS7NR7qN7111/PSSedxMaNG8nIyGDy5Mn8/PPPDB48mPvuu68hchQREREREUmqehdO33//Pb/73e8IBAIEAgEqKiro2rUr9957L7fccktD5CgiIiIiIpJU9R6ql5KSsnUdg/bt27Ns2TL69u1Lbm4uy5Yti3uC0rRZa5k7eQETX/6a4oISOvfoyMgLjqBtl9bJTg2IrDH18bOT2Lh2M607tmLk+Yfv9FpJBRuL+NuvHuTHbxZgraV7v67c8uJ1tO/WNs5Zi4j4Y92VUPZaZB0hJxeTcRJm6yKlzYfnuny44BXKi98izSmjyO3AgD2uok/7fslODYAV61+FksdINUVUeLkEcq6hU5tRyU5LROrJ1zpO2xs5ciQXXHAB55xzDpdffjkzZszg2muv5dlnn2XTpk1MmTKloXKNC63jlDhlxWXc8Yv7+e7DHwgEA1gseACWi8eey5m/PyVpublhl3FXPMr7j39KIOhgLWDAC3ucctVxXPnAhb7XLwN4/aH3ePi3T9S67/TrT+Dy+y+IT+IiIj5Ya6HkX9jihwBT9QBwIW0EpuU/MCY9iRnGz7qitSxacg7D2i2n0jPbfloDr604gbMO+L+k5RYOl7Jh5dG0Tctn+7MtY2B1eWc6dv0QJ5CStPxEpH61Qb2H6t1999107NgRgDvvvJPWrVtzxRVXsG7dOh599NGdy1iapb+d909mfDILiBQqXtjD8zw8z/LYTc/xyfNfJC23p/70Eh888WlVbh6e6+GFI+uV/e9f7/P8nRN8x/pp1tI6iyaACf94h0mvfL1rCYuI1EfZy9jiBwFL5IqVW/UAKj7DFtyWvNzi7MfF53NAmxUApDiWoGMJOJaAsZzR9W1enX5v0nJbs+IU2qTmA5FiacsDoEPaSpYvOzNpuYlI/dW7x6mpU49TYiybt5KL97muzv3GQOdenXjix3Fbh34mSklBCWd2vJRQeWWdbTKy03l59WNkZMW+InvpgBtYOnt51DZ57XP57+r/1DtXEZH6stbFrj8SvDVRWhlM288wgU4Jy6shfPXTxxyUeWWd+z0Liwvz6Ln31ziBQAIzg4KSRWQXjiLanzhrobL1V6Snaki3SLI0aI/TFuvWreOLL77gyy+/ZP369TsbRpqpb96chhOo+/CyFlbMX8XKhasTmFXE9E9mRy2aAMqKy5k56Udf8Zb9uCJmm01rC3zFEhHZZeH5MYqmKuWfNnwuDWxl/huEvborE8dAz9xN/LB6agKzisjPfyRq0QSRi4ir1uqimkhTUe/CqbCwkF//+td07tyZww8/nMMOO4xOnTrxq1/9ioICnRxKREVpBcaJ3ZNUURaK2SbeKkorfLUL+cxt9+qzFZFGz5b5aOQA/r4LGzOHciyx/9aUhooTkM0ObIm/Zj7biUjy1btwuuSSS5gyZQpvv/02mzdvpqCggLfffptp06Zx6aWXNkSO0gTtuW833Eo3apuU9BQ67NkuQRlts+e+3Xy1696/q692GdlpMdsEgjvduSsiUj/BPYFYw9JcCPZMRDYNK9iLFMeL2qQsHKBXuwEJSmibYPpBvtplZg1v4ExEJF7qfTb3zjvv8MQTT3DsscfSokULcnJyOPbYY3nsscd45513GiJHaYKGnTSY3LYt6ux1cgIOx/zqMLJaZCY4M+gxsDu9hvSocyihE3DY97C+vqclH33dCTHbDDtpSL1yFBHZWcZpBenHU3fx5IDTCVIPSWRaDeLYfS5nU0UaXh09/2HP8MnqgbTNTvxFuq5tz6XCDdY5KsFaKK5Mp2PrYxObmIjstHoXTq1btyY3N7fG9tzcXPLy8uKSlDR9Kakp3PLCdQSCgRoFihNw6NSjPRePPTdJ2cEfnrqKjJz0Gj1BTtAhu2UWNzx2he9Y59/xS9p2rXtdqozsdP703xt2OlcRkfoyOWPA6UDN4ikApGBa3o8xiZ0soSHkpLfgq8Lf4lqnxr1OYc/wc3Eug/a+Jym5OYEAG1L/AtQc0m1tZL7DkszkTZUuIvVX78Lp1ltv5YYbbmD16m039a9Zs4bf//73/OlPf4prctK07T9iXx765m4OPe3ArcVTdssszvjdSTz4zd20aJ2TtNz22Kcr47+7l5HnH0FKWmQd6NSMVEZdPILx3/2NLj071iveCz8/woHHD6oxQ2CfA/fm1fzHCSR4NicR2b2ZQFtMmwmQeR6Y7KqtAUg/HtN6AiZ1cFLzi6eT972Er0ru5Yu1e+PayHfw5oo03lxxCJntX6NrXvek5dal7S9Yl/ow+RVttxZP1sK6io5syniGjq2PTlpuIlJ/9Z6OfNCgQSxatIiKigq6dYvcK7Js2TLS0tLo2bP6eOnp06fHL9M40XTkyRGqqKSitILMFhmNrogIV4YpLSojq0UmgeCu57Zq8WoqQy5denVsdD+riOx+rHXBFoHJxJjUZKfToIrKCyko30y7rPakpsS+/zSRKiuLKAmtJjutC8Fg4oepi0jt6lMbBOsb/NRTT93ZvGQ3lpqWQmpa41wdPZgSpEWr+PV+depRv94qEZGGZEwATMtkp5EQOektyElvnBdFU1JyaJmSvJEWIrLrtACuiIiIiIjslhp8AdzNmzfzn//8hzFjxrBx40YgMixv5cqVOxNORERERESkUav3UL2ZM2dy9NFHk5uby9KlS7n00ktp1aoVr7/+Oj///DPPPPNMQ+QpIiIiIiKSNPXucbrhhhu44IILWLhwIenp6Vu3H3/88Xz++edxTU5ERERERKQxqHfhNHXqVC677LIa2zt37syaNWvikpSIiIiIiEhjUu/CKT09ncLCwhrb58+fT9u2beOS1O6ivLSCNUvXUbSpOC7xNq0rYO3P66kMVcYl3u4if9VGZn05l41rNu1yLGst+as2sm55Pq7r7nK8eB8juwvX81hVVMi6kmIa2/w3nucxe91aflizmlA4vMvxyiorWVFYQGFFeRyyi69QuIw1m+ezsXhFXOJZbzM2vAJrd/1ndd1K1hQsYH3REjzPi0N2uw+vYipe2Ud4bsEuxwq5LisLC9lQWhqHzGBz6RpWb55LRWXJLsey1sW6q7Huukb3PRJv1pZFPltezfO7nYrn5mPdVVir85H6sF5x1fsQj+PXYt01kYfVd1y81Psep1NOOYW//OUv/Pe//wXAGMOyZcu4+eabOf300+OeYHOUv2ojz97+Xz567nMqyyvBwJBjBvLr289kn2G96h3v6/9N5fm/vsqC734CIovMnnjZMZzzx9FkZGfEO/1m45u3pvLglf8hf+XGrdvadWvN9f++nCHH7levWNZa3vvPJ7z89/+xalGk57VN51acdu0oTr/+xHqvD5W/aiPP/PllPn7ucyorwpFjZOR+nHf7mfQd2jN2gN1Upevy6PRpPP3DdPKrTsR65LXissEHcHrffjUWKE4kz/P43Ufv887C+YSrTtQdYzhij+48POpkUoP1+zpeU1zEuMlf88b8uYRcFwMM79ad64cdzMAOyZ0Sv6h8A7OX3Ea/7Em0SwkBMHdVF0LplzOw25n1jmdDU7HF/4TQN1Vb0rEZozHZ12ACresVKxQu47tFd7J3+ru0S48cI8vWtma9OYfBe16F4+zUnEm7BW/jFRD6FNhWRHhOO2j9X5xAp3rFKqyo4KFvv+HlObMoDkWOkUEdOnLNgQdxRPc9653bjyvfwS16kH4tl9ACKCsOMqPwYHp2u53W2V3qFcvaEJQ8ji19BrwNkY2BHpD9G0g/NanfI/Fm3TXYogeg/C0gBBhs6nBMzrWYlAH1j1f+AbZ4PIR/jGwwudjMszHZV2CMzkfqYisXYIsfhIqPAQ8IYtOPx2RfiwnuUb9Y1kLZi9iSx8FdHtnodICsCyDz/MjyBLLT6j0deWFhIaNGjWLOnDkUFRXRqVMn1qxZw0EHHcS7775LVlaW71jjx49n/PjxLF26FIB+/fpx2223cfzxx9f5byZNmsQNN9zAnDlz6NSpE3/4wx+4/PLL65V/MqcjX79iA9cMG8OmdQV44W1XAJyAgzGGv749hiEjB/qO98Y/3+Nf1z6B4xg8b9tb6QQc9h60J/dPvIP0zMa1CGBj8MkLX3DPrx6sc/+fJ9zIoacN9R3v4eue5PUH3wXD9ucUGAOHjh7KrS/f4PuEbN3yfK4Zdgub18fnGNldhD2Py95+g4lLl2z/Fmx9S64YciC/P3h4krKDUc8/zbwN+bXu65CVzecXXkrQ5zGyqqiQ015+gY1lpbjbfYUHjMEYw+Mnn8bwbt3jkXa9FZVvYN3yU+iWtZ6Asy0310LAwNTiKxi69/W+49nyT7Cbr6p6tv1V0wA47TGtX8UE2viKFXZDzF5wOv1bzscQ+XwCeBYcA1M2ncBBff/hO7fdibf+JHDn17HXgbaf+i6eiioqOOPVl1i0cQPedsevYwyetdwzYiRn9tvXd24zlj5L/7S/Yi0Etzvmwp5hfXkOae1eo012N1+xrA1jN10OoS+gtm+SrCtwcvwfv42ZdVdiN5wB3iZg+xESAcBg8h7HpB3kP17JU9iiu4kMZtr+s+pAygBMq2cwJr2Of737spUzsRt+BVRS430wmZjWL2OCe/uLZS228A4oe4EaJyQA6Sdgcu/HGF0g2l6DTkfeokULvvzySyZMmMA999zD1VdfzbvvvsukSZPqVTQBdOnShXvuuYdp06Yxbdo0jjrqKE455RTmzJlTa/slS5YwatQohg8fzowZM7jlllu49tprmTBhQn1/jKT59++fYfMORROA53p4rsffznuIcKW/4Tv5qzYy/vqnIv/eq/7h8FyPhdN/YsI/3o5L3s2J53n83yXjo7b52/kP+Y43+6t5kaIJanxHWQtfTJjCF69O9h3v3797ukbRBFXHiFe/Y2R38sa8H/lsh6IJtr0l46d9y5x1axOdFgDPzpxRZ9EEsKakmHu+nOQ73l1fTKxRNAG41uJ6lhs/fH9rr1aizV5yZ42iCSJFk7WwX+a/2VTib+kKayuwBX8g8i7u+PO44K3FFt3vO7fpS8azb8v5OGZb0QSRoglgaN47LF73le94uwuv7JMoRROABxvP9x1v/LRvaxRNwNbnf/rsYzaVlfmKVV5ZxF6Bv2Gw1YomiBRRbdOLWLzsVt+5UfY6hD6nxpf5lucl47GVc/3Ha8Rs4d21FE1UPfewBTdirb8h59ZdhS0aW/Vsx8+qB5U/QMmzu5ZwM2StxW6+iUhvXy3vgy3FFtzmP2Do26qiCWoew0D5O1W9WrKzdrrkPOqoo7jxxhv5wx/+wNFHH71TMU466SRGjRpFr1696NWrF3fddRfZ2dlMnlz7SeYjjzxCt27dGDduHH379uWSSy7hoosu4r777tvZHyOhNq8v4ItXJ+OGaz+hsdayeV0BU96Z7iveB098FnW/9SxvPvx+sx+bXV8fP/cFofLo467Liyv48vUpvuK9/e8PCQTr/ig5AYc3H/7AV6zN6wv48vVvaxRNW1gvcox8++4MX/F2J8/O/B6HuofQBIzhxTmzEpjRNo99Ny1mm1d+nO0rVn5pKR8sXlSjaNrCYllfWsLEpT/VK8d4cN1K+mR9UqNo2sIYcIzHvBX/8Rew/AOwRdR6AhB5RSh/E+v5uwewpTehxind9sKeYf2GJ/zltjspujN2G/dnX6HCnscLs3+oUTTt2Oa1eT/6ijd72bPkpIS2Fr87CjqWAbnfUlS+wVc8W/o8RPkegQC27GVfsRoz666Hik+oebK+hQfeeqjwN1uyLX2F6L83iy19rp5Z7gYqvwd3MTWLzS1cqJyGDfv7PrelLxLpMaxLAFv6QpT9EovvwmnKlCm899571bY988wz7LnnnrRr147f/OY3VFRU7HQiruvy0ksvUVJSwkEH1d41/M033zBy5Mhq24499limTZtGZWXtJ8IVFRUUFhZWeyTL6p/W4bnRrwIHgg7L5vq7GrtsXuwbrjeu3kx56c6/L83R3G+iXTndZvZX83y1Wzp7eZ3FMER6in7+cbmvWKsWr415jDhBh2Vz43OzfXOyeNNGvDpPsCO9MQvy6+71aUjrS2Pf6LvlPo9YlhVsjnrSCZEicdHGjVHbNISCsrXkpkb/vvGswfGW+IoXOVmIde9XJbj+vjM7ZeYTiHJuF3QsOc4yX7F2K56/Y8lz18dss7m8nMIY5woBx2HxRn+FTmXlIiq96KcyaQGP/OJFvuIR/om6C3WInMgu9BerMXN/pu6T9S0C4Pq8AOPG+r0B3urI/WOyjc+CyHc7dwF1F8NE9oWbwfGbRL4Lp9tvv52ZM2dufT5r1iwuvvhijj76aG6++Wbeeustxo4dGyVC7WbNmkV2djZpaWlcfvnlvP766+yzzz61tl2zZg3t27evtq19+/aEw2Hy6zghGjt2LLm5uVsfXbt2rXeO8ZKRHXtsr+dZX+0AMrLSY96k6gQcUtNSfMXbXWS19DekNMdnu8wWGcS6Vzjd73vqo511re94u5PMYPTj3DGG7NTUBGVTXUog9s24AZ9jzjNTYn+ePWt9tYu39NQcPB8d3B7+bhI3JpPYJ3eAyfQVr9yN/jtxLVR6+mzVYPxOXJIbs0WGz0lQsvx+Vk0mTqwTdiA96POe5pjHkgMm21+sxszXZ8bz/dmKtIv1HRZkJ+Yka94cv79fn7fC+Dk2/caSWvkunL7//ntGjBix9flLL73E0KFDeeyxx7jhhht48MEHt860Vx+9e/fm+++/Z/LkyVxxxRWcf/75/Phj3V30OxYKW4ah1VVAjBkzhoKCgq2P5cv9XflvCHvs04VOe3eI1ZvNwace4Cve8F8Mww3XfWUhEHQ4+JQD6j2jW3M3+rejfLU75erjfLU7/IyDo/7ZdgIOR/7yUF+xuvfrSqce7aMfIwYOOfVAX/F2Jyf27kMgSgXrWcuonvWftTIe/EzUMLBDB1+xerVuQ9cW0U9QjTGM7OHvZuJ4ykzNZU5BT8Je3e9DimNpmXuKv4DpxxC9cDIQ7A0Bf7OmLSodFjW3gIHK1JF17t9tpR3lo1E6TiB2sZOVmsrwbntE/ayGPY/j9/b3We3c5vQ6h4YCuB78VNSe9i16+4pHxiiiD3XyMBn+/jY0asE+EOgco5Hx+d6DST+W6D0dAUg/VpMS7Cj1UCDGBF6mJaQO9hXOpI8i+gmEA+kn+ExOauP7CN60aVO13p5JkyZx3HHbvjwOOOCAnSpKUlNT2XvvvRkyZAhjx45l4MCBPPDAA7W27dChQ41FdtetW0cwGKR169qnpE1LS6NFixbVHslijOH8O86qszfbOIZjLzySdl39zRA1aMS+9Dlwb5xa7q+JFJKGX9582i5k3Dy16pDHwCP6RW1z4KhBZLf0d1XxmPMOp03n1rXe5+QEHDKy0znlqmN9xfJzjBx34ZG07VK/KZh3BxcO3J+0QBCnlhOygDF0bZHLib18njzF2a3Dj6g1r+3ddtiRvmI5xnD9sEPq3G+AM/fpT4fsnPqkGDcpLa7GGGrteQp7hh83d6d3B3/FiQnuWfVHvq4/VTYyXa/P6aG7driWkBfAraV4CnuGlaUt2bfbBb5i7VZy7ib6yRiQfaXvcFcdMAxbR8SAMQzr0pVBPqfU79Z6ENM37Vfre2otBBwoTr3M96ymJvMCMKnUfswFINAN0v1dfGvMjHEw2b+N1gIyzsIE2kdps53U4RDsR+1FZ+R8xGRdWv9Emznj5EDWxdHbZF+JMT57YDNGg9OG2t+HAJgcTOY59c5TtvFdOLVv354lSyLj0kOhENOnT692L1JRUREpcRgaYq2t816pgw46iI8++qjatg8//JAhQ4bE5bUT4aizD+WqBy4imBLAOIZgSgAn4Gzdd82/LvEdy3Ec7nrnFvoOjVyZCwQDBFMiH5aMnHTueP339B7SI/4/RDNwz4e30nPwXrXu2+fgXtz55s2+Y2XmZHD/Z7fTca/IH5hASoBA1fuQ1z6Xez++jTad/Rc6R50znCvHXVjrMTLinOH1OkZ2J11zc3nmtF+Qlx4ZBhZ0HIJVVzf3ymvFC6PPJD3GcL6G0jEnh6dPOb3W6cYdY/jHyOPZt72/HieAU/v05U+HHUnQcXAwBB1n6xX8U/vsw+1HjIgRoeHs0+l4ZpWPodwNYi1Uus7WXp55hXvRbY/n6rVWkskdC2lbCq0AkaE+BkjFtLgTk36M71id8/qxIvAABZWR4XiVnkNlVW7LS9sQbP0c6SnJKTgbMyeQCq1eoM5ThvSTcbL9LwtyYOcuPHjciWRU/d3e/vgd1qUrj5xwcr3WSuq/9+PMLOgPRArgStfBsxDyAkwrupz99viV71gm2A2T9yQ4Lau2bDe8LNijakrt5rHEh8k4FZMzhm2fqSBbT7jTT8O08D8boTEBTKvHIWXLNPLb/d5MNibvEUxK7bdh7O5M9rWQeR6R98Ah8ntzIo+sqyDT/4yVxmmBafXcdr2J270PTltMq6cxgbbxTH+343sdp8suu4xZs2bxt7/9jTfeeIOnn36aVatWkVo1Dvn5559n3LhxTJ061feL33LLLRx//PF07dqVoqIiXnrpJe655x7ef/99jjnmGMaMGcPKlSt55plngMh05P379+eyyy7j0ksv5ZtvvuHyyy/nxRdf9L34brLXcdqiIL+QT577gtU/rSWnVTZH/PIQuvWJ1W1eO2stc6cs5Os3viVUXsleA/bgiF8eovWbfJjz1TyeueMVNq8roFXHlpz/l1/S54CdG+LkeR7TPviBGZ/Mwnoe+xzcm4NPOYBgys6N6d7xGDny7EPo2nvnjpHdSch1+XDxQmasWU3QcRjerTuHdO3WKBatDHseD0+dwidLFuNZy0FdunLd0IPJ3Ml7rzaUlvLG/LmsKCwgNy2dk3v3Ya+8VnHOeueUVGxmzrLHccMLgXRa551Crw7+etVqYysXYMvfA1uECXSDjFMwTux7amoTCpcxc9mzVFbMAAJkZ4+gX+dTtPhtDJ7rQsl9UP4m2HBkUdi8++q9+O0WxaEQby2Yx8KNG8gIBjm2R08G1OMCwo6W5E9hTf4rGFsEge707XIxuZntdiqWtSEo/xBbORMIYNKGQ+pBjeJ7JN6stxHK/od1V2CclpB+YqS3d2diWQuV07EVn4INYYJ9IeN4LX7rgw2vgPK3sF4+xukAGSf77/HbMZZ1oeJzbGgyYDGpgyFtBMb3/Yq7l/rUBr4Lp/Xr1zN69Gi++uorsrOzefrppznttG3DwEaMGMGwYcO46667fCd68cUX88knn7B69Wpyc3MZMGAAN910E8ccE7mCeMEFF7B06VImTpy49d9MmjSJ66+/fusCuDfddFOTWgBXREREREQahwYpnLYoKCggOzubwA6zRG3cuJHs7OytPVCNlQonERERERGB+tUG9e6zy82tfWhEq1aNY3iIiIiIiIhIvGlAt4iIiIiISAwqnERERERERGJQ4SQiIiIiIhKDCicREREREZEYNKF7M+B5Ht99+APfvDmNivIQPQZ05+jzDqNFKy3kKNKYhFyXDxYv5Jvly/CsZf+OnTipV5+tC4HW18rCQl6dO5sVhYXkpqVzUu8+DNyFdXAaK2st09es4p0F8ykKhejesiWn9+1Hh+yd+44rDoV4c/5cfli7hqDjcGi3PTh6zx6k7DBbrF/zN+Tz+rwf2VBaSvusbEb33Wen19Paun5QaDLgYVL2h4wTdnodnB2PkZN799mltZLiaUNpKa/Nm8OCDRvITElhZI+9ObhL41hzTRqHyBpTr2PDC8FkYNKOabbraUnTUO/pyJu65jYd+YbVm7jl+Lv4aebPBIIBwOK5lmBqkD88dRVHnHVIslMUESIn1xe+MYE1JcUEHQdrwbUeuWnpPHbSqQzp5H9xY2st/5w6mXGTv8apOoEwGMLW4+g9e/Dg8SeQHty5YqyxKQ6FuPLdN/ly2c9VvzfLlj9aNx9yGJfsP6Re8b5a/jNXvPMmxaEQAWO2/t66tsjlqVNPZ8+Web5jhT2PP376Ea/8OJvAdidyrrWcN2A/bjv8qK3vjx+2cj5208XgrSNyXdMCLphcTN6/Man7+49lLQ99O5kHpnxdLQfXWo7ZqwcPHJfcY2TC3Dnc8smHhD2LY7YdvwPad+Dxk06jdWZm0nKTxsGWTsAW/glw2TZAyoWUgZHPg6PZnCU+6lMbaKheE+a6LmOO+ys//7g88jzs4oY9rLVUhiq5+9wHmP3VvCRnKSIF5eWc+9p/WV9aAkROuF3rAVAUquCCNyawsrDQd7z/zpnFPyZ/HTmtthbXWsJV8T5d+hNjPvko7j9Dstzwwbt8vXwZsOX3ZvGqHnd/OYm3Fvj/jvtp00YufvN1SkKVANV+b6uKCjn3tf9SWlnpO97fv/6CV3+cvTXWlgfAMzO/5+GpU3zHsl4BduN54G2o2hImcsII2CLspouw7irf8V6aM4txU6ofI1ty+2TJT/zx0499x4q3L5f9zB8+ep9Kz8NS/fids24tl779BrvZNV3Zga34Clt4C5HPQdUFhC2fh8rZ2E2X6xiRpFDh1IRN++AHlsxahhv2au60YIzh5XvfSHheIlLdq3PnsKmsbOuJ6/Y8a6lwwzw763tfsTxrefDbyVH3vzl/LisKC3Y23UZj4YYNfLxkMV4dJ0gGeGjKN75PoJ74fjpu1cn6jlxrWVNczFvz5/qKVVhRztM/zKgl0jaPTp9KedhnIVb2KtjNbD05rMYDW4Etfd5XKNfz+GeMY+SNeT+yssh/sR5PD0+dUudQK9davl+zmqmrViY4K2lMbPHDRD7htXGh8nuonJbAjEQiVDg1YV+9/m3V8Lzaea7HlHemE64MJzArEdnR+4sWRD3Bdq3lnQXzfcWan7+e1cVFMdt9smSxz+war49+WlRtCNyOLLBo00aWFfgrEt9buKDW4nULA7y/eKGvWF8u+5mQW1uRs01xKMS3K/0VALb8A4h+lED5e75izfN7jPyU+GOkOBRi8srldRbDAEHH8f0+SPNjvSKonArUclF4qyC2vPn0rEvTocKpCasoq4h5pdV6lnBl9D/uItKw/Az/Kg/7u8BR5qOdY4zveI1ZeTjs6ybwctffzxrrd2KBMp8Xmvy8D5HX9NnjZEt9tCn3FcrvMVLh8/cWT36Py4pmcPzKTvJ5nGMrGjYPkVqocGrC9uzfLWbh1LZra9IyUhOUkYjUpl/bdlF7TgLG0LdtW1+x9myZFzUWRHqwerVuU68cG6PerdsQ9qJddYa0QIAuOf4m+undpk3UyRrq8z709vn77en3fQjuA0Sb1S8AwT6+Qu2V5/MYaZX4YyQvPZ289OgzBLqe5/v3K82QkwemZYxGLibYMxHZiFSjwqkJO/bCI3ECdb+FxjGcctXxmrZTJMnO3Xdg1CFirrX8et/9fMXKy8jghF696zwxdoyhY3YOh3XrvhOZNi5H79WDvPR0TB33OgSMYXTffmSl+rs4dN6AQVGHiLnWcnb/Ab5i9W/Xnv5RCuKAMQzr3NX3LH0m81xqv79pa3ZVbWJrlZHJqJ7Rj5FOOTkc2m0PX/HiKeA4/GrAwDoLWAOkBoKc2qdvYhOTRsOYIGSeS92nqAZIhYxTEpiVSIQKpyYsr31Lrv/3ZWCoUUAZx7Dv8L6c9ttRScpORLYY2KEjVx0wFKDaCeOW//rFPv04eq8evuP9cfgRdMzOqXFiHDCGFCfAuONGEXCa/td7WjDIA8edSNAxtf6se7Rsye8PPtR3vJN792HU3r0wVL/tfMt78vuDD61XT919I48nKyW11txy09IZO2Kk71gmdSBkXbYlo+33RP4v4wxIO8p3vFuHH0GHaMfIsSck7Ri5fPCB7NuufY3iKWAMxhj+fsyxtEhLT0pu0jiYrEsh2J+ap6kBwGBa3otxtFalJJ7WcWoGZnw6i5fueZ3pH88CoHWnPE69+nhGX38iqWnNYy0Xkebg7QXzePS7qcxevw6AHnmtuHjQYM7st2+91vsB2FhWyvhp3/LynFlb1yQa1bM3Vx4wtNkNc5q9bi0PT53Chz8twrOWFmlpnNN/IJcPOaDeJ9iu5/H8rB944vvvtk4qsV+Hjlw++ABG9qj/0J9lBZt5eOoU3pg/l5Drkh4Mcnrfflwx5EA6+RxCuIW1FsrfwZb8B8I/RjYG9sJkXQQZZ9R79MCG0lIe+a5xHiNllZX8Z8Y0np35PfmlpRjgsD26c+UBQzmgU5ek5iaNg/VKofSJyGyS3gbAQOphmOzLMKn1W79NJJr61AYqnJqRirIKKivCZOVmanieSCNWEgrhWUt2auouf1Zdz6MoVEFmSiqpgWj3yDR9FeEw5eEw2ampu9xbYq2lKBQi6Dhkpuz6BaZK16WkMkR2ahrBOPTkWK+EyLoSWc36GPGspThUQVogSFowmOx0pBGy1gNbBCYdY9KSnY40Q/WpDfQt1YykZaSRlqEvFZHGzu89OX4EHIeWMW62by7SgvE7uTbG0CItft+XKYEALQPxex+MkxW3WI35GHGM0bA8icoYB0xustMQAXSPk4iIiIiISEwqnERERERERGJQ4SQiIiIiIhKDCicREREREZEYVDiJiIiIiIjEoMJJRCSBrLVYdy3WXYO17i7H21haytSVK1hRWBCH7MC6G7DuKqytjEu8xioUDjNj9Sp+XL8Wz/N2OZ71irHhFVXTiO9irGrHyK7n5nkb8Sqm4YVX7nIsgPzSUlYWFVLp7vrx25i5nseqokLWlRSzm63c0qxZb3Pks2orkp1Kg4p8j6yJ2/eIRGg6chGRBLDWQtnLkcVN3WWRjU57yLoAMi/AmPqtrzNr7Rque/8dlhRs3rotLz2Dmw8Zzhn99q1/fuUfYovHQ3hOZINpgc08G5N1BcbJrHe8xqo4FOKKd/7H18uXseVUOMVxGN23H3cdeTROPddgspULscUPQMXHgAcEsOnHYbJ/iwl2r1+sOB8jXmgmbL4RvKXbtpk8yPk9TuYv6hUL4P1FC/nX1MnMqVrAOTctjXP2HcjVBwwjIw5rYTUWIdflselTefqHGeSXlgKwd14rLh9yIKf12UfrJDZRNjQVW/wQhCZXbUnHZo7GZF+LcVolNbd4inyPvIgteRzc5ZGNToeq75Hz6/09ItVpAVwRkQTwCu6EsmcBA2z/tWsg7VhMy3GR9Up8mLF6FWe88hIetX99//7gQ7liyFDfudmSZ7BFfyUyCGH7K5MOpOyLafUMxjTOdYDqozwc5tAnHmVjeVmt+/fv0IlXzzzbdzxbORu74VwgBGzf+xIAk4lp/TImuLe/WNZiC++Esueo/Rg5DtPyH76PES80AzaeTfX3czvZN+Jk/8ZXLIAnv5/OnZ9/hmMM3nanDY4x7NuuPS+MPrNZFE9hz+PSt17n85+X7vgOYIGrDhjK7w46NEnZyc6y5R9iN19b9Wz7z0QAAh0wrV7FBFonI7W4inyP3AFlL1DzewRIPwGTe7/v75HdRX1qA/3mREQamA1NqyqaoMYfMixUvA8VH/iOd+W7b9VZNAHc9/VXlIfD/nJz12CL7q56tuNJtgeVs6Dkad+5NWa3TfykzqIJYPqaVby9YJ6vWNZabMHNQAXViyYiz20ptuBW/8lVTqsqmqD2Y+Q9qPjIf7xN11Bn0QRQ/H94XrmvUKuKCrnri4kA1YqmLc9nrVvLUz9M959bIzZh7hwm7VA0wbZ35F9TpzC3qsdNmgZry7EFY4i8izt+Jlxw12CL/y8JmTWA0LdVRRPU/B4Byt+p6h2XnaXCSUSkgdnSl4BowyMcbMnzvmIt2JDP2pLi6K+H5Z/ffuMvubJXYjTwsKXPN4t7PPwURQ99OzlmGwAqZ0J4AXUXJy5UTseGF/kKZ0tfJF7HiFe5AGysk3sPSv7tK95/58yOHslanp35va9Yjd2zM78n2kC8gDG8OHtmwvKROCh/H2wRtRYSALhQ9j+sF/17tSmI/T0SwJa+EGW/xKLCSUSkoYUXULNXYnse+DzB/m71Kl/t5qzzd1Xchn+K3chbS6RnpWnz0wu3urjIXzB3sb92fn6/4O8YcRf6ixWa5vM1oxdEWyzetCFmmzXFxVT47OVszJZs2hilLxdca1mwIfbvQxoPG15M7Fv6Q+CtSUQ6DcuN9T3iQtjn94jUSoWTiEhDM9kQ9To24GT5CtUyPd1Xu6zUVF/tMJnEzI0A0PTvX/FzS39qwOeN08bf++W/nY9jxG8sp2U9XjO2rJRUnBi5BR2HFL+/u0Ys1n1aDpDt97MljYIxmdTd27R9w2YwCY6fz7Tf7xGplQonEZEGZtKPj9HCgfQTfcU6Zq+9CfiY1euywQf4imfSjyX6FcoApB3TLGZi6tOmbcw2x+zlbzIHUg8BYhSxpgWk+n0fRsVo4f8YIW0k0YfrVMm8xFe44/buRTjKdMYBYzi2R0+cZjDb3Ik9e0f9fHnAqJ69EpeQ7LqY33EOBPfBBDolKqMGE/keifY5dCD9hESl0yypcBIRaWgZp4HTjtpPZh0wWZhMf7O5BR2HX/YfELXNXnl57Nu+g7/cUg+F4L515GYAg8m+zF+sRu5Phx0RdX/QcbjpkOG+YhknG7Iujt4m+wqM8dk7kTEanLbUfYxk+z5GHCcIGTGmGw/0wEnt5yveYXt0p3/bdrUWFAYwxnC5z0K9sbtwv8GkBoK1FoEBY+iW25ITevZOQmays0xwL0g7jrpPeT1M9jWJTKnhZIwGpw21f48EwORgMs9JdFbNigonEZEGZpxsTKvnINC1akuQrWPunTaR6b4DPgsd4M4jj2Zkj9p7Rrq2yOWNs37lPzfjYFo9BikDq7YEtuVmsjB54zEp/k6wG7thXbpx11HH1Ho9NjUQ4KXTz6Jluv9p1032NZB5AZHywSHye3Mij6wrIPMi/7GiHiNtq46R9r7jObl3QtrRdezsBq1f9R/LGJ485XQGtu8IQMA4BKvWu8pOTeXRE0+lXzv/uTVme7RsyTOnnU5e1ZDYoOMQrJq6ee9WrXl+9BmkBbUEZlNjWv5tu8/Dlu84A6RiWtyFSR+RvOTiyDgtqr5HOldt2fF75GlMIHbPu9RN6ziJiCSItR6EvsBWfAN4mNTBkHYUxuzc/UOLNmzg3m++YEVhIS1S07hiyIEc3n3PnczNQuUMbMUnYEOYYB/IGNUs1m/aUXEoxP3ffMnUVSsJGsNxe/fiN/sPqffit1tYdyWUvYn18jFOe8g4uV6FcLVY1oPQ59iKycTjGPHCi6HoPnBXgJMLmZfipB++k7lZpq9Zxcc/LabCddmnTVtO6Nm7WazftKOKcJgPFi/kh7VrCDoOh+3RnYO7dNPit02crZyPLX8PbDEmsEfks+rkJjutuLPWhYrPsaHJgK36HhmBMSr6a1Of2kCFk4iIiIiI7Ja0AK6IiIiIiEgcqXASERERERGJQYWTiIiIiIhIDCqcREREREREYlDhJCIiIiIiEoMKJxERERERkRg0obuI1NvGslJem/sj8zfkkxEMMrJHTw7u2g1Ha5xEFXJdPli8kG+WL8Ozlv07duKkXn0axTo44XCIbxf+iQ4pXxA0LutDnenQ4U465yV/8dst6we9s2A+RaEQ3Vu25PS+/eiQnZPs1OLO2hCUf1i1/oqHSdkfMk7Y6fW0ImtMvYYNR9ZxMhknYVL2jW/SIiK7Ca3jJCL18vrcH7n5kw9wPYsxYDCErce+7drz+MmjaZOZmewUG6X5G/K58I0JrCkpJug4WAuu9chNS+exk05lSKfOsYM0kIVrvqCz+xvSAy47/kX4dtPRHLTPw8lJjMhitVe++yZfLvu56vdm2ZLizYccxiX7D0labvFmK+djN10M3joi1zUt4ILJxeT9G5O6v/9Y1kLJv7DFDwGm6kEkXtoITMt/YEx63H8GEZGmRus4iUiD+Hr5Mm786D0qPQ8Pi2stYesB8OP6dVzy1uvsZtdifCkoL+fc1/7L+tISAMKeh1v1eysKVXDBGxNYWViYlNxCoVK6uJeS5rgAkWK46gFwYN7HTFl4f1JyA7jhg3f5evkyYMvvzeJVPe7+chJvLZiXtNziyXoF2I3ngbehaksYcKt2FmE3XYR1V/kPWPYytvhBIsWXVxWrKl7FZ9iC2+KVuojIbkOFk4j49vDUyZg6huO51jJz7Romr1ie4Kwav1fnzmFTWRluLUWlZy0VbphnZ32f+MSAaYtvJS3gUdvbumXbninPJjapKgs3bODjJYvx6ijGDfDQlG+aR7Fe9irYzWwtbqrxwFZgS5/3FcpaF1scrZfQg/L/1a8QExERFU4i4k9JKMTXK5bXeRILEDQOH/60KIFZNQ3vL1pAtFN711reWTA/Yflsr3PqVzWG523PGGidVkooVJq4pKp89NMiAlHum7PAok0bWVZQkLikGogt/wCiHyVQ/p6/YOH54K2J3a78U3/xREQEUOEkIj5VuOGYbSxQHo7dbndTWlkZs02yfm8pJvbrGgPl4eIEZFNdeThcZw9ntXY+js1Gz/ooTG25z1hlPho5QIW/eCIiAqhwEhGfWqZn0Doj+sQPnvXo1bpNgjJqOvq1bRe15yRgDH3btk1gRtvkh9pH3W8thD1Di8x2Ccpom96t2xD2vKht0gIBuuQ0g4l+gvsAgSgNAhDs4zPWnjFiAbgQ7OkvnoiIACqcRMQnxxh+PWC/OqccN0BKIMDoPvskNrEm4Nx9B9Z6f9MWrrX8et/9EpfQdjLzxgBEHa43p8DnCXucHb1XD/LS0zHUfswFjGF0335kpaYmOLP4M5nnUvv9TVu4VW18xHJaQfrx1F08OeB0gtRD6pmliMjuTYWTiPh26f5DGNi+Q43iaUtvyt+POY7cdE1xvKOBHTpy1QFDAar97rb81y/26cfRe/VIQmawd/vhTNt0IFC9eLI28iiqTGXv7o8nJbe0YJAHjjuRoGNq9NgFjGGPli35/cGHJiW3eDOpAyHrsqpn2/9prvq5M86AtKP8x8sZA04HahZPASAF0/J+jInVKyUiItvTOk4iUi9llZU8PuM7np05g/WlpRhgeLfuXHnAUA7s3CXZ6TVqby+Yx6PfTWX2+nUA9MhrxcWDBnNmv32Tvnjw1/Nuo2/m6+SmRu57cT3DjwU92av7U+RkJHf45ex1a3l46hQ+/GkRnrW0SEvjnP4DuXzIAbRIaz6FurUWyt/BlvwHwj9GNgb2wmRdBBln+Lrfq1o8byO2+N9Q9grYYiAA6cdjsi7HpPSK/w8gItIE1ac2UOEkIjvFs5biUAWpgQDpwZRkp9OklIRCeNaSnZpa75Phhra5dDWloQI6ZO+NEwwmO51qKsJhysNhslNTCTjNe8CE9UoACyZrl48Ra12wRWAyMabpD2sUEYmn+tQGjeuvoog0GY4xzepqfyI15ntyWmZ2pGVmx2SnUau0YJC0RlbMNRTjZMUvlgmAaRm3eCIiu6vmfclOREREREQkDlQ4iYiIiIiIxKDCSUREREREJAYVTiIiIiIiIjGocBIREREREYlBhZOISAxFFRWsKCygJBRKdio1lFVWsqKwgMKK8rjEyy8tZWVRIZWuG5d4jZW1LtZdjXXXsZutyiEiuwFrLdZdE3lYL9npNBu7x7yuIiI7YeGGDYyb8hUfLI4svBowhuP37sX1Bx3Cni3zkprbmuIixk3+mjfmzyXkulsXIr5+2MEM7FD/6cQ/WLyQf307eevivC3S0jh334FcdcAwMlOazzpd1oag5HFs6bPg5Uc2BvaC7N9A+mmNbl0tEZH6sNZC2YvYksfBXR7Z6HSArAsg8/zI8gSy07QArohILWatW8svX32JkOvibvc1GTCGjJQUXjnjbHq3bpOU3FYVFXLayy+wsay0Rm7GGB4/+TSGd+vuO95T30/nL59/hmMM3nbxHGPYt117Xhh9JhnNoHiyNozddAWEPge2/9NnIs+zLsfJuSFJ2YmI7BprLbbwDih7ga3fa9tLPwGTez/GaMDZ9upTG+g3JyKyA2stf/jofSp2KJoAXGspq6zklk8+TFJ2cNcXE2sUTRDJzfUsN374PmHP39CM1UVF/PWLiQDViqYtz2etW8uT30+PQ9aNQNn/IDSJGicTW56XPIKt/DHRWYmIxEfo26qiCWp+zwHl70DFxwlNqblR4SQisoOZ69Yyf0N+jUJiC9daZqxZzcINGxKcWeQepA8WL6pRNG1hsawvLWHi0p98xfvvj7Oi7ves5dmZ3zeL+4Bs6XNErsLWJYAt/W+i0hERiStb+iIQbSheAFv6QpT9EosKJxGRHSze6K8gWrQp8YXTsoLNdRZ0WwSMYdHGjb7iLd4Uu93akmIq3LCveI2a+xO1XoXd1gDCCxKVjYhIfLkLgGgT+7gQXpiobJolFU4iIjvISk311S47xV+7ePIzUYNnre8JHbJSUqP2wUCkEEtxmsMNxRkx9hsw2QnJREQk7vx8f5mshs+jGVPhJCKyg0O67kFGMPqkoy3S0jiwc5cEZbRNr9Zt6NoiN2obYwwje+ztK95xPXrWOewPIkXTsT16EnCawZ+LjBOJPozFYjKOS1Q2IiJxZdJHEX04sgPpJyQqnWapGfwlFBGJr+zUVC7d/4Coba46YChpMYqrhuAYw/XDDqlzvwHO3Kc/HbJzfMUbvkd3BrRrT6CWabgNkSLs8iEH7mS2jYvJPA9MKrX/6QtAoBukj0p0WiIi8ZExGpw21H6BKAAmB5N5TqKzalZUOImI1OLaoQdx8aDBGCK9LkHHwTEGxxiuOmAolwwakrTcTu3Tlz8ddmQkJyK5bSl8Tu2zD7cfMcJ3LMcYnjhlNPtVrf0UdByCVb1LWampPHriqfRv1z7+P0QSmGA3TN5T4LSs2hJk63KGwR6YVs9gTHpykhMR2UXGaYFp9RwEOldt2e47zmmLafU0JtA2Wek1C1rHSUQkipWFhbwxfy75pSW0z8rm1D59fffmNLQNpaW8MX8uKwoLyE1L5+Tefdgrr9VOxbLWMn3NKj7+aTEVrkvfNm05sWfvZrF+046sDUH5h9jKmUAAk3YopB6sxW9FpFmw1oWKz7GhyYDFpA6GtBEYk/hREk1BfWoDFU4iIiIiIrJb0gK4IiIiIiIicaTCSUREREREJAYVTiIiIiIiIjGocBIREREREYlBhZOIiIiIiEgMKpxERERERERi0ITuInESWRvmI2zoG8DDpAyCjBMxJiPZqeFZy+c/L+WTJYspD4fp26Yto/vuQ8v05OfW2C3YkM/r834kv7SUdllZnN63306vlRRyXT5YvJBvli/Ds5b9O3bipF59dnqtJOuuhLLXsOEV4ORiMk7EpAzYqVjSOITCZcxc9gxu+TdE1l8ZxL7dLiIjVctnRGOthcrp2PL3wCvCBLtDxmhMoHks3iwijUNS13EaO3Ysr732GvPmzSMjI4ODDz6Yv/3tb/Tu3bvOfzNx4kSOPPLIGtvnzp1Lnz59Yr6m1nGShmArF2I3XQTeWiLXIyzggmmByXsEkzokabmtLS7mwjcnMC8/n6BxsFg8a0kNBLh/5PGM6ln35213FvY8/vjpR7zy42wC2y2M6lrLrwfsx58PPwqnHgumzt+Qz4VvTGBNSTFBx8FacK1Hblo6j510KkM6dY4dpIq1FkoexhY/SPWBAy6kHYVpOQ5j0n3Hk8bhp/WTySq5krbpxVR6BgMEjKWwMo21KffRp+OxyU6xUbJeMXbz1RD6Gghs2QqAybkJk3Vh0nITkcavyazjNGnSJK666iomT57MRx99RDgcZuTIkZSUlMT8t/Pnz2f16tVbHz179kxAxiI1Wa8Qu+nX4OVXbQkDbtXOYuzGiyM9Akngeh7n/28CCzdsiGRmPVxrsUR6P659/x2+W70yKbk1dvd98yWv/jgbiBRLWx4Az878nn9+O9l3rILycs597b+sL418t4U9D9d6ABSFKrjgjQmsLCz0n1zZK9jiB9haoG99ABUTsQW3+o8ljUJB6TpySy8jLzVyjKQ4lqBjMQayUyro7N7A6oIFSc6ycbIFN0Joy+dxy2fBAzxs0Vhs2TvJS05EmpWkFk7vv/8+F1xwAf369WPgwIE8+eSTLFu2jO+++y7mv23Xrh0dOnTY+ggEAjH/jUiDKHsNvE1sPXGtxgNC2NLnE5xUxMSfl7BgQ/7WE/7tWcAA/542NeF5NXaFFRU89f10onXH/2fGNMoqK33Fe3XuHDaVldX6PnjWUuGGeXbW975iWethi/8VpYUH5W8lrViXnTN3+XhyU8sIOjWPkYCBNCfM0lX/TEJmjZutXAgVnxL5rq2NwRb/iyQOrhGRZqRRTQ5RUFAAQKtWse8fGDRoEB07dmTEiBF89tlndbarqKigsLCw2kMknmz5BxD1FNuF8vcSlU41Hy1eRMDU/TF3reXTpT8R9uo66dg9fbX8Z0JubYXwNsWhEFNW+itO3l+0IPoRYi3vLJjvL7nwfPBWx25X8am/eNIo5DKJaAM/g46la9o3Ccunyaj4mOinMhbcReAuT1RGItKMNZrCyVrLDTfcwKGHHkr//v3rbNexY0ceffRRJkyYwGuvvUbv3r0ZMWIEn3/+ea3tx44dS25u7tZH165dG+pHkN2VLfXRprzh86hFWTiMjXrKHunxCHvRi4TdTXll2F+7sL92pT56pvzG8ncsOWAr/MWTRiHVqSDWLXNpjr8ezt2JteX4OpXR50FE4qDRzKp39dVXM3PmTL788suo7Xr37l1t8oiDDjqI5cuXc99993HYYYfVaD9mzBhuuOGGrc8LCwtVPEl8BfeB8AJqH6oHEICU5EzA0Lt1G95ZGL0no1NODmmBRvNV0Cj0btPGV7terVv7atevbbs6h0wCBIyhb9u2/pILdidyA3y0YteFFN332ZRsqOxOVy+/1qF6AGHPsKq8Mz6Pkt2GCfbCEuuiQzoEOiUkHxFp3hpFj9M111zDm2++yWeffUaXLl3q/e+HDRvGwoULa92XlpZGixYtqj1E4slknU2sk1iT+atEpVPNGf36R535zQDnDRiEqcfscLuDfdq2Y9927avNpre9gDEM7dzF97Tk5+47sM6iCapm6tt3P1+xjJMH6aPYNnvYjhxwOkLqcF/xpHHIbXVRnUUTRIbq2YyzE5hRE5F+DJiWUOdAx0BkWnInK4FJiUhzldTCyVrL1VdfzWuvvcann37KnnvuuVNxZsyYQceOHeOcnYg/JmUAZF1V9Wz7j1TVH/L00ZB2dKLTAqBtZhZ3HXVM1bTG1U8sHAxDO3fl/IGDkpJbY/f3Y44jKyW1xu8tYAy5aemMHTHSd6yBHTpy1QFDAaoVslv+6xf79OPovXr4jmdyxkCgAzWLpwCQgml5P8ZowpympHeHEUzZNAoA19t2jHhVtdTUjQcxoOs5yUitUTMmFdPyH0SO/Vo+D4E9MDnXJT4xEWmWkrqO05VXXskLL7zA//73v2rD73Jzc8nIiCzMOWbMGFauXMkzzzwDwLhx4+jevTv9+vUjFArx3HPPcc899zBhwgRGjx4d8zW1jpM0FFv2LrbkMQjPiWwI7BlZPyTjTEyUCRoS4avlPzN+2rd8vXwZAO2zsjl/4CAu3G9/0oIapleXZQWbeXjqFN6YP5eQ65IeDHJ6335cMeRAOuXU//vj7QXzePS7qcxevw6AHnmtuHjQYM7st2+91oQCsN5GbPG/oewVsMVAANKPx2RdjknpVe/cJPk8z2P60v+Q6z5Hj5w1ACwrbs06ewZDelyH4zSKQSKNkq2cjS1+pGqyCA9MLmT+EpN1KcbR33oRqVt9aoOkFk51DQ968sknueCCCwC44IILWLp0KRMnTgTg3nvv5dFHH2XlypVkZGTQr18/xowZw6hRo3y9pgonaWjWKwEsmKxGNwSuPFxJyHXJSU1rdLk1ZpWuS0lliOzUNIJxOHktCYXwrCU7NXWX3wdrXbBFYDIxJnWXc5PGoaRiM551yUrNU8FUD9aGwJaByVavq4j40mQKp2RQ4SQiIiIiIlC/2kCXsURERERERGJQ4SQiIiIiIhKDCicREREREZEYVDiJiIiIiIjEoMJJREREREQkBhVOInFkrWVtcTGrigpxPS/Z6UicrC4qYurKFawvKU52KiIiIpIkWvlSJA6stbw8Zxb//m4qPxdsBiKLzF643/5cNGhwXNb+kcT7+KfF/Omzj1m7XcHUKTuHsUePZHi37slLTERERBJO6ziJxMFfJn3KUz/MwADbf6AMcGyPnvxz1Ek4WnC2SXl93o/87sP36tw//oSTObZHzwRmJCIiIvGmdZxEEmjaqpU89cMMoHrRtOX5+4sX8t7CBQnPS3ae53mM+eTDqG2iFVUiIiLS/KhwEtlFL8z6gUCU3iTHGJ6d9X3iEpJd9tq8uYRcN2qb0spKPv5pcYIyEhERkWRT4SSyixZsyMeNMuLVs5aFGzYkMCPZVdNXr/TV7tuVyxs4ExEREWksVDiJ7KLs1DRi3b2UlZqSkFwkPnLT0321a5me0cCZiIiISGOhwklkF43q2SvqfscYTurVJ0HZSDxcMHB/X+1+te/ABs5EREREGgsVTiK7aHTffrTPzq71PifHGLJSUvn1gP0Sn5jstPbZ2RzYqUvUNkd135MWPnumREREpOlT4SSyi7JTU3lx9Fl0y20JQNBxtq7b1DYzk+dGn0GH7JwkZig747nRZ9C/bbta9w3u2IlHTzw1sQmJiIhIUmkdJ5E48azl85+X8vXyn/Es7N+xE8fs1YOUQCDZqcku+G7VSh6Y8g35ZaW0z8zihoMOYd/2HZKdloiIiMRBfWoDFU4iIiIiIrJb0gK4IiIiIiIicaTCSUREREREJAYVTiIiIiIiIjGocBIREREREYlBhZOIiIiIiEgMKpxERERERERiCCY7AWl8CvIL+fDpSSyds4y0jDQOOfUABo3YF8dRnZ1IK4sKefXH2awoLCQ3LZ2TevdhoNYPSrgFG/J5fd6P5JeW0i4ri9P79mOvvFbJTkuaqZDr8v6iBUxesRzPWvbv2ImTevUhIyUl2amJiOz2tI6TVPPxc59z/yXjccMujmMAgxt26bn/Xtz17i3ktctNdorNnrWWf02dwj8mf4Uxhsi7YAhbjxF79uDB407QSVQChD2PP376Ea/8OJuAMVu3u9by6wH78efDj8LZbrvIrpqXv54L//caa0uKCToO1lpca8lNS+c/J5/K4I6dk52iiEizo3WcZKd8/9ls/nb+Q4RDYaxnccMebtjl/9u78/Co6rP/458zM1kIWcBAQiKETZaw+BCIYkChioBCf8IlFxaKAvKIpaIsSgXUVp9ulJY+an8uiEVQ49IKSEFRtpKIyBYgIEjDlkAKxAgCCQLZ5vv8QTNtIMkkMJvM+3VduWTO+Z7hTm5vkk/mnDOSdGhXnp4e/FsFWc72i79+tVv/u2mDjCTnv35wKjdOSdK6vEOauXaVfwsMEnM2fq5FX+2WdDEsVX5I0tu7svXSlk3+LA/XmDMXLuj+JR/oxLnvJF0M7pX/vxWXlmjM0sU6WlzkzxIBIOgRnODy3qwlNZ6OV1Hu1P5th5S9brePqwouTmP0/7dsrHX/8n3/0D+LzviwquBTVFKihdnbVduvCf68I0vny8p8VhOubR98tVunLpx3haX/5DRGJeXlSt+V7fvCAAAuBCdIks5/d0Hb13wpZ4WzxjV2h10bPtziw6qCT87JEzpWXOx23ZpDB31QTfDakH9YpRUVta45W1qqzUf/6aOKcK375MC+WoN6hTFasX+fz+oBAFyO4ARJUtmFuvzm3KjkXInXawlmF+rwCobNsnShvNwH1QSvC2V1+/rSB3jKuTrM/oVyXuEEAH8iOEGSFNm4oRrH137jB2eFUeuuLX1UUXBq1aixHG7uXlhhjNrHNvFRRcGpQ5O6fX3bx8Z6uRIEi85N46rchORSdstSxyZNfVgRAOBSBCdIkmw2m+555K5/3Umveo5Qh+4c3ceHVQWfxg0aaHC7DjX+AGWzLDVrGKm+LVv5trAg06lpnLrGxdfYB7tlqef1zbktOTzm/hu7VXt9U6XKuzkCAPyH4ASX4dP+nzr0bCfrkvBks9tkWZamzf+poq+L8lN1weOp2/oqMSr6sh/a7ZalEJtNL949WHbeU8vr/tD/LjUMCa22DzFh4ZrVb4CfKsO1qFuzBP009WZJqnKb+8o/3depi/q1buuHygAAlXgfJ1RRcr5Ei/74kf72yqc6VXBasqTU/v+lkU/dqxv7dPJ3eUHj2/PnNDdri/6y50sVl5bKblm6+4b2euSmnpyu40NHzpzWK1s3a2nOXpVWVCjc4dCw5M76aerNSozi3w94ljFGH+3P0bxtW7Xnm0JJUtvG1+mhlB66r3NXWbxvGAB4XH2yAcEJ1XI6nTpXdF4hYQ6FNQjzdzlBq8LpVHFpiSJCQhVqt/u7nKBVVlGh78pKFRka5vYaNMATvistldMYRYaGEpgAwIvqkw0cPqoJ3zM2m02RjRr6u4ygZ7fZ1Ci8gb/LCHohdrsa2ekDfKdhaKi/SwAAXIJfnQIAAACAGwQnAAAAAHCD4AQAAAAAbhCcAAAAAMANghMAAAAAuEFwAgB8L5w+V6Djp/fqQlmxv0u5THFJif5ZdEbflZb6uxQAgJdwO3IAQED76ugKVRT/SZ0bHVK0pPNnHdpUnKZ2Lf5HsZHN/VrbvpMn9MKmL7Tq0AE5jZHdsjSoXXtNuaW3Wjdq7NfaAACexRvgAgACVvbhdHUO+ZWMJIft39+uyp2WTlyIUmjcEjWJTPJLbV8Wfq0Ri95XaUWFKv7jW6ndshQREqJFw3+sdrGxfqkNAFA39ckGnKoHAAhIJWXfqZX1O1mWqRKapIshqkl4sQ7mP+2X2owx+tnqT1VySWiSpApjdK6sTE/9fZVfagMAeAfBCQAQkHYdeUvRoaWyWdXvd9iM/it6q4ovnPRtYZJ2fl2gfSdPyFnDSRsVxmjb8WM68K3vawMAeAfBCQAQkMpLD6jMWfu3qVC7U98U7/dRRf928NS3Hl0HAAh8BCcAQGCyRcgm95fhhjt8f71qREiIR9cBAAIfwQkAEJCubzJMdlvNwanCKR0qjlOzmI4+rOqi25JaKdxR+41po8PCdHOif+/6BwDwHIITACAgJcV207ZvU1RhLr/IyRjJbpOKQx6Wzeb7b2WRoaEa3z211jWP3nSLwtyEKwDA9wfBCQAQsLq2+7N2nu4q6eItyMsqbHIaqdRpV1bxT5TSarTfapvcs5fGdeshS5LNsuSw2WSzLNksSxNv6qn/Tunht9oAAJ7H+zgBAAJe7onNKjjxgSxTLNlbKrn5Q4qJiPN3WZKko0VFWpqzVyfOfaf4hpEa2jFZzSKj/F0WAKAO6pMNCE4AAAAAghJvgAsAAAAAHkRwAgAAAAA3CE4AAAAA4AbBCQAAAADcIDgBAAAAgBsEJwAAAABwg+AEAAAAAG4QnAAAAADADYITAAAAALhBcAIAAAAANwhOAAAAAOAGwQkAAAAA3CA4AQAAAIAbBCcAAAAAcIPgBAAAAABuEJwAAAAAwA2CEwAAAAC4QXACAAAAADcITgAAAADgBsEJAAAAANwgOAEAAACAGwQnAAAAAHCD4AQAAAAAbhCcgAB2vqxM/yw6ozMXLvi7FAAAgKDm1+A0a9Ys3XTTTYqKilJcXJyGDh2qnJwct8dlZmaqR48eCg8PV5s2bTR37lwfVAv4ztdnz2rGmpVKmfey+iz8s7rPe1ljly5WdsFxf5cGAAAQlPwanDIzMzVx4kRt2rRJq1evVnl5uQYMGKDvvvuuxmNyc3M1aNAg3XbbbdqxY4eeeuopTZo0SYsXL/Zh5YD3HCsu0pD307V47x6VVlRIkoykDfmHdd+i97X+cJ5f6wMAAAhGljHG+LuISt98843i4uKUmZmpPn36VLtm+vTpWrZsmfbu3evaNmHCBO3cuVMbN250+3cUFRUpJiZGZ86cUXR0tMdqBzxl4orlWnVwvyqqGU1Llq5r0EBfjHtYIXa7H6oDAAC4dtQnGwTUNU5nzpyRJF133XU1rtm4caMGDBhQZdvAgQOVlZWlsrIyr9YHeNvJc+e0sobQJElGRifPn1NGXq6PKwMAAAhuAROcjDF6/PHHdeutt6pLly41risoKFB8fHyVbfHx8SovL9eJEycuW19SUqKioqIqH0CgOnLmtJxuXgS2W5YOnDrpo4oAAAAgBVBwevTRR7Vr1y699957btdallXlceXZhpduly7egCImJsb10aJFC88UDHhBRGio2zVOY9QwxP06AAAAeE5ABKfHHntMy5Yt07p169S8efNa1zZr1kwFBQVVthUWFsrhcCg2Nvay9TNnztSZM2dcH/n5+R6tHfCk9tfFKikmRpf/CuDfLMtS/zY3+KwmAAAA+Dk4GWP06KOPasmSJfr73/+u1q1buz0mLS1Nq1evrrJt1apVSk1NVUhIyGXrw8LCFB0dXeUDCFSWZWnqLb1V08l6lqThyZ2VEBXly7IAAACCnl+D08SJE5Wenq53331XUVFRKigoUEFBgc6fP+9aM3PmTI0ePdr1eMKECTp8+LAef/xx7d27V2+88Ybmz5+vadOm+eNTADxuSIdk/aLP7Qqx2WSTJYfNJvu/TkMd2iFZ/3P7nX6uEAAAIPj49Xbk1V2TJEkLFizQ2LFjJUljx45VXl6eMjIyXPszMzM1depU7dmzR4mJiZo+fbomTJhQp7+T25Hj++Lb8+e09B97lV90RjFh4bqnQ0e1aVzzHScBAABQP/XJBgH1Pk6+QHACAAAAIH2P38cJAAAAAAIRwQkAAAAA3CA4AQAAAIAbBCcAAAAAcIPgBAAAAABuEJwAAAAAwA2CEwAAAAC4QXACAAAAADcITgAAAADgBsEJAAAAANwgOAEAAACAGwQnAAAAAHCD4AQAAAAAbhCcAAAAAMANh78L8DVjjCSpqKjIz5UAAAAA8KfKTFCZEWoTdMGpuLhYktSiRQs/VwIAAAAgEBQXFysmJqbWNZapS7y6hjidTh07dkxRUVGyLMvf5QS0oqIitWjRQvn5+YqOjvZ3OUGLPvgfPQgM9CEw0IfAQB8CA30IDFfTB2OMiouLlZiYKJut9quYgu4VJ5vNpubNm/u7jO+V6Oho/jEIAPTB/+hBYKAPgYE+BAb6EBjoQ2C40j64e6WpEjeHAAAAAAA3CE4AAAAA4AbBCTUKCwvTs88+q7CwMH+XEtTog//Rg8BAHwIDfQgM9CEw0IfA4Ks+BN3NIQAAAACgvnjFCQAAAADcIDgBAAAAgBsEJwAAAABwg+AEAAAAAG4QnKBZs2bJsixNmTKlxjUZGRmyLOuyj3/84x++K/Qa9Nxzz132NW3WrFmtx2RmZqpHjx4KDw9XmzZtNHfuXB9Ve22qbw+YBe85evSo7r//fsXGxioiIkLdunXTtm3baj2GefC8+vaBmfC8Vq1aVfs1nThxYo3HMAueV98+MAveUV5ermeeeUatW7dWgwYN1KZNG/3yl7+U0+ms9ThvzITjqp8B32tbt27VvHnzdOONN9ZpfU5OTpV3ZG7atKm3SgsanTt31po1a1yP7XZ7jWtzc3M1aNAgjR8/Xunp6dqwYYMeeeQRNW3aVMOGDfNFudek+vSgErPgWadOnVLv3r11++2365NPPlFcXJwOHjyoRo0a1XgM8+B5V9KHSsyE52zdulUVFRWux7t371b//v01fPjwatczC95R3z5UYhY8a/bs2Zo7d67efPNNde7cWVlZWXrwwQcVExOjyZMnV3uMt2aC4BTEzp49q1GjRun111/Xr3/96zodExcXV6dvoKg7h8Ph9lWmSnPnzlVSUpJeeOEFSVJycrKysrI0Z84cvjlehfr0oBKz4FmzZ89WixYttGDBAte2Vq1a1XoM8+B5V9KHSsyE51z6g/bvfvc7tW3bVn379q12PbPgHfXtQyVmwbM2btyoIUOGaPDgwZIu/pv03nvvKSsrq8ZjvDUTnKoXxCZOnKjBgwfrzjvvrPMxKSkpSkhIUL9+/bRu3TovVhc89u/fr8TERLVu3VojRozQoUOHaly7ceNGDRgwoMq2gQMHKisrS2VlZd4u9ZpVnx5UYhY8a9myZUpNTdXw4cMVFxenlJQUvf7667Uewzx43pX0oRIz4R2lpaVKT0/XuHHjZFlWtWuYBe+rSx8qMQuedeutt2rt2rXat2+fJGnnzp36/PPPNWjQoBqP8dZMEJyC1Pvvv6/t27dr1qxZdVqfkJCgefPmafHixVqyZIk6dOigfv366bPPPvNypde2nj176q233tLKlSv1+uuvq6CgQL169dLJkyerXV9QUKD4+Pgq2+Lj41VeXq4TJ074ouRrTn17wCx4x6FDh/Tqq6+qXbt2WrlypSZMmKBJkybprbfeqvEY5sHzrqQPzIR3LV26VKdPn9bYsWNrXMMseF9d+sAseMf06dM1cuRIdezYUSEhIUpJSdGUKVM0cuTIGo/x1kxwql4Qys/P1+TJk7Vq1SqFh4fX6ZgOHTqoQ4cOrsdpaWnKz8/XnDlz1KdPH2+Ves27++67XX/u2rWr0tLS1LZtW7355pt6/PHHqz3m0t90GWOq3Y66qW8PmAXvcDqdSk1N1W9/+1tJF39ju2fPHr366qsaPXp0jccxD551JX1gJrxr/vz5uvvuu5WYmFjrOmbBu+rSB2bBO/7yl78oPT1d7777rjp37qzs7GxNmTJFiYmJGjNmTI3HeWMmeMUpCG3btk2FhYXq0aOHHA6HHA6HMjMz9ac//UkOh6PKhZC1ueWWW7R//34vVxtcGjZsqK5du9b4dW3WrJkKCgqqbCssLJTD4VBsbKwvSrzmuetBdZiFq5eQkKBOnTpV2ZacnKwjR47UeAzz4HlX0ofqMBOecfjwYa1Zs0YPPfRQreuYBe+qax+qwyxcvZ/97GeaMWOGRowYoa5du+qBBx7Q1KlTaz1rylszQXAKQv369dOXX36p7Oxs10dqaqpGjRql7OzsOt1RTJJ27NihhIQEL1cbXEpKSrR3794av65paWlavXp1lW2rVq1SamqqQkJCfFHiNc9dD6rDLFy93r17Kycnp8q2ffv2qWXLljUewzx43pX0oTrMhGcsWLBAcXFxrovia8IseFdd+1AdZuHqnTt3TjZb1chit9trvR2512bCAMaYvn37msmTJ7sez5gxwzzwwAOux88//7z58MMPzb59+8zu3bvNjBkzjCSzePFiP1R77XjiiSdMRkaGOXTokNm0aZP54Q9/aKKiokxeXp4x5vI+HDp0yERERJipU6ear776ysyfP9+EhISYRYsW+etT+N6rbw+YBe/YsmWLcTgc5je/+Y3Zv3+/eeedd0xERIRJT093rWEevO9K+sBMeEdFRYVJSkoy06dPv2wfs+A79ekDs+AdY8aMMddff7356KOPTG5urlmyZIlp0qSJefLJJ11rfDUTBCcYYy4PTmPGjDF9+/Z1PZ49e7Zp27atCQ8PN40bNza33nqr+fjjj31f6DXmRz/6kUlISDAhISEmMTHR3HvvvWbPnj2u/Zf2wRhjMjIyTEpKigkNDTWtWrUyr776qo+rvrbUtwfMgvcsX77cdOnSxYSFhZmOHTuaefPmVdnPPPhGffvATHjHypUrjSSTk5Nz2T5mwXfq0wdmwTuKiorM5MmTTVJSkgkPDzdt2rQxTz/9tCkpKXGt8dVMWMb860opAAAAAEC1uMYJAAAAANwgOAEAAACAGwQnAAAAAHCD4AQAAAAAbhCcAAAAAMANghMAAAAAuEFwAgAAAAA3CE4AgGuWZVlaunRpjft/8IMfaMqUKT6rpzYZGRmyLEunT5/2dykAgGoQnAAAHlVYWKif/OQnSkpKUlhYmJo1a6aBAwdq48aN/i4tYARSYAMA1I3D3wUAAK4tw4YNU1lZmd588021adNGX3/9tdauXatvv/3W36UBAHDFeMUJAOAxp0+f1ueff67Zs2fr9ttvV8uWLXXzzTdr5syZGjx4sGvdmTNn9PDDDysuLk7R0dG64447tHPnTtf+5557Tt26ddNrr72mFi1aKCIiQsOHD69yGtvWrVvVv39/NWnSRDExMerbt6+2b99+VfWXlpbqySef1PXXX6+GDRuqZ8+eysjIcO1fuHChGjVqpJUrVyo5OVmRkZG66667dPz4cdea8vJyTZo0SY0aNVJsbKymT5+uMWPGaOjQoZKksWPHKjMzUy+++KIsy5JlWcrLy3Mdv23bNqWmpioiIkK9evVSTk7OVX1OAADPIDgBADwmMjJSkZGRWrp0qUpKSqpdY4zR4MGDVVBQoBUrVmjbtm3q3r27+vXrV+VVqQMHDuivf/2rli9frk8//VTZ2dmaOHGia39xcbHGjBmj9evXa9OmTWrXrp0GDRqk4uLiK67/wQcf1IYNG/T+++9r165dGj58uO666y7t37/ftebcuXOaM2eO3n77bX322Wc6cuSIpk2b5to/e/ZsvfPOO1qwYIE2bNigoqKiKtdZvfjii0pLS9P48eN1/PhxHT9+XC1atHDtf/rpp/XHP/5RWVlZcjgcGjdu3BV/PgAADzIAAHjQokWLTOPGjU14eLjp1auXmTlzptm5c6dr/9q1a010dLS5cOFClePatm1rXnvtNWOMMc8++6yx2+0mPz/ftf+TTz4xNpvNHD9+vNq/t7y83ERFRZnly5e7tkkyH374YY219u3b10yePNkYY8yBAweMZVnm6NGjVdb069fPzJw50xhjzIIFC4wkc+DAAdf+l19+2cTHx7sex8fHmz/84Q9V6kpKSjJDhgyp9u+ttG7dOiPJrFmzxrXt448/NpLM+fPna/wcAAC+wStOAACPGjZsmI4dO6Zly5Zp4MCBysjIUPfu3bVw4UJJF09FO3v2rGJjY12vUEVGRio3N1cHDx50PU9SUpKaN2/uepyWlian0+k6da2wsFATJkxQ+/btFRMTo5iYGJ09e1ZHjhy5orq3b98uY4zat29fpa7MzMwqdUVERKht27auxwkJCSosLJR08RTEr7/+WjfffLNrv91uV48ePepcx4033ljluSs/VwCAf3FzCACAx4WHh6t///7q37+/fvGLX+ihhx7Ss88+q7Fjx8rpdCohIaHKtUOVGjVqVONzWpZV5b9jx47VN998oxdeeEEtW7ZUWFiY0tLSVFpaekU1O51O2e12bdu2TXa7vcq+yMhI159DQkIuq8sYU22tlS7dX5v/fP7K53E6nXU+HgDgHQQnAIDXderUyXWdT/fu3VVQUCCHw6FWrVrVeMyRI0d07NgxJSYmSpI2btwom82m9u3bS5LWr1+vV155RYMGDZIk5efn68SJE1dcY0pKiioqKlRYWKjbbrvtip4jJiZG8fHx2rJli+s5KioqtGPHDnXr1s21LjQ0VBUVFVdcKwDA9zhVDwDgMSdPntQdd9yh9PR07dq1S7m5ufrggw/0+9//XkOGDJEk3XnnnUpLS9PQoUO1cuVK5eXl6YsvvtAzzzyjrKws13OFh4drzJgx2rlzp9avX69JkybpvvvuU7NmzSRJN9xwg95++23t3btXmzdv1qhRo9SgQYMrrr19+/YaNWqURo8erSVLlig3N1dbt27V7NmztWLFijo/z2OPPaZZs2bpb3/7m3JycjR58mSdOnWqyqtQrVq10ubNm5WXl6cTJ07wihIAfA8QnAAAHhMZGamePXvq+eefV58+fdSlSxf9/Oc/1/jx4/XSSy9Junj62YoVK9SnTx+NGzdO7du314gRI5SXl6f4+HjXc91www269957NWjQIA0YMEBdunTRK6+84tr/xhtv6NSpU0pJSdEDDzygSZMmKS4u7qrqX7BggUaPHq0nnnhCHTp00D333KPNmzdXueudO9OnT9fIkSM1evRopaWlKTIyUgMHDlR4eLhrzbRp02S329WpUyc1bdr0iq/LAgD4jmXqc+I1AAA+8Nxzz2np0qXKzs72dylXzel0Kjk5Wffdd59+9atf+bscAMAV4honAAA86PDhw1q1apX69u2rkpISvfTSS8rNzdWPf/xjf5cGALgKnKoHAIAH2Ww2LVy4UDfddJN69+6tL7/8UmvWrFFycrK/SwMAXAVO1QMAAAAAN3jFCQAAAADcIDgBAAAAgBsEJwAAAABwg+AEAAAAAG4QnAAAAADADYITAAAAALhBcAIAAAAANwhOAAAAAOAGwQkAAAAA3Pg/wFXsZT8QP1cAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "scatter = plt.scatter(iris.iloc[:, 0], iris.iloc[:, 1], c=iris.iloc[:, 4])\n", "plt.xlabel(columns_eng[0])\n", "plt.ylabel(columns_eng[1])\n", "\n", "handles, colors = scatter.legend_elements()\n", "\n", "plt.legend(handles, colors)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "범례에 사용되는 라벨을 숫자가 아닌 품종명으로 변경하려면 다음과 같이 `varieties`를 이용한다." ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAIPCAYAAABE0478AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACqUElEQVR4nOzdd5gUVdbH8e+t7smZnEVykKCCmEARFMUAomJcxZxzxFVX11XU1TXtGlfFHBFe05pQECRIlCCSBMkZJqfuuu8fDUOY0DXQMz0Mv8/z9K5TdTl9pru6p07dW/caa61FREREREREyuVEOwEREREREZGaToWTiIiIiIhIGCqcREREREREwlDhJCIiIiIiEoYKJxERERERkTBUOImIiIiIiIShwklERERERCQMFU4iIiIiIiJhqHASEREREREJQ4WTiIiIiIhIGP5oJ7DDiBEjuPfee7n55pt55plnymwzbtw4+vbtW2r7ggUL6NChg6fncV2XNWvWkJKSgjFmX1IWEREREZH9mLWW7OxsmjRpguNU3KdUIwqnadOm8corr9C1a1dP7RcuXEhqamrJz/Xr1/f8XGvWrKF58+aVzlFERERERGqnlStX0qxZswrbRL1wysnJ4cILL+TVV1/lH//4h6d/06BBA9LT0/fq+VJSUoDQi7Nr8SUiIiIiIgeWrKwsmjdvXlIjVCTqhdP111/PqaeeSv/+/T0XToceeigFBQV06tSJ++67r8zhezsUFhZSWFhY8nN2djYAqampKpxERERERMTTLTxRLZw++OADZs6cybRp0zy1b9y4Ma+88gqHH344hYWFvP322/Tr149x48bRp0+fMv/NiBEjeOihhyKZtoiIiIiIHGCMtdZG44lXrlxJjx49+Pbbb+nWrRsAxx9/PN27dy93coiynH766Rhj+Oyzz8rcv2eP047uuMzMTPU4iYiIiIgcwLKyskhLS/NUG0RtOvIZM2awYcMGDj/8cPx+P36/n/Hjx/Pcc8/h9/sJBoOe4hx55JEsXry43P1xcXElw/I0PE9ERERERPZG1Ibq9evXj7lz5+627dJLL6VDhw7cfffd+Hw+T3FmzZpF48aNqyJFERERETlABYNBiouLo52GREBMTIzn2qIiUSucUlJSOOSQQ3bblpSURN26dUu2Dx8+nNWrV/PWW28B8Mwzz9CyZUs6d+5MUVER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LOC7777jiy++2IdXMTxjd311DwBZWVmkpaWRmZlJampqtNMRERERkRqkoKCAZcuWcfDBBxMfH1+pfztl1Uou+PSjsO3eGzKUI5s139sUy/T777/TsWNHfvjhB/r27QvAcccdR9OmTfH7/SQkJPDyyy+XtJ84cSLHHXccubm5Jb1Jhx56KKNHjy5pc9NNNzF//ny+//57jDGlntMYw+jRoxk8eDCvvPIKd9xxB8uXL6dOnTql2h5zzDF07tyZV155pWTb0KFDyc3N5csvvywV79VXX+Xuu+9m5cqVJCUlAfDVV19x+umns2bNGho2bMiwYcP4+uuvWbFiRYVD9Cp6TytTG6jHSUREREQkAjbk5oRvVIl2ldGhQweOPvpoXn/9dQCWLl3KhAkTuOyyy5gxYwYjR44kOTm55DFgwABc12XZsmUlMXr06LFbzGHDhjF79mzat2/PTTfdxLffflvu88+ePZtDDz20zKIJYMGCBRxzzDG7bTvmmGNYsGBBue27detWUjTtaO+6LgsXLizZ1qVLlyq9r2lXKpxERERERCKgQVJyRNtV1uWXX86oUaPIysrijTfe4KCDDqJfv364rsvVV1/N7NmzSx6//vorixcvpnXr1iX/ftciBeCwww5j2bJlPPzww+Tn5zN06FDOPvvsMp87ISEhbH579lpZa8vsyQq3b9fte+ZclVQ4iYiIiIhEQM8mTWmUnEzZp/tggMbJKfRs0rRKnn/o0KH4fD7ee+893nzzTS699FKMMRx22GHMnz+fNm3alHqE661JTU3l3HPP5dVXX+XDDz9k1KhRbNmypVS7rl27Mnv27DL3AXTs2JGJEyfutm3SpEl07NixzPadOnVi9uzZu01g8fPPP+M4TpVPAlEeFU4iIiIiIhHgcxwe6HMCQKniacfP9/fpi8+pmlPw5ORkzj33XO69917WrFnDsGHDALj77ruZPHky119/PbNnz2bx4sV89tln3HjjjRXGe/rpp/nggw/4/fffWbRoER9//DGNGjUiPT29VNvzzz+fRo0aMXjwYH7++Wf++OMPRo0axeTJkwG48847GTlyJC+99BKLFy/mX//6F59++il33HFHmc994YUXEh8fzyWXXMK8efP48ccfufHGG/nLX/5Cw4YN9+l12lsqnEREREREIuTkNm35z8AzaJi8+3C8Rskp/GfgGVWyjtOu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bBkDBw6kd+/ezJo1i3vvvZebbrqJUaNGVVOmIiK1z+jnvuKhs55kyexlJdtytuXy0T//j7v6PURBXmEUsxMREakZol445eTkcOGFF/Lqq6+SkZFRYduXXnqJFi1a8Mwzz9CxY0euuOIKLrvsMp588slqylZEpHbZuGozL902EgDr2t32uUGXhdOXMvrZr6KQmYiISM0S9cLp+uuv59RTT6V///5h206ePJmTTjppt20DBgxg+vTpFBcXV1WKIiK11tev/QDGlLvfupbPXvgaa225bURERA4E/mg++QcffMDMmTOZNm2ap/br1q2jYcOGu21r2LAhgUCATZs20bhx41L/prCwkMLCncNMsrKy9i1pEZFaZMXC1RCmKNq0egtFBUXEJcRVU1YiIiI1T9R6nFauXMnNN9/MO++8Q3x8vOd/Z/a4MrrjKuie23cYMWIEaWlpJY/mzZvvfdIiIrVMQlI8xqn4T4HP7+CPjep1NhERkaiLWuE0Y8YMNmzYwOGHH47f78fv9zN+/Hiee+45/H4/wWCw1L9p1KgR69at223bhg0b8Pv91K1bt8znGT58OJmZmSWPlStXVsnvIyKyP+p9Vi+CgdLftzv4/A7HnHkEPp+vGrMSERGpeaJ2CbFfv37MnTt3t22XXnopHTp04O677y7zj/RRRx3F559/vtu2b7/9lh49ehATE1Pm88TFxREXp+ElIiJlOfykbrTr0Zols5bhBt3d9hljMMZw3t1nRik7ERGRmiNqPU4pKSkccsghuz2SkpKoW7cuhxxyCBDqLbr44otL/s0111zDn3/+yW233caCBQt4/fXXee2117jjjjui9WuIiOzXHMfh0a/upWOvtgD4/D78MaELVwkp8Tw05m7aHtYqmimKiIjUCDV60PratWtZsWJFyc8HH3wwX331Fbfeeiv/+c9/aNKkCc899xxnnXVWFLMUEdm/pdVL5ekJD/Pb5EVM/mwaRQXFtOrWkuPPPZr4RPXYi4iIABh7gM0xm5WVRVpaGpmZmaSmpkY7HRERERERiZLK1AZRX8dJRERERESkplPhJCIiIiIiEoYKJxERERERkTBUOImIiIiIiIShwklERERERCQMFU4iIiIiIiJh1Oh1nEREKmvLuq28cufb/P7LEnw+h16nHsbFDw0lPjE+2qmJiIjIfkzrOIlIrfHRP/+PV+9+p9R2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3vZDfRgL5660tFQ2W93IYrfbG70dud/GhAGMMSNGjDAzZsxwP3/wwQfNHXfc4X7+2GOPmbfeesvs2bPH7Nixwzz44INGklmyZEkQqm05fvGLX5isrCxz4MABs27dOvODH/zAxMbGmtzcXGPM2f1w4MABExUVZe6//37z5Zdfmueff96EhYWZN998M1jfwnmvqX3AWPCPzz//3DgcDvPHP/7R7N2717zyyismKirKLF682N2G8eB/zekHxoR/OJ1O07VrVzN79uyz1jEWAqcp/cBY8I/JkyebCy+80Pz73/82Bw8eNJmZmaZDhw7mV7/6lbtNoMYEwQnGmLOD0+TJk82IESPcz+fNm2d69uxpIiMjTbt27cxVV11l3n333cAX2sL86Ec/MklJSSYsLMwkJyebCRMmmJ07d7rXf78fjDEmKyvLpKWlmfDwcNOtWzfzzDPPBLjqlqWpfcBY8J933nnH9O/f30RERJg+ffqYhQsX1lnPeAiMpvYDY8I/li9fbiSZnJycs9YxFgKnKf3AWPCPoqIiM2PGDNO1a1cTGRlpevToYR566CFTUVHhbhOoMWEZ8+2VUgAAAACAenGNEwAAAAB4QHACAAAAAA8ITgAAAADgAcEJAAAAADwgOAEAAACABwQnAAAAAPCA4AQAAAAAHhCcAAAtlmVZWrp0aYPr/+u//kszZ84MWD2NycrKkmVZOn36dLBLAQDUg+AEAPCpEydO6Gc/+5m6du2qiIgIderUSWPGjNHatWuDXVrICKXABgDwjiPYBQAAWpabb75ZVVVVevHFF9WjRw8dP35cH374ob755ptglwYAQLNxxAkA4DOnT5/Wp59+qnnz5umaa67RRRddpMsuu0xz5szRuHHj3O0KCwv105/+VAkJCYqLi9O1116rbdu2udc/8sgjGjRokJ599ll16dJFUVFRmjhxYp3T2DZs2KBRo0apQ4cOio+P14gRI7R58+Zzqr+yslK/+tWvdOGFFyo6OlrDhg1TVlaWe/0LL7ygtm3bavny5erbt69iYmJ0/fXX69ixY+421dXVmj59utq2bav27dtr9uzZmjx5ssaPHy9JysjIUHZ2tp544glZliXLspSbm+veftOmTRo6dKiioqJ0xRVXKCcn55y+JwCAbxCcAAA+ExMTo5iYGC1dulQVFRX1tjHGaNy4ccrPz9d7772nTZs2afDgwRo5cmSdo1L79u3Tv/71L73zzjv64IMPtHXrVk2bNs29vri4WJMnT9Ynn3yidevWqVevXho7dqyKi4ubXf+dd96pNWvW6PXXX9f27ds1ceJEXX/99dq7d6+7TWlpqebPn6+XX35ZH3/8sQ4fPqwHHnjAvX7evHl65ZVXtGjRIq1Zs0ZFRUV1rrN64oknlJ6errvvvlvHjh3TsWPH1KVLF/f6hx56SH/961+1ceNGORwOTZkypdnfDwDAhwwAAD705ptvmnbt2pnIyEhzxRVXmDlz5pht27a513/44YcmLi7OlJeX19muZ8+e5tlnnzXGGPPwww8bu91u8vLy3Ovff/99Y7PZzLFjx+r9utXV1SY2Nta888477mWSzFtvvdVgrSNGjDAzZswwxhizb98+Y1mWOXLkSJ02I0eONHPmzDHGGLNo0SIjyezbt8+9/qmnnjKJiYnu54mJieYvf/lLnbq6du1qbrrppnq/bq3Vq1cbSWbVqlXuZe+++66RZMrKyhr8HgAAgcERJwCAT9188806evSoli1bpjFjxigrK0uDBw/WCy+8IKnmVLSSkhK1b9/efYQqJiZGBw8e1P79+9376dq1qzp37ux+np6eLpfL5T517cSJE5o6dap69+6t+Ph4xcfHq6SkRIcPH25W3Zs3b5YxRr17965TV3Z2dp26oqKi1LNnT/fzpKQknThxQlLNKYjHjx/XZZdd5l5vt9s1ZMgQr+sYOHBgnX3Xfq8AgODi5hAAAJ+LjIzUqFGjNGrUKP3ud7/TXXfdpYcfflgZGRlyuVxKSkqqc+1QrbZt2za4T8uy6vybkZGhr7/+Wo8//rguuugiRUREKD09XZWVlc2q2eVyyW63a9OmTbLb7XXWxcTEuP8fFhZ2Vl3GmHprrfX99Y357v5r9+NyubzeHgDgHwQnAIDf9evXz32dz+DBg5Wfny+Hw6Fu3bo1uM3hw4d19OhRJScnS5LWrl0rm82m3r17S5I++eQTPf300xo7dqwkKS8vTwUFBc2uMS0tTU6nUydOnNDVV1/drH3Ex8crMTFRn3/+uXsfTqdTW7Zs0aBBg9ztwsPD5XQ6m10rACDwOFUPAOAzJ0+e1LXXXqvFixdr+/btOnjwoN544w39+c9/1k033SRJuu6665Senq7x48dr+fLlys3N1Weffabf/OY32rhxo3tfkZGRmjx5srZt26ZPPvlE06dP1y233KJOnTpJki6++GK9/PLL2rVrl9avX6/bb79dbdq0aXbtvXv31u23365JkyYpMzNTBw8e1IYNGzRv3jy99957Xu/nvvvu09y5c/X2228rJydHM2bM0KlTp+ocherWrZvWr1+v3NxcFRQUcEQJAM4DBCcAgM/ExMRo2LBheuyxxzR8+HD1799fv/3tb3X33XfrySeflFRz+tl7772n4cOHa8qUKerdu7duvfVW5ebmKjEx0b2viy++WBMmTNDYsWM1evRo9e/fX08//bR7/T/+8Q+dOnVKaWlpuuOOOzR9+nQlJCScU/2LFi3SpEmT9Itf/EIpKSm68cYbtX79+jp3vfNk9uzZuu222zRp0iSlp6crJiZGY8aMUWRkpLvNAw88ILvdrn79+qljx47Nvi4LABA4lmnKidcAAATAI488oqVLl2rr1q3BLuWcuVwu9e3bV7fccov+8Ic/BLscAEAzcY0TAAA+dOjQIa1YsUIjRoxQRUWFnnzySR08eFA//vGPg10aAOAccKoeAAA+ZLPZ9MILL+jSSy/VlVdeqS+++EKrVq1S3759g10aAOAccKoeAAAAAHjAEScAAAAA8IDgBAAAAAAeEJwAAAAAwAOCEwAAAAB4QHACAAAAAA8ITgAAAADgAcEJAAAAADwgOAEAAACABwQnAAAAAPDg/wMIaJixrCVZNgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "scatter = plt.scatter(iris.iloc[:, 0], iris.iloc[:, 1], c=iris.iloc[:, 4])\n", "plt.xlabel(columns_eng[0])\n", "plt.ylabel(columns_eng[1])\n", "\n", "handles, _ = scatter.legend_elements()\n", "\n", "plt.legend(handles, varieties)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "반면에 아래 코드는 꽃잎의 길이와 너비를 이용한 산점도를 그린다." ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "image/png": "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0amUlBTWrFnD6tWrq825bNkyOnbsGGqaAHr16kV6ejrLli0D4LbbbuOqq67ixBNP5OGHH66QLxAI8OCDD9K3b9/Qa3/yySesW7euTj4DERERqRu24BUg3LVMbmzBm/VTiy2EgqlUboJCEWALoCg46mSdLCj6X4T43VD8ee0XK/uNRtM4WWu57bbbOOaYY+jTp0+1cZmZmTzzzDNMmTKFqVOn0qNHD0444QS++uqrKuOLi4vJycmpcKsrfYYdSusOrar/b4qBAzq2os+wQ+ushoSEBE466STuvfdeZs+ezdixY/nTn/6E4zhkZmayaNGiCrcVK1bw+9//vtp81toqL/gsf/y+++7jp59+YtSoUXz++ef06tWLd999F4C//e1vPP7440yYMIHPP/+cRYsWMXLkSHw+X6WcIiIi0oj5f6XqC7nLBMC/sn5qCWwDiiIEebD+0i9zAxsAf8R4/NV/mSzSaFbVGzduHEuWLGHWrFlh43r06EGPHj1C94cMGcL69euZOHFildP7HnroIe6///5ar7cqbrebG564PLiqnqHif1tKe4/rH7+8Xvdz6tWrF9OmTWPAgAFs2bIFj8dDly5dqoz1er2VFq7o1asX69atY/369aFRp6VLl5KdnU3Pnj1Dcd27d6d79+7ceuutXHTRRbz44oucffbZfP3115x11llccsklADiOw8qVKys8V0RERJoAkwi2JEyAC0xKPdWSFEWQ3RMXVbwTZZw0V41ixOmmm27i/fff54svvqBDhw41fv5RRx3FypVVf8Nx5513kp2dHbqtX79+X8sNa9iYwdz79nhaH9iqwvEDOrSq06XId+7cyfHHH88rr7wSuibp7bff5tFHH+Wss87ixBNPZMiQIYwePZrp06fz66+/Mnv2bP74xz+GVsDr0qULa9asYdGiRezYsYPi4mJOPPFE+vbty8UXX8z333/Pd999x6WXXsqxxx7LwIEDKSwsZNy4ccycOZO1a9fyzTffMG/evFBjdMghhzBjxgxmz57NsmXLuPbaa9myZUudfAYiIiJShxJOA8J9+etgEk6pl1KM+wCI60f4U9nAnnrcXYO3sFMNLcSfVHtFyn6nQUecrLXcdNNNvPvuu8ycOZOuXbvGlGfhwoVkZmZW+Vh8fHxoMYT6MmzMYIaeNZAfv17Ozs27aZXZkj7DDq3TkaaUlBQGDx7M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g4hIU9NkGqeGoMZJRERERESgZr1Bk7rGSUREREREpCGocRIREREREYlAjZOIiIiIiEgEapxEREREREQiUOMkIiIiIiISgRonERERERGRCNQ4iYiIiIiIRKDGSUREREREJAI1TiIiIiIiIhGocRIREREREYlAjZOIiIiIiEgEapxEREREREQiUOMkIiIiIiISgRonERERERGRCNQ4iYiIiIiIRKDGSUREREREJAI1TiIiIiIiIhGocRIREREREYlAjZOIiIiIiEgEapxEREREREQiUOMkIiIiIiISgRonERERERGRCNQ4iYiIiIiIRKDGSUREREREJAI1TiIiIiIiIhGocRIREREREYlAjZOIiIiIiEgEapxEREREREQiUOMkIiIiIiISgRonERERERGRCNQ4iYiIiIiIRKDGSUREREREJAI1TiIiIiIiIhGocRIREREREYlAjZOIiIiIiEgEapxEREREREQiUOMkIiIiIiISgRonERERERGRCNQ4iYiIiIiIRKDGSUREREREJAI1TiIiIiIiIhGocRIREREREYlAjZOIiIiIiEgEapxEREREREQiUOMkIiIiIiISgRonERERERGRCNQ4iYiIiIiIRKDGSUREREREJAI1TiIiIiIiIhGocRIREREREYlAjZOIiIiIiEgEapxEREREREQiUOMkIiIiIiISgRonERERERGRCNQ4iYiIiIiIRKDGSUREREREJAI1TiIiIiIiIhGocRIREREREYnA09AFiOzNWsuSL5fy9ZS5FOYX0bHHgYwcexwt26Y3dGkiIiIi0kypcZJGJXd3Hvee9Qg/zlqO2+PGYrGOZdI9rzPuH1dx+rUnNXSJIiIiItIMaaqeNBrWWu4/568snfMzAAF/AMfvYB1LwO/w5PXP8O2HCxq4ShERERFpjtQ4SaOx/LtVLJ65FCfgVPm4cRlefWBKPVclIiIiIqLGSRqR2dO+w+1xV/u4dSzLvl1J1vbseqxKRERERESNkzQiRQXFGBM5zlfoq/tiRERERETKUeMkjUbXwzrj9wfCxiSnJdGyXXr9FCQiIiIiUkqNkzQaIy4cSmJyAlQz6uRyuxh19YnEeePqtzARERERafbUOEmjkZiSyB8m34zL5cLlrvij6XK76HpYJy6+59wGqk5EREREmjM1TtKoDD3rSB7/+i8MOq0/xhUcekpr3YLf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nRTx2+Pv71/vd4h+fn4KCgri94mtwMKFCzVu3DjdeOONKi8v17Jly1RZWank5GSro6GJUlJSNGDAAK1YsUL33XefDhw4oHXr1mndunVWR4OHOJ1OZWRkKDk5WTabtdWF4mSR/Px8DR8+3PX68jXWycnJ2rhxo0Wp4Anp6emSpGHDhtUZz8jIsPQHjWi6f/3rX5o6dapKS0sVEBCgnj17aufOnRo9erTV0QBcxbfffqsHHnhAZ8+eVXBwsG6//Xbl5eWxKtEK3Hbbbdq6dasee+wxpaamKjo6WmvWrNHkyZOtjgYP+eCDD1RcXKwZM2ZYHUWGaZqm1SEAAAAA4HrGzSEAAAAAwA2KEwAAAAC4QXECAAAAADcoTgAAAADgBsUJAAAAANygOAEAAACAGxQnAAAAAHCD4gQAaFWKiopkGIYOHz58xTlRUVFas2ZNi2W6mo0bN6pjx45WxwAAuEFxAgA0i+nTp8swDBmGIbvdrm7dumnhwoVyOByN2n/37t0yDEPnz59v3qAt6HoqbACAa2OzOgAAoPW68847lZGRoerqau3du1czZ86Uw+FQenq61dEAALgmrDgBAJqNr6+vwsLCFBkZqQcffFCTJ09WVlaWJMk0TT333HPq1q2b2rZtq169emnz5s2S/n253fDhwyVJnTp1kmEYmj59uiRp586dGjRokDp27KigoCDdfffdOnnyZJNyVlRUaNasWQoJCVGHDh00YsQIff755673ly5dqt69e+vNN99UVFSUAgICNGnSJFVVVbnmVFVVafLkyfLz81N4eLj++te/atiwYZo/f74kadiwYfrmm2+UkpLiWon7pV27dik2Nlbt27fXnXfeqdLS0iZ9JwCAZ1GcAAAtpm3btqqurpYkPfHEE8rIyFB6erqOHj2qlJQUTZkyRbm5uYqMjNSWLVskScePH1dpaanWrl0rSXI4HFqwYIEOHjyoDz/8UF5eXrrnnnvkdDp/VSbTNDV27FiVlZUpOztbBQUF6tu3r0aOHKnvv//eNe/kyZPKysrS9u3btX37duXm5mrlypWu9xcsWKBPPvlE27ZtU05Ojvbu3avPPvvM9f4//vEPdenSRampqSotLa1TjH788UetWrVKb775pvbs2aPi4mItXLjwV30fAEDz4FI9AECLOHDggN5++22NHDlSDodDq1ev1kcffaTExERJUrdu3bRv3z69/vrrGjp0qAIDAyVJISEhdW6ecO+999Y57oYNGxQSEqLCwkLFxcVdc66PP/5YR44cUXl5uXx9fSVJq1atUlZWljZv3qxZs2ZJkpxOpzZu3Ch/f39J0tSpU/Xhhx9q+fLlqqqq0htvvOH6fpKUkZGhiIgI1+cEBgbK29tb/v7+CgsLq5Ohurpar732mmJiYiRJc+fOVWpq6jV/FwBA86E4AQCazfbt29W+fXvV1NSourpa48eP10svvaTCwkL9/PPPGj16dJ35ly5dUp8+fa56zJMnT+rJJ59UXl6ezp4961ppKi4u/lXFqaCgQBcuXFBQUFCd8Z9++qnOJYBRUVGu0iRJ4eHhKi8vlySdOnVK1dXV6tevn+v9gIAA9ejRo1EZ2rVr5ypN///YAIDrA8UJANBshg8frvT0dNntdkVERMhut0uSTp8+LUn65z//qc6dO9fZ5/Kqz5WMGzdOkZGRWr9+vSIiIuR0OhUXF6dLly79qoxOp1Ph4eHavXt3vfd+udJ1OftlhmG4Sptpmq6xX7o87k5Dx27svgCAlkFxAgA0Gz8/P3Xv3r3e+M033yxfX18VFxdr6NChDe7r4+MjSaqtrXWNnTt3TseOHdPrr7+uwYMHS5L27dvXpIx9+/ZVWVmZbDaboqKiftUxYmJiZLfbdeDAAUVGRkqSKisrdeLEiTrfz8fHp873AQD8dlCcAAAtzt/fXwsXLlRKSoqcTqcGDRqkyspKffrpp2rfvr2Sk5PVtWtXGYah7du366677lLbtm3VqVMnBQUFad26dQoPD1dxcbEWLVrUpCyjRo1SYmKiJkyYoGeffVY9evTQmTNnlJ2drQkTJighIaFR3yc5OVmPPPKIAgMDFRISoiVLlsjLy6vOKlRUVJT27NmjSZMmydfXVzfccEOTsgMAWg531QMAWOKZZ57RU089pbS0NMXGxuqOO+7Qe++9p+joaElS586d9fTTT2vRokUKDQ3V3Llz5eXlpczMTBUUFCguLk4pKSl6/vnnm5TDMAxlZ2dryJAhmjFjhv74xz9q0qRJKioqUmhoaKOPs3r1aiUmJuruu+/WqFGjNHDgQMXGxqpNmzauOampqSoqKlJMTIyCg4OblBsA0LIMk4uoAQDwOIfDoc6dO+uFF17Qn//8Z6vjAACaiEv1AADwgEOHDunLL79Uv379VFFR4bqd+Pjx4y1OBgDwBIoTAAAesmrVKh0/flw+Pj6Kj4/X3r17+R0TALQSXKoHAAAAAG5wcwgAAAAAcIPiBAAAAABuUJwAAAAAwA2KEwAAAAC4QXECAAAAADcoTgAAAADgBsUJAAAAANygOAEAAACAGxQnAAAAAHDjfwEDwhZoBnKEvQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "scatter = plt.scatter(iris.iloc[:, 2], iris.iloc[:, 3], c=iris.iloc[:, 4])\n", "plt.xlabel(columns_eng[2])\n", "plt.ylabel(columns_eng[3])\n", "\n", "handles, _ = scatter.legend_elements()\n", "\n", "plt.legend(handles, varieties)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "NEeBCuW90Nmt" }, "source": [ "**예제 1**\n", "\n", "꽃받침 길이(0번 열)와 꽃잎 길이(2번 열) 사이의 피어슨 상관계수를 계산하라." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "답:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "데이터프레임의 `corr()` 메서드는 모든 특성들 사이의 피어슨 상관계수로 이루어진 데이터프레임을 반환환다." ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 172 }, "id": "4scOJUVUl1Pa", "outputId": "b237169c-96a4-4cb2-99c8-dae2b76270cb" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비
꽃받침길이1.000000-0.1093690.8717540.817954
꽃받침너비-0.1093691.000000-0.420516-0.356544
꽃잎길이0.871754-0.4205161.0000000.962757
꽃잎너비0.817954-0.3565440.9627571.000000
\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비\n", "꽃받침길이 1.000000 -0.109369 0.871754 0.817954\n", "꽃받침너비 -0.109369 1.000000 -0.420516 -0.356544\n", "꽃잎길이 0.871754 -0.420516 1.000000 0.962757\n", "꽃잎너비 0.817954 -0.356544 0.962757 1.000000" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_corr = iris.iloc[:, :4].corr()\n", "iris_corr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "따라서 '꽃받침길이'와 다른 특성들 사이의 상관계수를 역순으로 정렬하면 다음과 같다." ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "k5l78GM1mfz5", "outputId": "1204d1f5-8e14-4201-8844-be45d84ab5bc" }, "outputs": [ { "data": { "text/plain": [ "꽃받침길이 1.000000\n", "꽃잎길이 0.871754\n", "꽃잎너비 0.817954\n", "꽃받침너비 -0.109369\n", "Name: 꽃받침길이, dtype: float64" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_corr['꽃받침길이'].sort_values(ascending=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "따라서 '꽃받침길이'와 '꽃잎길이' 사이의 상관계수가 가장 높다." ] }, { "cell_type": "markdown", "metadata": { "id": "sPb0bX1F0Nmt" }, "source": [ "**예제 2**\n", "\n", "버시컬러 품종에 해당하는 데이터만 `iris`로부터 추출하라. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "답:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "버시컬러 품종은 1에 해당하기에 다음 부울 마스크를 이용한다." ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Fvq7ZIuV0Nmt", "outputId": "7ef7353b-0ae5-4c5e-ac32-13fce5dc6bab" }, "outputs": [ { "data": { "text/plain": [ "0 False\n", "1 False\n", "2 False\n", "3 False\n", "4 False\n", " ... \n", "145 False\n", "146 False\n", "147 False\n", "148 False\n", "149 False\n", "Name: 품종, Length: 150, dtype: bool" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mask = iris.iloc[:, -1] == 1\n", "mask" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "id": "cdOOPTOqoBqk" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비품종
507.03.24.71.41
516.43.24.51.51
526.93.14.91.51
535.52.34.01.31
546.52.84.61.51
..................
955.73.04.21.21
965.72.94.21.31
976.22.94.31.31
985.12.53.01.11
995.72.84.11.31
\n", "

50 rows × 5 columns

\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비 품종\n", "50 7.0 3.2 4.7 1.4 1\n", "51 6.4 3.2 4.5 1.5 1\n", "52 6.9 3.1 4.9 1.5 1\n", "53 5.5 2.3 4.0 1.3 1\n", "54 6.5 2.8 4.6 1.5 1\n", ".. ... ... ... ... ..\n", "95 5.7 3.0 4.2 1.2 1\n", "96 5.7 2.9 4.2 1.3 1\n", "97 6.2 2.9 4.3 1.3 1\n", "98 5.1 2.5 3.0 1.1 1\n", "99 5.7 2.8 4.1 1.3 1\n", "\n", "[50 rows x 5 columns]" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_versicolor = iris[mask]\n", "iris_versicolor" ] }, { "cell_type": "markdown", "metadata": { "id": "kTpmu5nd0Nmu" }, "source": [ "**예제 3**\n", "\n", "각 특성별 평균값, 중위수, 표준편차를 구하라." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "답:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "수치형 데이터의 평균값, 중위수, 표준편차는 `describe()` 메서드로 확인된다.\n", "중위수는 `50%` 라벨의 행에 위치한다." ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비
count150.000000150.000000150.000000150.000000
mean5.8433333.0540003.7586671.198667
std0.8280660.4335941.7644200.763161
min4.3000002.0000001.0000000.100000
25%5.1000002.8000001.6000000.300000
50%5.8000003.0000004.3500001.300000
75%6.4000003.3000005.1000001.800000
max7.9000004.4000006.9000002.500000
\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비\n", "count 150.000000 150.000000 150.000000 150.000000\n", "mean 5.843333 3.054000 3.758667 1.198667\n", "std 0.828066 0.433594 1.764420 0.763161\n", "min 4.300000 2.000000 1.000000 0.100000\n", "25% 5.100000 2.800000 1.600000 0.300000\n", "50% 5.800000 3.000000 4.350000 1.300000\n", "75% 6.400000 3.300000 5.100000 1.800000\n", "max 7.900000 4.400000 6.900000 2.500000" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.describe()" ] }, { "cell_type": "markdown", "metadata": { "id": "rxi1lkS20Nmu" }, "source": [ "**예제 4**\n", "\n", "세 개의 품종 각각에 대해 꽃받침너비(1번 열)의 평균값을 계산하여 아래 모양의 \n", "시리즈(Series)를 가리키는 `iris_mean_sepal_width` 변수를 선언하라.\n", "\n", "| | |\n", "| ---: | ---: |\n", "| Iris-setosa | 3.418 |\n", "| Iris-versicolor | 2.770 |\n", "| Iris-virginica | 2.974 |\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "답:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "아래 코드는 품종별로 꽃받침너비의 평균값을 계산해서 리스트에 추가한다." ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3wPKs76A0Nmu", "outputId": "8e48a3c1-b61f-442a-9a8d-b890917dfeec" }, "outputs": [], "source": [ "iris_mean_sepal_width = []\n", "\n", "for variety in range(3):\n", " mask = iris.iloc[:, 4] == variety\n", " mean_0 = iris[mask]['꽃받침너비'].mean()\n", " iris_mean_sepal_width.append(mean_0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "시리즈 생성을 위해 `index`와 `name` 키워드를 인자를 지정한다." ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3wPKs76A0Nmu", "outputId": "8e48a3c1-b61f-442a-9a8d-b890917dfeec" }, "outputs": [ { "data": { "text/plain": [ "Setosa 3.418\n", "Versicolor 2.770\n", "Virginica 2.974\n", "Name: 평균꽃받침너비, dtype: float64" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_mean_sepal_width = pd.Series(iris_mean_sepal_width, index=varieties, name='평균꽃받침너비')\n", "iris_mean_sepal_width" ] }, { "cell_type": "markdown", "metadata": { "id": "gGi6px0z0Nmu" }, "source": [ "**예제 5** \n", "\n", "`iris`에 포함된 모든 수치형 특성을 정규화normalization를 이용하여 모두 0과 1사이의 값으로 변환하라. \n", "\n", "힌트: 정규화에 대한 설명은 [정규화/표준화](https://codingalzi.github.io/handson-ml3/end2end_ml_project.html?highlight=정규화#minmaxscaler-standardscaler)을 참고하라." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "답:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "수치형 특성만을 가리키는 `iris_features`를 선언한다." ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
...............
1456.73.05.22.3
1466.32.55.01.9
1476.53.05.22.0
1486.23.45.42.3
1495.93.05.11.8
\n", "

150 rows × 4 columns

\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비\n", "0 5.1 3.5 1.4 0.2\n", "1 4.9 3.0 1.4 0.2\n", "2 4.7 3.2 1.3 0.2\n", "3 4.6 3.1 1.5 0.2\n", "4 5.0 3.6 1.4 0.2\n", ".. ... ... ... ...\n", "145 6.7 3.0 5.2 2.3\n", "146 6.3 2.5 5.0 1.9\n", "147 6.5 3.0 5.2 2.0\n", "148 6.2 3.4 5.4 2.3\n", "149 5.9 3.0 5.1 1.8\n", "\n", "[150 rows x 4 columns]" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_features = iris.iloc[:, :4]\n", "iris_features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "아니면 다음과 같이 `drop()` 메서드를 이용할 수도 있다." ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
...............
1456.73.05.22.3
1466.32.55.01.9
1476.53.05.22.0
1486.23.45.42.3
1495.93.05.11.8
\n", "

150 rows × 4 columns

\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비\n", "0 5.1 3.5 1.4 0.2\n", "1 4.9 3.0 1.4 0.2\n", "2 4.7 3.2 1.3 0.2\n", "3 4.6 3.1 1.5 0.2\n", "4 5.0 3.6 1.4 0.2\n", ".. ... ... ... ...\n", "145 6.7 3.0 5.2 2.3\n", "146 6.3 2.5 5.0 1.9\n", "147 6.5 3.0 5.2 2.0\n", "148 6.2 3.4 5.4 2.3\n", "149 5.9 3.0 5.1 1.8\n", "\n", "[150 rows x 4 columns]" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_features = iris.drop('품종', axis=1)\n", "iris_features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`min()`, `max()` 등의 데이터프레임 메서드는 기본적으로 축을 0으로 지정해서 열 단위로 작동한다." ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "-klhdFmvxJZb", "outputId": "e343c0f6-aa70-4335-e05f-885b5e251b97" }, "outputs": [ { "data": { "text/plain": [ "꽃받침길이 4.3\n", "꽃받침너비 2.0\n", "꽃잎길이 1.0\n", "꽃잎너비 0.1\n", "dtype: float64" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_features.min()" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "-klhdFmvxJZb", "outputId": "e343c0f6-aa70-4335-e05f-885b5e251b97" }, "outputs": [ { "data": { "text/plain": [ "꽃받침길이 4.3\n", "꽃받침너비 2.0\n", "꽃잎길이 1.0\n", "꽃잎너비 0.1\n", "dtype: float64" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_features.min(axis=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "사칙연산을 활용하여 열별로 정규화된 데이터프레임을 다음과 같이 생성한다." ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 417 }, "id": "xv7fcbb60Nmu", "outputId": "1bcfe0a6-1d39-47c1-9821-560a0c057e93" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비
00.2222220.6250000.0677970.041667
10.1666670.4166670.0677970.041667
20.1111110.5000000.0508470.041667
30.0833330.4583330.0847460.041667
40.1944440.6666670.0677970.041667
...............
1450.6666670.4166670.7118640.916667
1460.5555560.2083330.6779660.750000
1470.6111110.4166670.7118640.791667
1480.5277780.5833330.7457630.916667
1490.4444440.4166670.6949150.708333
\n", "

150 rows × 4 columns

\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비\n", "0 0.222222 0.625000 0.067797 0.041667\n", "1 0.166667 0.416667 0.067797 0.041667\n", "2 0.111111 0.500000 0.050847 0.041667\n", "3 0.083333 0.458333 0.084746 0.041667\n", "4 0.194444 0.666667 0.067797 0.041667\n", ".. ... ... ... ...\n", "145 0.666667 0.416667 0.711864 0.916667\n", "146 0.555556 0.208333 0.677966 0.750000\n", "147 0.611111 0.416667 0.711864 0.791667\n", "148 0.527778 0.583333 0.745763 0.916667\n", "149 0.444444 0.416667 0.694915 0.708333\n", "\n", "[150 rows x 4 columns]" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_normalized = (iris_features - iris_features.min())/(iris_features.max() - iris_features.min())\n", "\n", "iris_normalized" ] }, { "cell_type": "markdown", "metadata": { "id": "7JsHgv360Nmv" }, "source": [ "**예제 6**\n", "\n", "`iris`에 사용된 모든 값을 특성 별로 표준화standardization하라. \n", "\n", "힌트: 표준화에 대한 설명은 [정규화/표준화](https://codingalzi.github.io/handson-ml3/end2end_ml_project.html?highlight=표준화#minmaxscaler-standardscaler)을 참고하라." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "답:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`mean()`, `std()` 메서드 또한 열별로 계산된다." ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "vzy5xziSyfCF", "outputId": "28c349cf-6967-4b94-a10b-c37bd370fb8e" }, "outputs": [ { "data": { "text/plain": [ "꽃받침길이 5.843333\n", "꽃받침너비 3.054000\n", "꽃잎길이 3.758667\n", "꽃잎너비 1.198667\n", "dtype: float64" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_features.mean()" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "vzy5xziSyfCF", "outputId": "28c349cf-6967-4b94-a10b-c37bd370fb8e" }, "outputs": [ { "data": { "text/plain": [ "꽃받침길이 0.828066\n", "꽃받침너비 0.433594\n", "꽃잎길이 1.764420\n", "꽃잎너비 0.763161\n", "dtype: float64" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_features.std()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "사칙연산을 활용하여 열별로 표준화된 데이터프레임을 다음과 같이 생성한다." ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 203 }, "id": "q0lFBkNW0Nmv", "outputId": "7e103fbf-edaa-4276-f463-dec4f86a7a0a" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
꽃받침길이꽃받침너비꽃잎길이꽃잎너비
0-0.8976741.028611-1.336794-1.308593
1-1.139200-0.124540-1.336794-1.308593
2-1.3807270.336720-1.393470-1.308593
3-1.5014900.106090-1.280118-1.308593
4-1.0184371.259242-1.336794-1.308593
\n", "
" ], "text/plain": [ " 꽃받침길이 꽃받침너비 꽃잎길이 꽃잎너비\n", "0 -0.897674 1.028611 -1.336794 -1.308593\n", "1 -1.139200 -0.124540 -1.336794 -1.308593\n", "2 -1.380727 0.336720 -1.393470 -1.308593\n", "3 -1.501490 0.106090 -1.280118 -1.308593\n", "4 -1.018437 1.259242 -1.336794 -1.308593" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_standardized = (iris_features - iris_features.mean()) / iris_features.std()\n", "\n", "iris_standardized[:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 연습문제 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "참고: [(실습) 판다스 활용: 통계 기초](https://colab.research.google.com/github/codingalzi/datapy/blob/master/practices/practice-pandas_4.ipynb)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" }, "vscode": { "interpreter": { "hash": "ad0f3c8a064f687cbf898a0868fd45ba1c7e928ac8a0404f7c241d812ddc1e76" } } }, "nbformat": 4, "nbformat_minor": 1 }