diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..9b4eef8 Binary files /dev/null and b/.DS_Store differ diff --git a/Homework/Homework#1/.ipynb_checkpoints/HW#1-checkpoint.ipynb b/Homework/Homework#1/.ipynb_checkpoints/HW#1-checkpoint.ipynb new file mode 100644 index 0000000..feca026 --- /dev/null +++ b/Homework/Homework#1/.ipynb_checkpoints/HW#1-checkpoint.ipynb @@ -0,0 +1,396 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "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", + "
Sepal widthSepal length
05.13.5
14.93.0
24.73.2
34.63.1
45.03.6
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "0 5.1 3.5\n", + "1 4.9 3.0\n", + "2 4.7 3.2\n", + "3 4.6 3.1\n", + "4 5.0 3.6" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "df = pd.read_csv('data.csv')\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df.plot.scatter(x='Sepal width', y='Sepal length')" + ] + }, + { + "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", + "
Sepal widthSepal length
05.13.5
14.93.0
24.73.2
34.63.1
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "0 5.1 3.5\n", + "1 4.9 3.0\n", + "2 4.7 3.2\n", + "3 4.6 3.1" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head(4)" + ] + }, + { + "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", + "
Sepal widthSepal length
Sepal width1.00000-0.11757
Sepal length-0.117571.00000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "Sepal width 1.00000 -0.11757\n", + "Sepal length -0.11757 1.00000" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.corr(method='pearson')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "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", + "
Sepal widthSepal length
Sepal width1.000000-0.166778
Sepal length-0.1667781.000000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "Sepal width 1.000000 -0.166778\n", + "Sepal length -0.166778 1.000000" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.corr(method='spearman')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "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", + "
Sepal widthSepal length
Sepal width1.000000-0.076997
Sepal length-0.0769971.000000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "Sepal width 1.000000 -0.076997\n", + "Sepal length -0.076997 1.000000" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.corr(method='kendall')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Homework/Homework#1/HW#1.ipynb b/Homework/Homework#1/HW#1.ipynb new file mode 100644 index 0000000..feca026 --- /dev/null +++ b/Homework/Homework#1/HW#1.ipynb @@ -0,0 +1,396 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "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", + "
Sepal widthSepal length
05.13.5
14.93.0
24.73.2
34.63.1
45.03.6
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "0 5.1 3.5\n", + "1 4.9 3.0\n", + "2 4.7 3.2\n", + "3 4.6 3.1\n", + "4 5.0 3.6" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "df = pd.read_csv('data.csv')\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df.plot.scatter(x='Sepal width', y='Sepal length')" + ] + }, + { + "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", + "
Sepal widthSepal length
05.13.5
14.93.0
24.73.2
34.63.1
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "0 5.1 3.5\n", + "1 4.9 3.0\n", + "2 4.7 3.2\n", + "3 4.6 3.1" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head(4)" + ] + }, + { + "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", + "
Sepal widthSepal length
Sepal width1.00000-0.11757
Sepal length-0.117571.00000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "Sepal width 1.00000 -0.11757\n", + "Sepal length -0.11757 1.00000" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.corr(method='pearson')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "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", + "
Sepal widthSepal length
Sepal width1.000000-0.166778
Sepal length-0.1667781.000000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "Sepal width 1.000000 -0.166778\n", + "Sepal length -0.166778 1.000000" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.corr(method='spearman')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "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", + "
Sepal widthSepal length
Sepal width1.000000-0.076997
Sepal length-0.0769971.000000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "Sepal width 1.000000 -0.076997\n", + "Sepal length -0.076997 1.000000" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.corr(method='kendall')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Homework/Homework#2/.ipynb_checkpoints/HW#2-checkpoint.ipynb b/Homework/Homework#2/.ipynb_checkpoints/HW#2-checkpoint.ipynb new file mode 100644 index 0000000..075d72c --- /dev/null +++ b/Homework/Homework#2/.ipynb_checkpoints/HW#2-checkpoint.ipynb @@ -0,0 +1,814 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "from matplotlib import pyplot as plt\n", + "%matplotlib inline\n", + "import numpy as np\n", + "import pandas as pd\n", + "df = pd.read_csv('data.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "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", + "
Sepal widthSepal length
count150.000000150.000000
mean5.8433333.057333
std0.8280660.435866
min4.3000002.000000
25%5.1000002.800000
50%5.8000003.000000
75%6.4000003.300000
max7.9000004.400000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "count 150.000000 150.000000\n", + "mean 5.843333 3.057333\n", + "std 0.828066 0.435866\n", + "min 4.300000 2.000000\n", + "25% 5.100000 2.800000\n", + "50% 5.800000 3.000000\n", + "75% 6.400000 3.300000\n", + "max 7.900000 4.400000" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Sepal length')" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#1. Find the elbow(Elbow Technique)\n", + "plt.scatter(df['Sepal width'], df['Sepal length'])\n", + "plt.xlabel('Sepal width')\n", + "plt.ylabel('Sepal length')" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "KMeans(n_clusters=3)" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km = KMeans(n_clusters=3)\n", + "km" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1,\n", + " 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1,\n", + " 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0], dtype=int32)" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_predicted = km.fit_predict(df[['Sepal width', 'Sepal length']])\n", + "y_predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "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", + "
Sepal widthSepal lengthcluster
05.13.52
14.93.02
24.73.22
34.63.12
45.03.62
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster\n", + "0 5.1 3.5 2\n", + "1 4.9 3.0 2\n", + "2 4.7 3.2 2\n", + "3 4.6 3.1 2\n", + "4 5.0 3.6 2" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['cluster'] = y_predicted\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df1=df[df.cluster==0]\n", + "df2=df[df.cluster==1]\n", + "df3=df[df.cluster==2]\n", + "plt.scatter(df1['Sepal width'], df1['Sepal length'], color='green', label='1')\n", + "plt.scatter(df2['Sepal width'], df2['Sepal length'], color='red', label='2')\n", + "plt.scatter(df3['Sepal width'], df3['Sepal length'], color='yellow', label='3')\n", + "plt.xlabel('Sepal width')\n", + "plt.ylabel('Sepal length')\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "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", + "
Sepal widthSepal lengthcluster
00.2222220.6250002
10.1666670.4166672
20.1111110.5000002
30.0833330.4583332
40.1944440.6666672
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster\n", + "0 0.222222 0.625000 2\n", + "1 0.166667 0.416667 2\n", + "2 0.111111 0.500000 2\n", + "3 0.083333 0.458333 2\n", + "4 0.194444 0.666667 2" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scaler=MinMaxScaler()\n", + "scaler.fit(df[['Sepal length']])\n", + "df['Sepal length'] = scaler.transform(df['Sepal length'].values.reshape(-1, 1))\n", + "scaler.fit(df[['Sepal width']])\n", + "df['Sepal width'] = scaler.transform(df['Sepal width'].values.reshape(-1, 1))\n", + "df.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [], + "source": [ + "df['cluster1'] = df['cluster']" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "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", + "
Sepal widthSepal lengthclustercluster1
00.2222220.62500022
10.1666670.41666722
20.1111110.50000022
30.0833330.45833322
40.1944440.66666722
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster cluster1\n", + "0 0.222222 0.625000 2 2\n", + "1 0.166667 0.416667 2 2\n", + "2 0.111111 0.500000 2 2\n", + "3 0.083333 0.458333 2 2\n", + "4 0.194444 0.666667 2 2" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2, 2,\n", + " 2, 0, 2, 0, 0, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 2, 0, 0, 2, 2, 2, 2,\n", + " 2, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0], dtype=int32)" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km = KMeans(n_clusters=3)\n", + "y_predicted = km.fit_predict(df[['Sepal width', 'Sepal length']])\n", + "y_predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "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", + "
Sepal widthSepal lengthcluster
00.2222220.6250001
10.1666670.4166671
20.1111110.5000001
30.0833330.4583331
40.1944440.6666671
............
1450.6666670.4166672
1460.5555560.2083330
1470.6111110.4166672
1480.5277780.5833332
1490.4444440.4166670
\n", + "

150 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster\n", + "0 0.222222 0.625000 1\n", + "1 0.166667 0.416667 1\n", + "2 0.111111 0.500000 1\n", + "3 0.083333 0.458333 1\n", + "4 0.194444 0.666667 1\n", + ".. ... ... ...\n", + "145 0.666667 0.416667 2\n", + "146 0.555556 0.208333 0\n", + "147 0.611111 0.416667 2\n", + "148 0.527778 0.583333 2\n", + "149 0.444444 0.416667 0\n", + "\n", + "[150 rows x 3 columns]" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['cluster'] = y_predicted\n", + "df.drop('cluster1', axis='columns', inplace=True)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.40483539, 0.28009259],\n", + " [0.19897959, 0.60459184],\n", + " [0.69562648, 0.45390071]])" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km.cluster_centers_" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df1=df[df.cluster==0]\n", + "df2=df[df.cluster==1]\n", + "df3=df[df.cluster==2]\n", + "plt.scatter(df1['Sepal width'], df1['Sepal length'], color='pink', label='1')\n", + "plt.scatter(df2['Sepal width'], df2['Sepal length'], color='red', label='2')\n", + "plt.scatter(df3['Sepal width'], df3['Sepal length'], color='yellow', label='3')\n", + "plt.xlabel('Sepal width')\n", + "plt.ylabel('Sepal length')\n", + "plt.scatter(km.cluster_centers_[:,0], km.cluster_centers_[:,1], color='blue', marker='*', label='centroid')\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [], + "source": [ + "##elbow plot method\n", + "k_rng = range(1,10)\n", + "sse = []\n", + "for k in k_rng:\n", + " km = KMeans(n_clusters=k)\n", + " km.fit(df[['Sepal width', 'Sepal length']])\n", + " sse.append(km.inertia_) ##SSE\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'SSE')" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(k_rng, sse)\n", + "plt.xlabel('K')\n", + "plt.ylabel('SSE')\n", + "##답은 3개의 K" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Homework/Homework#2/HW#2.ipynb b/Homework/Homework#2/HW#2.ipynb new file mode 100644 index 0000000..075d72c --- /dev/null +++ b/Homework/Homework#2/HW#2.ipynb @@ -0,0 +1,814 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "from matplotlib import pyplot as plt\n", + "%matplotlib inline\n", + "import numpy as np\n", + "import pandas as pd\n", + "df = pd.read_csv('data.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "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", + "
Sepal widthSepal length
count150.000000150.000000
mean5.8433333.057333
std0.8280660.435866
min4.3000002.000000
25%5.1000002.800000
50%5.8000003.000000
75%6.4000003.300000
max7.9000004.400000
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length\n", + "count 150.000000 150.000000\n", + "mean 5.843333 3.057333\n", + "std 0.828066 0.435866\n", + "min 4.300000 2.000000\n", + "25% 5.100000 2.800000\n", + "50% 5.800000 3.000000\n", + "75% 6.400000 3.300000\n", + "max 7.900000 4.400000" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Sepal length')" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#1. Find the elbow(Elbow Technique)\n", + "plt.scatter(df['Sepal width'], df['Sepal length'])\n", + "plt.xlabel('Sepal width')\n", + "plt.ylabel('Sepal length')" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "KMeans(n_clusters=3)" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km = KMeans(n_clusters=3)\n", + "km" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1,\n", + " 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1,\n", + " 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0], dtype=int32)" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_predicted = km.fit_predict(df[['Sepal width', 'Sepal length']])\n", + "y_predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "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", + "
Sepal widthSepal lengthcluster
05.13.52
14.93.02
24.73.22
34.63.12
45.03.62
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster\n", + "0 5.1 3.5 2\n", + "1 4.9 3.0 2\n", + "2 4.7 3.2 2\n", + "3 4.6 3.1 2\n", + "4 5.0 3.6 2" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['cluster'] = y_predicted\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df1=df[df.cluster==0]\n", + "df2=df[df.cluster==1]\n", + "df3=df[df.cluster==2]\n", + "plt.scatter(df1['Sepal width'], df1['Sepal length'], color='green', label='1')\n", + "plt.scatter(df2['Sepal width'], df2['Sepal length'], color='red', label='2')\n", + "plt.scatter(df3['Sepal width'], df3['Sepal length'], color='yellow', label='3')\n", + "plt.xlabel('Sepal width')\n", + "plt.ylabel('Sepal length')\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "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", + "
Sepal widthSepal lengthcluster
00.2222220.6250002
10.1666670.4166672
20.1111110.5000002
30.0833330.4583332
40.1944440.6666672
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster\n", + "0 0.222222 0.625000 2\n", + "1 0.166667 0.416667 2\n", + "2 0.111111 0.500000 2\n", + "3 0.083333 0.458333 2\n", + "4 0.194444 0.666667 2" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scaler=MinMaxScaler()\n", + "scaler.fit(df[['Sepal length']])\n", + "df['Sepal length'] = scaler.transform(df['Sepal length'].values.reshape(-1, 1))\n", + "scaler.fit(df[['Sepal width']])\n", + "df['Sepal width'] = scaler.transform(df['Sepal width'].values.reshape(-1, 1))\n", + "df.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [], + "source": [ + "df['cluster1'] = df['cluster']" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "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", + "
Sepal widthSepal lengthclustercluster1
00.2222220.62500022
10.1666670.41666722
20.1111110.50000022
30.0833330.45833322
40.1944440.66666722
\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster cluster1\n", + "0 0.222222 0.625000 2 2\n", + "1 0.166667 0.416667 2 2\n", + "2 0.111111 0.500000 2 2\n", + "3 0.083333 0.458333 2 2\n", + "4 0.194444 0.666667 2 2" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2, 2,\n", + " 2, 0, 2, 0, 0, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 2, 0, 0, 2, 2, 2, 2,\n", + " 2, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0], dtype=int32)" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km = KMeans(n_clusters=3)\n", + "y_predicted = km.fit_predict(df[['Sepal width', 'Sepal length']])\n", + "y_predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "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", + "
Sepal widthSepal lengthcluster
00.2222220.6250001
10.1666670.4166671
20.1111110.5000001
30.0833330.4583331
40.1944440.6666671
............
1450.6666670.4166672
1460.5555560.2083330
1470.6111110.4166672
1480.5277780.5833332
1490.4444440.4166670
\n", + "

150 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " Sepal width Sepal length cluster\n", + "0 0.222222 0.625000 1\n", + "1 0.166667 0.416667 1\n", + "2 0.111111 0.500000 1\n", + "3 0.083333 0.458333 1\n", + "4 0.194444 0.666667 1\n", + ".. ... ... ...\n", + "145 0.666667 0.416667 2\n", + "146 0.555556 0.208333 0\n", + "147 0.611111 0.416667 2\n", + "148 0.527778 0.583333 2\n", + "149 0.444444 0.416667 0\n", + "\n", + "[150 rows x 3 columns]" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['cluster'] = y_predicted\n", + "df.drop('cluster1', axis='columns', inplace=True)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.40483539, 0.28009259],\n", + " [0.19897959, 0.60459184],\n", + " [0.69562648, 0.45390071]])" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km.cluster_centers_" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3de5gU9Z3v8feXGQS5RCMgxxWZwbugiDoQTbzGy9GYxT1RkwAm3rKeR1c9Z931PGY5q4iP2SSrexI9XpasrklEjbrZXTZB3URBjJHIuBKiGDhEQYcowUkkcZH79/xR1U7PMD1VM11VXd31eT1PPz1VXV31rWbo31T9ft/f19wdEREprkG1DkBERGpLDYGISMGpIRARKTg1BCIiBaeGQESk4JprHUB/jR492ltbW2sdhohIXXnppZfedfcxvb1Wdw1Ba2sr7e3ttQ5DRKSumNm6Sq/p1pCISMGpIRARKTg1BCIiBVd3fQS92b59Ox0dHWzZsqXWodSFoUOHMm7cOAYPHlzrUEQkBxqiIejo6GDkyJG0trZiZrUOJ9fcnc7OTjo6OpgwYUKtwxGRHEjt1pCZ3W9mvzGzVyq8bmZ2h5mtMbMVZnbsQI+1ZcsWRo0apUYgBjNj1KhRjXP1NH8+tLbCoEHB8/z5tY5IpO6k2UfwAHB2H6+fAxwSPq4A7qnmYGoE4muYz2r+fLjiCli3DtyD5yuuUGMg0k+pNQTuvgT4bR+bnAd8xwNLgb3NbL+04pEGNHs2bN7cfd3mzcF6EYmtlqOG9gfeKlvuCNftxsyuMLN2M2vfuHFjJsH112WXXca+++7LkUceWetQiuPNN/u3XkR6VRfDR919nru3uXvbmDG9ZkjX3CWXXMKTTz5Z6zCKZfz4/q0XkV7VsiFYDxxQtjwuXJe+DZ2wdAU82x48b+isepcnn3wy++yzTwLBSWy33grDhnVfN2xYsF5EYqtlQ7AA+GI4euh4YJO7v536UTd0wup1sHVbsLx1W7CcQGMgGZs1C+bNg5YWMAue580L1otIbKnlEZjZw8CpwGgz6wBuAgYDuPu9wELgU8AaYDNwaVqxdPPGeti1q/u6XbuC9WNHZRKCJGjWLH3xi1QptYbA3WdEvO7An6V1/IpKVwJx14uINLi66CxO1JA9+rdeRKTBFa8hmLB/kIVabtCgYH0VZsyYwQknnMCqVasYN24c9913X1X7ExHJSkPMNdQvpX6AN9YHt4OG7BE0AlX2Dzz88MMJBCcikr3iNQQQfOmrY1hEBCjirSEREelGDYGISMGpIRARKTg1BCIiBaeGQGpHRWVEckENQULeeustTjvtNCZOnMikSZP45je/WeuQ8k1FZURyQw1BQpqbm7n99ttZuXIlS5cu5a677mLlypW1Diu/VFRGJDeK2RCkcEtiv/3249hjg7LLI0eO5IgjjmD9+mxm1a5LKiojkhvFawgyuCWxdu1aXn75ZT72sY8lts+Go6IyIrlRvIYg5VsS77//Pueffz7f+MY3+MhHPpLIPhuSisqI5EbxGoIUb0ls376d888/n1mzZvGZz3ym6v01NBWVEcmN4s01NH58cDuot/VVcHcuv/xyjjjiCK677rqq9lUYKiojkgvFuyJI6ZbE888/z3e/+12eeeYZpkyZwpQpU1i4cGFV+6wZje8XKZTiXRGU/gKdPTu4HTR+fNAIVPmX6YknnkhQdK3OlTrTS/0opc500F/vIg2qeFcEEHyhrV0b1Cpeu1ZfcOU0vl+kcIrZEEhlGt8vUjhqCKQ7je8XKRw1BNKdxveLFI4aAulO4/tFCqd4o4Ykmsb3ixSKrggSsmXLFqZNm8bRRx/NpEmTuOmmm2odkoByIkRi0BVBQoYMGcIzzzzDiBEj2L59OyeeeCLnnHMOxx9/fK1DKy7lRIjEUtArgvlAK8Hpt4bL1TEzRowYAQRzDm3fvh0zq3q/UgXlRIjEUsCGYD5wBbAO8PD5CpJoDHbu3MmUKVPYd999OfPMMzUNda0pJ0IklgI2BLOBHn8lsjlcX52mpiaWL19OR0cHL774Iq+88krV+5QqKCdCJJYCNgSV/hpM7q/Evffem9NOO40nn3wysX3KACgnQiSWAjYElf4arO6vxI0bN/Lee+8B8MEHH/CjH/2Iww8/vKp9SpWUEyESS6oNgZmdbWarzGyNmd3Qy+vjzWyRmb1sZivM7FNpxhO4FejxVyLDwvUD9/bbb3PaaacxefJkpk6dyplnnsmnP/3pqvYpCdAEgyKRUhs+amZNwF3AmUAHsMzMFrj7yrLN/jfwqLvfY2YTgYUEw3hSVPoimE1wO2g8QSNQ3RfE5MmTefnll6sLrZFcdVXw1/fOndDUFAzbvPvuWkclIr1IM49gGrDG3V8HMLNHgPOA8obAgVJh372AX6cYT5lZVPvFL3246iq4556u5Z07u5bVGIjkTpq3hvYH3ipb7gjXlZsDXGRmHQRXA9f0tiMzu8LM2s2sfePGjWnEKkmaN69/60WkpmrdWTwDeMDdxwGfAr5rZrvF5O7z3L3N3dvGjBmTeZDSTzt39m+9iNRUmg3BeuCAsuVx4bpylwOPArj7C8BQYHSKMUkWmpr6t15EairNhmAZcIiZTTCzPYDPAwt6bPMmcDqAmR1B0BDo3k+9K83nE3e9iNRUap3F7r7DzK4GngKagPvd/VUzmwu0u/sC4C+Ab5nZnxN0HF/iDVEBvuBKHcIaNSRSF1LtI3D3he5+qLsf5O63hutuDBsB3H2lu3/C3Y929ynu/u9pxpN37733HncP4Muyvb2da6+9ttfXWltbeffdd6sNrf/uvht27AD34FmNgEhu1bqzWMr01RDs2LGj4vva2tq444470gpLRBpcYRuCTZtg0qTgOSnf+c53mDx5MkcffTRf+MIX2LhxI+effz5Tp05l6tSpPP/88wDMmTOHyy67jFNPPZUDDzzwwy/xG264gV/96ldMmTKF66+/nsWLF3PSSScxffp0Jk6cyJYtW7j00ks56qijOOaYY1i0aBEAixcv/jCLubOzk7POOotJkybxpS99iV7vtK1aFczNbxY8zjgjuQ8hayo8I7mXxLT3yU+d342719XjuOOO855Wrly527oo8+e7g/tDD/X7rb165ZVX/JBDDvGNGze6u3tnZ6fPmDHDn3vuOXd3X7dunR9++OHu7n7TTTf5CSec4Fu2bPGNGzf6Pvvs49u2bfM33njDJ02a9OE+Fy1a5MOGDfPXX3/d3d1vu+02v/TSS93d/bXXXvMDDjjAP/jgA1+0aJGfe+657u5+zTXX+M033+zu7j/4wQ8c+DAmd3f/5S/dly3zlU88EXwApcfppyfzQWTpwQfdhw3rfh7DhgXrRXLhQXcf5t2/xoaF67PchztB32yv36uFuyKYORNGjICLLw6Wv/jFYHnmzOr2+8wzz3DhhRcyenQw+nWfffbhxz/+MVdffTVTpkxh+vTp/P73v+f9998H4Nxzz2XIkCGMHj2afffdlw0bNvS632nTpjFhwgQAfvKTn3DRRRcBcPjhh9PS0sLq1au7bb9kyZIPtzn33HP56Ec/2n2Hf/hD7yfw9NMDOu+aUuEZyb0kpr1Pb+r8ksKVqpw7F5YvD+Yf27EDBg8OJqW85Zbkj7Vr1y6WLl3K0KFDd3ttyJAhH/7c1NRUsQ9g+PDhyQfWKFR4RnIviWnv0586v3BXBAcfHDQG27fD8OHB8803w0EHVbffT37ykzz22GN0dnYC8Nvf/pazzjqLO++888Ntli9f3uc+Ro4cyR8q/cUOnHTSScwP74GvXr2aN998k8MOO6zbNieffDIPPfQQAE888QS/+93vBnQ+dUGFZyT3kpj2Pp2p88sVriEAePTRoBG4+ebg+bHHqt/npEmTmD17NqeccgpHH3001113HXfccQft7e1MnjyZiRMncu+99/a5j1GjRvGJT3yCI488kuuvv36316+66ip27drFUUcdxec+9zkeeOCBblcWADfddBNLlixh0qRJfP/732d8zy/FkSN7P/jpp/frfHNBhWck95KY9j6dqfO7qdR5kNdHEp3FL77o/s47wc/vvOO+bFm/3l7/fvnL7p3F9dhRXPLgg+4tLe5mwbM6iiV3HnT3Fne38Hkgv6PV74M+OovN6yyRt62tzdvb27ute+211zjiiCNqFFF90mcmUixm9pK7t/X2WiFvDRVeZyd0dFQ39j5q/L7G94vUjYYZNeTumFmtw8i/zk587dqgl9w9SCwrTQYXt4zj/PnBe0pDN3vuI+p1EcmVhrgiGDp0KJ2dnb1n0Uo33tFB5/btDF2zpmtlf8feR43f1/h+kbrSEFcE48aNo6OjA1Uvi2H9eoauWcO4OXO6r+/P2Puo8fsa3y9SVxqiIRg8ePCH2bcS4Zxzgls1PfVn7P348X3vI+p1EcmVhrg1JP2QxNj7qH1ofL9IXVFDUDSzZgUFY1pagplHW1qC5f504kbtI4ljiEhmGiKPQERE+qY8gqxkMXZe4/dFSH1+/oJpiM7iXMhi7LzG74sQfOlfQdfUzOvCZQD9ng+Ebg0lpbW195EyLS3BnNdZHCOLGERqrpXgy7+nFmBtppHUE90aykIWY+c1fl+ELObnLxo1BEnJYm78qGNofn4phPTn5y8aNQRJyWLsvMbvi5DJ/PwFo4YgKVmMndf4fRGCDuF5BH0CFj7PQx3FAxfZWWxmnwDmEHzazQSfvLv7galH14vcdhaLiORYtZ3F9wF/B5wITAXawmfJo6uugubm4IqguTlY7u82WeUiKOdBJB8qlS4rPYCfRW2T5aO3UpUSuvLKrvKT5Y8rr4y/zYMPug8b1v21YcOSLwGZ1XFExN0HWKrSzI4Nf/ws0AR8H9ha1oD8R7pNVO90a6gPzc2wc+fu65uaYMeOeNtklYugnAeRTPV1a6ivzOLbeyyX78CBT1YbmCSsty/4nuujtskqF0E5DyK5UbEhcPfTAMzsQHd/vfw1M6tJR7FEaGrq9kW/iY/wcX7KTwedxF4Vtun2XsiuloBqFojkRpzO4sd7WfdYnJ2b2dlmtsrM1pjZDRW2+ayZrTSzV83soTj7lQpK8wqFfsi5rGQSCz95W8VtdlufVS6Cch5E8qNS5wFwOHA+8CvgM2WPS4BXK72v7P1N4XsPBPYAfg5M7LHNIcDLwEfD5X2j9qvO4ghXXukzeMiH8wdvZpuDe3Oz+/Dh7jNmdG3jTU1BB21TU/fOZPegw7alxd0seE6rAzer44jIgDuLzwP+BJgOLCh76Q/AI+7+074aGDM7AZjj7v81XP5y2PD8Tdk2XwdWu/s/xGm0QJ3FcaxZA9OnB32uH3wAe+4JEybAggVw0EG1jk5EamFAncXu/q/Av5rZCe7+wgCOuz/wVtlyB/CxHtscGgb4PMEVxBx3f7LnjszsCsJ5ZsfrHnKkgw+GuXNhxgwYPhy2boWbb1YjICK9i9NHMNPM7ujxuCW8YqhWM8HtoVOBGcC3zGzvnhu5+zx3b3P3tjFjxiRw2JQkkSAVJyEsxvsfvfBRhu/YxM2T/4nhw+Gx8l6dLIrbVHseuZJEEZSofajQitRQpXtG3nUffx6wBLgmfCwG/pHgdtE3+njfCcBTZctfBr7cY5t7gUvLlp8GpvYVT277CJJIkIqTEBbz/S/S5u+wrzv4Oxf/L1+2LGaceTiPXHnQ3Yd591/DYeH6pPaRxDFE+kYffQRxGoKlQFPZcjPwAsGtnJV9vK8ZeB2YQFdn8aQe25wNfDv8eTTBraRRfcWT24agpaX3L7+Wlvj7KHXg9nw0NSX3/qg483AeudLivf8qtiS4jySOIdK3vhqCOLeGPgqMKFseDuzj7jspyzTu5UpjB3A18BTwGvCou79qZnPNbHq42VNAp5mtBBYB17t7Z4yY8ieJBKk4CWHVvj+L4jbVnkeuJFEEJWofKrQitRWnZvHXgeVmtphg5tGTga+Y2XDgx3290d0XAgt7rLux7GcHrgsf9S2JBKmoZK8k3h8VZx7OI1fG03tZxP4MWojaRxLHEBm4yCsCd78P+DjwL8A/Aye6+z+4+3+6+/VpB1g3kkiQikr2SuL9WRS3qfY8ciWJIihR+1ChFamxSveMyh8EQ0E/TnA1cDJwcpz3pfHIbR+BezIJUlHJXkm8PyrOPJxHrjzowf16C58H0okbtY8kjiFSGQNJKCsxs68BnwNeBXZ1tR8+vfK70qOEMhGR/qu2MM2fAIe5+7nu/sfhoyaNgMQQJwdABWFy6Cq6CgA2h8tFjkOyFKez+HVgMH2MEJKcmD8/uA+/eXOwvG5d1335Ut3iONtIxq4C7ilb3lm2fHcB45Csxbk19E/A0QTJXuWFaa5NN7Te6dZQH+IUe1FBmBxqJvjS7akJ2FHAOCQNAy1MU7KA7pPOSV7FyQFQQZgcqpRfkXXeRV7ikKxFNgTu/m0z2xMY7+6rMohJBipODoAKwuRQE5X/Ei9iHJK1yM5iM/tjYDnwZLg8xcx0hZBHcXIAVBAmhyrlV2Sdd5GXOCRrcUYNzQGmAe8BuPtygmIzkjezZsG8ecH9frPged687p3AcbaRjN0NXEnXX95N4XLWHbR5iUOyFqezeKm7H29mL7v7MeG6Fe4+OZMIe1BnsYhI/1WbR/Cqmc0EmszsEDO7E+izOlldSmJsfdQ+spijXzkC/behE5augGfbg+cNeZ33MGqMf1Y1DZKorVBtrKrfkKhKKcelB12TniwD2sOfh0a9L61HKlNMJDEHf9Q+spijP4nzKJp33nVf8pL74mVdjyUvBetz5Urv/b9E6fcnq5oGSdRWqDZW1W8YCKqZYiJvUrk1lMTY+qh9NDdXnpFzR0JjtJUj0H9LV8DWbbuvH7IHHF+Tu58VRI3xb6X3GUxbgLUJxhF1nDhxxNmmmhikNwPKIzCzfwMqthLeSNNMJDG2PmofWczRrxyB/uutEehrfc1EjfHPqqZBErUVqo1V9RuS1lcewW2ZRVFrSYytj9pHFnP0K0eg/4bsUfmKIFeixvhnVdMgidoK1caq+g1Jq9hZ7O7P9vXIMsjUJTG2PmofWczRrxyB/puwf9CxXm7QoGB9rkSN8c+qpkEStRWqjVX1GxJXqfMgr4/U6hEkMQd/1D6ymKM/ifMomnfedX/h50FH8Qs/z2FHccmV7l4qH97kXR3FJVnVNEiitkK1sap+Q3+hzmIRkWKrNo9A4mqUXATJqSzGzp9BkKdQepxRo31IpipdKgD/RtfMo7s9Kr0v7UduS1U2Si6C5FQWY+dP997/252+25bvvec+cWLwPNB9SLYYyK0hMzslogGpSYdxbm8NNUouguRUK+mPnbc+Xuv+PfHQQ8H0VA89BDNmDGwfkq2+bg2pjyApgwYFf5/3ZAa7du2+fiD7sD7+k9XZv6P01yB6/yI1ukqJVyv6S3zmTFiwALZuDf72aG6GIUNg+vSgUVBDkF9V9RGE8ws9bmYrzez10iP5MOtcpbH6/c1F6Gt9pZyDJHMRJKcq/R5lO3Z+7tzg13Hw4GB58ODggvWWWzINQxIWp7P4HwkKl+4ATgO+AzyYZlB1qVFyESSnshg7f3rk+oMPDhqD7dth+PDg+eab4aCD4u9DcqhS50HpAbwUPv+i57paPHLbWezeOLkIklNZjJ3v2dm7eyfvhRe677WX+223Bc+f/Wz/9yHZo5o8AjP7KXAi8DjwDLAe+Kq7H5Zi+1RRbvsIRApi2bLg9tDYsbBhA7z1FrT1eudZ8qTa4vX/g+Aa9FrgFuCTwMXJhSci9WTq1K6fx44NHlLfIvsI3H2Zu78P/B641t0/4+5L0w8tQXESvfJS0CUqYSwqzrycRxLFXlavDd5feqxeW5vjRB0jTpyZiJPIFZWUFlX8Js4+kpBE8ZssZFGEJ32RVwRm1kbQYTwyXN4EXObuL6UcWzLmzw86UzdvDpbXrevqXC3V6Y2zTRauugruuadreefOruW7746OMy/nsaETVq/rGja7dVuwDDB2VLx9rF4Lb7/bfV1p+dDW7I4TdYw4cWbiDODpHuueDtf/OFyeTzBJXfj7wTq6Jq2bRfClX/b7x86y5VLd4qh9JCHqGFnEEEecOPISa9/i9BGsAP7M3Z8Ll08E7vZ6qVkcJ9ErLwVdohLGouLMy3kkUezl2T7+jU9py+44UceIE2cm4ozfb6XvpLSo4jdx9pGEqGNkEUMcceKIs002qp1raGepEQBw95/Q9VsRdeCzzWyVma0xsxv62O58M/Pw6iNZcYq15KWgS1Txmqg483IeWRV7yeI4dVO4Jo6ogi5RxW/i7CMJSRS/yUIWRXiyEacheNbM/t7MTjWzU8zsbmCxmR1rZsdWepOZNQF3AecAE4EZZjaxl+1GEnRI/2xgpxAhTqJXEslgSYhKGIuKMy/nUamoS9LFXrI4TlbnkomopLRKiYnl67NIbIs6Rj6S6+LFkZdY+xanITgaOBS4CZgDHAEcA9xO31XMpgFr3P11d98GPAKc18t2twBfA7bED7sf4iR65aWgS1TCWFSceTmPJIq97Dc6en0Wx4k6Rpw4MxEnkSsqKS2q+E2cfSQhieI3WciiCE9GKiUYVPsALgD+oWz5C8D/7bHNscA/hT8vBtoq7OsKoB1oHz9+fP8zKeIkeuWloEtUwlhUnHk5jySKvax6I3h/6bHqjdocJ+oYceLMRJxErqiktKjiN3H2kYQkit9kIYsiPMmgyoSyscBXgD9y93PC2zsnuPt9Ee+7ADjb3b8ULn8B+Ji7Xx0uDyJIULvE3dea2WLgL929z55gJZSJiPRftZ3FDwBPAX8ULq8G/meM960HDihbHheuKxkJHEnQ37AWOB5YkEqHcRx5GX8vXeLkCCSRR1BtHInEmdV49PyPaU9Okc61OnEyi0e7+6Nm9mUAd99hZpWGF5RbBhxiZhMIGoDPAzNLL7r7JuDDG6lxrwhSkZfx99IlTo5AEnkE1caRSJxZjUevjzHtySjSuVYvzhXBf5rZKMLByGZ2PLAp6k3uvgO4muBq4jXgUXd/1czmmtn0KmJO3uzZXY1AyebNwXqpjTfW717HYdeuYH1/tkk7jkTinE3XF1bJ5nA9/dgmShL7qBdFOtfqxbkiuI6gPOVBZvY8MIagIziSuy8EFvZYd2OFbU+Ns89U5GX8vXSJM34/D3kEicSZ1Xj0+hjTnowinWv14sw19B/AKcDHgf8OTHL3FWkHlqm8jL+XLnHG7+chjyCROLMaj14fY9qTUaRzrV7FhsDMpprZf4EPb/McRzD49XYz2yej+LKRl/H30iVOjkASeQTVxpFInFmNR6+TMe2JKNK5Vq+vK4K/B7YBmNnJwFcJqpNtAualH1qGZs2CefOCOXnMgud589RRXEtjR8GhLd3/8j60pXsncJxt0o4jkThnEfyXaiGYM6glXC7//YuzTZQk9lEvinSu1auYR2BmP3f3o8Of7wI2uvuccHm5u0/JLMoyyiMQEem/geYRNJlZqTP5dILkr5I4ncwi1YkzPr/aWgJJSKJuQqw4o2oFZDVuvlHG5+vzKunrC/1hggnn3gU+AErTUB9MjOGjIlWJMz6/2loCSUiibkKsOKNqBWQ1br5Rxufr8ypX8YrA3W8F/oIgs/hE77qHNAi4Jv3QpNDijM/v+QXcc30WeQZRMcSJI1aclbrlSuuzGjffKOPz9XmV6/MWj/dSktLdV6cXjkgoiRyBvNQSSCIXIbJWQFbj5htlfL4+r3JxMotFspdEjkBeagkkkYsQWSsgq3HzjTI+X59XOTUEkk9xxudXW0sgCUnUTYgVZ1StgKzGzTfK+Hx9XuXUEEg+xRmff2jr7l/E+43u6qTNIs8gKoY4ccSK827gSrquAJrC5VJR+azGzTfK+Hx9XuUi6xHkjfIIRET6r688AuUDyO42dAYjVrZuC/46nbB/sn9FZxnHi7+AD7Z2Le85BKYdlX0cSRwjL/8u0nB0a0i6K41pLx/RsnpdOolYacfRsxGAYPnFX2QbRxLHyMu/izQkNQTSXRZj77OKo2cjELU+rTiSOEZe/l2kIakhkO7qZex9hE2bYNLFk9j0fqVhl9nEkdgx8vLvIg1JDYF0Vy9j7yP88Iewct2eLPzZXjWNI7Fj5OXfRRqSGgLpLoux9ynGMXMmjBgBF18cLH/xKxMYcfYxzLxlQtdGew5JPY5+yUvtBSksNQTSXRZj71OMY+7coLDc4MHB8uBmp2XsNm657NfBiv6OGspDzYOs4pDCUh6BNJzHH4cZM2DIENi6FR5+GC6IVWVbpHEpj0DyKYlx8b3s49FHRzF8OPz1X8MtN+/isXt/zwVj1tQ2B0AKbD7BbKNvEswxdCt5yyxWQyC1kUStgAr7uP6yJu68c2/G0slFB6/nrXeaB36MLM5DGlid1yMQSVUS4+Ir7GPq3m8ydmzw+ti9t9F2+OZur2eeAyAFVh/1CNQQSG1kUW8gLzkAUmCqRyBSWRb1BvKSAyAFpnoEIpUlMS4+kXn+q6Tx/dKn+qhHoM5iqY1SR2o1o22i9pHEMbI4D2lgpQ7hfI8aUh6BiEgB9JVHoFtDIiIFp1tD9SalJKxcFp4pUrGW1Wvh7Xe7lnuWu8xM/pOfJHmpXhGY2dlmtsrM1pjZDb28fp2ZrTSzFWb2tJm1pBlP3UuiOEleCpxExVGkYi09GwEIllevzTiQUvLTOsDpSn6an3EckrXUGgIzawLuAs4BJgIzzGxij81eBtrcfTLwOPD1tOJpCCkmYeWu8EyRirX0bASi1qemPpKfJHlpXhFMA9a4++vuvg14BDivfAN3X+Tupd+8pcC4FOOpf1kkYWUliWSwvJxLw6iP5CdJXpoNwf7AW2XLHeG6Si4HnujtBTO7wszazax948aNCYZYZ7JIwspKEslgeTmXhlEfyU+SvFyMGjKzi4A24G97e93d57l7m7u3jRkzJtvg8iSLJKysJJEMlpdzqdZ+o/u3PjX1kfwkyUtz1NB64ICy5XHhum7M7AyCm5CnuHs/qooXUBZJWFlJIhksL+dSrdLooJqPGqqP5CdJXmoJZWbWDKwGTidoAJYBM9391bJtjiHoJD7b3f9fnP0qoUxEpP9qUpjG3XeY2SvXkfMAAAm5SURBVNXAU0ATcL+7v2pmc4F2d19AcCtoBPCYmQG86e7T04qpITTKuHnI0dh5kWJLNaHM3RcCC3usu7Hs5zPSPH7DaaQiKJXGzoMaA5GM5aKzWGJqlHHzkKOx8yKihqCeaNy8iKRADUE90bh5EUmBGoJ60ijj5iFHY+dFRLOP1pNGGTcPORo7LyJqCOrN2FH1+cXfm0Nb9cUvkgNqCOKql/H79RIn1FesadNnITWkhiCOehm/Xy9xQn3FmjZ9FlJj6iyOo17G79dLnFBfsaZNn4XUmBqCOOpl/H69xAn1FWva9FlIjakhiKNexu/XS5xQX7GmTZ+F1JgagjjqZfx+vcQJ9RVr2vRZSI2psziOehm/Xy9xQn3FmjZ9FlJjagjiqpfx+/USJ9RXrGnTZyE1pIZAJEoSdROUJyA5poZApC9J1E1QnoDknDqLRfqSRN0E5QlIzqkhEEmb8gQk59QQiKRNeQKSc2oIRPqSRN0E5QlIzqmzWKQvSdRNUJ6A5JwaApEoSdRNUJ6A5JhuDYmIFJwaAhGRglNDICJScGoIREQKTg2BiEjBqSEQESk4NQQiIgWnhkBEpODUEIiIFFyqDYGZnW1mq8xsjZnd0MvrQ8zse+HrPzOz1jTjKYQNnbB0BTzbHjxv6Kx1RCKSc6k1BGbWBNwFnANMBGaY2cQem10O/M7dDwb+D/C1tOIphFIBlNL0xqUCKGoMRKQPaV4RTAPWuPvr7r4NeAQ4r8c25wHfDn9+HDjdzCzFmBqbCqCIyACk2RDsD7xVttwRrut1G3ffAWwCdpuZy8yuMLN2M2vfuHFjSuE2ABVAEZEBqIvOYnef5+5t7t42ZsyYWoeTXyqAIiIDkGZDsB44oGx5XLiu123MrBnYC9AN7YFSARQRGYA0G4JlwCFmNsHM9gA+Dyzosc0C4OLw5wuAZ9zdU4ypsY0dBYe2dF0BDNkjWNY8+CLSh9QK07j7DjO7GngKaALud/dXzWwu0O7uC4D7gO+a2RrgtwSNhVRDBVBEpJ9SrVDm7guBhT3W3Vj28xbgwjRjEBGRvtVFZ7GIiKRHDYGISMGpIRARKTg1BCIiBWf1NlrTzDYC6wb49tHAuwmGUw90zsWgcy6Gas65xd17zcitu4agGmbW7u5ttY4jSzrnYtA5F0Na56xbQyIiBaeGQESk4IrWEMyrdQA1oHMuBp1zMaRyzoXqIxARkd0V7YpARER6UEMgIlJwDdkQmNnZZrbKzNaY2Q29vD7EzL4Xvv4zM2vNPspkxTjn68xspZmtMLOnzaylFnEmKeqcy7Y738zczOp+qGGcczazz4b/1q+a2UNZx5i0GL/b481skZm9HP5+f6oWcSbFzO43s9+Y2SsVXjczuyP8PFaY2bFVH9TdG+pBMOX1r4ADgT2AnwMTe2xzFXBv+PPnge/VOu4Mzvk0YFj485VFOOdwu5HAEmAp0FbruDP4dz4EeBn4aLi8b63jzuCc5wFXhj9PBNbWOu4qz/lk4FjglQqvfwp4AjDgeOBn1R6zEa8IpgFr3P11d98GPAKc12Ob84Bvhz8/DpxuZpZhjEmLPGd3X+Tum8PFpQQV4+pZnH9ngFuArwFbsgwuJXHO+U+Bu9z9dwDu/puMY0xanHN24CPhz3sBv84wvsS5+xKC+iyVnAd8xwNLgb3NbL9qjtmIDcH+wFtlyx3hul63cfcdwCagnqu5xDnncpcT/EVRzyLPObxkPsDdf5hlYCmK8+98KHComT1vZkvN7OzMoktHnHOeA1xkZh0E9U+uySa0munv//dIqRamkfwxs4uANuCUWseSJjMbBPwdcEmNQ8laM8HtoVMJrvqWmNlR7v5eTaNK1wzgAXe/3cxOIKh6eKS776p1YPWiEa8I1gMHlC2PC9f1uo2ZNRNcTnZmEl064pwzZnYGMBuY7u5bM4otLVHnPBI4ElhsZmsJ7qUuqPMO4zj/zh3AAnff7u5vAKsJGoZ6FeecLwceBXD3F4ChBJOzNapY/9/7oxEbgmXAIWY2wcz2IOgMXtBjmwXAxeHPFwDPeNgLU6ciz9nMjgH+nqARqPf7xhBxzu6+yd1Hu3uru7cS9ItMd/f22oSbiDi/2/9CcDWAmY0muFX0epZBJizOOb8JnA5gZkcQNAQbM40yWwuAL4ajh44HNrn729XssOFuDbn7DjO7GniKYMTB/e7+qpnNBdrdfQFwH8Hl4xqCTpnP1y7i6sU8578FRgCPhf3ib7r79JoFXaWY59xQYp7zU8BZZrYS2Alc7+51e7Ub85z/AviWmf05QcfxJfX8h52ZPUzQmI8O+z1uAgYDuPu9BP0gnwLWAJuBS6s+Zh1/XiIikoBGvDUkIiL9oIZARKTg1BCIiBScGgIRkYJTQyAiUnBqCKRhmdnscAbOFWa23Mw+lvD+TzWzHwzgfX9kZo9XeG1xKenNzP6qbH1rpdkoRaqlhkAaUjjVwKeBY919MnAG3ednqRl3/7W7XxBj07+K3kSkemoIpFHtB7xbmkrD3d91918DmNlxZvasmb1kZk+VZm4M/xr/Znj18IqZTQvXTzOzF8L57n9qZof1dWAz+6GZTQ5/ftnMbgx/nmtmf1r+172Z7Wlmj5jZa2b2z8Ce4fqvAnuGscwPd91kZt8Kr3L+3cz2TPpDk2JSQyCN6t+BA8xstZndbWanAJjZYOBO4AJ3Pw64H7i17H3D3H0KQc2K+8N1vwROcvdjgBuBr0Qc+zngJDPbC9gBfCJcfxJBbYRyVwKb3f0IggzS4wDc/QbgA3ef4u6zwm0PIZhiehLwHnB+zM9CpE8NN8WECIC7v29mxxF8+Z4GfM+C6lbtBJPR/SicaqMJKJ+n5eHw/UvM7CNmtjfBBHbfNrNDCKYwGBxx+OeAa4E3gB8CZ5rZMGCCu6+y7hXxTgbuCI+5wsxW9LHfN9x9efjzS0BrH9uKxKaGQBqWu+8EFhPMQPoLgokGXwJedfcTKr2tl+VbgEXu/t/CL/HFEYdeRjDV9+vAjwhmwvzT8NjVKJ8xdifhbSSRaunWkDQkMzss/Au+ZAqwDlgFjAk7kzGzwWY2qWy7z4XrTySY1XETwTTlpWl+L4k6dlhJ6y3gQuAFgiuEv2T320KE62aGxzwSmFz22vbwVpZIqtQQSKMaQXA7Z2V4u2UiMCf8kr4A+JqZ/RxYDny87H1bzOxl4F6Cee4Bvg78Tbg+7lX0c8Bv3P2D8Odx4XNP9wAjzOw1YC7drxrmASvKOotFUqHZR0VCZrYY+Ms6r1kg0m+6IhARKThdEYiIFJyuCERECk4NgYhIwakhEBEpODUEIiIFp4ZARKTg/j90JG4o2EOfzQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df1=df[df.cluster==0]\n", + "df2=df[df.cluster==1]\n", + "df3=df[df.cluster==2]\n", + "plt.scatter(df1['Sepal width'], df1['Sepal length'], color='pink', label='1')\n", + "plt.scatter(df2['Sepal width'], df2['Sepal length'], color='red', label='2')\n", + "plt.scatter(df3['Sepal width'], df3['Sepal length'], color='yellow', label='3')\n", + "plt.xlabel('Sepal width')\n", + "plt.ylabel('Sepal length')\n", + "plt.scatter(km.cluster_centers_[:,0], km.cluster_centers_[:,1], color='blue', marker='*', label='centroid')\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [], + "source": [ + "##elbow plot method\n", + "k_rng = range(1,10)\n", + "sse = []\n", + "for k in k_rng:\n", + " km = KMeans(n_clusters=k)\n", + " km.fit(df[['Sepal width', 'Sepal length']])\n", + " sse.append(km.inertia_) ##SSE\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'SSE')" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(k_rng, sse)\n", + "plt.xlabel('K')\n", + "plt.ylabel('SSE')\n", + "##답은 3개의 K" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}