{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "YqgzSAsWHbS5" }, "source": [ "# 훈련 세트와 테스트 세트" ] }, { "cell_type": "markdown", "metadata": { "id": "eMtY6aQsHbS8" }, "source": [ "\n", " \n", "
\n", " 구글 코랩에서 실행하기\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "LQEfg_XBHbS9" }, "source": [ "## 훈련 세트와 테스트 세트" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "N1oAXHg2Y6DJ" }, "outputs": [], "source": [ "fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0,\n", " 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0,\n", " 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0, 9.8,\n", " 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]\n", "fish_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0,\n", " 500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0,\n", " 700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0, 6.7,\n", " 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "4mQxk1Vx7dL5" }, "outputs": [], "source": [ "fish_data = [[l, w] for l, w in zip(fish_length, fish_weight)]\n", "fish_target = [1]*35 + [0]*14" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "URr_0wBTYsZV" }, "outputs": [], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "\n", "kn = KNeighborsClassifier()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "H74k3aZQ9hnr", "outputId": "fb5242a2-c71a-4b49-f3e5-29d0dd044097" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[29.0, 430.0]\n" ] } ], "source": [ "print(fish_data[4])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6tYXuRGA_4mk", "outputId": "4bf0cdec-d2a6-49ad-af99-e3604a9ea068" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[25.4, 242.0], [26.3, 290.0], [26.5, 340.0], [29.0, 363.0], [29.0, 430.0]]\n" ] } ], "source": [ "print(fish_data[0:5])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "IFesPu-oB41B", "outputId": "fca0be81-8eea-4348-cf71-f786b1fc42a4" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[25.4, 242.0], [26.3, 290.0], [26.5, 340.0], [29.0, 363.0], [29.0, 430.0]]\n" ] } ], "source": [ "print(fish_data[:5])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "GSbt5e9ICUKc", "outputId": "bc84662a-6ef6-4201-a17a-9085677a2288" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[12.2, 12.2], [12.4, 13.4], [13.0, 12.2], [14.3, 19.7], [15.0, 19.9]]\n" ] } ], "source": [ "print(fish_data[44:])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "id": "MqSRWFtpDESU" }, "outputs": [], "source": [ "train_input = fish_data[:35]\n", "train_target = fish_target[:35]\n", "\n", "test_input = fish_data[35:]\n", "test_target = fish_target[35:]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "FxiunutA8yMQ", "outputId": "a92d47da-7056-4f24-cd57-51ba50e9012c" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.0" ] }, "metadata": {}, "execution_count": 9 } ], "source": [ "kn.fit(train_input, train_target)\n", "kn.score(test_input, test_target)" ] }, { "cell_type": "markdown", "metadata": { "id": "IOyftJmqHbTB" }, "source": [ "## 넘파이" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "kdoec4RBcrZU" }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "j_NMsjZweD3b" }, "outputs": [], "source": [ "input_arr = np.array(fish_data)\n", "target_arr = np.array(fish_target)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "H8t38rejifbv", "outputId": "d2d2c069-cb64-41c3-e5af-6fda2d7b508d" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[ 25.4 242. ]\n", " [ 26.3 290. ]\n", " [ 26.5 340. ]\n", " [ 29. 363. ]\n", " [ 29. 430. ]\n", " [ 29.7 450. ]\n", " [ 29.7 500. ]\n", " [ 30. 390. ]\n", " [ 30. 450. ]\n", " [ 30.7 500. ]\n", " [ 31. 475. ]\n", " [ 31. 500. ]\n", " [ 31.5 500. ]\n", " [ 32. 340. ]\n", " [ 32. 600. ]\n", " [ 32. 600. ]\n", " [ 33. 700. ]\n", " [ 33. 700. ]\n", " [ 33.5 610. ]\n", " [ 33.5 650. ]\n", " [ 34. 575. ]\n", " [ 34. 685. ]\n", " [ 34.5 620. ]\n", " [ 35. 680. ]\n", " [ 35. 700. ]\n", " [ 35. 725. ]\n", " [ 35. 720. ]\n", " [ 36. 714. ]\n", " [ 36. 850. ]\n", " [ 37. 1000. ]\n", " [ 38.5 920. ]\n", " [ 38.5 955. ]\n", " [ 39.5 925. ]\n", " [ 41. 975. ]\n", " [ 41. 950. ]\n", " [ 9.8 6.7]\n", " [ 10.5 7.5]\n", " [ 10.6 7. ]\n", " [ 11. 9.7]\n", " [ 11.2 9.8]\n", " [ 11.3 8.7]\n", " [ 11.8 10. ]\n", " [ 11.8 9.9]\n", " [ 12. 9.8]\n", " [ 12.2 12.2]\n", " [ 12.4 13.4]\n", " [ 13. 12.2]\n", " [ 14.3 19.7]\n", " [ 15. 19.9]]\n" ] } ], "source": [ "print(input_arr)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cPMqX_1qluYe", "outputId": "fd7cf5f0-3278-4c1c-ab7e-2482527f02ec" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(49, 2)\n" ] } ], "source": [ "print(input_arr.shape)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "id": "8ZKi6avTeKaB" }, "outputs": [], "source": [ "np.random.seed(42)\n", "index = np.arange(49)\n", "np.random.shuffle(index)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Ndz46Y7aoS9h", "outputId": "2f1d946f-d42d-4231-8972-3c7223e3caf7" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[13 45 47 44 17 27 26 25 31 19 12 4 34 8 3 6 40 41 46 15 9 16 24 33\n", " 30 0 43 32 5 29 11 36 1 21 2 37 35 23 39 10 22 18 48 20 7 42 14 28\n", " 38]\n" ] } ], "source": [ "print(index)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "m_OYZlI1yicM", "outputId": "163384a2-5916-4039-b427-85046e4a4291" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[ 26.3 290. ]\n", " [ 29. 363. ]]\n" ] } ], "source": [ "print(input_arr[[1,3]])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "id": "o_MTsZW3eg96" }, "outputs": [], "source": [ "train_input = input_arr[index[:35]]\n", "train_target = target_arr[index[:35]]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "hmO5KDSlBhtt", "outputId": "afc12919-8341-4093-9c64-46887c430961" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[ 32. 340.] [ 32. 340.]\n" ] } ], "source": [ "print(input_arr[13], train_input[0])" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "id": "NUNTa8G9gqw2" }, "outputs": [], "source": [ "test_input = input_arr[index[35:]]\n", "test_target = target_arr[index[35:]]" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "id": "gbnl1bpoiR0x", "outputId": "2631969e-cb04-49f4-abae-cd9faaf7a8eb" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA93UlEQVR4nO3de3wU9b3/8fduQhIuyUIiySYImIIKEVABiUEEW6JEKUrl1MMRC1YOnFJAEbFAW+DEXrj0pniBanuEFqmt/R0VsI1ysIRaIiCIXKJIaQSEXCiRXS5NgN35/bFmZXPdLJvsbOb1fDz2oTvz3d3vzGNq3v3O9/sZm2EYhgAAACzMHukOAAAARBqBCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWF5spDsQDbxer44fP67ExETZbLZIdwcAAATBMAydPn1aGRkZstsbHwMiEAXh+PHj6t69e6S7AQAAQnD06FFdeeWVjbYhEAUhMTFRku+EJiUlRbg3AAAgGG63W927d/f/HW8MgSgINbfJkpKSCEQAAESZYKa7MKkaAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHpWqAQAwIY/X0PaSSlWcrlJqYoKGZCYrxs4DxltKREeItmzZojFjxigjI0M2m02vvfZawH7DMLRw4UKlp6erffv2ys3N1cGDBwPaVFZWasKECUpKSlLnzp01efJknTlzJqDNnj17dOuttyohIUHdu3fXsmXLWvrQAAAIWcG+Ug1b+rb+44V39cjLu/UfL7yrYUvfVsG+0kh3rc2KaCA6e/asrr/+ej377LP17l+2bJmWL1+ulStXatu2berYsaNGjRqlqqoqf5sJEyZo//792rhxozZs2KAtW7Zo6tSp/v1ut1t33HGHevbsqZ07d+onP/mJ/vu//1vPP/98ix8fAADNVbCvVNPW7FKpqypge5mrStPW7CIUtRCbYRhGpDsh+R689uqrr2rs2LGSfKNDGRkZeuyxxzRnzhxJksvlUlpamlatWqXx48frww8/VFZWlnbs2KHBgwdLkgoKCnTXXXfp008/VUZGhlasWKHvfe97KisrU1xcnCRp3rx5eu211/TRRx8F1Te32y2HwyGXy8XDXQEALcbjNTRs6dt1wlANmySnI0HvzP0Kt8+C0Jy/36adVF1SUqKysjLl5ub6tzkcDmVnZ6uoqEiSVFRUpM6dO/vDkCTl5ubKbrdr27Zt/jbDhw/3hyFJGjVqlA4cOKDPPvus3t+urq6W2+0OeAEA0NK2l1Q2GIYkyZBU6qrS9pLK1uuURZg2EJWVlUmS0tLSAranpaX595WVlSk1NTVgf2xsrJKTkwPa1Pcdl/5GbYsXL5bD4fC/unfvfvkHBABAEypONxyGQmmH4Jk2EEXS/Pnz5XK5/K+jR49GuksAAAtITUwIazsEz7SByOl0SpLKy8sDtpeXl/v3OZ1OVVRUBOy/ePGiKisrA9rU9x2X/kZt8fHxSkpKCngBANDShmQmK92RoIZmB9kkpTt8S/ARXqYNRJmZmXI6ndq0aZN/m9vt1rZt25STkyNJysnJ0alTp7Rz505/m7ffflter1fZ2dn+Nlu2bNGFCxf8bTZu3Khrr71WXbp0aaWjAQCgaTF2mxaNyZKkOqGo5v2iMVltakK1x2uo6NBJvb77mIoOnZTHG5m1XhEtzHjmzBn9/e9/978vKSnR7t27lZycrB49emjWrFn64Q9/qKuvvlqZmZlasGCBMjIy/CvR+vbtq7y8PE2ZMkUrV67UhQsXNGPGDI0fP14ZGRmSpPvvv1/5+fmaPHmy5s6dq3379umpp57SL37xi0gcMgAAjcrrl64VDwxU/vrigAnWTkeCFo3JUl6/9Aj2LrwK9pXWOc70CB1nRJfdb968WV/+8pfrbJ80aZJWrVolwzC0aNEiPf/88zp16pSGDRum5557Ttdcc42/bWVlpWbMmKH169fLbrdr3LhxWr58uTp16uRvs2fPHk2fPl07duzQFVdcoZkzZ2ru3LlB95Nl9wCA1tbWK1XX1FuqHUJqjnDFAwMvOxQ15++3aeoQmRmBCACA8Gmtekttog4RAABom8xYb4lABAAAWpUZ6y0RiAAAQKsyY72liK4yAwAArcsMk7Vr6i2VuarqTKqWvphD1Jr1lghEAABYhFmWudfUW5q2ZpdsUkAoilS9JW6ZAQBgATXL3GtPZi5zVWnaml0q2Ffaqv2pqbeUlhR4W8zpSAjLkvvmIhABANDGebyG8tcX13t7qmZb/vriCFWJDvzNSFUDIhABANDGmXGZe82IVZm7OmB7ubs6IiNWBCIAANo4sy1zN+OIFYEIAIA2zmzL3M04YkUgAgCgjatZ5t7Qmi2bfKvNWmuZu9lGrCQCEQAAbV7NMndJdUJRJJa5m23ESiIQAQBgCTXL3J2OyC9zN9uIlURhRgAALCOvX7puz3KGVKk6nBWuzViY0WZEasF/FHG73XI4HHK5XEpKSop0dwAAaFUtVeG6pStnN+fvN4EoCAQiAEBb0dyRnpp6QbXDQs0nLvd2W0s+W605f7+5ZQYAgEU0d0SmqXpBNvnqBd2e5bys22c5vVJC+mw4MakaAAALCOVZZmasF9RSCEQAALRxoVaGNmO9oJZCIAIAoI0LdaTHjPWCWgqBCACANi7UkR4z1gtqKQQiAADauFBHesxW4bolEYgAAGjjLmekx0wVrlsSy+4BAGjjLrcy9OVUuI4WFGYMAoUZAQBtQUtXhjYbCjMCAIA6rDDSEyoCEQAAFmKWytBmw6RqAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeQQiAABgeTzcFQCAluT1SIe3SmfKpU5pUs+hkj0m0r1CLQQiAABaSvE6qWCu5D7+xbakDClvqZR1d+T6hTq4ZQYAQEsoXif9YWJgGJIkd6lve/G6yPQL9SIQAQAQbl6Pb2RIRj07P99WMM/XDqZAIAIAINwOb607MhTAkNzHfO1gCgQiAADC7Ux5eNuhxRGIAAAIt05p4W2HFkcgAgAg3HoO9a0mk62BBjYpqZuvHUyBQAQAQLjZY3xL6yXVDUWfv89bQj0iEyEQAQDQErLulu77jZSUHrg9KcO3nTpEpkJhRgAAWkrW3VKf0VSqjgIEIgAAWpI9Rsq8NdK9QBO4ZQYAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACyPQAQAACzP1IHI4/FowYIFyszMVPv27dWrVy/94Ac/kGEY/jaGYWjhwoVKT09X+/btlZubq4MHDwZ8T2VlpSZMmKCkpCR17txZkydP1pkzZ1r7cAAAgEmZOhAtXbpUK1as0DPPPKMPP/xQS5cu1bJly/T000/72yxbtkzLly/XypUrtW3bNnXs2FGjRo1SVVWVv82ECRO0f/9+bdy4URs2bNCWLVs0derUSBwSAAAwIZtx6XCLyXz1q19VWlqafv3rX/u3jRs3Tu3bt9eaNWtkGIYyMjL02GOPac6cOZIkl8ultLQ0rVq1SuPHj9eHH36orKws7dixQ4MHD5YkFRQU6K677tKnn36qjIyMJvvhdrvlcDjkcrmUlJTUMgcLAADCqjl/v009QjR06FBt2rRJH3/8sSTpgw8+0DvvvKM777xTklRSUqKysjLl5ub6P+NwOJSdna2ioiJJUlFRkTp37uwPQ5KUm5sru92ubdu21fu71dXVcrvdAS8AANB2mfrRHfPmzZPb7VafPn0UExMjj8ejH/3oR5owYYIkqaysTJKUlpYW8Lm0tDT/vrKyMqWmpgbsj42NVXJysr9NbYsXL1Z+fn64DwcAAJiUqUeI/vCHP+ill17S2rVrtWvXLq1evVo//elPtXr16hb93fnz58vlcvlfR48ebdHfAwAAkWXqEaLHH39c8+bN0/jx4yVJ/fv31+HDh7V48WJNmjRJTqdTklReXq709HT/58rLy3XDDTdIkpxOpyoqKgK+9+LFi6qsrPR/vrb4+HjFx8e3wBEBAAAzMvUI0blz52S3B3YxJiZGXq9XkpSZmSmn06lNmzb597vdbm3btk05OTmSpJycHJ06dUo7d+70t3n77bfl9XqVnZ3dCkcBAADMztQjRGPGjNGPfvQj9ejRQ9ddd53ef/99/fznP9dDDz0kSbLZbJo1a5Z++MMf6uqrr1ZmZqYWLFigjIwMjR07VpLUt29f5eXlacqUKVq5cqUuXLigGTNmaPz48UGtMAMAAG2fqQPR008/rQULFujb3/62KioqlJGRof/6r//SwoUL/W2+853v6OzZs5o6dapOnTqlYcOGqaCgQAkJCf42L730kmbMmKGRI0fKbrdr3LhxWr58eSQOCQAAmJCp6xCZBXWIAACIPm2mDhEAAEBrIBABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLi410BwAAMDuP19D2kkpVnK5SamKChmQmK8Zui3S3EEYEIgAAGlGwr1T564tV6qryb0t3JGjRmCzl9UuPYM8QTtwyAwCgAQX7SjVtza6AMCRJZa4qTVuzSwX7SiPUM4QbgQgAgHp4vIby1xfLqGef8fkrf32xPN76WiDaEIgAAKjH9pLKOiNDtZW6qrS9pLLRNh6voaJDJ/X67mMqOnSSAGVSzCECAKAeZe7Gw1Aw7Zh/FD0Y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j48P81EAAACzMvUIkWEYmjFjhl599VW9/fbbyszMDNg/aNAgtWvXTps2bfJvO3DggI4cOaKcnBxJUk5Ojvbu3auKigp/m40bNyopKUlZWVmtcyAAAMDUTD1CNH36dK1du1avv/66EhMT/XN+HA6H2rdvL4fDocmTJ2v27NlKTk5WUlKSZs6cqZycHN18882SpDvuuENZWVn6xje+oWXLlqmsrEzf//73NX36dEaBAACAJJMvu7fZbPVuf/HFF/Xggw9K8hVmfOyxx/S73/1O1dXVGjVqlJ577rmA22GHDx/WtGnTtHnzZnXs2FGTJk3SkiVLFBsbXB5k2T0AANGnOX+/TR2IzIJABABA9GmzdYgAAABaAoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYHoEIAABYXmykOwAExeuRDm+VzpRLndKknkMle0ykewUAaCMIRIgoj9fQ9pJKVZyuUmpigoZkJivGbgtsVLxOKpgruY9/sS0pQ8pbKmXd3bodBgC0SQQiREzBvlLlry9WqavKvy3dkaBFY7KU1y/dt6F4nfSHiZKMwA+7S33b7/sNoQgAcNlshmEYTTezNrfbLYfDIZfLpaSkpEh3p0VcOlJzRad4yZD+eba63lGboEZ1mlCwr1TT1uyqHXNU8y0rHhiovKxU6cl+gSNDtVsnZUiz9nL7DABQR3P+fjNCFO0unVvTsatkGPKePaEPT3fQ3zv0V2pSx4DA4rl4UR9te1P/+uyY4jtnyJ16k94+8E+9uvuYKs9eqPcnLh21CWpUpwker6H89cV1wpDkGweyScpfX6zbOxxUTINh6PPW7mO+48+8NajfBgCgPgSiSApyorB/RMZ9Vr3P7VXf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\n" }, "metadata": {} } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.scatter(train_input[:, 0], train_input[:, 1])\n", "plt.scatter(test_input[:, 0], test_input[:, 1])\n", "plt.xlabel('length')\n", "plt.ylabel('weight')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "pphep3SEHbTD" }, "source": [ "## 두 번째 머신러닝 프로그램" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "RpiXncTRfY7i", "outputId": "3c0e44dc-47eb-4a2b-8993-640d16bd4dcc" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "KNeighborsClassifier()" ], "text/html": [ "
KNeighborsClassifier()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ] }, "metadata": {}, "execution_count": 21 } ], "source": [ "kn.fit(train_input, train_target)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Stdtp3RvhImd", "outputId": "acbe47d9-60d0-4d30-9e08-ccd49b7e5882" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "1.0" ] }, "metadata": {}, "execution_count": 22 } ], "source": [ "kn.score(test_input, test_target)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Od3gLmcJihAe", "outputId": "e98bc68d-4bc8-40cd-9134-a21ed39af5a2" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0])" ] }, "metadata": {}, "execution_count": 23 } ], "source": [ "kn.predict(test_input)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Z-iCt9zHilaa", "outputId": "4360a6d6-2753-453a-dc13-d5c5a794fecc", "scrolled": true }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0])" ] }, "metadata": {}, "execution_count": 24 } ], "source": [ "test_target" ] } ], "metadata": { "colab": { "name": "2-1. 훈련 데이터와 테스트 데이터", "provenance": [] }, "kernelspec": { "display_name": "default:Python", "language": "python", "name": "conda-env-default-py" }, "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.9.10" } }, "nbformat": 4, "nbformat_minor": 0 }