{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "UqHcRqQPlsd3"
},
"source": [
"# 머신 러닝 교과서 3판"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d_mMtNoelsd5"
},
"source": [
"# 11장 - 레이블되지 않은 데이터 다루기: 군집 분석"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "LQlvShEtlsd5"
},
"source": [
"**아래 링크를 통해 이 노트북을 주피터 노트북 뷰어(nbviewer.jupyter.org)로 보거나 구글 코랩(colab.research.google.com)에서 실행할 수 있습니다.**\n",
"\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ECqHPRxylsd6"
},
"source": [
"### 목차"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7zROhiCUlsd6"
},
"source": [
"- k-평균 알고리즘을 사용하여 유사한 객체 그룹핑\n",
" - 사이킷런을 사용한 k-평균 군집\n",
" - k-평균 ++로 초기 클러스터 센트로이드를 똑똑하게 할당\n",
" - 직접 군집 vs 간접 군집\n",
" - 엘보우 방법을 사용하여 최적의 클러스터 개수 찾기\n",
" - 실루엣 그래프로 군집 품질을 정량화\n",
"- 계층적인 트리로 클러스터 조직화\n",
" - 상향식으로 클러스터 묶기\n",
" - 거리 행렬에서 계층 군집 수행\n",
" - 히트맵에 덴드로그램 연결\n",
" - 사이킷런에서 병합 군집 적용\n",
"- DBSCAN을 사용하여 밀집도가 높은 지역 찾기\n",
"- 요약"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qa9AH03Alsd6"
},
"source": [
"
\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"execution": {
"iopub.execute_input": "2021-10-23T10:43:42.673735Z",
"iopub.status.busy": "2021-10-23T10:43:42.672737Z",
"iopub.status.idle": "2021-10-23T10:43:42.675419Z",
"shell.execute_reply": "2021-10-23T10:43:42.674810Z"
},
"id": "5e8TX0F_lsd6"
},
"outputs": [],
"source": [
"from IPython.display import Image"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_jp38ToZlsd7"
},
"source": [
"# k-평균 알고리즘을 사용하여 유사한 객체 그룹핑"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QUiYlcuHlsd7"
},
"source": [
"## 사이킷런을 사용한 k-평균 군집"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2021-10-23T10:43:42.682177Z",
"iopub.status.busy": "2021-10-23T10:43:42.681039Z",
"iopub.status.idle": "2021-10-23T10:43:43.241935Z",
"shell.execute_reply": "2021-10-23T10:43:43.242402Z"
},
"id": "jbzyHg5Elsd7"
},
"outputs": [],
"source": [
"from sklearn.datasets import make_blobs\n",
"\n",
"X, y = make_blobs(n_samples=150,\n",
" n_features=2,\n",
" centers=3,\n",
" cluster_std=0.5,\n",
" shuffle=True,\n",
" random_state=0)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:43.248642Z",
"iopub.status.busy": "2021-10-23T10:43:43.247389Z",
"iopub.status.idle": "2021-10-23T10:43:43.612366Z",
"shell.execute_reply": "2021-10-23T10:43:43.612836Z"
},
"id": "ROCmGQl9lsd8",
"outputId": "2a620a92-20be-47b2-86cb-effc34cc3e31"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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ofeFKhG23W43Dh06hLq6OpSWluL06dPo6upCJBJBe3s77rrrrqyONzPSkWhmJTvYbdiwARs2bMjHWIiIyIQcDgccDgei0SgGBwdRUlICm82Gc+fOaX7ofSGSupEksWzb1NQ0Lngn/h5nzZo16XizdF+TwLNj8y/vu2IvX76My5cvJ/+cmHodHR3F6Ohovl/eFBJ1Yr3Uw5qrjzVXlxb1vuKKKzB79uzk686cOROzZs3C6dOnM47jzJkzmDVrFmbOnGno94ee3uO33HIL9u3bh0uXLiXD9pVXXgngD+NramrChg0b4PV6sX37dvziF79AIBDAiy++iFgshqKiIggh0NjYmPZrxoa7eDyORx55BB988AE6OjpUqYOeap4LOeO3CCFEti9ksViwf/9+VFdXp33ME088gSeffHLSx/ft24eZM2dm+9JEREREBWF4eBj3338/BgYGplzCznuwSzVjt2jRIpw/f57r6xKNjo7i4MGDWL9+PaZNm6b1cAoCa64+1lxdeqn30aNHsWHDBmzZsiXtDE9nZydefvllCCHGzRhZrVZs3LgRbrcbq1evzuq15TxfqtktOfRSc7m+973vwev1Svo7StTtzTffRCAQwI9//ONkbauqqlBfX5/V31W2jFrziQYHBzFnzhxJwS7vS7EzZszAjBkzJn182rRphi6yFlgz9bHm6mPN1aV1vSsrK7Fjxw643W688soraW/mTzQwLisrw7e+9S0sXboUp06dQldXF2677Ta0t7fD5XJJft1AICD5+cLhMPx+v2LNk7WuuVy9vb1YvHhx2k0uO3bswKuvvopdu3ahoqICAFBRUYGKiopJ91VqxWg1n0jO2HnyBBERaWqqm/mFEKisrFTsNAM5pyP8+7//ezIA+ny+cQGwoqJCdqA0mkRvumx3LttsNm6SUJnsYHfx4kW8//77yT+fOXMGx44dw+zZs3HNNdcoOjgiIioM6XbOAoDT6Zyy111vby/8fr+kYCfldITe3l489thjOHz4cEEfj5VNbzoGOW3JblD8b//2b7jppptw0003AQBaWlpw00034Zvf/KbigyMiosIy8VQIpU8zkPN8b7zxRsE3T5Z7DBnvndee7GC3bt06CCEm/ffDH/4wD8MjIqJCpvRpBlKf7zOf+QyEEAV/PJacY8jYm04feFYsERHpltIzRhOfLxqN4ty5c5OC2fHjxyGE4PFYkH4Mmcfj0WaANA6DHRER6ZbSM0aJ53v66adRW1uL4uJizJ8/H8XFxXA6nThy5Aji8Tj27duHoqIiUyxBpguvUq1duxYtLS1oa2tLLj0nzvxdtWoVdu/ejfb2dtPeZ2g0DHZERKRrSs8YXXvttfjggw/w7rvvwufzIRgMwufzIRKJoKKiAnfeeSdOnDiByspKQy9BhsNhOJ3OZHidNWsWNm7ciNdee03W8wQCAezcuRPXXnstbDYbvF4vNm3ahJaWFhw/fhzbtm0z9c5gwxEqGxgYEADEwMCA2i9tWCMjI6Knp0eMjIxoPZSCwZqrjzVXl9HqHQgEhMViEXa7XbS2tooDBw6I1tZWYbfbhcViEYFAQNLzhEIhYbFYRFNTk4jFYuM+F4vFRGNjowAgvF6vpMdaLBbR29sr6bXVrHl7e3uyXo2NjeILX/iCKCoqEgCExWIRn/3sZ0U4HJ7yeVLVYHh4WPT394uLFy8mayDlubRgtPd5OnKyE4OdAZjljWkkrLn6WHN1GbHe4XBYOJ1OYbVaBQBhtVqF0+mUFSpqa2uF3W6fFNQSYrGYKCsrE06nUwiRPlCuWLFCAEiOo7a2dspxqFXzsWFs9+7d48YfDAZFa2urWL58uaRALKVedrs9WS+9MeL7PBU52YkNiomIyBAy9bqTQmqz3YcffjjZbDdV82SLxYLi4mI0NjZi/fr1umtYnGjDUltbi3Xr1mXdhy/X5sSkDd5jR0REhjKx151U2bZOcTgc6O7uxiuvvAIAqK+vx3/9139h165dqKqqgsfjQV9fH7Zu3Qq3240jR45k940pYGyfvl27duXUh0/pVjOkDgY7IiIqCLm2TgkEArDb7Whra9Ntw+JEGFu4cGHOjZ3ZnNiYGOyIiKgg5NI6RekTMPIlEcYikUjOs21sTmxMDHZERFQwsm2dYpRlyUQY27dvnyKzbWxObDzcPEFERIaQ7aaJsdauXYv29na43W4cOnQIdXV1KC0txenTp9HV1YVIJJKy2a6RliU9Hg8qKyuxdOlSdHV1oampKeUso5TZtmzrRdrhjB0REelCuhMSJjbaHXtKRDZcLhdCoRDsdnuy2a7X64XdbkcoFEq5q9VIy5KJMPb+++/j3XffzXm2LZt6kXY4Y0dERJoKh8Pw+/3o6elBLBaD1WpFdXU1mpub8e///u9oaGhAWVkZfD4fli5dqkh7kWxapyRmwpqbmyftNB0blDo7O2WPR2mJNi2NjY3YtWsXXn75ZdTX12c925ZrqxlSD4MdERFpJhAIZAxuQgg0NTVl1YdNCpvNJjmgGG1Z0uFw4Fe/+hVee+01tLa2JvvwWa1W1NTUoLOzU/ZY5dSLtMFgR0REmgiHw2hoaMjYQLetrQ1OpzNte5He3l74/X7VwlSqhsW5BCU13HHHHbjjjjs421YgGOyIiEgTib5vmRroHjx4ELt27UJFRcWkr9fq1AOjLktytq0wcPMEERGpTmpfuC1btmTsC6dle5FsT8AgyicGOyIiUp1SfeH00F7EzNLtVCb9YrAjIiLVKdEXTi/tReT6+OOPdR+UlG4xQ+phsCMiItVJ7QsXCARQWlqKGTNmTPqc3FMPtJx9CofDeOCBBwAAy5Yt03VQCgQCqKysRCQSgc/nQzAYhM/nQyQSQUVFBTo6OrQeImXAYEdERJqQclzVyZMncfLkyeRO1GAwCL/fj/LycuzevVtSexGtZ58SQenEiRMAgOeff163QWnsTuW+vj54PB5UVVXB4/Ggr68PW7duhdvt1mUgpf9PqGxgYEAAEAMDA2q/tGGNjIyInp4eMTIyovVQCgZrrj7WXF16qXcgEBAWi0XY7XbR2toqDhw4IFpbW4XdbhcWi0UEAgERDoeF0+kUVqtVABBWq1U4nU4RDoenfP729vZxzx8MBic9v1zDw8Oiv79fDA8PT/nYUCgkLBaLaGpqEpcuXRpX81gsJhobG4XFYpH0vaihtrZW2O12EYvFUn4+FosJu90unE6nyiPLjl7e57mSk50Y7AzALG9MI2HN1ceaq0tP9ZYa3OQEKiHGh6qJQSWbUBUKhURtbe24cdbW1mb8+rFBKVXN9RSUhoeHhdVqFa2trRkf19raKqxWq+S/By3p6X2eCznZiUuxRESkKYfDge7ubgwNDaG/vx9DQ0Po7u6etMQqt72IlD55ZWVl8Pv9Uz5XNvedSW3pUldXl7Gli1qU2qlM2mKDYiIi0gUlG+gmQpXP50sZqhLNhTdv3oxvfOMbGRscSzkhI9XRZtkEJS139yqxU5m0xxk7IiIynXShauJGim984xuIx+M4dOhQ2ufKdubPaEFJ6k5lI7aYKSQMdkREZDqpQlW65dRly5Zh06ZNii+nGjEoSdmpLKfFDKmPwY6IiExnYqjK1MYjEomkbeOR631nRgtKa9euRXt7O9ra2nJqMUPa4T12RERkSh6PB5WVlWhubsaHH3445XJqb28v/H7/uNCS63JqIii53W6EQiE8/vjjeOmll3DmzBl0dXUhEonoLii5XK5kqPN6vYjFYrBaraipqUFnZ6euxkqTMdgREZEpJUJVfX09LBYLdu7cOeVyqtfrHbeRYuzMX1NTU8qvn2o5NRGUnnnmGQDAfffdh5GREV0HJYfDAYfDkdxkUlJSooulYpoal2KJiMi0XC4XgsEghBCaLqc6HA7s3bsXAHDy5Mm0LV30Rm6LGdIeZ+yIiMjU7rrrLsWWUw8dOoS6ujqUlpbi9OnTWS2nzp07F9OmTcv6+yHKhDN2RERkakrsTnW5XAiFQrDb7fB6vdi0aRO8Xi/sdjtCoRBcLle+vw0iSThjR0REpjd2I8XEDRRjl1M7OzvTPoee7zuLRqM4d+4cAGi+dKrH+hQSztgREZHpKdnGQ0/3nYXDYaxbtw6zZs1CaWkplixZglmzZuH222+f1LpFjbGMbf5cXFwMp9Op+jgKHYMdEREVBLMtpwYCAVRUVODw4cNYvnw5du7ciWAwiB07duDs2bNpz7DN11jknqVL+cGlWCIiKhh6Wk7NZQzhcBhutxsWi0X2GbZKy/YsXcoPztgREVHB0XI59ejRozkvWfr9fnz605+esuny8uXLJ51hq7Rsz9Kl/GCwIyIiUtGGDRtyWrKMRqPYv38/hoaGpjzD1uVyTTrDVkm5nKVL+cGlWCIiIhUcPXoUALBlyxb4fL6slywHBweTbVvkNF3Ox+xkNmfp6mHTiZlxxo6IiEgFgUAAALB9+/aclixLSkpQVFSEoqKirJsuKyXXs3RJeQx2REREeRaNRvHiiy8CQM5LljabDTU1NSguLp6y6XJHR0fapstKUKL5MymLwY6IiCjPEkuWU0l3Xu1EHo8HAwMDU55h+95772U8w1YJSpylS8rhPXZERERZktqyJLFkORWpS5Zr165FIBBAfX09du3ahVdffRVbtmxJnmEbCARw8uRJWWfYZkvps3QpNwx2REREMoXDYfj9fvT09CAWi8FqtaK6uhrNzc0pA4zNZsPGjRsBQLElS5fLhfLycjz22GM4fPgwWlpaIIRAUVERKisr8f3vf1+1MJUYi9/vh9frTdakpqYGnZ2dDHUqYrAjIiKSIRAIoKGhAWVlZfD5fFi6dClOnTqFrq4uVFRUoL29PeUpFvX19fiv//ovPProo5N2xUo9r3Yih8OBn/3sZ7o4K1ZPzZ8LGYMdERGRRLmcsrBmzRq89NJL2LNnD1555RVFlyxtNhsWL16c67enCJvNxkCnIQY7IiIiiaScstDb2wu/3582oL388svYtWsXlywpLxjsiIiIJEicsjBxGXWsRMsSr9eLaDSacuZq9erVqKio4JIl5QWDHRERGZ4aIUnpUxa4ZEn5wD52RERkWOFwGE6nE8XFxZg/fz6Ki4vhdDpx5MgRxV+LpyyQETDYERGRIQUCAVRWViISicDn8yEYDMLn8yESiaCiogIdHR2Kvp5ZTllI7KDNdLoFGReDHRERGc7Y3al9fX3weDyoqqqCx+NBX18ftm7dCrfbrfjMnZFPWUg1u1lTU5OX2U3SDoMdEREZjpTdqWVlZfD7/Yq+buKUhba2tmRD3mAwCL/fj/LycuzevVuXpywkZjfffffdcbOb7777LioqKvD1r39d6yGSQrh5goiIDEWp3anZMtopC1J67/l8PgDAd7/7Xa2GSQphsCMiIkNRendqNox0yoLf78fKlSszzm4ePHgQO3bsQHV1te6CKcnDpVgiIjIUPe1Otdlsmh3hJUVidvPhhx/OOLu5ZcsWAMCOHTvUHB7lAYMdEREZill2p6pBzuymEAIHDhzgblmDY7AjIiLDMfLuVDXJnd2Mx+MYHBxUaXSUD1kFu2eeeQaLFy/GlVdeiVtvvRX/+q//qvS4iIiI0jLq7lS12Ww2VFVVIRAITDm7uWrVKjZWNgHZwe6FF15AS0sLHn/8cfzqV7/CjTfeiC9+8Yv4+OOP8zE+IiKilFwuF0KhEOx2O7xeLzZt2gSv1wu73Y5QKASXy6X1EHVh27ZtOHny5JSzmwMDAwW/dG0GsnfF7ty5E3V1dfja174GAOjo6MBPfvITfP/738cjjzyi+ACJiIjSMdLuVK2sXbsWLS0t2LFjB1599VVs2bIFpaWlOH36NLq6uhCJRHDbbbfh8OHD+Md//Eeth0s5khXsRkZG8NZbb+HRRx9NfqyoqAh33XUXjh49qvjgiIiIpLDZbAx0Gfh8PlgsFuzYsQMtLS0QQsBqtWLVqlW49tprcfjwYS5dm4SsYHf+/HnEYjHMmzdv3MfnzZuH48ePp/yay5cv4/Lly8k/J27KHB0dxejoqNzxFqREnVgv9bDm6mPN1cV6q0/rmn/729/Gl7/8ZezevRs/+clPEI/HcerUKVRVVeG5557D6tWrTfd+0LrmSpEzfosQQkh98NmzZ/GZz3wGP//5z7FmzZrkx//6r/8ahw8fxi9+8YtJX/PEE0/gySefnPTxffv2YebMmZIHSkRERFSIhoeHcf/992NgYGDKzS2yZuzmzJkDq9WKc+fOjfv4uXPnMH/+/JRf8+ijj6KlpSX558HBQSxatAh33303d95INDo6ioMHD2L9+vWYNm2a1sMpCKy5+lhzdbHe6mPN1WeWmstpQSMr2E2fPh0333wzent7UV1dDeD3O2p6e3uxdevWlF8zY8YMzJgxY9LHp02bZugia4E1Ux9rrj7WXF2st/pYc/UZveZyxi57V2xLSws2b96Mz33uc7jlllvg9/vxySefJHfJEhEREZE2ZAe7v/iLv8Bvf/tbfPOb30R/fz/+9E//FC+//PKkDRVEREREpC7ZwQ4Atm7dmnbplYiIiIi0wbNiiYiIiEyCwY6IiIjIJBjsiIiIiEyCwY6IiAhANBrFuXPnEI1GtR4KUdYY7IiIqKCFw2E4nU4UFxdj/vz5KC4uhtPpxJEjR7QeGpFsDHZERFSwAoEAKisrEYlE4PP5EAwG4fP5EIlEUFFRgY6ODq2HSCRLVu1OiIiIjC4cDqOhoQGNjY1obW1FUdEf5jqamprg8XjgdrtRXl4Oh8Oh4UiJpOOMHRERFSS/34+ysrJJoQ4AioqKkp/3+/3aDJAoCwx2RERUcKLRKHp6elBXVzcp1CUUFRWhrq4O+/fv54YKMgwGOyIiKjiDg4OIxWJYunRpxseVlpYiFothcHBQpZER5YbBjoiICk5JSQmsVitOnTqV8XGnT5+G1WpFSUmJSiMjyg2DHRERFRybzYbq6mp0dXUhHo+nfEw8HkdXVxdqampgs9lUHiFRdhjsiIioIHk8HkQiETQ3N08Kd/F4PPl5j8ejzQCJssB2J0REVJDWrl2L9vZ2uN1uHDp0CHV1dSgtLcXp06fR1dWFSCSC9vZ2tjohQ2GwIyKiguVyuVBeXg6/3w+v14tYLAar1Yqamhp0dnYy1JHhMNgREVFBczgccDgciEajGBwcRElJCe+pI8NisCMiIsLvN1Qw0JHRcfMEERERkUkw2BERERGZBIMdERERkUkw2BERERGZBIMdERERkUkw2BERERGZBIMdERERkUkw2BERERGZBIMdERERkUkw2BERERGZhOpHigkhAACDg4Nqv7RhjY6OYnh4GIODg5g2bZrWwykIrLn6WHN1sd7qY83VZ5aaJzJTIkNlonqwGxoaAgAsWrRI7ZcmIiIiMqyhoSF8+tOfzvgYi5AS/xQUj8dx9uxZFBcXw2KxqPnShjU4OIhFixbhN7/5DUpKSrQeTkFgzdXHmquL9VYfa64+s9RcCIGhoSEsWLAARUWZ76JTfcauqKgICxcuVPtlTaGkpMTQb0wjYs3Vx5qri/VWH2uuPjPUfKqZugRuniAiIiIyCQY7IiIiIpNgsDOAGTNm4PHHH8eMGTO0HkrBYM3Vx5qri/VWH2uuvkKsueqbJ4iIiIgoPzhjR0RERGQSDHZEREREJsFgR0RERGQSDHZEREREJsFgZyAffPABHnroISxZsgQ2mw1Lly7F448/jpGREa2HZmp///d/jy984QuYOXMm/uiP/kjr4ZjSM888g8WLF+PKK6/Erbfein/913/Vekim9sYbb6CqqgoLFiyAxWJBT0+P1kMyte3bt+Pzn/88iouLMXfuXFRXV+PEiRNaD8vUAoEAbrjhhmRj4jVr1uCnP/2p1sNSBYOdgRw/fhzxeBx79uzBO++8g9bWVnR0dOAb3/iG1kMztZGREdx7772or6/Xeiim9MILL6ClpQWPP/44fvWrX+HGG2/EF7/4RXz88cdaD820PvnkE9x444145plntB5KQTh8+DAaGhrw5ptv4uDBgxgdHcXdd9+NTz75ROuhmdbChQvxne98B2+99Rb+7d/+DXfccQc2bdqEd955R+uh5R3bnRjcd7/7XQQCAZw+fVrroZjeD3/4Q3g8Hvzud7/Teiimcuutt+Lzn/88du/eDeD350kvWrQIjY2NeOSRRzQenflZLBbs378f1dXVWg+lYPz2t7/F3LlzcfjwYVRWVmo9nIIxe/ZsfPe738VDDz2k9VDyijN2BjcwMIDZs2drPQyirIyMjOCtt97CXXfdlfxYUVER7rrrLhw9elTDkRHlz8DAAADw2q2SWCyG559/Hp988gnWrFmj9XDy7gqtB0DZe//999HW1gafz6f1UIiycv78ecRiMcybN2/cx+fNm4fjx49rNCqi/InH4/B4PHA4HFi1apXWwzG1vr4+rFmzBpcuXcKsWbOwf/9+2O12rYeVd5yx04FHHnkEFosl438Tf8h99NFH+NKXvoR7770XdXV1Go3cuLKpORFRrhoaGvD222/j+eef13ooprdixQocO3YMv/jFL1BfX4/Nmzfj3Xff1XpYeccZOx3Ytm0b/uqv/irjY0pLS5P//+zZs7j99tvxhS98AZ2dnXkenTnJrTnlx5w5c2C1WnHu3LlxHz937hzmz5+v0aiI8mPr1q148cUX8cYbb2DhwoVaD8f0pk+fjuuuuw4AcPPNN+OXv/wlnn76aezZs0fjkeUXg50OXHXVVbjqqqskPfajjz7C7bffjptvvhk/+MEPUFTESddsyKk55c/06dNx8803o7e3N3nzfjweR29vL7Zu3art4IgUIoRAY2Mj9u/fj9dffx1LlizRekgFKR6P4/Lly1oPI+8Y7Azko48+wrp163DttdfC5/Pht7/9bfJznN3In1//+te4cOECfv3rXyMWi+HYsWMAgOuuuw6zZs3SdnAm0NLSgs2bN+Nzn/scbrnlFvj9fnzyySf42te+pvXQTOvixYt4//33k38+c+YMjh07htmzZ+Oaa67RcGTm1NDQgH379uHAgQMoLi5Gf38/AODTn/40bDabxqMzp0cffRQbNmzANddcg6GhIezbtw+vv/46XnnlFa2Hln+CDOMHP/iBAJDyP8qfzZs3p6z5z372M62HZhptbW3immuuEdOnTxe33HKLePPNN7Uekqn97Gc/S/me3rx5s9ZDM6V01+0f/OAHWg/NtB588EFx7bXXiunTp4urrrpK3HnnneLVV1/VeliqYB87IiIiIpPgDVpEREREJsFgR0RERGQSDHZEREREJsFgR0RERGQSDHZEREREJsFgR0RERGQSDHZEREREJsFgR0RERGQSDHZEREREJsFgR0RERGQSDHZEREREJsFgR0RERGQS/w+7FoEL5owuawAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.scatter(X[:, 0], X[:, 1],\n",
" c='white', marker='o', edgecolor='black', s=50)\n",
"plt.grid()\n",
"plt.tight_layout()\n",
"# plt.savefig('images/11_01.png', dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2021-10-23T10:43:43.618756Z",
"iopub.status.busy": "2021-10-23T10:43:43.617747Z",
"iopub.status.idle": "2021-10-23T10:43:44.142684Z",
"shell.execute_reply": "2021-10-23T10:43:44.143242Z"
},
"id": "6t8fxe8hlsd8"
},
"outputs": [],
"source": [
"from sklearn.cluster import KMeans\n",
"\n",
"km = KMeans(n_clusters=3,\n",
" init='random',\n",
" n_init=10,\n",
" max_iter=300,\n",
" tol=1e-04,\n",
" random_state=0)\n",
"\n",
"y_km = km.fit_predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:44.147813Z",
"iopub.status.busy": "2021-10-23T10:43:44.146671Z",
"iopub.status.idle": "2021-10-23T10:43:44.340066Z",
"shell.execute_reply": "2021-10-23T10:43:44.340856Z"
},
"id": "uH6KDjPglsd8",
"outputId": "bf7848b4-ec10-48e4-e806-119069976b82"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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nz8fI0eOdPRQbIordi7u/v37qFmzpqOHQWSRgoICHD16FL169TI8JpfL0atXLxw8eNCBIyOynfv37wMA/91tJxqNBuvXr8fDhw8REhLi6OHYXCVHD4Asd+7cOSxZsgSJiYmOHgqRRf78809oNBrUrVu3xON169bFqVOnHDQqItvRarWIi4tDaGgoWrVq5ejhSNqJEycQEhKCR48ewdvbG5s2bcKzzz7r6GHZHFfsnMDUqVMhk8nK/FP6l1x2djb69u2LwYMHY9SoUQ4aueuyZM6JiCoqNjYWv//+O9avX+/ooUjeM888g2PHjuGXX37B6NGjMWLECJw8edLRw7I5rtg5gUmTJuGNN94o85qAgADD/7527Rq6d++OLl26YNWqVTYenTSJnXOyjVq1akGhUODmzZslHr958ybq1avnoFER2caYMWPwww8/YN++fWjYsKGjhyN5lStXxtNPPw0AaN++PY4cOYJPPvkEK1eudPDIbIvBzgnUrl0btWvXFnRtdnY2unfvjvbt2+PLL7+EXM5FV0uImXOyncqVK6N9+/bYvXu34eZ9rVaL3bt3Y8yYMY4dHJGV6HQ6jB07Fps2bcKePXvQtGlTRw/JLWm1WuTn5zt6GDbHYOdCsrOzERERgcaNGyMxMRG3b982fI+rG7aTlZWFO3fuICsrCxqNBseOHQMAPP300/D29nbs4CRg4sSJGDFiBJ5//nl07NgRixcvxsOHD/Hmm286emiS9eDBA5w7d87w9cWLF3Hs2DHUrFkTjRo1cuDIpCk2Nhbr1q3D5s2b4ePjgxs3bgAAqlWrBqVS6eDRSdO0adMQFRWFRo0aIScnB+vWrcOePXuwc+dORw/N9nTkMr788ksdAJN/yHZGjBhhcs5/+uknRw9NMpYsWaJr1KiRrnLlyrqOHTvqDh065OghSdpPP/1k8md6xIgRjh6aJJn79/aXX37p6KFJ1ltvvaVr3LixrnLlyrratWvrevbsqUtNTXX0sOyCdeyIiIiIJII3aBERERFJBIMdERERkUQw2BERERFJBIMdERERkUQw2BERERFJBIMdERERkUQw2BERERFJBIMdERERkUQw2BERERFJBIMdERERkUQw2BERERFJBIMdERERkUT8P2b9Tm5ponPfAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
],
"source": [
"plt.scatter(X[y_km == 0, 0],\n",
" X[y_km == 0, 1],\n",
" s=50, c='lightgreen',\n",
" marker='s', edgecolor='black',\n",
" label='Cluster 1')\n",
"plt.scatter(X[y_km == 1, 0],\n",
" X[y_km == 1, 1],\n",
" s=50, c='orange',\n",
" marker='o', edgecolor='black',\n",
" label='Cluster 2')\n",
"plt.scatter(X[y_km == 2, 0],\n",
" X[y_km == 2, 1],\n",
" s=50, c='lightblue',\n",
" marker='v', edgecolor='black',\n",
" label='Cluster 3')\n",
"plt.scatter(km.cluster_centers_[:, 0],\n",
" km.cluster_centers_[:, 1],\n",
" s=250, marker='*',\n",
" c='red', edgecolor='black',\n",
" label='Centroids')\n",
"plt.legend(scatterpoints=1)\n",
"plt.grid()\n",
"plt.tight_layout()\n",
"# plt.savefig('images/11_02.png', dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "c9JXA1PRlsd9"
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "pHhc5F78lsd9"
},
"source": [
"## k-평균 ++로 초기 클러스터 센트로이드를 똑똑하게 할당"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9Y0eBpr7lsd9"
},
"source": [
"..."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "goFnVAfplsd9"
},
"source": [
"## 직접 군집 vs 간접 군집"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9W9ynY7Blsd9"
},
"source": [
"..."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "SDjpKK3-lsd-"
},
"source": [
"## 엘보우 방법을 사용하여 최적의 클러스터 개수 찾기"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:44.346360Z",
"iopub.status.busy": "2021-10-23T10:43:44.344380Z",
"iopub.status.idle": "2021-10-23T10:43:44.350172Z",
"shell.execute_reply": "2021-10-23T10:43:44.349355Z"
},
"id": "HkOCdPuRlsd-",
"outputId": "a88e10e9-e02a-42c8-87a5-82e27f57a89a"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"왜곡: 72.48\n"
]
}
],
"source": [
"print('왜곡: %.2f' % km.inertia_)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:44.360841Z",
"iopub.status.busy": "2021-10-23T10:43:44.360151Z",
"iopub.status.idle": "2021-10-23T10:43:48.568551Z",
"shell.execute_reply": "2021-10-23T10:43:48.567454Z"
},
"id": "1x5O1iKElsd-",
"outputId": "3509b2f3-34b3-4f14-9b89-1cc0a9876113"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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yM3N1ZgxYxQVFaWkpCTNnDmTVsNW4FvPbvdhkysBAAC1GtVi98YbbzTrl3fq1Elz587VueeeK8Mw9Oabb+rqq6/Wt99+q969e2v69On66KOP9P7778vpdGrq1Km69tprtXr1akk1XcNjxoxRSkqKvv76ax04cECTJk2S3W7Xk08+2ay1wl/tzNht+91yl1cpLsJuckUAAMBiBNjjIhISEvQf//Efuu6669ShQwctXLhQ1113nSTp+++/V69evZSVlaVhw4bp448/1tixY7V//37fpI758+fr/vvv18GDBxUeHt6g73S73XI6nXK5XIqLi2uxews1F89bqdyio3rj1sH69XlJZpcDAEBIakxOafQjxVqKx+PRu+++q7KyMmVkZGj9+vWqqqrSiBEjfOf07NlTXbp0UVZWliQpKytLffv29ZupO2rUKLndbm3duvWU31VRUSG32+23ofGGHF/2JJtlTwAACAimB7vNmzcrJiZGDodDd955pxYtWqT09HTl5+crPDxc8fHxfucnJycrPz9fkpSfn3/S8iu172vPqc+cOXP8xgZ27ty5eW+qjRjCenYAAAQU04Pdeeedp40bN2rt2rWaMmWKJk+erG3btrXod86aNUsul8u35eXltej3haqhx4Pdpr3FKq/ymFwNAABo1OSJlhAeHq7u3btLkgYOHKjs7Gw9//zzuuGGG1RZWani4mK/VruCggKlpNQsr5GSkqJ169b5Xa921mztOfVxOBynXLIFDdclIUrJcQ4VuCv0bW6xMs5JNLskAADaNNNb7E7k9XpVUVGhgQMHym63a/ny5b5jO3bsUG5urjIyMiRJGRkZ2rx5swoLC33nLFu2THFxcUpPT2/12tsai8XiewoF3bEAAJjP1Ba7WbNmafTo0erSpYtKSkq0cOFCff755/rkk0/kdDp1++23a8aMGUpISFBcXJzuuusuZWRkaNiwYZKkkSNHKj09XTfffLPmzZun/Px8Pfjgg8rMzKRFrpUMTUvQku8OaNm2fHVrH6Wk2AgNSUuQzWoxuzQAANocU4NdYWGhJk2apAMHDsjpdOr888/XJ598ot/85jeSpGeffVZWq1UTJkxQRUWFRo0apZdeesn3eZvNpiVLlmjKlCnKyMhQdHS0Jk+erMcee8ysW2pzKj01q+Vs2e/WPe9ulCR1dEZo9rh0XdGno4mVAQDQ9gTcOnZmYB27plm65YCmvL1BJ/4DVNtW9/JNFxDuAAA4Q0G5jh2Ci8dr6NEPt50U6iT59j364TZ5vG3+/xsAAGg1BDs0ybqcIh1wlZ/yuCHpgKucSRUAALQigh2apLDk1KGuKecBAIAzR7BDkyTFRjTreQAA4MwR7NAkQ9IS1NEZoVMtamJRzezY2seOAQCAlkewQ5PYrBbNHlezCPSpwt3scemsZwcAQCsi2KHJrujTUS/fdIFSnP7drRZJ8647n6VOAABoZaY/KxbB7Yo+HfWb9BStyylSobtczyz7QXuKjmrP4aNmlwYAQJtDix3OmM1qUcY5ibp6wFmadWUvSdKCr3fLdbTK5MoAAGhbCHZoViPTk9UzJValFdV6fXWO2eUAANCmEOzQrKxWi+667FxJ0uurc+Qup9UOAIDWQrBDsxvdJ0XnJsWopLxab67ebXY5AAC0GQQ7NDur1aKpl3WXJP33Vzkqrag2uSIAANoGgh1axNjzU3V2+2i5jlXprazdZpcDAECbQLBDi7DVbbX7MkdltNoBANDiCHZoMVf1S1XXxCgVlVXqnbV7zC4HAICQR7BDiwmzWZX565pWu1e++EnHKj0mVwQAQGgj2KFFXTPgLHVqF6lDpZVauC7X7HIAAAhpBDu0KHudVrv5q35UeRWtdgAAtBSCHVrchAs6KdUZoYMlFXovO8/scgAACFkEO7S48DCrphxvtXv58x9VUU2rHQAALYFgh1bx20GdlBIXoXx3ud7/Zq/Z5QAAEJIIdmgVjjCbplx6jqSaVrvKaq/JFQEAEHoIdmg1NwzurKRYh/YVH9M/N9BqBwBAcyPYodVE2G364yU1rXYvfr5LVR5a7QAAaE4EO7SqfxvSRe1jwpVXdEwffLvP7HIAAAgpBDu0qshwm+64+GxJ0osrd6maVjsAAJoNwQ6tbuLQrkqIDtfuw0f14Xf7zS4HAICQQbBDq4t2hOn3v0qTJP1txS55vIbJFQEAEBoIdjDFpIxuio+y66eDZVpCqx0AAM2CYAdTxDjCdPvwn1vtvLTaAQBwxgh2MM3k4d0UGxGmXYWl+nhLvtnlAAAQ9Ah2ME1chF23+VrtdtJqBwDAGSLYwVS3DU9TjCNM3+eX6NNtBWaXAwBAUCPYwVTOKLtuubCbJOmF5TtlGLTaAQDQVAQ7mO72i9IUFW7TtgNuLd9eaHY5AAAELYIdTNcuOlyTMrpJkl5YQasdAABNRbBDQPj9r9IUabfpu70uff7DQbPLAQAgKBHsEBDaxzh007AukqTnP6PVDgCApiDYIWD84eKz5QizamNesb7adcjscgAACDoEOwSMpNgI/dtQWu0AAGgqgh0Cyp2XnKPwMKu+2XNEWT8dNrscAACCCsEOASU5LkI3Du4sqWZdOwAA0HCmBrs5c+Zo8ODBio2NVVJSksaPH68dO3b4nVNeXq7MzEwlJiYqJiZGEyZMUEGB/xMKcnNzNWbMGEVFRSkpKUkzZ85UdXV1a94KmtGdl5wju82iNT8VaS2tdgAANJipwW7VqlXKzMzUmjVrtGzZMlVVVWnkyJEqKyvznTN9+nR9+OGHev/997Vq1Srt379f1157re+4x+PRmDFjVFlZqa+//lpvvvmmFixYoIcfftiMW0IzSI2P1G8H1bTa/W3FLpOrAQAgeFiMABqhfvDgQSUlJWnVqlW6+OKL5XK51KFDBy1cuFDXXXedJOn7779Xr169lJWVpWHDhunjjz/W2LFjtX//fiUnJ0uS5s+fr/vvv18HDx5UeHj4ab/X7XbL6XTK5XIpLi6uRe8RDbP3yFFd+h+fq9pr6H+nZGhg1wSzSwIAwBSNySkBNcbO5XJJkhISav4SX79+vaqqqjRixAjfOT179lSXLl2UlZUlScrKylLfvn19oU6SRo0aJbfbra1bt9b7PRUVFXK73X4bAkundlG6bmAnSdILy2m1AwCgIQIm2Hm9Xk2bNk3Dhw9Xnz59JEn5+fkKDw9XfHy837nJycnKz8/3nVM31NUerz1Wnzlz5sjpdPq2zp07N/PdoDn86dLuslktWvXDQW3MKza7HAAAAl7ABLvMzExt2bJF7777bot/16xZs+RyuXxbXl5ei38nGq9LYpSuGXCWJOlvzJAFAOC0AiLYTZ06VUuWLNHKlSvVqVMn3/6UlBRVVlaquLjY7/yCggKlpKT4zjlxlmzt+9pzTuRwOBQXF+e3ITBl/rq7rBZp+feF2rLPZXY5AAAENFODnWEYmjp1qhYtWqQVK1YoLS3N7/jAgQNlt9u1fPly374dO3YoNzdXGRkZkqSMjAxt3rxZhYWFvnOWLVumuLg4paent86NoMWktY/W1f1rWu1Y1w4AgF9marDLzMzU22+/rYULFyo2Nlb5+fnKz8/XsWPHJElOp1O33367ZsyYoZUrV2r9+vW69dZblZGRoWHDhkmSRo4cqfT0dN18883atGmTPvnkEz344IPKzMyUw+Ew8/bQTDJ/3V0Wi/TptgJt289EFwAATsXUYPfyyy/L5XLp0ksvVceOHX3be++95zvn2Wef1dixYzVhwgRdfPHFSklJ0T//+U/fcZvNpiVLlshmsykjI0M33XSTJk2apMcee8yMW0IL6J4Uo7Hnp0qS/nMlrXYAAJxKQK1jZxbWsQt8PxSUaOSzX0iSPpl2sc5LiTW5IgAAWkfQrmMHnEqP5Fhd2bdmMsx/rmRdOwAA6kOwQ9CY+utzJUlLvtuvXYWlJlcDAEDgIdghaKSnxmlkerIMQ3qRVjsAAE5CsENQufvymla7f23cp5xDZSZXAwBAYCHYIaj0Ocupy3smyUurHQAAJyHYIejcdbzVbtG3+5R7+KjJ1QAAEDgIdgg6/TvH65IeHeTxGrTaAQBQB8EOQal2rN3/btirvCJa7QAAkAh2CFIDu7bTRd3bq9pr6OVVP5pdDgAAAYFgh6BV22r3/jd52l98zORqAAAwH8EOQWtIWoKGnZ2gKo+h+bTaAQBAsENwq221e3ddnvJd5SZXAwCAuQh2CGoZZydqcLd2qvR49V9f0GoHAGjbCHYIahaLRfdc3kOStHBtrgpLaLUDALRdBDsEveHdE3VBl3hVVHv16hc/mV0OAACmIdgh6FksFt9Yu7fX5OpQaYXJFQEAYA6CHULCJT06qF8np45VefTfX+aYXQ4AAKYg2CEk1G21eytrt4rKKk2uCACA1kewQ8i4rGeSeqfG6WilR69/RasdAKDtIdghZNRttVvw9W65jlaZXBEAAK2LYIeQ8pteyeqZEqvSimq9vppWOwBA20KwQ0ixWn9utXt9dY7c5bTaAQDaDoIdQs4VvVN0blKMSsqr9ebq3WaXAwBAqyHYIeRYrRbddbzV7r+/ylFpRbXJFQEA0DoIdghJY/p21NkdouU6VqW3snabXQ4AAK2CYIeQZLNadNdl3SVJ//1ljspotQMAtAEEO4SsceenqltilIrKKvXO2j1mlwMAQIsj2CFkhdmsyvx1TavdK1/8pGOVHpMrAgCgZRHsENLGDzhLnRMidai0UgvX5ZpdDgAALYpgh5Bmt1mVeWlNq938VT+qvIpWOwBA6CLYIeRde0EnnRUfqYMlFXovO8/scgAAaDEEO4S88DCrplx6jiTp5c9/VEU1rXYAgNBEsEObcP2gTkqJi1C+u1zvf7PX7HIAAGgRBDu0CY4wm1+rXWW11+SKAABofgQ7tBk3DO6spFiH9hUf0z830GoHAAg9BDu0GRF2m/54SU2r3Yuf71KVh1Y7AEBoIdihTfm3IV3UPsahvKJjWvTtPrPLAQCgWRHs0KZEhtv0x4vPliS9uHKXqmm1AwCEEIId2pyJw7ooITpcew4f1eJN+80uBwCAZkOwQ5sTFR6mP/yqptXuP1fsksdrmFwRAADNg2CHNunmjK6Kj7Lrp0NlWvIdrXYAgNBAsEObFOMI0+8vSpMk/W3FLnlptQMAhACCHdqsSRd2U1xEmHYVlurjLflmlwMAwBkzNdh98cUXGjdunFJTU2WxWPTBBx/4HTcMQw8//LA6duyoyMhIjRgxQjt37vQ7p6ioSBMnTlRcXJzi4+N1++23q7S0tBXvAsEqLsKu23ytdjtptQMABD1Tg11ZWZn69eunF198sd7j8+bN0wsvvKD58+dr7dq1io6O1qhRo1ReXu47Z+LEidq6dauWLVumJUuW6IsvvtAdd9zRWreAIHfrhWmKdYTp+/wSfbqtwOxyAAA4IxbDMAKimcJisWjRokUaP368pJrWutTUVN1777267777JEkul0vJyclasGCBbrzxRm3fvl3p6enKzs7WoEGDJElLly7VlVdeqb179yo1NbVB3+12u+V0OuVyuRQXF9ci94fA9fSnO/S3FbuU3jFOH919kSwWi9klAQDg05icErBj7HJycpSfn68RI0b49jmdTg0dOlRZWVmSpKysLMXHx/tCnSSNGDFCVqtVa9euPeW1Kyoq5Ha7/Ta0XbcNT1N0uE3bDri1fHuh2eUAANBkARvs8vNrBrMnJyf77U9OTvYdy8/PV1JSkt/xsLAwJSQk+M6pz5w5c+R0On1b586dm7l6BJN20eGadGE3SdILK3YqQBqxAQBotIANdi1p1qxZcrlcvi0vL8/skmCy31+Upki7Td/tdenzHw6aXQ4AAE0SsMEuJSVFklRQ4D+gvaCgwHcsJSVFhYX+XWfV1dUqKirynVMfh8OhuLg4vw1tW2KMQzdndJUkPf8ZrXYAgOAUsMEuLS1NKSkpWr58uW+f2+3W2rVrlZGRIUnKyMhQcXGx1q9f7ztnxYoV8nq9Gjp0aKvXjOD2h1+dLUeYVRvzivXVrkNmlwMAQKOZGuxKS0u1ceNGbdy4UVLNhImNGzcqNzdXFotF06ZN01//+lctXrxYmzdv1qRJk5SamuqbOdurVy9dccUV+sMf/qB169Zp9erVmjp1qm688cYGz4gFanWIdWjiUFrtAADBy9Rg980332jAgAEaMGCAJGnGjBkaMGCAHn74YUnSn//8Z91111264447NHjwYJWWlmrp0qWKiIjwXeOdd95Rz549dfnll+vKK6/URRddpFdeecWU+0Hw++MlZys8zKpv9hxR1k+HzS4HAIBGCZh17MzEOnaoa/a/tujNrD0adnaC3r0jw+xyAABtXEisYweY5c5Lz1G4zao1PxVpLa12AIAgQrADTtDRGanrB3WSJP1txS6TqwEAoOEIdkA9plx6jsKsFn2165DW7ykyuxwAABqEYAfUo1O7KF03sKbV7vnPdirrx8P618Z9yvrxsDzeNj8sFQAQoMLMLgAIVH+6tLv+8U2evth5SF/s/Hldu47OCM0el64r+nQ0sToAAE5Gix1wCtsOuFRf41y+q1xT3t6gpVsOtH5RAAD8AoIdUA+P19CjH26r91ht1nv0w210ywIAAgpdsUA91uUU6YCr/JTHDUkHXOV6aul2DU1LVIdYhzrEOpQY7VB4GP+/BAAwB8EOqEdhyalDXV2vfJGjV77I8dsXH2VXhxiHL+y1r30d41D74z87xDqUEB0um9XSEuU3isdraF1OkQpLypUUG6EhaQkBURcAoPEIdkA9kmIjTn+SpAGd41XtNXSwpEKHSitU7TVUfLRKxUertLOw9Bc/a7VICdE/B8Ca4BfuFwprXzsj7bJYmj9sLd1yQI9+uM2vdZLJIQAQvAh2QD2GpCWoozNC+a5y1TeKziIpxRmh/5lyoa91y+s15DpWpYOlFTpYUuELe7Wva/cfKq3Q4bJKeQ3pUGnN++2nmYdht1n8Wv78WgJPaBmMDrc1KAQu3XJAU97ecNL91U4OefmmCwh3ABBkCHZAPWxWi2aPS9eUtzfIIvmFn9rINHtcul+XpdVqUbvocLWLDleP5NhfvH61x6uiskq/EHiwtEKHSmr3lR8PgZVyHatSlcfQAVf5L477qxVptx0PeuH1dgd3iHWoXVS4Hlm8td7Qahy/x0c/3KbfpKfQLQsAQcRiGEabn9bXmIfrom0JhK7KimqPDpVW1gS9Oi1/fi2Cx38erfQ063c/Mi5dl5yXpMSYcMU6wlqkOxgA8Msak1MIdiLY4ZcF0+SCsopqv+7fE4PfwdJKHSqpUL6rXJ5G/qsfbrMqMSa8ZouuaQVsX+d9Yky42sfU/EyIDpcjzNZCd9k4wfT7A4D6NCan0BULnIbNalHGOYlml9Eg0Y4wRTvC1DUx+hfPy/rxkH736trTXi8p1qGyimqVVXpU6fE2uDtYkmIjwtTheNCrDX6JtWGwThBsHxOuuAi7rC0QtgKhxRUAWhPBDmiDhqQlNmhyyFf3Xyab1aJjlR4dLqvQ4dJKHS6rGft3qPT4++OTQQ7Vee3xGiopr1ZJebV+OlR22nrCrBYlRNcNfjWv64a/umEwwn761kAmhwBoiwh2QBvU2MkhkeE2dQqPUqd2Uae9ttdryF1e5R/+jofBw3XeHz5+3F1erWqvocKSChWWVDSo/uhwmy/4JUY71CHWv1UwIdKuBz/YwuQQAG0OY+zEGDu0XYHQVVlR7VFRWaUv6PkHP/8QeLi0UpUeb7N99zUDUtU71am4SLucdbba9w1dOsZMjCEEQh+TJxqJYIe2LJiCgWEYKqmo9nUB1w1+h0srdKisZnLI7sNlKnA3rPXvl4RZLb6QFxdpV1xEmF8ArC8M1r6OdYS1yLjBugIhmANoeQS7RiLYAaEl68fD+t2ra0573m96JSsy3CZ3eZVcx2o29/GfVZ4z+0+j1SLFRtgVF3lyGPSFxYj6Q2JsRJjCbL/8zOFTjSGsjZKMIQRCB7NiAbRpDX1yyPybB9bbOmkYho5VeeQ+Vu0LfHU39wk/ffuPB8TyKq+8hnz783Ss0fcQ4wirEwLD/IJgbESYXvsqp02MIQymFmUgENBiJ1rsgFBU26Il1T85pCVbtCqqPScEwF8OiHVflzXjItPto8PVPtahGEeYYiLCFBthV4wjTHERYYpxhCk2IkwxdffVOSc2IkyOMKupYwzpagZq0BXbSAQ7IDQFYzCo8nhVUn7qIOg+VqXv9hYr66eiFq/FbrMcD3l2Xzj8ORTajwfBMMXWBkdH3X0/v7afplu5PnQ1Az8j2DUSwQ4IXaHYldfQMYR/Hd9H3RKjVVpRJXd5tUrLq1VaUa2S8iqVVlT79tW+Lz2+9mBpZbWa828GR5hVsRE1Xcixx4NhbTj023e8xTDabtOf//c7HS6rrPd6J66zGMxC8Z9PND/G2AHAccH05JCGaugYwt8N6dKkkOD1GiqrrPaFPXfdQHj89YmhsKS8WiUV1Sotr6oJhxXVvmcXV1R7VVFa84i75mBIOuAq1/gXv1KndlF+obC29bC2O7kmNP7cehgdHhYwwSkYW5QR+GixEy12AIKPmWMIG6ra41VZhUclFT+HvZLyuq9/DocldVoM9x45qrwjjZ9w0lDR4baTxhP+/PN4CPSNQawbEn/uko4JP7PlbOhqRmPQFdtIBDsAwShUW3wa2tWc+etzlBIX4QuFvpbD8mqVVlT5h8eKalVWN9/i1pJ8XcontxDWBMT6upljHGGKCrdp8uvrTvmkFbqacSKCXSMR7AAEq1D8i9PjNXTRUysa/Czjhqqo9vgFwJ9/VvnCX0n5iSHx+PjDOi2Kzfn0k18y/JxEdUmMVozDpujjITIqPEzRDpvvdYyj5n20I0zRjjBF2W0tvjB2Q4Xq/3jU1Vr//hHsGolgBwCBJZC7mk8MiLUhsfR4l7Pv/QljEGt/Hi6rUFlF8y1rc6LocJuiHD+Hvp8DYJiiw38OgTG/cMwXFps4JrEtdDW3ZnAl2DUSwQ4AAk+otvg0tKv5pmFd1CEmQkePT2Qpq6hWWaWn5mfFzxNUao95W+hv80i7zS/o1W0hrA2DdcNhpN2mJ/5vu44crar3ehZJyc4IfTHz1woPa/xSOIGgtYMrwa6RCHYAEJjoam7YvRqGoYpqry/knRj6jlb8/Lq0suZ9fefVDY/VLZUU67BaJLvNqnCbVeFhVtltVtnDLL59dptVdtvx92F19oXV7P/5nJrPOfyOWxV+/LO1+2q+p86+2u+p852+Omw/76vbvV37+6v7Pxx1tcQYSZY7AQCEhFBcrsZmtWj2uHRNeXuDLKq/q3n2uPRGhQKLxaIIu00RdpvaxzjOuMbaoHi0sm4ArFZp3UB4PATWvq49lnO4TDvySxr0PV7j+HI41V6peVbDaRE2q8UX9CyS3OXVpzy3djmedTlFpvyzS7ADAKCVXdGno16+6YKTuppTAqSruW5QTIgOb9RnG9rV/OrNA9Wvc7wqPV5VeQxVebyqrPaq6vj72tc1x49v1Ybv/c/HjePHTnh/4jnVP1+n8qTvq31ds//E1kqP15DHa6i8quETZwpL6m/Ra2kEOwAATHBFn476TXpKyHU1N3QB7ct6JQfsvXq9hqq8JwTM4z+/2X1Ef/7f7057jaTYiFao9GQEOwAATEJXc2CyWi1yWG1yhEk6oWe7a2K0nv3sh9MG1yFpCa1Q6cmCczoKAAAIWLVdzSlO/1arFGdE0C91UhtcpZ+Daq1ACK7MihWzYgEAaAmhOKu5FuvYBTCCHQAAaKxAfPIEY+wAAACaIBDHSDLGDgAAIEQQ7AAAAEIEwQ4AACBEEOwAAABCRMgEuxdffFHdunVTRESEhg4dqnXr1pldEgAAQKsKiWD33nvvacaMGZo9e7Y2bNigfv36adSoUSosLDS7NAAAgFYTEsHumWee0R/+8AfdeuutSk9P1/z58xUVFaXXX3/d7NIAAABaTdAHu8rKSq1fv14jRozw7bNarRoxYoSysrLq/UxFRYXcbrffBgAAEOyCPtgdOnRIHo9HycnJfvuTk5OVn59f72fmzJkjp9Pp2zp37twapQIAALSooA92TTFr1iy5XC7flpeXZ3ZJAAAAZyzoHynWvn172Ww2FRQU+O0vKChQSkpKvZ9xOBxyOBytUR4AAECrCfpgFx4eroEDB2r58uUaP368JMnr9Wr58uWaOnVqg65hGIYkMdYOAAAEnNp8UptXfknQBztJmjFjhiZPnqxBgwZpyJAheu6551RWVqZbb721QZ8vKSmRJMbaAQCAgFVSUiKn0/mL54REsLvhhht08OBBPfzww8rPz1f//v21dOnSkyZUnEpqaqry8vIUGxsri8XSwtWGJrfbrc6dOysvL09xcXFml4NG4vcX3Pj9BTd+f8GtNX5/hmGopKREqamppz3XYjSkXQ84DbfbLafTKZfLxX+YghC/v+DG7y+48fsLboH2+2uTs2IBAABCEcEOAAAgRBDs0CwcDodmz57NMjJBit9fcOP3F9z4/QW3QPv9McYOAAAgRNBiBwAAECIIdgAAACGCYAcAABAiCHZosjlz5mjw4MGKjY1VUlKSxo8frx07dphdFppo7ty5slgsmjZtmtmloIH27dunm266SYmJiYqMjFTfvn31zTffmF0WGsDj8eihhx5SWlqaIiMjdc455+jxxx9v0COjYI4vvvhC48aNU2pqqiwWiz744AO/44Zh6OGHH1bHjh0VGRmpESNGaOfOna1eJ8EOTbZq1SplZmZqzZo1WrZsmaqqqjRy5EiVlZWZXRoaKTs7W//1X/+l888/3+xS0EBHjhzR8OHDZbfb9fHHH2vbtm16+umn1a5dO7NLQwM89dRTevnll/Wf//mf2r59u5566inNmzdPf/vb38wuDadQVlamfv366cUXX6z3+Lx58/TCCy9o/vz5Wrt2raKjozVq1CiVl5e3ap3MikWzOXjwoJKSkrRq1SpdfPHFZpeDBiotLdUFF1ygl156SX/961/Vv39/Pffcc2aXhdN44IEHtHr1an355Zdml4ImGDt2rJKTk/Xaa6/59k2YMEGRkZF6++23TawMDWGxWLRo0SKNHz9eUk1rXWpqqu69917dd999kiSXy6Xk5GQtWLBAN954Y6vVRosdmo3L5ZIkJSQkmFwJGiMzM1NjxozRiBEjzC4FjbB48WINGjRI119/vZKSkjRgwAC9+uqrZpeFBrrwwgu1fPly/fDDD5KkTZs26auvvtLo0aNNrgxNkZOTo/z8fL//jjqdTg0dOlRZWVmtWktYq34bQpbX69W0adM0fPhw9enTx+xy0EDvvvuuNmzYoOzsbLNLQSP99NNPevnllzVjxgz95S9/UXZ2tu6++26Fh4dr8uTJZpeH03jggQfkdrvVs2dP2Ww2eTwePfHEE5o4caLZpaEJ8vPzJUnJycl++5OTk33HWgvBDs0iMzNTW7Zs0VdffWV2KWigvLw83XPPPVq2bJkiIiLMLgeN5PV6NWjQID355JOSpAEDBmjLli2aP38+wS4I/OMf/9A777yjhQsXqnfv3tq4caOmTZum1NRUfn84I3TF4oxNnTpVS5Ys0cqVK9WpUyezy0EDrV+/XoWFhbrgggsUFhamsLAwrVq1Si+88ILCwsLk8XjMLhG/oGPHjkpPT/fb16tXL+Xm5ppUERpj5syZeuCBB3TjjTeqb9++uvnmmzV9+nTNmTPH7NLQBCkpKZKkgoICv/0FBQW+Y62FYIcmMwxDU6dO1aJFi7RixQqlpaWZXRIa4fLLL9fmzZu1ceNG3zZo0CBNnDhRGzdulM1mM7tE/ILhw4eftLzQDz/8oK5du5pUERrj6NGjslr9/wq22Wzyer0mVYQzkZaWppSUFC1fvty3z+12a+3atcrIyGjVWuiKRZNlZmZq4cKF+te//qXY2FjfOAKn06nIyEiTq8PpxMbGnjQeMjo6WomJiYyTDALTp0/XhRdeqCeffFK//e1vtW7dOr3yyit65ZVXzC4NDTBu3Dg98cQT6tKli3r37q1vv/1WzzzzjG677TazS8MplJaWateuXb73OTk52rhxoxISEtSlSxdNmzZNf/3rX3XuuecqLS1NDz30kFJTU30zZ1uNATSRpHq3N954w+zS0ESXXHKJcc8995hdBhroww8/NPr06WM4HA6jZ8+exiuvvGJ2SWggt9tt3HPPPUaXLl2MiIgI4+yzzzb+/d//3aioqDC7NJzCypUr6/07b/LkyYZhGIbX6zUeeughIzk52XA4HMbll19u7Nixo9XrZB07AACAEMEYOwAAgBBBsAMAAAgRBDsAAIAQQbADAAAIEQQ7AACAEEGwAwAACBEEOwAAgBBBsAMAAAgRBDsAIWf37t2yWCzauHGj2aX4fP/99xo2bJgiIiLUv3//Rn8+EO8JQOAh2AFodrfccossFovmzp3rt/+DDz6QxWIxqSpzzZ49W9HR0dqxY4ffg8LNsmDBAsXHx5tdBoBmRrAD0CIiIiL01FNP6ciRI2aX0mwqKyub/Nkff/xRF110kbp27arExMRmrMpcHo9HXq/X7DIAHEewA9AiRowYoZSUFM2ZM+eU5zzyyCMndUs+99xz6tatm+/9LbfcovHjx+vJJ59UcnKy4uPj9dhjj6m6ulozZ85UQkKCOnXqpDfeeOOk63///fe68MILFRERoT59+mjVqlV+x7ds2aLRo0crJiZGycnJuvnmm3Xo0CHf8UsvvVRTp07VtGnT1L59e40aNare+/B6vXrsscfUqVMnORwO9e/fX0uXLvUdt1gsWr9+vR577DFZLBY98sgjp7zOvHnz1L17dzkcDnXp0kVPPPFEvefW1+J2Yovopk2b9Otf/1qxsbGKi4vTwIED9c033+jzzz/XrbfeKpfLJYvF4ldTRUWF7rvvPp111lmKjo7W0KFD9fnnn5/0vYsXL1Z6erocDodyc3P1+eefa8iQIYqOjlZ8fLyGDx+uPXv21Fs7gJZDsAPQImw2m5588kn97W9/0969e8/oWitWrND+/fv1xRdf6JlnntHs2bM1duxYtWvXTmvXrtWdd96pP/7xjyd9z8yZM3Xvvffq22+/VUZGhsaNG6fDhw9LkoqLi3XZZZdpwIAB+uabb7R06VIVFBTot7/9rd813nzzTYWHh2v16tWaP39+vfU9//zzevrpp/X//t//03fffadRo0bpqquu0s6dOyVJBw4cUO/evXXvvffqwIEDuu++++q9zqxZszR37lw99NBD2rZtmxYuXKjk5OQm/7lNnDhRnTp1UnZ2ttavX68HHnhAdrtdF154oZ577jnFxcXpwIEDfjVNnTpVWVlZevfdd/Xdd9/p+uuv1xVXXOG7F0k6evSonnrqKf33f/+3tm7dqoSEBI0fP16XXHKJvvvuO2VlZemOO+5os93ugKkMAGhmkydPNq6++mrDMAxj2LBhxm233WYYhmEsWrTIqPufndmzZxv9+vXz++yzzz5rdO3a1e9aXbt2NTwej2/feeedZ/zqV7/yva+urjaio6ONv//974ZhGEZOTo4hyZg7d67vnKqqKqNTp07GU089ZRiGYTz++OPGyJEj/b47Ly/PkGTs2LHDMAzDuOSSS4wBAwac9n5TU1ONJ554wm/f4MGDjT/96U++9/369TNmz559ymu43W7D4XAYr776ar3Ha+/p22+/NQzDMN544w3D6XT6nXPin29sbKyxYMGCeq9X3+f37Nlj2Gw2Y9++fX77L7/8cmPWrFm+z0kyNm7c6Dt++PBhQ5Lx+eefn/L+ALQOWuwAtKinnnpKb775prZv397ka/Tu3VtW68//uUpOTlbfvn197202mxITE1VYWOj3uYyMDN/rsLAwDRo0yFfHpk2btHLlSsXExPi2nj17SqoZD1dr4MCBv1ib2+3W/v37NXz4cL/9w4cPb9Q9b9++XRUVFbr88ssb/JnTmTFjhn7/+99rxIgRmjt3rt991Wfz5s3yeDzq0aOH35/LqlWr/D4bHh6u888/3/c+ISFBt9xyi0aNGqVx48bp+eef14EDB5rtPgA0HMEOQIu6+OKLNWrUKM2aNeukY1arVYZh+O2rqqo66Ty73e733mKx1LuvMYP4S0tLNW7cOG3cuNFv27lzpy6++GLfedHR0Q2+5pmIjIxs1PkN+bN75JFHtHXrVo0ZM0YrVqxQenq6Fi1adMprlpaWymazaf369X5/Jtu3b9fzzz/vV+uJ3axvvPGGsrKydOGFF+q9995Tjx49tGbNmkbdE4AzR7AD0OLmzp2rDz/8UFlZWX77O3TooPz8fL+A0pzrtNUNFtXV1Vq/fr169eolSbrgggu0detWdevWTd27d/fbGhPm4uLilJqaqtWrV/vtX716tdLT0xt8nXPPPVeRkZENXgqlQ4cOKikpUVlZmW9ffX92PXr00PTp0/Xpp5/q2muv9U0yCQ8Pl8fj8Tt3wIAB8ng8KiwsPOnPJCUl5bQ1DRgwQLNmzdLXX3+tPn36aOHChQ26FwDNh2AHoMX17dtXEydO1AsvvOC3/9JLL9XBgwc1b948/fjjj3rxxRf18ccfN9v3vvjii1q0aJG+//57ZWZm6siRI7rtttskSZmZmSoqKtLvfvc7ZWdn68cff9Qnn3yiW2+99aTAczozZ87UU089pffee087duzQAw88oI0bN+qee+5p8DUiIiJ0//33689//rPeeust/fjjj1qzZo1ee+21es8fOnSooqKi9Je//EU//vijFi5cqAULFviOHzt2TFOnTtXnn3+uPXv2aPXq1crOzvYF227duqm0tFTLly/XoUOHdPToUfXo0UMTJ07UpEmT9M9//lM5OTlat26d5syZo48++uiUtefk5GjWrFnKysrSnj179Omnn2rnzp2+7wLQegh2AFrFY489dlJXaa9evfTSSy/pxRdfVL9+/bRu3bpTzhhtirlz52ru3Lnq16+fvvrqKy1evFjt27eXJF8rm8fj0ciRI9W3b19NmzZN8fHxfuP5GuLuu+/WjBkzdO+996pv375aunSpFi9erHPPPbdR13nooYd077336uGHH1avXr10ww03nDRusFZCQoLefvtt/d///Z/69u2rv//9737LqNhsNh0+fFiTJk1Sjx499Nvf/lajR4/Wo48+Kkm68MILdeedd+qGG25Qhw4dNG/ePEk1XaqTJk3Svffeq/POO0/jx49Xdna2unTpcsq6o6Ki9P3332vChAnq0aOH7rjjDmVmZuqPf/xjo+4fwJmzGCcO0gAAAEBQosUOAAAgRBDsAAAAQgTBDgAAIEQQ7AAAAEIEwQ4AACBEEOwAAABCBMEOAAAgRBDsAAAAQgTBDgAAIEQQ7AAAAEIEwQ4AACBEEOwAAABCxP8HzgpsQ80z1pQAAAAASUVORK5CYII=\n"
},
"metadata": {}
}
],
"source": [
"distortions = []\n",
"for i in range(1, 11):\n",
" km = KMeans(n_clusters=i,\n",
" init='k-means++',\n",
" n_init=10,\n",
" max_iter=300,\n",
" random_state=0)\n",
" km.fit(X)\n",
" distortions.append(km.inertia_)\n",
"plt.plot(range(1, 11), distortions, marker='o')\n",
"plt.xlabel('Number of clusters')\n",
"plt.ylabel('Distortion')\n",
"plt.tight_layout()\n",
"# plt.savefig('images/11_03.png', dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tgkiKdjnlsd-"
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "S9bk-zc6lsd_"
},
"source": [
"## 실루엣 그래프로 군집 품질을 정량화"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:48.581813Z",
"iopub.status.busy": "2021-10-23T10:43:48.580611Z",
"iopub.status.idle": "2021-10-23T10:43:49.457936Z",
"shell.execute_reply": "2021-10-23T10:43:49.456786Z"
},
"id": "yfExDwu-lsd_",
"outputId": "9cc4708f-cac7-4be3-8a04-3f9b4a1d1305"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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F6exY8fqH//4R7Pf849//KPJ8ZI0YcKE4x4fK0KZC7dqi7koKytTdXW1717Dsai182BmWr16tfbs2aPzzjsvnKWGXahz8dBDD6lr16668cYbI1FmRIQ6FyUlJerTp4+ysrJ02WWXaceOHZEoN6xCmYu//e1vys7O1tSpU9WtWzeddtppmj17tmprayNVdptri38zn3vuOf3whz9UWlpauMqMiFDmIicnR5s3b/Yt13788cdauXKlJk6cGJGaQxG194o9dOiQamtr1a1btybPd+vWTbt37272e/bt29fs8fv27QtbnZEQyly4VVvMxc9//nP16NHjmP8TEEtCnYeioiL17NlTlZWVio+P11NPPaVx48aFu9ywCmUu1q9fr+eee055eXkRqDByQpmLQYMG6fnnn9fQoUNVVFSkxx57TDk5OdqxY4d69eoVibLDIpS5+Pjjj/XWW2/pRz/6kVauXKn8/Hzddtttqq6uVm5ubiTKbnOt/Tdz48aN2r59u5577rlwlRgxoczFNddco0OHDumcc86RmammpkY//elPde+990ai5JBEbbADwuHRRx/VkiVLtHbtWledIB6ojh07Ki8vTyUlJVq9erWmT5+ufv36acyYMU6XFjFHjhzRddddp2eeeUYnnHCC0+U4Ljs7W9nZ2b6vc3JydMopp+h3v/udZs2a5WBlkVdXV6euXbvq97//veLj43XWWWfpyy+/1Lx582I22LXWc889pyFDhmjEiBFOl+KItWvXavbs2Xrqqac0cuRI5efn684779SsWbN0//33O11es6I22J1wwgmKj4/X/v37mzy/f/9+de/evdnv6d69e1DHx4pQ5sKtWjMXjz32mB599FG9+eabGjp0aDjLDLtQ5yEuLk4DBgyQJA0bNky7du3SnDlzYjrYBTsXe/fu1SeffKJLLrnE91xdXZ0kKSEhQXv27FH//v3DW3SYtMW/FYmJiTrjjDOUn58fjhIjJpS5yMzMVGJiouLj433PnXLKKdq3b5+qqqqUlJQU1prDoTV/E6WlpVqyZIkeeuihcJYYMaHMxf3336/rrrtON910kyRpyJAhKi0t1S233KJf/OIXiouLvjPaoq+ibyUlJemss87S6tWrfc/V1dVp9erVTf7fZWPZ2dlNjpekv//978c9PlaEMhduFepczJ07V7NmzdLrr7+us88+OxKlhlVb/U3U1dWpsrIyHCVGTLBzcfLJJ2vbtm3Ky8vzPS699FKdf/75ysvLU1ZWViTLb1Nt8XdRW1urbdu2KTMzM1xlRkQoczFq1Cjl5+f7gr4kffTRR8rMzIzJUCe17m9i6dKlqqys1LXXXhvuMiMilLkoKys7JrwdDf4WrXdkdXjzhl9Lliwxr9drixYtsp07d9ott9xinTp18m3Fv+666+yee+7xHb9hwwZLSEiwxx57zHbt2mW5ubmuutxJMHNRWVlpW7duta1bt1pmZqbNmDHDtm7dav/617+c+hHaTLBz8eijj1pSUpK99NJLTbbwHzlyxKkfoU0EOw+zZ8+2N954w/bu3Ws7d+60xx57zBISEuyZZ55x6kdoM8HOxXe5aVdssHPx4IMP2qpVq2zv3r22efNm++EPf2jJycm2Y8cOp36ENhPsXHz22WfWsWNHu/32223Pnj32yiuvWNeuXe3hhx926kdoE6H+7+Occ86x//7v/450uWEV7Fzk5uZax44d7S9/+Yt9/PHH9sYbb1j//v1t0qRJTv0ILYrqYGdm9uSTT1rv3r0tKSnJRowYYf/85z99r40ePdomT57c5PgXX3zRBg4caElJSXbqqafaq6++GuGKwyeYuSgoKDBJxzxGjx4d+cLDIJi56NOnT7NzkZubG/nC21gw8/CLX/zCBgwYYMnJyda5c2fLzs62JUuWOFB1eAT7b0Vjbgp2ZsHNxbRp03zHduvWzSZOnGhbtmxxoOrwCPbv4t1337WRI0ea1+u1fv362SOPPGI1NTURrrrtBTsPu3fvNkn2xhtvRLjS8AtmLqqrq+2BBx6w/v37W3JysmVlZdltt91mhw8fjnzhAfKYRWsvEQAAAMGI2nPsAAAAEByCHQAAgEsQ7AAAAFyCYAcAAOASBDsAAACXINgBAAC4BMEOAADAJQh2AAAALkGwAxA0j8ejl19+WZL0ySefyOPxKC8vT5K0du1aeTweffPNN47V5yYbNmzQkCFDlJiYqMsvv7zZ54Kd8zFjxmjatGlhqxmAcwh2AJo4ePCgbr31VvXu3Vter1fdu3fXhAkTtGHDBt8xhYWFuuiiixysMjDNBZhYC57Tp0/XsGHDVFBQoEWLFjX7XE5OjgoLC5WRkRHQey5fvlyzZs1q0zqnTJniC54AnJPgdAEAosuVV16pqqoqLV68WP369dP+/fu1evVqff31175junfv7mCF7cvevXv105/+VL169fL7XDC/ky5durRpjQCiiNM3qwUQPQ4fPmySbO3atX6Pk2QrVqwwM7OCggKTZFu3bjUzszVr1pgke/PNN+2ss86ylJQUy87Ott27dzd5j6eeesr69etniYmJNnDgQPvDH/7ge+2779m4tjVr1vie27Ztm1144YWWlpZmXbt2tWuvvdYOHjxoZmaTJ082SU0eR9+38ePoDb9ra2tt9uzZ1rdvX0tOTrahQ4fa0qVL/c5DRUWF/exnP7NevXpZUlKS9e/f35599lnf62vXrrXhw4dbUlKSde/e3X7+859bdXW173V/n9lcrQsXLmz2uaNz3vjG5OvXr7fRo0dbSkqKderUycaPH2///ve/zaz+Rud33nlnk5/jf/7nf6xHjx6WmppqI0aMaDLPCxcutIyMDHv99dft5JNPtrS0NJswYYJ99dVXZmaWm5t7TF2Nvx9A5BDsAPhUV1dbhw4dbNq0aVZRUXHc4wIJdiNHjrS1a9fajh077Nxzz7WcnBzf9y9fvtwSExNtwYIFtmfPHvv1r39t8fHx9tZbbzX7nmbHBrvDhw/biSeeaDNnzrRdu3bZli1bbNy4cXb++eebmdk333xj2dnZdvPNN1thYaEVFhZaTU2NLVu2zCTZnj17rLCw0L755hszM3v44Yft5JNPttdff9327t1rCxcuNK/X6zfkTpo0ybKysmz58uW2d+9ee/PNN23JkiVmZvbFF19Yamqq3XbbbbZr1y5bsWKFnXDCCZabm+v7fn+fWVNTY4WFhZaenm7z58+3wsJCKykpOea5srKyY4Ld1q1bzev12q233mp5eXm2fft2e/LJJ32h97vB7qabbrKcnBx7++23LT8/3+bNm2der9c++ugjM6sPdomJiTZ27FjbtGmTbd682U455RS75pprzMzsyJEjNmnSJLvwwgt9c11ZWXnceQMQPgQ7AE289NJL1rlzZ0tOTracnBybOXOmffDBB02OCbRjd9Srr75qkqy8vNzMzHJycuzmm29u8p5XXXWVTZw4sdn3NDs22M2aNcvGjx/f5D0+//xzX2gzOzbANK6vcXeroqLCUlNT7d13321y7I033mhXX311s/O0Z88ek2R///vfm3393nvvtUGDBlldXZ3vuQULFliHDh2strY24M/MyMiwhQsXNjnmu89992e6+uqrbdSoUc3WZdZ0Xj799FOLj4+3L7/8sskx3//+923mzJlmZr5OYX5+fpOfpVu3br6vJ0+ebJdddtlxPxNAZHCOHYAmrrzySl188cV655139M9//lOvvfaa5s6dq2effVZTpkwJ+H2GDh3qG2dmZkqSDhw4oN69e2vXrl265ZZbmhw/atQo/eY3vwn4/T/44AOtWbNGHTp0OOa1vXv3auDAgQG/V35+vsrKyjRu3Lgmz1dVVemMM85o9nvy8vIUHx+v0aNHN/v6rl27lJ2dLY/H43tu1KhRKikp0RdffKEjR44E/ZmBysvL01VXXRXQsdu2bVNtbe0x81VZWan/+I//8H2dmpqq/v37+77OzMzUgQMHWlUngLZHsANwjOTkZI0bN07jxo3T/fffr5tuukm5ublBBbvExETf+Gi4qaurC+h74+LqN+ybme+56urqJseUlJTokksu0a9+9atjvv9okAxUSUmJJOnVV19Vz549m7zm9Xqb/Z6UlJSgPqMtPjNQwdRWUlKi+Ph4bd68WfHx8U1eaxyaG/8+pfrfaePfD4DoQLAD0KLBgwf7rlvXFk455RRt2LBBkydP9j23YcMGDR48WJJ04oknSqq/rMrR7tXR6+QddeaZZ2rZsmXq27evEhKa/6csKSlJtbW1xzwnqcnzgwcPltfr1WeffXbcDtx3DRkyRHV1dVq3bp3Gjh3b7M+4bNkymZkv2G7YsEEdO3ZUr1691Llz56A/M1BDhw7V6tWr9eCDD7Z47BlnnKHa2lodOHBA5557bsif2dxcA4g8rmMHwOfrr7/WBRdcoD/96U/68MMPVVBQoKVLl2ru3Lm67LLL2uxz7r77bi1atEhPP/20/vWvf+nxxx/X8uXLNWPGDEn1Hafvfe97evTRR7Vr1y6tW7dO9913X5P3mDp1qv7973/r6quv1qZNm7R3716tWrVKP/7xj30Bo2/fvnrvvff0ySef6NChQ6qrq1OfPn3k8Xj0yiuv6ODBgyopKVHHjh01Y8YM3XXXXVq8eLH27t2rLVu26Mknn9TixYub/Rn69u2ryZMn64YbbtDLL7+sgoICrV27Vi+++KIk6bbbbtPnn3+uO+64Q7t379Zf//pX5ebmavr06YqLiwvpMwM1c+ZMbdq0Sbfddps+/PBD7d69W08//bQOHTp0zLEDBw7Uj370I11//fVavny5CgoKtHHjRs2ZM0evvvpqwJ/Zt29fffjhh9qzZ48OHTp0TIcVQIQ4fI4fgChSUVFh99xzj5155pmWkZFhqampNmjQILvvvvusrKzMd5wC2DzReHPC1q1bfZcbOcrf5U7MzHbu3GnZ2dmWkpJiw4YNszfeeOOYy2h89NFHdsUVV1inTp0sJSXFTj75ZJs2bZpvw8KePXvse9/7nqWkpDT5/Iceesi6d+9uHo/Hd7mTuro6mz9/vg0aNMgSExPtxBNPtAkTJti6deuOO1/l5eV21113WWZmpiUlJdmAAQPs+eef973e0uVOAvnMUDZPHP3snJwc83q91qlTJ5swYYLv9e9uKqmqqrJf/vKX1rdvX0tMTLTMzEy74oor7MMPPzSzhsudNLZixQpr/J+QAwcO2Lhx46xDhw5c7gRwkMeMkyQAAADcgKVYAAAAlyDYAQAAuATBDgAAwCUIdgAAAC5BsAMAAHAJgh0AAIBLEOwAAABcgmAHAADgEgQ7AAAAlyDYAQAAuATBDgAAwCUIdgAAAC7x/7GnoRzyQymVAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
],
"source": [
"import numpy as np\n",
"from matplotlib import cm\n",
"from sklearn.metrics import silhouette_samples\n",
"\n",
"km = KMeans(n_clusters=3,\n",
" init='k-means++',\n",
" n_init=10,\n",
" max_iter=300,\n",
" tol=1e-04,\n",
" random_state=0)\n",
"y_km = km.fit_predict(X)\n",
"\n",
"cluster_labels = np.unique(y_km)\n",
"n_clusters = cluster_labels.shape[0]\n",
"silhouette_vals = silhouette_samples(X, y_km, metric='euclidean')\n",
"y_ax_lower, y_ax_upper = 0, 0\n",
"yticks = []\n",
"for i, c in enumerate(cluster_labels):\n",
" c_silhouette_vals = silhouette_vals[y_km == c]\n",
" c_silhouette_vals.sort()\n",
" y_ax_upper += len(c_silhouette_vals)\n",
" color = cm.jet(float(i) / n_clusters)\n",
" plt.barh(range(y_ax_lower, y_ax_upper), c_silhouette_vals, height=1.0,\n",
" edgecolor='none', color=color)\n",
"\n",
" yticks.append((y_ax_lower + y_ax_upper) / 2.)\n",
" y_ax_lower += len(c_silhouette_vals)\n",
"\n",
"silhouette_avg = np.mean(silhouette_vals)\n",
"plt.axvline(silhouette_avg, color=\"red\", linestyle=\"--\")\n",
"\n",
"plt.yticks(yticks, cluster_labels + 1)\n",
"plt.ylabel('Cluster')\n",
"plt.xlabel('Silhouette coefficient')\n",
"\n",
"plt.tight_layout()\n",
"# plt.savefig('images/11_04.png', dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8jLodeOrlsd_"
},
"source": [
"잘못된 클러스터링:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:49.481805Z",
"iopub.status.busy": "2021-10-23T10:43:49.480893Z",
"iopub.status.idle": "2021-10-23T10:43:50.074506Z",
"shell.execute_reply": "2021-10-23T10:43:50.074981Z"
},
"id": "1xzn7tXVlsd_",
"outputId": "95d75fdf-78bb-47d5-f9bc-f63c6865ab9e"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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4MCBA/jyyy/x7LPPYvLkyThy5Ii/m+VzHLFTgbS0NDz11FMur+nSpYv97+fOncPQoUNx//33Y+nSpT5unT7J7XPyjVtvvRUmkwkXLlyodfuFCxfQpk0bP7WKyDemTp2Kzz77DLt370aHDh383Rzda9SoEW6//XYAQN++fbF37168/vrrWLJkiZ9b5lsMdirQqlUrtGrVStK1Z8+exdChQ9G3b1+88847MBo56OoOOX1OvtOoUSP07dsX27Ztsy/et1qt2LZtG6ZOnerfxhF5iSAImDZtGvLy8rBz50507tzZ300KSFarFTdv3vR3M3yOwU5Dzp49iyFDhqBjx47IyMjApUuX7F/j6IbvnD59GleuXMHp06dhsVhw4MABAMDtt9+O0NBQ/zZOB1JTUzF58mTce++96N+/P7KysnDt2jX8/ve/93fTdKusrAzHjx+3f37y5EkcOHAALVu2xG233ebHlulTUlISVq5ciTVr1iAsLAznz58HADRr1gxms9nPrdOnF154AaNHj8Ztt92G0tJSrFy5Ejt37sSmTZv83TTfE0gz3nnnHQGAww/yncmTJzvs8x07dvi7abqxcOFC4bbbbhMaNWok9O/fX/jiiy/83SRd27Fjh8Of6cmTJ/u7abrk7HX7nXfe8XfTdOvpp58WOnbsKDRq1Eho1aqV8MADDwibN2/2d7MUwTp2RERERDrBBVpEREREOsFgR0RERKQTDHZEREREOsFgR0RERKQTDHZEREREOsFgR0RERKQTDHZEREREOsFgR0RERKQTDHZEREREOsFgR0RERKQTDHZEREREOsFgR0RERKQT/x+IZeFBH/tiYQAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
],
"source": [
"km = KMeans(n_clusters=2,\n",
" init='k-means++',\n",
" n_init=10,\n",
" max_iter=300,\n",
" tol=1e-04,\n",
" random_state=0)\n",
"y_km = km.fit_predict(X)\n",
"\n",
"plt.scatter(X[y_km == 0, 0],\n",
" X[y_km == 0, 1],\n",
" s=50,\n",
" c='lightgreen',\n",
" edgecolor='black',\n",
" marker='s',\n",
" label='Cluster 1')\n",
"plt.scatter(X[y_km == 1, 0],\n",
" X[y_km == 1, 1],\n",
" s=50,\n",
" c='orange',\n",
" edgecolor='black',\n",
" marker='o',\n",
" label='Cluster 2')\n",
"\n",
"plt.scatter(km.cluster_centers_[:, 0], km.cluster_centers_[:, 1],\n",
" s=250, marker='*', c='red', label='Centroids')\n",
"plt.legend()\n",
"plt.grid()\n",
"plt.tight_layout()\n",
"# plt.savefig('images/11_05.png', dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.079006Z",
"iopub.status.busy": "2021-10-23T10:43:50.078025Z",
"iopub.status.idle": "2021-10-23T10:43:50.520424Z",
"shell.execute_reply": "2021-10-23T10:43:50.519486Z"
},
"id": "S32hzlcSlseA",
"outputId": "2201d27f-509f-4b8a-ef2b-d7824b7cf764"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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\n"
},
"metadata": {}
}
],
"source": [
"cluster_labels = np.unique(y_km)\n",
"n_clusters = cluster_labels.shape[0]\n",
"silhouette_vals = silhouette_samples(X, y_km, metric='euclidean')\n",
"y_ax_lower, y_ax_upper = 0, 0\n",
"yticks = []\n",
"for i, c in enumerate(cluster_labels):\n",
" c_silhouette_vals = silhouette_vals[y_km == c]\n",
" c_silhouette_vals.sort()\n",
" y_ax_upper += len(c_silhouette_vals)\n",
" color = cm.jet(float(i) / n_clusters)\n",
" plt.barh(range(y_ax_lower, y_ax_upper), c_silhouette_vals, height=1.0,\n",
" edgecolor='none', color=color)\n",
"\n",
" yticks.append((y_ax_lower + y_ax_upper) / 2.)\n",
" y_ax_lower += len(c_silhouette_vals)\n",
"\n",
"silhouette_avg = np.mean(silhouette_vals)\n",
"plt.axvline(silhouette_avg, color=\"red\", linestyle=\"--\")\n",
"\n",
"plt.yticks(yticks, cluster_labels + 1)\n",
"plt.ylabel('Cluster')\n",
"plt.xlabel('Silhouette coefficient')\n",
"\n",
"plt.tight_layout()\n",
"# plt.savefig('images/11_06.png', dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Cl8H3FMPlseA"
},
"source": [
"
\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vHKX3t9blseA"
},
"source": [
"# 계층적인 트리로 클러스터 조직화"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "mQtGfN8HlseA"
},
"source": [
"## 상향식으로 클러스터 묶기"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 322
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.527002Z",
"iopub.status.busy": "2021-10-23T10:43:50.526087Z",
"iopub.status.idle": "2021-10-23T10:43:50.530189Z",
"shell.execute_reply": "2021-10-23T10:43:50.530664Z"
},
"id": "HDyhiXedlseA",
"outputId": "e741ac2b-ace1-489d-9c4b-93d16095bf3c"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 11
}
],
"source": [
"Image(url='https://git.io/JLdsq', width=400)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.537848Z",
"iopub.status.busy": "2021-10-23T10:43:50.536936Z",
"iopub.status.idle": "2021-10-23T10:43:50.709864Z",
"shell.execute_reply": "2021-10-23T10:43:50.710371Z"
},
"id": "mVgWC-WClseB",
"outputId": "1dc102a3-514c-4e1f-9a7b-9698c4e14863"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" X Y Z\n",
"ID_0 6.964692 2.861393 2.268515\n",
"ID_1 5.513148 7.194690 4.231065\n",
"ID_2 9.807642 6.848297 4.809319\n",
"ID_3 3.921175 3.431780 7.290497\n",
"ID_4 4.385722 0.596779 3.980443"
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" X | \n",
" Y | \n",
" Z | \n",
"
\n",
" \n",
" \n",
" \n",
" ID_0 | \n",
" 6.964692 | \n",
" 2.861393 | \n",
" 2.268515 | \n",
"
\n",
" \n",
" ID_1 | \n",
" 5.513148 | \n",
" 7.194690 | \n",
" 4.231065 | \n",
"
\n",
" \n",
" ID_2 | \n",
" 9.807642 | \n",
" 6.848297 | \n",
" 4.809319 | \n",
"
\n",
" \n",
" ID_3 | \n",
" 3.921175 | \n",
" 3.431780 | \n",
" 7.290497 | \n",
"
\n",
" \n",
" ID_4 | \n",
" 4.385722 | \n",
" 0.596779 | \n",
" 3.980443 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
]
},
"metadata": {},
"execution_count": 12
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"np.random.seed(123)\n",
"\n",
"variables = ['X', 'Y', 'Z']\n",
"labels = ['ID_0', 'ID_1', 'ID_2', 'ID_3', 'ID_4']\n",
"\n",
"X = np.random.random_sample([5, 3])*10\n",
"df = pd.DataFrame(X, columns=variables, index=labels)\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "t4HIYGuwlseB"
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TJi78cCVlseB"
},
"source": [
"## 거리 행렬에서 계층 군집 수행"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.726009Z",
"iopub.status.busy": "2021-10-23T10:43:50.725265Z",
"iopub.status.idle": "2021-10-23T10:43:50.729076Z",
"shell.execute_reply": "2021-10-23T10:43:50.729722Z"
},
"id": "nDu2gYTGlseB",
"outputId": "a25c79dc-9f39-4bd6-f68f-afc0e3751d69"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" ID_0 ID_1 ID_2 ID_3 ID_4\n",
"ID_0 0.000000 4.973534 5.516653 5.899885 3.835396\n",
"ID_1 4.973534 0.000000 4.347073 5.104311 6.698233\n",
"ID_2 5.516653 4.347073 0.000000 7.244262 8.316594\n",
"ID_3 5.899885 5.104311 7.244262 0.000000 4.382864\n",
"ID_4 3.835396 6.698233 8.316594 4.382864 0.000000"
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ID_0 | \n",
" ID_1 | \n",
" ID_2 | \n",
" ID_3 | \n",
" ID_4 | \n",
"
\n",
" \n",
" \n",
" \n",
" ID_0 | \n",
" 0.000000 | \n",
" 4.973534 | \n",
" 5.516653 | \n",
" 5.899885 | \n",
" 3.835396 | \n",
"
\n",
" \n",
" ID_1 | \n",
" 4.973534 | \n",
" 0.000000 | \n",
" 4.347073 | \n",
" 5.104311 | \n",
" 6.698233 | \n",
"
\n",
" \n",
" ID_2 | \n",
" 5.516653 | \n",
" 4.347073 | \n",
" 0.000000 | \n",
" 7.244262 | \n",
" 8.316594 | \n",
"
\n",
" \n",
" ID_3 | \n",
" 5.899885 | \n",
" 5.104311 | \n",
" 7.244262 | \n",
" 0.000000 | \n",
" 4.382864 | \n",
"
\n",
" \n",
" ID_4 | \n",
" 3.835396 | \n",
" 6.698233 | \n",
" 8.316594 | \n",
" 4.382864 | \n",
" 0.000000 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
]
},
"metadata": {},
"execution_count": 13
}
],
"source": [
"from scipy.spatial.distance import pdist, squareform\n",
"\n",
"row_dist = pd.DataFrame(squareform(pdist(df, metric='euclidean')),\n",
" columns=labels,\n",
" index=labels)\n",
"row_dist"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-fKcq82KlseB"
},
"source": [
"함수 설명을 보면 `pdist` 함수에서 계산한 축약된 거리 행렬(상삼각행렬(upper triangular matrix))을 입력 속성으로 사용할 수 있습니다. 아니면 `linkage` 함수에 초기 데이터 배열을 전달하고 `metric='euclidean'` 지표를 매개변수로 사용할 수 있습니다. 앞서 `squareform` 함수로 만든 거리 행렬은 `linkage` 함수가 기대한 값과 다르기 때문에 사용해서는 안됩니다."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 231
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.734186Z",
"iopub.status.busy": "2021-10-23T10:43:50.733251Z",
"iopub.status.idle": "2021-10-23T10:43:50.752252Z",
"shell.execute_reply": "2021-10-23T10:43:50.752913Z"
},
"id": "wK_FfJMblseB",
"outputId": "666fd662-3f55-402b-92c4-9c5ea2ba96b9"
},
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
":5: ClusterWarning: scipy.cluster: The symmetric non-negative hollow observation matrix looks suspiciously like an uncondensed distance matrix\n",
" row_clusters = linkage(row_dist, method='complete', metric='euclidean')\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
" row label 1 row label 2 distance no. of items in clust.\n",
"cluster 1 0.0 4.0 6.521973 2.0\n",
"cluster 2 1.0 2.0 6.729603 2.0\n",
"cluster 3 3.0 5.0 8.539247 3.0\n",
"cluster 4 6.0 7.0 12.444824 5.0"
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" row label 1 | \n",
" row label 2 | \n",
" distance | \n",
" no. of items in clust. | \n",
"
\n",
" \n",
" \n",
" \n",
" cluster 1 | \n",
" 0.0 | \n",
" 4.0 | \n",
" 6.521973 | \n",
" 2.0 | \n",
"
\n",
" \n",
" cluster 2 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 6.729603 | \n",
" 2.0 | \n",
"
\n",
" \n",
" cluster 3 | \n",
" 3.0 | \n",
" 5.0 | \n",
" 8.539247 | \n",
" 3.0 | \n",
"
\n",
" \n",
" cluster 4 | \n",
" 6.0 | \n",
" 7.0 | \n",
" 12.444824 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
]
},
"metadata": {},
"execution_count": 14
}
],
"source": [
"# 1. 잘못된 방식: squareform 거리 행렬\n",
"\n",
"from scipy.cluster.hierarchy import linkage\n",
"\n",
"row_clusters = linkage(row_dist, method='complete', metric='euclidean')\n",
"pd.DataFrame(row_clusters,\n",
" columns=['row label 1', 'row label 2',\n",
" 'distance', 'no. of items in clust.'],\n",
" index=['cluster %d' % (i + 1)\n",
" for i in range(row_clusters.shape[0])])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 175
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.761305Z",
"iopub.status.busy": "2021-10-23T10:43:50.760115Z",
"iopub.status.idle": "2021-10-23T10:43:50.767871Z",
"shell.execute_reply": "2021-10-23T10:43:50.768383Z"
},
"id": "wvyaG-RnlseC",
"outputId": "06eb00dc-38c4-4392-aeaf-d4ecdf1b3168",
"scrolled": true
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" row label 1 row label 2 distance no. of items in clust.\n",
"cluster 1 0.0 4.0 3.835396 2.0\n",
"cluster 2 1.0 2.0 4.347073 2.0\n",
"cluster 3 3.0 5.0 5.899885 3.0\n",
"cluster 4 6.0 7.0 8.316594 5.0"
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" row label 1 | \n",
" row label 2 | \n",
" distance | \n",
" no. of items in clust. | \n",
"
\n",
" \n",
" \n",
" \n",
" cluster 1 | \n",
" 0.0 | \n",
" 4.0 | \n",
" 3.835396 | \n",
" 2.0 | \n",
"
\n",
" \n",
" cluster 2 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 4.347073 | \n",
" 2.0 | \n",
"
\n",
" \n",
" cluster 3 | \n",
" 3.0 | \n",
" 5.0 | \n",
" 5.899885 | \n",
" 3.0 | \n",
"
\n",
" \n",
" cluster 4 | \n",
" 6.0 | \n",
" 7.0 | \n",
" 8.316594 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
]
},
"metadata": {},
"execution_count": 15
}
],
"source": [
"# 2. 올바른 방식: 축약된 거리 행렬\n",
"\n",
"row_clusters = linkage(pdist(df, metric='euclidean'), method='complete')\n",
"pd.DataFrame(row_clusters,\n",
" columns=['row label 1', 'row label 2',\n",
" 'distance', 'no. of items in clust.'],\n",
" index=['cluster %d' % (i + 1)\n",
" for i in range(row_clusters.shape[0])])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 175
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.771975Z",
"iopub.status.busy": "2021-10-23T10:43:50.771267Z",
"iopub.status.idle": "2021-10-23T10:43:50.782391Z",
"shell.execute_reply": "2021-10-23T10:43:50.782863Z"
},
"id": "JCuDBOYylseC",
"outputId": "7bf1d329-00dc-4387-aac5-acb654b1cb53"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" row label 1 row label 2 distance no. of items in clust.\n",
"cluster 1 0.0 4.0 3.835396 2.0\n",
"cluster 2 1.0 2.0 4.347073 2.0\n",
"cluster 3 3.0 5.0 5.899885 3.0\n",
"cluster 4 6.0 7.0 8.316594 5.0"
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" row label 1 | \n",
" row label 2 | \n",
" distance | \n",
" no. of items in clust. | \n",
"
\n",
" \n",
" \n",
" \n",
" cluster 1 | \n",
" 0.0 | \n",
" 4.0 | \n",
" 3.835396 | \n",
" 2.0 | \n",
"
\n",
" \n",
" cluster 2 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 4.347073 | \n",
" 2.0 | \n",
"
\n",
" \n",
" cluster 3 | \n",
" 3.0 | \n",
" 5.0 | \n",
" 5.899885 | \n",
" 3.0 | \n",
"
\n",
" \n",
" cluster 4 | \n",
" 6.0 | \n",
" 7.0 | \n",
" 8.316594 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
]
},
"metadata": {},
"execution_count": 16
}
],
"source": [
"# 3. 올바른 방식: 입력 샘플 행렬\n",
"\n",
"row_clusters = linkage(df.values, method='complete', metric='euclidean')\n",
"pd.DataFrame(row_clusters,\n",
" columns=['row label 1', 'row label 2',\n",
" 'distance', 'no. of items in clust.'],\n",
" index=['cluster %d' % (i + 1)\n",
" for i in range(row_clusters.shape[0])])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 487
},
"execution": {
"iopub.execute_input": "2021-10-23T10:43:50.786288Z",
"iopub.status.busy": "2021-10-23T10:43:50.785642Z",
"iopub.status.idle": "2021-10-23T10:43:50.938661Z",
"shell.execute_reply": "2021-10-23T10:43:50.939135Z"
},
"id": "0mWnk-xulseC",
"outputId": "8855927b-13ff-429f-8c96-c23927af82cb"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"