{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# จำแนกประเภทดอกไม้ด้วย KNN\n",
"\n",
"ในบทความนี้เราจะมาดูวิธีการสร้างตัวจำแนกประเภทแบบง่ายๆโดยใช้ KNN สมมติสถานการณ์จริง ใช้ข้อมูลจริง (บทความนี้ลิงก์มาจาก[หน้านี้](http://datascience.in.th/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%88%E0%B8%B3%E0%B9%81%E0%B8%99%E0%B8%81%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%A0%E0%B8%97%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-knn/))\n",
"\n",
"เรามีข้อมูลตัวอย่างของดอกไม้ 3 ประเภท (Iris Setosa, Iris Versicolour, และ Iris Virginica) เป็นตาราง แต่ละตัวอย่างประกอบด้วยความยาวของใบ (sepal length) ความยาวของกลีบดอกไม้ (petal length) และประเภทของดอกไม้ \n",
"\n",
"
\n",
" ความยาวใบ | ความยาวกลีบ | ประเภท |
\n",
" 5.1 | 1.4 | Setosa |
\n",
" 4.9 | 1.4 | Setosa |
\n",
" 7.0 | 4.7 | Versicolour |
\n",
" 6.4 | 4.5 | Versicolour |
\n",
" 6.3 | 3.3 | Virginica |
\n",
" $\\vdots$ | $\\vdots$ | $\\vdots$ |
\n",
"
\n",
"\n",
"ดอกไม้แต่ละประเภทมี 50 ตัวอย่าง ทั้งหมดก็ 150 ตัวอย่าง โจทย์คือให้ สร้างโมเดลเพื่อจำแนกประเภทดอกไม้จากชุดการสอนนี้ โดยที่ถ้ามีข้อมูลของดอกไม้อันใหม่เข้ามา เช่น ความยาวใบ 5.5, ความยาวกลีบ 4.5 เราสามารถบอกประเภทของดอกไม้ได้อย่างอัตโนมัติ ตัวจำแนกประเภทไม่ใช่แค่ท่องจำชุดการสอนที่มี 150 ดอกที่ให้มา แต่ต้องสามารถบอกประเภทของตัวอย่างใหม่ที่ไม่ได้อยู่ในตารางได้ด้วย ทำไงล่ะ ? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"
\n",
"Setosa | Versicolour | Virginica |
\n",
"
\n",
"\n",
"ภาพจาก Wikipedia https://en.wikipedia.org/wiki/Iris_flower_data_set\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ปัญหาลักษณะนี้คือสิ่งที่ data scientist ต้องเจอประจำ ในบทความนี้เราจะใช้ K-nearest neighbours (KNN) เป็นตัวจำแนกประเภท โดยที่ข้อมูลที่ใช้คือ Iris data ซึ่งดาวน์โหลดได้จาก https://archive.ics.uci.edu/ml/datasets/Iris หรือดูเป็นตารางเต็มๆได้ที่ https://en.wikipedia.org/wiki/Iris_flower_data_set#Data_set จริงๆแล้ว data set นี้ตัวอย่างแต่ละตัวมีคุณลักษณะ 4 อย่าง คือมีความกว้างของใบและความกว้างของกลีบด้วย แต่เราจะตัด 2 ตัวแปรนั้นออก เพื่อให้เหลือแค่ 2 มิติ คือ ความยาวของใบและกลีบ จะได้ plot ดูและอธิบายได้ง่าย\n",
"\n",
"บทความนี้เขียนด้วย IPython notebook สำหรับผู้ที่ไม่ทราบ cell ที่มีคำว่า \"In [x]:\" อยู่ด้านซ้ายจะเป็น code ภาษา Python ที่ผู้เขียนใช้ สามารถอ่านข้ามไปได้หากไม่สนใจเรื่อง code บทความนี้จะไม่อธิบาย code มากนัก"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## plot ข้อมูลดู\n",
"เรามาเริ่มกันด้วยการเช็คข้อมูลที่มีอยู่ก่อน วิธีที่ง่ายที่สุดคือ plot 2 มิติ โดยให้แต่ละจุดเป็นหนึ่งตัวอย่าง และให้แต่ละสีแทนประเภทของดอกไม้"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# เรียกใช้ไลบรารี่ที่จำเป็น\n",
"%matplotlib inline\n",
"import numpy as np\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"from sklearn import datasets\n",
"from __future__ import unicode_literals\n",
"\n",
"matplotlib.rc('font', family='Garuda')\n",
"np.random.seed(2)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"iris = datasets.load_iris()\n",
"# X เป็น array 150x2 เหมือนตารางด้านบน\n",
"X = iris.data[:, [0, 2]]\n",
"# Y คือประเภทของดอกไม้ แทนด้วย 0=Setosa,1=Versicolour,2=Virginica\n",
"Y = iris.target"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"ESmB/w+0Wush+CjfAgAAAABJRU5ErkJggg==\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot ข้อมูล\n",
"#plt.figure(1, figsize=(7, 5))\n",
"plt.plot(X[Y==0, 0], X[Y==0, 1], 'or', label='Setosa')\n",
"plt.plot(X[Y==1, 0], X[Y==1, 1], 'og', label='Versicolour')\n",
"plt.plot(X[Y==2, 0], X[Y==2, 1], 'ob', label='Virginica')\n",
"plt.xlabel('ความยาวใบ')\n",
"plt.ylabel('ความยาวกลีบ')\n",
"plt.legend(loc='best')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"จะเห็นว่าตัวอย่างดอกไม้แต่ละประเภทเกาะกลุ่มกัน แปลว่าปัญหาการจำแนกประเภทอันนี้ไม่ยากมากนัก ขอเสริมอีกหน่อย หากลองเทียบกับข้อมูลต่อไปนี้ (ข้อมูลเทียมที่สุ่มขึ้นมา)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# สร้างข้อมูลเทียมที่ตัวอย่างจากต่างประเภทกันทับซ้อนกัน\n",
"nc = 50\n",
"cov = np.array([[1, 0.7], [0.3, 0.7]])\n",
"X_toy_0 = np.random.randn(nc, 2).dot(cov)\n",
"X_toy_1 = np.random.randn(nc, 2).dot(np.diag([2, 0.4])) + np.array([1, 0])\n",
"\n",
"# plot ข้อมูลเทียม\n",
"plt.plot(X_toy_0[:, 0], X_toy_0[:, 1], 'or')\n",
"plt.plot(X_toy_1[:, 0], X_toy_1[:, 1], 'og')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ในปัญหานี้ข้อมูลของ 2 ประเภททับกัน การจำแนกประเภทจะทำได้ยากกว่า (ความผิดพลาดจะสูงกว่า) ในกรณีนี้ถ้าเป็นไปได้ก็ต้องเพิ่มตัวแปรจาก 2 มิติเป็น 3 มิติหรือมากกว่า เพื่อให้ข้อมูลต่างประเภทกันกระจายออกจากกัน ในกรณีของดอกไม้ตัวอย่างตัวแปรที่ต้องไปเก็บเพิ่มก็เช่น ความยาวลำต้น สีดอก เป็นต้น สมมติว่าเราไปเก็บตัวแปรเพิ่มมาอีก 1 ตัว แล้ว plot เป็น 3 มิติ ข้อมูลอาจจะกลายเป็นแบบนี้\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"nEUendXYAAAAAElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits.mplot3d import Axes3D \n",
"\n",
"X_toy_d3_0 = np.random.randn(nc)*0.5 + 2.0;\n",
"X_toy_d3_1 = np.random.randn(nc)*0.5 - 2.0;\n",
"# plot ข้อมูลเทียม 3 มิติ\n",
"fig = plt.figure(figsize=(7,5))\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"ax.view_init(20, -100)\n",
"ax.scatter(X_toy_0[:, 0], X_toy_0[:, 1], X_toy_d3_0, c='r')\n",
"ax.scatter(X_toy_1[:, 0], X_toy_1[:, 1], X_toy_d3_1, c='g')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ซึ่งสามารถแยกประเภทได้ง่ายกว่าข้อมูล 2 มิติ กลับเข้าปัญหาเดิมคือเรื่องแยกประเภทดอกไม้ กรณีนี้เราไม่จำเป็นต้องเก็บตัวแปรเพิ่มเติมเพราะดูจาก plot ข้อมูลไม่ได้ทับกันมาก"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## KNN\n",
"K-nearest neighbours (KNN) หรือ [ขั้นตอนวิธีการค้นหาเพื่อนบ้านใกล้สุด K ตัว](https://th.wikipedia.org/wiki/%E0%B8%82%E0%B8%B1%E0%B9%89%E0%B8%99%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%84%E0%B9%89%E0%B8%99%E0%B8%AB%E0%B8%B2%E0%B9%80%E0%B8%9E%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%99%E0%B8%9A%E0%B9%89%E0%B8%B2%E0%B8%99%E0%B9%83%E0%B8%81%E0%B8%A5%E0%B9%89%E0%B8%AA%E0%B8%B8%E0%B8%94_k_%E0%B8%95%E0%B8%B1%E0%B8%A7) เป็นอัลกอริธึมจำแนกประเภทอย่างหนึ่งที่ทำงานง่ายมากตรงตามชื่อ สมมติมีตัวอย่างทดสอบใหม่เข้ามา ความยาวใบ=5.5, ความยาวกลีบ=3.1 (จุดดำ * ในภาพต่อไป) แล้วเราอยากหาว่าเป็นดอกไม้ประเภทไหน"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xte = np.array([5.5, 3.1])\n",
"plt.plot(X[Y==0, 0], X[Y==0, 1], 'or', label='Setosa')\n",
"plt.plot(X[Y==1, 0], X[Y==1, 1], 'og', label='Versicolour')\n",
"plt.plot(X[Y==2, 0], X[Y==2, 1], 'ob', label='Virginica')\n",
"plt.plot(xte[0], xte[1], '*k', label='ตัวอย่างทดสอบ', markersize=12)\n",
"plt.xlabel('ความยาวใบ')\n",
"plt.ylabel('ความยาวกลีบ')\n",
"plt.legend(loc='best')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"วิธีของ KNN คือ\n",
"\n",
"1. กำหนดค่า K ก่อน โดยที่ K เป็นจำนวนเพื่อนบ้านใกล้ตัวที่อยากจะพิจารณา \n",
"2. หาตัวอย่างที่อยู่ใกล้กับจุดทดสอบที่สุดมา K ตัว\n",
"3. ดูว่าใน K ตัวอย่างนี้เป็นดอกไม้ประเภทไหนมากที่สุด จำแนกจุดทดสอบเป็นประเภทนั้น\n",
"\n",
"ง่ายมาก พูดง่ายๆคือให้จุดใกล้ตัว \"โหวต\" ว่าควรเป็นประเภทไหนนั่นเอง จากตัวอย่างสมมติ K=1 ก็หาจุดที่ใกล้จุดทดสอบที่สุดมาหนึ่งจุด จากภาพจุดนั้นเป็นสีเขียว ก็เลยตอบว่าตัวอย่างทดสอบเป็นดอกไม้ประเภท Versicolour"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## เลือก K อย่างไร\n",
"\n",
"แล้ว K เท่ากับเท่าไหร่ถึงจะดีที่สุด ? วิธีหนึ่งในการเลือกค่า K ที่ดีที่สุดคือการทำ cross validation แนวคิดคือให้แบ่งข้อมูลที่ได้มาตอนแรกเป็นสองส่วน ชุดฝีกสอนกับชุดทดสอบ เลือกค่า K ที่ทำให้จำนวนตัวอย่างในชุดทดสอบถูกจำแนกผิดประเภทน้อยที่สุด เอาไว้จะอธิบายเรื่องนี้ในโอกาสหน้า ในบทความนี้คิดซะว่าเรามีค่า K ที่ใช้งานได้ดีกำหนดมาแล้ว (คิดซะว่า K=1 ก็ได้)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ขอบเขตการตัดสินใจ\n",
"\n",
"หากลองคิดดีๆจะเห็นว่าถ้าเรามีชุดฝึกสอนและค่า K แล้ว ทุกๆตำแหน่งใน plot ถูกกำหนดตายตัวแล้วว่าจะถูกจำแนกประเภทเป็นประเภทไหน เช่น เมื่อ K=1 จุดดำในภาพที่แล้วจะโดนจำแนกเป็นสีเขียว (Versicolour) ถ้าเปลี่ยนจุดทดสอบเป็นอันนี้"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAAXsAAAEOCAYAAABo0bd5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
"AAALEgAACxIB0t1+/AAAIABJREFUeJztnXm4HGWV/z/fhIQEkoAgQdGEXSWJI8y4xYUEcCS5akQd\n",
"UAQXzI381BBkUBRxTFCcAXEEQsAloChxZVxAJUERLigTBBHBMAJhkcQNg2wJJCQk5/fH+zbp2+nu\n",
"qr5dVb2dz/PUc2+/VfW+p96+93T19z11jswMx3Ecp7sZ1moDHMdxnPxxZ+84jtMDuLN3HMfpAdzZ\n",
"O47j9ADu7B3HcXoAd/aO4zg9wHZ5dSzpfcC74stRwIHA88zs4bzGdBzHcaqjIuLsJS0EbjazS3Mf\n",
"zHEcx9mG3GUcSS8DXuCO3nEcp3UUodl/CvhEAeM4juM4NcjV2UvaBZhgZr/NcxzHcRynPrkt0EYO\n",
"Aa6ttVOSJ+ZxHMcZAmamRk/IbQNOAj5cZ7/lOX6G17Gg1TZ0i52dYKPb6XY2ft7kPuhfCWZbt/6V\n",
"MLkvJzut0XNylXHM7BwzOzfPMRzHcVrPhHmweL/BbYv3g4kntMaebfGHqhzHcZpm7Kjq7WNGF2tH\n",
"bdzZp2Og1QakZKDVBqRgoNUGpGSg1QakZKDVBqRkoNUGpGRgaKet3VC9fd36IVuSMYU8VFVzcMms\n",
"0UUGx3GcNkOa0gdTzxss5fTfCzfOM1txZfbjNe473dk7juNkQHD4E08I0s269bDq/DwcfRjLnb3j\n",
"OE7XMxTf6Zq94zhOBkhT5ksz10hHPhp+TpnfapvKyfuhKsdxnK4nOPapp8HiEVtb55wmTcFsxemt\n",
"s2wrLuM4juM0iTRzDSx99rZ7Zj5ktnS37Mdr3Hf6nb3jOE4CYfF1wrwQT792A6xeOHjxdcyI6mfW\n",
"ai8ed/aO4zh1qB5WOWffKNFEh79uU/Wza7UXjy/QOo7j1CVNKoTVi2BOhWPv3xTa2wO/s3ccx6lL\n",
"cioEsxWnS1OAmXODdLNuE6xe1C6Ls+DO3nEcJ4F0qRCiY28b516JyziO4zh1Wb0Q5twzuK3/Xlh1\n",
"fmvsGRoeeuk4jpNAkakQ0tnj6RIcx3G6Ho+zdxzH6VCSY/mbw5294zhOi0kXy98cvkDrOI7TcvIv\n",
"a+jO3nEcp+XkX9bQZRzHcTqavLXuYsi/rKE7e8dxOpYitO5iWL0Q5uy7bVnD7GL5PfTScZyORZq5\n",
"DJYevu2evmVmV84s3qKh00gsv4deOo7TY+SvdRdFdOy5fRvxBVrHcTqY/LXubsGdveM4HUx35K0p\n",
"AtfsHcfpaNotb00ReG4cx3G6jmZDK4sKzSwyBNQXaB3H6SqaDa0sKjSzE0JAc9XsJX1C0jWSbpF0\n",
"ZJ5jOY7TjTSbRiD/NATFjjN0cnP2kqYC/2JmhwKHAcfmNZbjON1Ks6GVRYVmtn8IaJ4yzgzgXkk/\n",
"BsYAp+Y4luN0DN3xeH9RrN0A1wM/I7irp4HXkz60sqjQzPYPAc3T2e8OTATeCOwJLANemON4jtP2\n",
"dIK2216sXg6XHgqLR2xtm7MJVt2Y8vzc0xAUO87QydPZPwr83sy2APdLWitpVzP7R45jOk6bU0vb\n",
"7TuBHJ+e7FwmTB3s6CG87ntlmrPNVlwpTSHMb36hmUWN0wx5OvtfArOBCyTtBoyt5uglLSh7OWBm\n",
"Azna5Dgtpv213RJFyE3JYzQ/X3mnIShiHEnTgenN9JGbszezn0qaLukGwkLwB2octyAvGxyn/Wh/\n",
"bReKkZvSjdEZ85U38SZ4oPRa0vxG+8g19NLMPmpmrzazqWZ2TZ5jOU5n0CmP9xcRSphmjE6Zr/bH\n",
"H6pynALpBG03UITclDxG58xX++PO3nEKJgttNws9vX4fRcgnjYxRSg3g6VWGijt7x+kwstDTk/so\n",
"IpQweQwPVc0OT4TmOB1GFtWZ0vRRRDbJpDG6qRJVlngiNMfpCbLQ09Pp5eQcspg8RueEqrY77uwd\n",
"p+PIQk9fuwEuBK4DRgPrgWkN9lFELL6HXmaFO3vH6Tiy0NNXPQS3At8ta5sDPJD6Cfdi9PT2T0PQ\n",
"Kbhm7zgdSLN6ujRzDSx99rZ7Zj5ktnS3lH0Uoqf3YiWqJFyzd5weoXk9fcyIxtqrUYyeXlS6g27H\n",
"C447ToNIU/qkmcukowbCzyl9DZ4/X5q5Rjry0fBzyjaPvqc5pjnWbWqsvRrdp6dL6m+1DblhZi3b\n",
"wvCtG9833xrdYHIf9K8Es61b/0qY3Jfy/PnQv7Hi/I0weX4jxzR/HZOWQL8NHmO2waQlzc3F7HvS\n",
"zkW7bcAOwOPADq22JYWt1ug5rtk7TgM0q1On0cqz0NNT2LEMTj0cfg4MBzYD/wqc2ZDe3k16uqTD\n",
"gcuBN5vZVa22px6u2TtO7jSrU6fRyseMqF6daesxzYc8jh0FBxO2chY9cx1pxugyPf1IYPv4s62d\n",
"/VBwZ+84DdGsTp1GK19D8DWfLdt/WmzPKuSx/nV0e5oCSScDRwPrypqfF39OkzRQ1j4G+JaZfaEg\n",
"8/Kh03Qn33xr5dasTl1dj59dodkfVtF/aXvdyrB/xrLq+2cuzeo6shijnTdgJPB14BHA6mwPA5cA\n",
"I1ttc4X91ug5fmfvOA3QbMpdsxWnh/Nnzg2yzLpNsHqR2YrTtx61y5+B/bY9+1l/Dj+zqd5U/zq6\n",
"O02BmW0E3iPpvcCngL2rHHY/cLqZfb1I2/LCnb3jNEiSTp2kdUfHfnqt85OlomxCHutfR7oxiihd\n",
"mCdmdomk64FfAHuV7bofeJ2Z3dcSw3LAnb3jZEg2WndSigBPP5wxBwG7AVsITn5vYDxwINA1zt5D\n",
"Lx0nQ7JKIZCc+tfTD2eBJAH/C7wQuAKYC1wAzALuBF5lrXSSNfDQS8dpOdlo3UlSkacfzoy3EtZH\n",
"TirT5kta/tnAW4AftMi2TPF0CY6TKdno6fmnS8iCrkiX8FzgFZWLsGZ2CfAKYI9WGJUH7uwdJ1NW\n",
"L4Q59wxua0xPD4596mnhKdrLdgo/p57Wfg6/+WttNWa2qNYirJndZ2aLirYpL1yzd5yMaYf0w0XR\n",
"TekSOgnX7B2nDSgi/XAWIY9Z9NFl6RK6Gnf2jtN21E+pkEXIYxeFTTopcc3ecdqO1YtgToXD798U\n",
"2iHcjS+ueMJ28X5BTklLFn04nYTf2TtOm5GcUiGLkMeuCJt0GsCdvdNVSJOXwMQjYcxwWLcZVl1m\n",
"dsexW/fX16m1u/oYxzxGMoqNbOBxFtqDlsPDSompg+ukVMgi5DGzENGOTpfQS7izd7qG4OhfdQws\n",
"LjUNhznHSJMxu+PYJJ1au6uP53Mes8qSkF3BvtpdZOXwM0qnsBzmHAqLyxZy+zfBqhvTW9J8ygXX\n",
"/TsLD710ugZp5lOwdOS2e2ZuNFu6fdLj/dpfyziWbfcvYZmttEwe/88ixUC7VJnqhnQJnUrbhV5K\n",
"+g2wNr58wMzem+d4Tq8zZnj99gSdeiTV948kQx07K729fpWpNDQfNum6fyeRm7OXtD0w3MwOyWsM\n",
"p7dI1ofXbSbc6lawbnP4maBTb2QDd4+BX78Int4RtnsCXnEnbMzy8f+1G6qXHGyB3t70+kRXpEvo\n",
"GfK8s38JMFrSzwh1Hf/DzK7PcTyni0mnD6+6DOaUa/ZAf2yHRJ36T89dzqpph7Lx21u18NVHb2LY\n",
"dQ1o4UmsXg6XVujtc4rX2zNZnygi1bKTFblp9gqxY68ys69I2he4GtinPF2oa/ZOWtLqw+micarr\n",
"1EVo0EWlQE48P6P1CU+X0BraTbO/C/gDgJndK+lBQkGAB8sPkrSg7OWAmQ3kaJPTsaTTh6NjP7b6\n",
"sUk6dREadDEpkBPJaH3C0yUUg6TpwPRm+sjT2c8G9gdOlrQHsJOZPVh5kJktyNEGp4Oor8kXoQ8X\n",
"UYqvTXTujVS3YyMF6/5OGuJN8EDptaSGM6Dm6ey/Clwi6bo4zpwcx3I6nGRNvktK8Q2/6yE2zwYu\n",
"Lmt8Hwy/8x8ZXEB6HmchV7BvhWZ/L49TsO7vFIXH2TttQRotuxtK8WnU1DU8ddazt4mR3/5jD9mG\n",
"5YWmL4535ScwktFsZD2Pc34jTrqI5xKc6rSbZu84DZCsZWehD6eTHUr/RNX+mZLtrCvzaMcRVWPk\n",
"tWONtMb5Ea+75nwmzlUhzyU4WeHO3mkT8teyk2SHdBJNfTsT+7AnqqcvrtXeIlJJNBnp/k4xeIpj\n",
"p00ooMTdOOYNcl4As9iPccS0vmnS/ibZmdCHHljEyKMHO/aR79iEHmiv8neJc0VJ9x88Fw3q/k5x\n",
"+J290xaYrbgyPJrRl58mnyg7pJOS6ttZvw9b/5fTNXoP2H7qXLTjCOyJTeiBRbb+LzUyXLaIFBKN\n",
"PWhXanfBkqHr/k5xuLN32obcY7YTZYeUUtJud7yMne54KSMZwUY28Rgv4xm7U/Qx7q83M+6vt5Rp\n",
"4Tc3chlZUVeTTynRNK37O4Xhzt7pHRLDDVOEXo7XfCZwGrMYUdbHaRov7O92elIf7RKumGiHh2Z2\n",
"HYmhl5KGAS+ususvZramqcE99NIpmKRww8TQy/21hmN59jYdL+EhW2m7JfXRLuGKaezw0Mz2Ja/Q\n",
"yxHAEVXajwAOamQwx2k1SbJDopQ0kuohkmXtdftol3DFlJo8bZCSwcmGRGdvZk9RpTyapFfmYpHj\n",
"tDMb2cQfgXsJsWxbgH1je7rzC0lTkKiVFxE26aGZbUUqzV6SYNCnsaiaN9xxupzHuIrbOYZZZW1X\n",
"xPY0FKCFp9LKM7AjkSLGcFKTRrMfCVwCvBK4oWzXoWb2vKYGd83e6TCy0KHz1sLT2tisHalsLWCM\n",
"XiQvzf5pQlriq83s/WWDHdqgfY7T+WSgQ+euhae0sWk7UlDEGE460mj2W4CTqrRfk4tFziCaS6db\n",
"HFnEUzetQ2dxHeM1n52YWxZDvyiEVEZS6NC5z0WSDa6VO1Wo6uwlnUAoVz8MOA/YAHyEsBw1EtgD\n",
"+KuZ9RVkZ0/SdDrdgsginjoTHbrZ60iMoSdRhy5iLhK1cNfKnSrU1OwlfR4YBSwAvge8EXg+8BXg\n",
"HDO7vOnBXbOvSxFl8rIgEx07Ix26GdLE0EN9HbqIuUiyIc1+p7PJQ7PfFXgE2GxmT0o6D3gH8E5J\n",
"F5vZ7CHa6qSiiDJ5GZBCI246XW4RMdspYughQYcuYi6SbNiKKn4O3umpDHqKes5+A7A7UbKR9Gpg\n",
"LPBxYApBznFypU1K2CWRoBFnki63mLjw6rHyaWPow7H5z0UCacbwVAa9R70UxwuA7wI7A+8nROUc\n",
"CpwD9AMz8jbOKSDtbxYkpbrNIl1uEel0H2MRV1Q49svDIm3qPoqYiyTSjJHmGKerqHlnb2ZPA18u\n",
"a/p1/PlArhY5z1BI2t8MSEx1m0G63CLS6drf7XSNFyypE42T1EcBc5FIGsnLUxn0HGmfoH0TMBd4\n",
"smLXO2I6BScnck/7mxF1NeSM0uUWEhceHHsWueWr6+WNSTR1NfeapBnDwzN7jrQpjucBh8eYe8dp\n",
"jB4KBcwidXDTenqa+e6h98QJJKZLAJD0M+A4M/tzpoN76GXP0CuhgJmETRaUkqFX3pNuJK90CQCb\n",
"gSWS/gDcVdZ+QdT2HacuPfPYfBZhkwWlZOiZ98QB0jv7zxHCMG8BngeUvg64rONkRmK6hKRUBhmM\n",
"0TRZaOGupzs5kMrZm9m1ZS9X5mSL08MkpktIk8qgyTEyuZAstHDX050cSKvZ70VIhjYuNm0Gfmtm\n",
"FzY1uGv2TiRFuoRUqQyaGWMIZlcfJwMt3PV0px55avYXAKcAfyKEgZ0BvA1oytk7zjMkp0sYUbVC\n",
"VEUqg7oyTUGx5Vlo4a6nO1mT1tljZneUfpf0DWjgEXLHSWIDY2u0jwHgCYKjP6xs3y9ieyRRpnEt\n",
"3Olh6qVLKOfRKOUAYGY3mdmtuVjk9CZPY/yiou3q2A4wjDWDHD0Exz+MNc+8TkoBUETKBcdpU9Le\n",
"2X8QmAr8sdEBJI0nRPFMM7P7Gj3f6RHGsI59gWsIQqEB+wEPx3v30fw5tgwmtAcSZJoiUi44TruS\n",
"1tlvDzxf0okV7V80s421TpI0gpBf54laxzi9QaoKUHsBe1Wc+KsGsl5uZENVXb/smCQtPE1opqcG\n",
"djqRtM7+a8DFbBt2uTnhvLOBLxHSIjs9ShYVoFKFIz7Gcm7n0IpxNvEYN6ay01MDO11M6nQJZvb6\n",
"hjqW3gtMNLNPS7oW6DezeyuO8dDLHiCLClCp9jcZWpkq1UFB4ZuOU488Qy9vkfQOM/tOA30fF406\n",
"BDiQkG7hTWb2UPlBkhaUvRwws4EGxnA6gSwqQKXY33RopacGdtoUSdOB6c30kfYJ2lMlpY3cKZ0z\n",
"rfR7vLOfXeno43ELGunXyZ4CUgikqgDVtB3NhlZ6amCnTYk3wQOl15LmN9pHorOXtAPwzfj7M2MD\n",
"vzSzcxod0GkvCtGgQwWowZp9RQWoTOx4jOVcUaHZX55es/fUwE43k0qz3+akcJc/YGYHNzW4a/Yt\n",
"p7AUAgnROJmk9d1fy3gNh3MfW8M39wF+5amBne4iN81e0lHAeuAnwD5mdq8kD6fsBopKIZBUASoL\n",
"O0Yyqmr45k2eGthx0so4rwUOAnYBDpO0EGo83u50FgVp0Il6vKcGdpxcSXT2ZvakpOuBfxC+HJ8N\n",
"zAJ+nrNtThEUoEGn0uM9NbDj5MqQNPvMBnfNvi3IW4NOq8d7amDHScdQfGeis5c0EvhARbMBv68o\n",
"atIw7ux7A03WAC9n2jZpDG7iOrvDprfUOMfpQPJaoN0M3MbWUoQAw4FzgZc0MpjTo6xjTNX0xOvY\n",
"sUUWOU7PkUaz38zgYP7tCMVMzs7PLKer2A5VTU/8DfxbneMURNrQy1OB/QkLtJOAHYD/y9Eup5sY\n",
"xdoa7esKtsRxepbEFAgx9PK5wN7Ah4HfErJgHpOvaU7XkDIkUrurT/trmSZrQPtrmXZXXyH2OU4P\n",
"kDb08tvApWb2WMxpfwjw1tytc7qDFCGRnjrYcfIldeilpP1g0IKaASvMbMuQB/donJ4h7/TEjtNL\n",
"5Jku4WvAWsKDVeXcBTzVyIBOb5J7emLHceqSNp/97mZ2XK6WOEOmK8rkpdD1u+I6HadFpHX2T0l6\n",
"tZndkKs1TsN0jdadoOt3zXU6TotIW5ZwNLCbma3KdHDX7Jumm7Tuerp+N12n4zRLnmUJtwfeJmlc\n",
"fG3ArWb240YGc3Kgi7Tuurp+F12n47SCtKUGvwrcDfwIuJwQd39yXkY5DdAraX175TodJyfSOvvt\n",
"zeynZnabmf2OkN748zna5aQlaN33DGrrxrS+vXKdjpMTaTX7HwDHmdljmQ7umn0m9Epa3165TsdJ\n",
"Ik/N/kRgJvCdhq1ymqKBcENV/Ow6vByg4wydtM7+xcD/k/T28kYze0v2Jjkl0oQbekii4zhpSCvj\n",
"3AAcCuwJPJiVnOMyTn3ShBt6SKLj9B5D8Z1pF2jXAnsA7wYuatQwZ4ikCTf0kETHcVKQ1tk/THD2\n",
"2wHTJN0eF22dPEkTbughiY7jpCCtsz8ReCewF3AK8M9m5imO8yZNuKGHJDqOk4LUKY5zGdw1+0TS\n",
"hBt6SKLj9BZD8Z3u7B3HcTqMPBdoHcdxnA7Gnb3jOE4PkPahqoaRNJyQQG1vwofK8WZ2R17jOU4v\n",
"I6l1eqyTK1lJ3bk5e+CNwAYzO1jSdOB04N9yHM+pgVd46g18/av7yPJDPDdnb2aXSyrlu58I/C2v\n",
"sZzaeDoFx3EgZ83ezLZIuhg4l5AH3ymaccwb5OgBZrEf4zihRRY5jtMC8pRxADCz2ZJOAW6WNMXM\n",
"nizfL2lB2csBMxvI26aewtMpOE7HE6Xw6c30kecC7buBiWZ2BvBUbN5ceZyZLcjLBgdPp+C0HElT\n",
"gTOAccBw4EHgFDP7fZ1z9gHOMrMji7GyvYk3wQOl15LmN9pHnnf2/wN8Q9J1wEjg42b2VMI5TtaE\n",
"dAr7Vmj2nk6hR5gi9U2AeWNh1FrYsBoWrrDG1mqa6UPSdsCPgVeZ2d2x7Q3AUuD5dU6dCBXyo9Mc\n",
"ZtayLQzfuvF7ZWM8fezHUiYxwH4sZTx9rbbJt4zf4yr/S5Ohrx9WGlhp64eVk0n//jfbBzAW2AhM\n",
"r2h/PeFm823ATcAtwA3AVMJa4j3Ak8CP4vFHxGN+B/wvMDW2vyKe/xvgNuDo2D4O+GY8507gOmD3\n",
"Vr9PWbyv9drr9tWOF+Kbb741tlX7X5oBy8qddGmbCUvT9ptFH8BsQubcB4AlwHHAaOCFwO+BcfG4\n",
"lxAknmHANODW2P6C2L53fP1K4K/AzsAVhGd4APYBvhZ//yBwRpkN3yJIRy1/r5p9X+u119tyX6B1\n",
"HKc1jKX64vwY0i/OZ9GHmV0s6VLgEOAw4GPAqcDXgecA10nPPCKwifAgZvkzA68nfLjcH/u7UdLd\n",
"wKuA7wHnSDoE+AXwkXjMhZJeKumDwCTCN4C/prW5G/F0CY7Tpayl+uL8OtIvzjfbh6RXSjrJzDaa\n",
"2VVmdgrB+a4lLNZeZWYHlTbg1cB9ld1QvbbyMDNbAkwmrgsAd0oaH6P8FhGCQpbE/T3t73r64h2n\n",
"m1kNC+cwuNZBP9y7ivSL8xn08RjwHzF0sMTewC7Aj4CZkvYFkPQ2YDnhQ+Bptn6rWArMkLRXPO7l\n",
"wAGEbwQ/Aw4xs28CxxMi/8YDs4AFZvZlgmZ/WNpr7lY8xbHjdAG1/pemSH0T4YQxMHodrF8F5w8l\n",
"GqeZPiS9DvgE8CzACAuvZ5jZMklvJ0g6IizkfsjMbpK0M2Hh9UEze62kY4BPxi43Av9uZr+Q9GLg\n",
"i8COsY9Lzey/Jc0CzgQeB/5MWBv4ZzOb1ci1t5pa76vns3ecHsX/l7qTLJ29yziO4zg9gDt7x3Gc\n",
"HsCdveM4Tg/gzt5xHKcHcGfvOI7TA7izdxzH6QHc2TuO4/QA7uwdx8kNST+X9PEq7SdLarp6naTj\n",
"JX1kiOdOl3RrszZ0Cp4IzXG6mCyKzTfZxyLgbMLTrOXMgeZLY8Z0CE4K3Nk7TpeSRbH5DPr4CbBQ\n",
"0jQzuw4gZqgcZmY/j/lwPkbIh7MB+IiZLY+JzF5OyHPze+BLhA8OASOAM83s2/G4nczsJEkvBM4D\n",
"nhv7+28z+5qkyYRcPrvE8xea2cWDrlN6Vjz3wHjM1cDHzGyjpC3Azmb2eDx2CyG98luBfkIKiCfM\n",
"bEaaOW0VLuM4TreSRbH5Jvsws83Alwk57UscD1wQnfMC4HVm9i+EHPQ/kjQ8Hrcn8EozO46QW+ci\n",
"M3sp8BZC2mMIjraU8+W7wLfN7CXA64BPSNqVkHDtfDM7EPjX2P7aClPPAR42s38CDgL2InwIJfEi\n",
"4A3t7ujBnb3jdC9ZFJvPpmD9xcCbJI2VtBvBUX+N4HhL+exvBS5haz57A643s6djH5cBZ0j6DiGD\n",
"5SCdPjr1ScA3AMzsb2a2P+Euf6SZ/TC2/52Q8vhNbP2QAHgDcG485mlgYTwmid+U7vjbHZdxHKdb\n",
"yaLYfAZ9mNmDkq4EjiWUKbzMzB6PBUuuMrNjS8dK2hNYFV9uKOtjSUxn/K+Eu/b/jPJMiW3qW0t6\n",
"AdVvaFWlfRiDc+aXH2MEWQhJ21ecl34uW4zf2TtOtxKKzQ/KRd9wsfks+ghcSFiU7QcuiG3XUD2f\n",
"/XZUFCuRdBXV89aLkL13HfBr4Jh4/HOB64GHgE0x5THxm8U7gcsrxvgxMDceM5yweFyKFvoToTQi\n",
"hOIqHYnf2TtOl2IP2pXaXbCEExjJaDaynsc5v5FonCz6ADCzGyQNI+Snvz22/V8sG/h9hdv8jcAR\n",
"ZrZJUrkWD0G2+WIM4xRwjpmtiB8QpeOOjcf8O+FG9oNm9hdJRxHWCD5HuENfZGa/jAVVSueeDHxF\n",
"0j3x3F8AZ8V9p8Z+/w+4u+ycShvbGs9n7zhdgP8vdSeez95xHMdpCHf2juM4PYA7e8dxnB7Anb3j\n",
"OE4P4M7ecRynB3Bn7ziO0wO4s3ccx+kBcnP2kkZL+r6k6yXdJOkteY3lOI7j1CfPJ2iPA1aa2dti\n",
"+tDfAT/McTzHcSqQpvTBhHkwdhSs3QCrF5qtaCyffRN9SPo58AszO7Oi/WTgUOBxMzu6MXt0K/Aa\n",
"M3uizjGLgSWltMpOjk/QShpByFn9lKTdgWvMbHLFMf7Un+NkQLX/peCkp54Hi8tSFM+5B5afmN5Z\n",
"N9eHpDcDZ5vZCyra7wROMLOfp7GjV+mIJ2jNbFN09DsS0o5+MK+xHMepxoR5g500hNcTG6gQ1XQf\n",
"PwG2lzSt1FAqXkJIUHZrbLskyr63Sfq0pF0l/UDS7ZKulnSlpPnx2C2Sxkl6r6QBSf8j6XeSbpG0\n",
"XzxmIH7QIKlP0q/jMTdLenls/4Ck30i6VdLdMc9O15LrAq2k5wNLgS/41ynHKZqx1XPRM6aBXPTN\n",
"9VGveAnbJhEba2YvMbNPEapG3R2LiRwD/EuV4wFeAsyNhUluAk4qDQ2YpOcQ8te/Ox4zH/ispOcB\n",
"7wamm9lBwDzgM2muqVPJTbOPqUQvA44vZbmrcdyCspcDZjaQl03tyBSpbwLMGwuj1sKG1bBwhTWW\n",
"UbAdxnDakbXVc9GzroEc7Fn0wcXAnZLGAqMIxUveD/xz2TFGyDRZ4nCCgy/Ph1+NG83sb/H3mxhc\n",
"cETAa4Dfmdldsa8rgSsBJB0BzJJ0AKEE4u4NXFOhxAyd05vpI88F2v8g5Js+LxYpADjMzLaUH2Rm\n",
"C3K0oa2ZIvVNhfMWs7Xs2xzYd4pEVs64iDGcdmX1Qpiz72AZpv9eWNVALvrm+0goXlJO+QdLWj26\n",
"/Byrct56Kr4RSPqn+OuPga8CNxBy6/8g5ZiFE2+CB0qvS5JWI+Tm7M1sHuGrkVODCTCv3AkDLIb9\n",
"+kLhhEwccRFjOO2J2YorpSlA3wlBdlm3Hlad30g0ThZ9RC4kFP0eA/xblf2VTnoZ8B7gM1ElmBH7\n",
"aAQjFEOZJGl/M1spaQbwOeAiYLmZnQ4gqaslHPDiJS1lLNXre46hofqeLR/DaV+iU27qQz2bPrYt\n",
"XlLaVfaz/A78REIxkduAx4CVwKMJ52xTTMTMHpb0TmCJpJHAOuBo4O/AmyX9HngQ+B9gs6Rdzewf\n",
"zVxru+JtBFVtAAAQTElEQVTOvoWspXp9z3UZ1rUsYgzHSUNcIC1/PUDU7c3suIrDjwT+08xukTSK\n",
"ILX8Jh47PB7z9biV+nvmtZkdUtZ+LfCKKiYdVvH6S41dUWfh6RJayGpYOIfB9T374d5VNFzfs6Vj\n",
"OE4O3Al8WdJvCbVlf2Rmy1tsU0fjZQlbzBSpbyKcMAZGr4P1q+D8PKJx8h7DaS3+v9SdZPlQlTt7\n",
"x+kC/H+pO8nS2btm3wMUFMs/fwLMHQMj1sGm1bBoRYx0yHAMf17AcYaIO/sup6BY/vlT4bTFMKJs\n",
"jNPiGJk4fH9ewHGawxdou5xacfYTQ5x9VmPMLXf0cYwRE2BuhmPkfh1OZxLz5LgvS8Dv7HMkjeyQ\n",
"hfwxWVoyEY4cA8PXweZVcNkdZsdCiLO/HvgZ4c1+mvCsepZx9mMqHH1S+1Dw5wWcOnwFOA24t9WG\n",
"tDPu7HMijeyQhfwxWVryKjhm8dam4XPgmMkSd5gd+zcYcxXw2bJzTgP+Bjs2eYnPsA42NdI+FPx5\n",
"AacO2zxM5WyLf/XJiTSyQxbyx0Q4cnFF2+LYDjAK9NmK/Z+N7WnHSGI1LJpT4dj747eUDMfw5wWc\n",
"WrwPuL/VRrQ7fmefE2lkhyzkjzEwvF77zrC22v6dw2PjmbDC7PQpEjNzjMZZYXblFIk+f15gSEjq\n",
"N7OLWtWHpE8SMll+spTuXNK0LFKfm5l/u0uBO/smqKfJp5Ed0sgf9fT4eOxmqjj82J7KjjTrBu0S\n",
"9mjxG4ll+M2k25G0A/AFSd8ysydb1MdehBz2B0p6gqAm3g14nYuiMLOWbWH41o3fzDYZ+vphpYGV\n",
"tn5YORn6au2fDfeU9sdj5vfDxopjNk6G+WbGJFjSX7YvjmGTQm1N4jHXVB4zOxxzTZr91WzoL7Mh\n",
"5bUm9pH3fPf6Vu9/iXBHvQE4vIn+m+oDmAR8D7iWoDS+rtVz1glbrfd1KL6zLS+kE7YZsMwqnKiB\n",
"zYSlpWMmQ99MWHokDMyEpdUc02SYPwPW/Bs8OgPWlDvIGfBUtTFmwFPldpwC9kawt8efp5TZMQOe\n",
"ug7sk2Dz48/ryvqYAWtqjLEm7bWm6aOI+e7lLcHZX0RYwLyoif6H3AfhW9jrgQOAI4C9m7zWAwiZ\n",
"K4fH133AyBTn/VPFec8mpFHeNb7eFXgnsHMTtilh/zhChazxZW17Agc18r4OxXe6jDNE0mjyK8qq\n",
"4tQiyiVVte0kPb5kx1lVjjkq2jEGhh8MHFyx//zYR5p1g6Rr9dDL9kHSyQSHVr4m87z4c5qkgbL2\n",
"McC3zOwLWfdRwUUEyeb9wO3AqZL6gOcDnwd2IHwgfNrMlkUbjgU+QAgieQJ4n5mtiv0tAr5DcNRf\n",
"BT4K3BjloW/HfrcAp5lZefWr04HfEoqofB34NCEq+WxJ/4+Q5vhq4AxikISko4EPxf6eBE60WPUq\n",
"pk6eG/c9BZwF9ANHSXo9oYDTcIKkOtfMbgNOAW4B/ht4V7TrZcBk4NY6c9g0Pevsm9Wg18KGCwmC\n",
"42iCAD6NxkMB6+nlSXp8yY5qcfQlO5L6SLNukKT7p+kji/muZ4PzDOcT7mBnATtX7NuPrRFijwBX\n",
"UD1iKos+AJD0MoIjv4rwN3ch4SbgYMJd/jvM7B+SxgE3SZpE+AaxK3CwmW2OBUc+Q3DuENIi78DW\n",
"erPEMV4ILDOzr0jaiyAXlTv7DYQ791IA20rgVEJu+xOAbxAqVp0fbX8N8A7g7QSHPj4e84qYdvmA\n",
"aOPT0bn/hFAGEeAFwOvNbH0se/hFQlnB3wMfI3xwlCgmbLSZr1PNbrRIxslC/02jp6ewo67WnaS3\n",
"p7FjEtxWo4/bap0/u+I6ktYfktYespjvNGsgvbxV/i8B7wXui46kcrsPeE+KPrPo4y3AJ4BvEeSW\n",
"ecDJ1c4l6Pm7xN8/ANxIqFC1K2V/8wSHObLaeRX93V6l7T3AyWWv9yQ4+Kvi672AH8ffzyB8w/kW\n",
"YXH5ecCKsnPfT0jFfDOhkPkfyvbNivbPLtlctm9X4Nqy12+jxvpWLR85FN/Zk3f2WZTqmwiHV4tv\n",
"nxkWstLaUTXOfmb4anj6RNi4C6GC8o6E77KTgD3DV8ZUdkyEPar1MRH2iPuf/S4Gf998N/CX8AcJ\n",
"JIc9JoVeZjHfHnrZGGZ2iaTrCXe2e5Xtup+wOHpfEX0QZJN3EO6izyJE4eyf4rw3ET5s+gnOtDz6\n",
"6lxguaRjzOzOOn0IQNIi4BYz+1qNYw4m3L1X8ijhm82zgFcTpJfyu/CjCF/ojwKeQ/hiXeLNwBzg\n",
"3wkF17exq2h60tlnof9mFCNft48kPT5NH2NgRLU+jiwbo5qmv6hiLpLWH+qtPWSlt6dZA3EGcRCw\n",
"G0GCuB/YmyBFHEi4M8+9DzN7QNJm4BLgtYT378TK4yRNA3Ypa9oBOJOgx1fyIeAQM3ss5TV8BLhM\n",
"0k019q8nyFGVfJcQQfRR4KNmdl9FkfThwCsJFa5+QpiX8n3nEb7VVFKMbFNBTzr7tHp7PZ05C506\n",
"qY8sYvWzGCMNSc8c1FtXcLJHwSt9BNhIWHicS5AiZgEflfRDi3pAnn1EzgUuBy61oG9XjnM4MJXw\n",
"N1nqbwvwfjP7u6TxDHaQIyoc/SjK1rEqMbMNkhYQJKSbKftmHLnNzLb5PzGz1ZJuJ+j0fVW63kz4\n",
"IPwU4QPs12X7tgAfN7PSB0x5toLKO/sRFPEB0Ap9sRndKYstjd4+lNjyRnXqofRRqVMnae5ZjJG0\n",
"tUMcfq9vlf9LBB14DRXaOEEaWQO8NUWfTfcRjx9OUBCfHV+fDLy7bP8LgF8SdfPY9lngDmA5cBuh\n",
"Hm1p3yOxfTlwEzXCbynTyePri4HfAQeUtT0XOK/i9bllr18GfL9anwT18zfAu+Lrcj3/eEIE0vJ4\n",
"zJKyfb8mSESla7iPGs8v1PKRQ/GdbfUHWtSWRWy5WWKMfKq48Hp9xP11Y/VnwLJqcfRp7UwzRor5\n",
"TIrD9xj5nLcqzn4usE+NY/chhAIm9dl0Hy2ekz0z6GNk6UMqqz6beV+T2uttPSnjZBFbDtno1PX6\n",
"iPvr6tRpNPdmx0gi6VqLjJFvl7QOrcbMaoZDWlhYTUxSl0UfrcTMHsigj43AQ1n22Sp60tlnEVue\n",
"RFFx4Y/C2BrtY7Icpx5J11rUXHg1K8epTU+mOE6TkrfZlLpFpeTdAHZaRdsnYnuW49Qj6VqLmguv\n",
"ZuU4tenJO/s0KXmbjesuKi78ObDucAbHyc8A7gkLYoWQIg6/kLnwlAqOUxtFsb81g0tmZrk8YNAr\n",
"2u1MadnSKg9y9cGyK81mtsKmVtHLc5Hn/5LTOmq9r0N5v7vyzr6XtNsokexbfq29WsGp1+dCUuvu\n",
"3Jy2p5A7e0kvBc40s9dVtOdyN9Jrd3hTpL6JnkYA8LlweoO2vLOXNA84jhrl8fIga+1W0nQzG2jK\n",
"qBwphU62u52Q/1xmlVKhE+YS3M6s6RQ7h0IR0Th/IyQKKkxPzCHUb3q1xilS30xp2VHSwExp2ZSQ\n",
"o7uVTG/x+GmY3moDUjK91QakZHqrDUjJ9FYbkJLprTYgL3K/szez78Xc0oVRhHbbS+sCjuN0Pl25\n",
"QFtEqF8WaXsdx3GKoqgF2r0IGe9eW9Hu0QOO4zhDoO0WaMvYxrF7XLDjOE4xtPShKsdxHKcYejI3\n",
"juM4Tq9RmLOXNF7Sakn7VLQfJ+l/Jf1a0huKsqcWdez8gqRbJF0r6RpJz2qhjb+Jdlwr6ZKKfW0z\n",
"nwl2ttN8fiLacIukIyv2tdN81rOzLeZT0vvK3vPlktZL2qVsf8vnM4WN7TKXwyRdIulXcTugYn9j\n",
"c1lQAv4RwA8Jldj3KWvfhVCNZntCgeu7gOFFFgdIY2fcN0BZEYMW2rg9cGuNfW0zn/XsbLP5nEqs\n",
"REQoLn15m85nTTvbaT4rbFpIrOLUbvNZy8Z2mktgJiGwBeAw4LJm5rKoO/uzCUV5/1rR/nLgl2b2\n",
"lJn9g5AG94UF2VSNqnZKGkaw68vxk/RDrTAu8hJgtKSfSbpOUnndknaaz5p2ttl8zgDulfRjwgf9\n",
"f5Xta6f5rGlnm81nyaaXAS8ws0vLmttpPqva2GZz+SSwsyQB4xj8sGjDc1lEuoT3Ag+b2VWSPs7g\n",
"J2mfRagnWeIRBleYL4wEO3cALiR8GAwDrpf0SzO7vXhLeRL4gpl9RdK+wNWS9rHwcd8280l9O9tp\n",
"PncHJgJvBPYElrH1n6ad5rOene00nyU+RSitUE47zSdUt7Gd5vJGwre4PwDjCYXeSzQ8l0Xc2R8H\n",
"HCbpWuBAYImkXeO+RwhGl9gZeLgAm6pRz84ngbPMbIOZPQlcDUxqkZ13EQonY2b3Ag8S/hCgveaz\n",
"np3tNJ+PAj81sy1mdj+wtk3/PuvZ2U7zSdS/J5jZbyt2tc181rGxneby48A1ZvYi4MXAVyVtH/c1\n",
"PJe5O3szmxa3QwiV3Y+JXzsAbgYOljQqTv7+hIrshZNg54uAXykwAngNcGsr7ARmA58DkLQHsBPw\n",
"97ivbeaT+na203z+kqCHImk3YGw7/n1S3852mk+AQ4Brq7S303zWsrGd5nIkWx34I4T6RMPj64bn\n",
"shXpEiTpJOB+M/uRpM8TFkQEnGxmT7fApmpU2vl9YHnc93Uzu6tFdn0VuETSdYT3bw7wYUntNp9J\n",
"drbFfJrZTyVNl3QD4ebnA+3495nCzraYz8hE4JnC3O04n9S3sV3m8vPA1yW9lbAQ+x/A8UP9X/eH\n",
"qhzHcXoAf6jKcRynB3Bn7ziO0wO4s3ccx+kB3Nk7juP0AO7sHcdxegB39o6TEZJeI2lA0pJW2+I4\n",
"lbizd5zs6COUpNyp1YY4TiXu7B0nO5YBfwba5cFAx3kGd/ZOTyJph7Lfh0saWWPfDpXn1sLMrjez\n",
"b1aMM0LS8LLXo4duteMMHXf2TkciaTdJ35K0TNINkvokTZD0A0k/jT93ljRa0g8lXSnpa/HcqcCZ\n",
"kk6N3b0W+EDcdyRwlqSj4r5vxvb/UkjX/FOFAjc7SfpmfP1TSXvVMPVLcStxoSSXeZzCaUVuHMfJ\n",
"ggXABcBf4nYVwakeZ2aPKVTuOQ74PvB5M7tB0kJJ+xFklhcDY2Jf5TlDJgMHAT8rNSjkOL/NzE6N\n",
"eUpmAX8CTjOzP0qaDJwEnFjFzl0JSaocp6X4nb3TqewKvImQXXNP4BEz+46ZPRb3/wkYZ2arzOyG\n",
"2PYPYEczuxk4gsE1C0r8EVgM/KTUENMKf6eij2Vm9sfysaoZaWZH0LrMjo7zDO7snU5lGfA+QgGP\n",
"B6vsr+bIw46gz58JTJJU+e32FkIq4X22ObE2NcdynHbBnb3TqSwB/mZmR5bdzQMQpZbjGSzPlHMI\n",
"sJJQlegCQo7w0rGzgIVmdm+Ub+qmhZX0cuAMYEtZ8zBJiyRNaPCaHCc3XLN3OhIze1rSPTV2bwQO\n",
"IMS8b3MqoVDzZ4CLCLLMOcCH4/7tgHMlrQV2JNR7rcemONb3y9puB14BbJZ0NDBV0tK4b1dgXUKf\n",
"jpM5ns/e6RliSbdNZrYl8eDafQwHhpvZxuwsc5z8cWfvOI7TA7hm7ziO0wO4s3ccx+kB3Nk7juP0\n",
"AO7sHcdxegB39o7jOD2AO3vHcZwe4P8DHm1VarOKoFUAAAAASUVORK5CYII=\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xte = np.array([7.5, 5.5])\n",
"plt.plot(X[Y==0, 0], X[Y==0, 1], 'or', label='Setosa')\n",
"plt.plot(X[Y==1, 0], X[Y==1, 1], 'og', label='Versicolour')\n",
"plt.plot(X[Y==2, 0], X[Y==2, 1], 'ob', label='Virginica')\n",
"plt.plot(xte[0], xte[1], '*k', label='ตัวอย่างทดสอบ', markersize=12)\n",
"plt.xlabel('ความยาวใบ')\n",
"plt.ylabel('ความยาวกลีบ')\n",
"plt.legend(loc='best')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ตัวอย่างทดสอบนี้จะถูกจำแนกเป็นสีฟ้า (Virginica) เพราะใกล้จุดสีฟ้าในชุดฝึกสอนมากที่สุด คราวนี้ลองจินตนาการว่าลองเลื่อนจุดทดสอบ (จุดดำ) นี้ไปทั่วทุกจุดที่เป็นไปได้โดยไม่เลื่อนจุดในชุดฝึกสอน ทุกๆจุดที่เลื่อนไปก็ใส่สีที่จุดทดสอบ ณ ตำแหน่งนั้นจะถูกจำแนก เราจะได้ประมาณนี้"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"gP8CqbqPrNmdoWQAAAAASUVORK5CYII=\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def classify_1nn(x, X, Y):\n",
" x = x.reshape(1, 2)\n",
" dists = np.sum((X - x)**2, 1)\n",
" i = np.argmin(dists)\n",
" return Y[i]\n",
"\n",
"colours = ['r', 'g', 'b']\n",
"plt.figure()\n",
"# cox = x coordinate\n",
"for cox in np.linspace(4.0, 8.0, 50):\n",
" for coy in np.linspace(1.0, 7.0, 50):\n",
" xte = np.array([cox, coy])\n",
" yhat = classify_1nn(xte, X, Y)\n",
" plt.plot(xte[0], xte[1], colours[yhat], marker='s', markersize=6, alpha=0.2)\n",
" \n",
"# plot training data\n",
"plt.plot(X[Y==0, 0], X[Y==0, 1], 'or', label='Setosa')\n",
"plt.plot(X[Y==1, 0], X[Y==1, 1], 'og', label='Versicolour')\n",
"plt.plot(X[Y==2, 0], X[Y==2, 1], 'ob', label='Virginica')\n",
"plt.xlabel('ความยาวใบ')\n",
"plt.ylabel('ความยาวกลีบ')\n",
"plt.legend(loc='best', framealpha=1)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ภาพที่เห็นนี้คือขอบเขตการตัดสินใจของ KNN โดยทั่วไปยิ่งค่า K มาก ขอบเขตการตัดสินใจ (decision boundary) จะ smooth คือไม่เปลี่ยนสี (ประเภทดอกไม้) กระทันหันเมื่อเลื่อนจุดทดสอบเพียงเล็กน้อย แต่ถ้าค่า K ต่ำ เช่น K=1 decision boundary อาจซับซ้อนหรือขรุขระกว่า ข้อมูลชุดนี้อาจไม่เห็นภาพมากนักกว่าค่า K น้อยมากจะเป็นอย่างไรเพราะตัวอย่างต่างประเภทแยกจากกันอยู่แล้ว\n",
"\n",
"มาลองดูว่าถ้าใช้ K=1 บนข้อมูลเทียมที่เราสร้างขึ้นในตัวอย่างอันก่อนจะเป็นอย่างไร"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-1.9256314554919025, 1.9905634401529673)"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"X_toy = np.vstack((X_toy_0, X_toy_1))\n",
"Y_toy = np.hstack((np.zeros(nc), np.ones(nc))).astype(int)\n",
"\n",
"plt.figure()\n",
"xmin = np.min(X_toy[:, 0])\n",
"xmax = np.max(X_toy[:, 0])\n",
"ymin = np.min(X_toy[:, 1])\n",
"ymax = np.max(X_toy[:, 1])\n",
"# cox = x coordinate\n",
"for cox in np.linspace(xmin, xmax, 50):\n",
" for coy in np.linspace(ymin, ymax, 50):\n",
" xte = np.array([cox, coy])\n",
" yhat = classify_1nn(xte, X_toy, Y_toy)\n",
" plt.plot(xte[0], xte[1], colours[yhat], marker='s', markersize=6, alpha=0.2)\n",
" \n",
"# plot ข้อมูลเทียม\n",
"plt.plot(X_toy_0[:, 0], X_toy_0[:, 1], 'or')\n",
"plt.plot(X_toy_1[:, 0], X_toy_1[:, 1], 'og')\n",
"plt.xlim([xmin, xmax])\n",
"plt.ylim([ymin, ymax])\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"จะเห็นว่าขอบเขตการตัดสินใจค่อนข้างขรุขระ ถ้า K มีค่ามากขึ้นจะเรียบกว่านี้ ถ้าอยากลองสร้างข้อมูลเอง 2 มิติ และกำหนดค่า K ได้ตามใจชอบลองเล่น[ได้ที่หน้านี้](http://www.openprocessing.org/sketch/98820) จะเห็นกล่องขึ้นมา ทุกๆคลิกลงบนพื้นที่จะสร้างตัวอย่างฝึกสอนขึ้นมา สามารถเปลี่ยนประเภทตัวอย่างได้โดยกด ปุ่มสีแดงหรือสีฟ้าด้านบน กด ++ จะเพิ่มค่า K หนึ่งค่า กด -- จะลดค่า K ลงหนึ่ง decision boundary จะถูกอัพเดททุกครั้งที่มีการกดปุ่ม ผมแนะนำให้ลองสร้างข้อมูลขึ้นมาตามใจชอบแล้วกด ++ หลายๆครั้ง จากนั้นกด -- หลายๆครั้งเพื่อเทียบดูว่าเปลี่ยน K แล้วขอบเขตตัดสินใจเปลี่ยนไปอย่างไร"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ข้อมูลแบบอื่น\n",
"แน่นอนว่า KNN สามารถจำแนกข้อมูลประเภทอื่นๆได้เช่นกันหากเราสามารถนำมาแปลงใส่ตารางเหมือนกับตารางข้างต้น ข้อมูลจะมีกี่ตัวแปร (มิติ หรือก็คือคอลัมน์ในตาราง) ก็ได้ สิ่งที่เราต้องใช้สำหรับ KNN คือ distance function หรือฟังก์ชันหาระยะทางระหว่างจุด 2 จุด หากมีฟังก์ชันนี้เราก็สามารถใช้ KNN ได้ จริงๆแล้วมีมากมายหลายฟังก์ชันให้เลือกใช้ ขอบเขตการตัดสินใจก็จะเปลี่ยนไปถ้าเปลี่ยนวิธีการหาระยะทาง\n",
"\n",
"ยกตัวอย่างเช่น KNN สามารถใช้กับข้อมูลที่เป็นภาพได้ เช่นแต่ละตัวอย่างเป็นภาพแล้วเราต้องการจำแนกประเภทว่าเป็นภาพที่มีคนอยู่ในภาพหรือไม่มีคนอยู่ในภาพ (2 ประเภท) เป็นต้น ปัญหาคือแล้วเอามาใส่ตารางได้เหรอ? คำตอบคือได้เพราะในมุมมองของคอมพิวเตอร์ภาพก็แค่เมตริกซ์ (matrix) หรือตารางที่แต่ละช่องมีค่าบ่งบอกความเข้มของแสง แต่ละช่องในตารางก็คือหนึ่ง pixel เมตริกซ์ต่อไปนี้\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[181, 207, 83, 56],\n",
" [ 83, 245, 24, 41],\n",
" [177, 35, 67, 204],\n",
" [ 76, 152, 146, 67]])"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = (np.random.rand(4,4)*255).astype(int)\n",
"A"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"หากเปลี่ยนเป็นภาพก็จะได้"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"rkJggg==\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.cm as cm\n",
"plt.imshow(A, interpolation='none', cmap=cm.Greys_r)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ค่าในแต่ละช่องยิ่งมากก็ยิ่งสว่าง ถ้าจะทำให้เป็นแถวในตารางก็แค่อ่านแต่ละค่าในตารางไล่ไปตามแต่ละแถวแล้วเอาไปใส่เป็นแถวเดียวก็ได้แล้ว แบบนี้"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(A.reshape(1, -1), interpolation='none', cmap=cm.Greys_r)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ก็หวังว่าผู้อ่านจะเห็นภาพว่า KNN ทำงานอย่างไร มีความเห็นหรือต้องการรายละเอียดตรงไหนเชิญใส่คอมเมนต์ไว้[ที่นี่](http://datascience.in.th/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%88%E0%B8%B3%E0%B9%81%E0%B8%99%E0%B8%81%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%A0%E0%B8%97%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-knn/)\n",
"\n",
"วิทวัส จิตกฤตธรรม (http://wittawat.com)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}