{"id":606,"date":"2020-11-30T19:04:48","date_gmt":"2020-11-30T10:04:48","guid":{"rendered":"http:\/\/cedartrees.co.kr\/?p=606"},"modified":"2021-01-09T19:19:03","modified_gmt":"2021-01-09T10:19:03","slug":"kneighborsclassifier","status":"publish","type":"post","link":"http:\/\/blog.cedartrees.co.kr\/index.php\/2020\/11\/30\/kneighborsclassifier\/","title":{"rendered":"\ucd5c\uadfc\uc811\uc774\uc6c3 \uc54c\uace0\ub9ac\uc998(K-NN)"},"content":{"rendered":"\n<p>k-NN(Nearest Neighbors) \uc54c\uace0\ub9ac\uc998\uc740 \uac00\uc7a5 \uac04\ub2e8\ud55c \uba38\uc2e0\ub7ec\ub2dd \uc54c\uace0\ub9ac\uc998\uc785\ub2c8\ub2e4. \ud6c8\ub828\uc6a9 \ub370\uc774\ud130\uc14b\uc744 \ud1b5\ud574\uc11c \ubaa8\ub378\uc744 \ub9cc\ub4e4\uace0 \uc0c8\ub85c\uc6b4 \ub370\uc774\ud130\uac00 \uc785\ub825\ub420 \ub54c\ub294 \ud6c8\ub828 \ub370\uc774\ud130\uc14b\uc5d0\uc11c \uac00\uc7a5 \uac00\uae4c\uc6b4 &#8220;\ucd5c\uadfc\uc811 \uc774\uc6c3&#8221;\uc744 \ucc3e\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"[\uba38\uc2e0\ub7ec\ub2dd] kNN(k-Nearest Neighbors) \ucd5c\uadfc\uc811 \uc774\uc6c3 \uc54c\uace0\ub9ac\uc998\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/CyuI2F_wJWw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>KNN \uc54c\uace0\ub9ac\uc998\uc758 \uc88b\uc740 \uc124\uba85\uc744 \ud574\uc8fc\ub294 \uc0ac\uc774\ud2b8\uc758 \ud5c8\ubbfc\uc11d\ub2d8\uc758 \uac15\uc758\ub97c \uc62c\ub824\ub4dc\ub9ac\ub2c8 \ucc38\uace0\ud574\ubcf4\uc2dc\uba74 \uc88b\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \uc678\uc5d0\ub3c4 \uc54c\uace0\ub9ac\uc998\uc744 \uc124\uba85\ud558\ub294 \ub9ce\uc740 \uac15\uc758 \uc0ac\uc774\ud2b8\uac00 \uc788\uc73c\ub2c8 \uac1c\ub150\uc774 \uad81\uae08\ud558\uc2e0 \ubd84\ub4e4\uc740 \ucc3e\uc544\ubcf4\uc2dc\uae38 \ucd94\ucc9c\ud574\ub4dc\ub9bd\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc774\ubc88 \uae00\uc5d0\uc11c\ub294 \uac1c\ub150\uc5d0 \ub300\ud55c \uc124\uba85\ubcf4\ub2e4\ub294 \ubc14\ub85c \uc608\uc81c \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud574\ub2f9 \uc54c\uace0\ub9ac\uc998\uc740 sklearn\uc5d0\uc11c \uc774\ubbf8 \uc798 \uad6c\ud604\ud588\uae30 \ub54c\ubb38\uc5d0 \uc0ac\uc6a9\uc790\uac00 \ubcc4\ub3c4\uc758 \uc54c\uace0\ub9ac\uc998\uc744 \uad6c\ud604\ud55c \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\ub294 \ub2e8 \uba87\uc904\uc758 \ucf54\ub4dc\ub9cc\uc73c\ub85c \ud574\ub2f9 \uc54c\uace0\ub9ac\uc998\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\uc81c\ub294 sklearn\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 KNeighborsClassifier\ub97c \uc0ac\uc6a9\ud558\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\ud558\ub294 \ub370\uc774\ud130 \uc5ed\uc2dc sklearn\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 load_iris() \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"575\" height=\"180\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/11\/download-2.png\" alt=\"\" class=\"wp-image-609\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/11\/download-2.png 575w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/11\/download-2-300x94.png 300w\" sizes=\"(max-width: 575px) 100vw, 575px\" \/><figcaption>Introduction to Machine Learning with Python, KNeighborsClassifier<\/figcaption><\/figure>\n\n\n\n<p>sklearn\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub2e4\uc591\ud55c \ub370\uc774\ud130\uc14b\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\uc911\uc5d0 \uc774\ubc88 \uc608\uc81c\ub294 \ubd97\uaf43 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ubd97\uaf43 \ub370\uc774\ud130\ub294 \uaf43\ubc1b\uce68\uacfc \uaf43\uc78e\uc758 \ub113\uc774\uc640 \uae38\uc774 \uc815\ubcf4\uc640 \ubd97\uaf43\uc758 \uc885\ub958(setosa, versicolor, virginica) \ub370\uc774\ud130\uc758 \ud615\uc2dd\uc73c\ub85c \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. 4\uac1c\uc758 feature \uc815\ubcf4\uc640 label \uceec\ub7fc\uc774 \uc788\uace0 \ub370\uc774\ud130\uc758 \uc218\ub294 150\uac1c \uc815\ub3c4\uc774\uae30 \ub54c\ubb38\uc5d0 \ubd84\ub958 \ubb38\uc81c\ub97c \ud14c\uc2a4\ud2b8\ud574\ubcf4\uae30\uc5d0 \uc801\uc808\ud55c \uc608\uc81c\uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from sklearn.datasets import load_iris\niris = load_iris()<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">iris.keys()\n#dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])<\/pre>\n\n\n\n<p>feature \uc815\ubcf4\ub294 \uc544\ub798\uc640 \uac19\uc774 sepal(\uaf43\ubc1b\uce68) length, sepal width,  petal(\uaf43\uc78e) length, petal width\uc758 \ub124\uac1c \uceec\ub7fc \uc815\ubcf4\uac00 \ub4e4\uc5b4\uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">iris.feature_names\n#['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']<\/pre>\n\n\n\n<p>\ud574\ub2f9 \ub370\uc774\ud130\ub97c pandas\uc758 \ub370\uc774\ud130\ud504\ub808\uc784\uc73c\ub85c \ub370\uc774\ud130 \ud0c0\uc785\uc744 \ubc14\uafb8\uba74 \uc880 \ub354 \ud3b8\ud558\uac8c \ub370\uc774\ud130\uc758 \ub0b4\uc6a9\uc744 \ud655\uc778 \ud560 \uc218 \uc788\uace0 pandas\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub2e4\uc591\ud55c \ud568\uc218\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import pandas as pd\ndf = pd.DataFrame(data=iris.data, columns=iris.feature_names)\ndf.head()<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"488\" height=\"166\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-12-01-\u110b\u1169\u1112\u116e-12.44.31.png\" alt=\"\" class=\"wp-image-617\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-12-01-\u110b\u1169\u1112\u116e-12.44.31.png 488w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-12-01-\u110b\u1169\u1112\u116e-12.44.31-300x102.png 300w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/figure><\/div>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">df.describe()<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"513\" height=\"246\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-12-01-\u110b\u1169\u1112\u116e-12.44.42.png\" alt=\"\" class=\"wp-image-618\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-12-01-\u110b\u1169\u1112\u116e-12.44.42.png 513w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-12-01-\u110b\u1169\u1112\u116e-12.44.42-300x144.png 300w\" sizes=\"(max-width: 513px) 100vw, 513px\" \/><\/figure><\/div>\n\n\n\n<p>sklearn\uc758 KNeighborsClassifier \ud328\ud0a4\uc9c0\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ub370\uc774\ud130\ub97c \ud6c8\ub839\uc6a9 \uc138\ud2b8\uc640 \ud14c\uc2a4\ud2b8\uc6a9 \uc138\ud2b8\ub97c 8:2\ub85c \ubd84\ub9ac\ud574\uc11c x_train, y_train, x_test, y_test \ud615\ud0dc\ub85c \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \ub370\uc774\ud130 \uc138\ud2b8\ub97c \ubd84\ub9ac\ud55c \ud6c4\uc5d0 shape\uc744 \ubcf4\uba74 120:30\uc758 \ud615\ud0dc\ub85c \ub370\uc774\ud130\uac00 \ub098\ub25c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\n\nx_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, shuffle=False, random_state=701)\nprint(x_train.shape, x_test.shape)\n#(120, 4) (30, 4)<\/pre>\n\n\n\n<p>n_neighbors\uc758 \uc801\uc808\ud55c \uc774\uc6c3 \uac12\uc744 \ucc3e\uae30 \uc704\ud574\uc11c \ub370\uc774\ud130 \uc14b\uc744 \ud14c\uc2a4\ud2b8\ud574\ubd05\ub2c8\ub2e4. \uc774\uc6c3 \uac12\uc744 \ub108\ubb34 \uc801\uac8c \ud558\uba74 \ubaa8\ub378\uc758 \ubcf5\uc7a1\ub3c4\uac00 \uc62c\ub77c\uac00\uace0 \ub108\ubb34 \ub9ce\uac8c \ud558\uba74 \ubaa8\ub378\uc758 \uc608\uce21\ub825\uc774 \ub5a8\uc5b4\uc9c0\uae30 \ub54c\ubb38\uc5d0 \uc801\uc808\ud55c \uac12\uc744 \ucc3e\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">train_accuracy = []\ntest_accuracy = []\nneighbors_set = range(1,11)\nfor n_neighbors in neighbors_set:    \n    clf = KNeighborsClassifier(n_neighbors=n_neighbors)\n    clf.fit(x_train, y_train)\n    score = clf.score(x_test, y_test)\n    train_accuracy.append(clf.score(x_train, y_train))\n    test_accuracy.append(clf.score(x_test, y_test))<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import matplotlib.pyplot as plt\n\nplt.plot(neighbors_set, train_accuracy, label='train')\nplt.plot(neighbors_set, test_accuracy, label='test')\nplt.legend()<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"378\" height=\"248\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/download.png\" alt=\"\" class=\"wp-image-619\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/download.png 378w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/12\/download-300x197.png 300w\" sizes=\"(max-width: 378px) 100vw, 378px\" \/><\/figure><\/div>\n\n\n\n<p>\uc704\uc758 \uacb0\uacfc \uac12\uacfc \uac19\uc774 \uc774\uc6c3 \uac12(n_neighbors)\uc774 5\uc77c \uacbd\uc6b0\uc5d0 \uac00\uc7a5 \ub192\uc740 \uc608\uce21 \uc815\ud655\ub3c4\ub97c \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \ubaa8\ub378\uc744 \uc0dd\uc131\ud55c \ud6c4 \uc608\uce21\uc758 \uc815\ud655\ub3c4\ub97c \ubcf4\uae30 \uc704\ud574 \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\uc11c \uc608\uce21\uc744 \uc218\ud589\ud558\uace0 \uc774 \uac12\uc744 \ud14c\uc2a4\ud2b8 \uac12\uacfc \ube44\uad50\ud574\ubcf8 \uacb0\uacfc 80%\uc758 \uc608\uce21 \uc815\ud655\ub3c4\ub97c \uc5bb\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">clf = KNeighborsClassifier(n_neighbors=5)\nclf.fit(x_train, y_train)\nclf.predict(x_test)\n# array([2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1])\n(clf.predict(x_test) == y_test).sum()\/len(y_test) # 0.8<\/pre>\n\n\n\n<p>\ub2e4\ub9cc \uc774 \uc54c\uace0\ub9ac\uc998\uc744 \uc0ac\uc6a9\ud560 \uacbd\uc6b0 \uc774\uc6c3\uc744 \uc5b4\ub5bb\uac8c \uc801\uc808\ud788 \uc815\uc758\ud560 \uac83\uc778\uac00\uc5d0 \ub300\ud55c \uace0\ubbfc\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \ub9cc\uc57d \uc774\uc6c3\uc744 \uc801\uac8c \uc0ac\uc6a9\ud55c\ub2e4\uba74 \ubaa8\ub378\uc758 \ubcf5\uc7a1\ub3c4\uac00 \ub192\uc544\uc9c0\uace0 \ub9ce\uc774 \uc0ac\uc6a9\ud558\uba74 \ubcf5\uc7a1\ub3c4\ub294 \ub0ae\uc544\uc9d1\ub2c8\ub2e4. \uc704\uc758 \uc774\ubbf8\uc9c0\uc5d0\uc11c \uac00\uc7a5 \uc624\ub978\ucabd\uc5d0 \uc774\ubbf8\uc9c0\uc758 \uacbd\uacc4\uba74\uc774 \uac00\uc7a5 \ubd80\ub4dc\ub7fd\uc9c0\ub9cc \uc774\ub807\uac8c\ub418\uba74 \ubaa8\ub378\uc774 \uc9c0\ub098\uce58\uac8c \uc77c\ubc18\ud654 \ub418\uc5b4\uc11c \uc608\uce21\ud558\ub294 \uac12\uc758 \uc815\ud655\ub3c4\uac00 \ub0ae\uc544\uc9c8 \uc5fc\ub824\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>k-NN \uc54c\uace0\ub9ac\uc998\uc758 \ud2b9\uc9d5\uc740 \uc774\ud574\ud558\uae30 \ub9e4\uc6b0 \uc26c\uc6b4 \ubaa8\ub378\uc774\ub77c\ub294 \uc810\uc785\ub2c8\ub2e4. \uc0ac\uc6a9\uc774 \ube44\uad50\uc801 \uac04\ub2e8\ud558\uc9c0 \uc88b\uc740 \uc131\ub2a5\uc744 \ubc1c\ud718\ud558\uae30 \ub54c\ubb38\uc5d0 \uc5b4\ub5a4 \ub192\uc740 \ub09c\uc774\ub3c4\uc758 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc804\uc5d0 \uc2dc\ub3c4\ud574\ubd04\uc9c1\ud55c \ubaa8\ub378\uc774\ub77c\uace0 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc26c\uc6b4 \ubaa8\ub378\uc774\uc9c0\ub9cc \ud6c8\ub828\uc6a9 \uc138\ud2b8\uac00 \ucee4\uc9c0\ub9cc \uc608\uce21\uc774 \ub290\ub824\uc9c0\ub294 \ud2b9\uc9d5\uc774 \uc788\uae30 \ub54c\ubb38\uc5d0 \ub110\ub9ac \uc0ac\uc6a9\ub418\uc9c4 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torch.optim as optim\n\nclass ANN(nn.Module):\n    \n    def __init__(self, D_in, H, D_out):\n        super().__init__()\n        self.layers = nn.Sequential(\n            nn.Linear(D_in, H),\n            nn.ReLU(),\n            nn.Linear(H, D_out),\n        )\n    \n    def forward(self, x):\n        x = x.float()\n        return self.layers(x)\n\n# input dim, hidden size, ont-hot\nmodel = ANN(tx_train.size(dim=1),5,torch.unique(ty_train).size(dim=0))\nmodel\n\ncriterion = nn.CrossEntropyLoss()\noptimizer = optim.Adam(model.parameters())\n\nnb_epochs = 5001\nfor epoch in range(nb_epochs):\n    model.train()\n    predict = model(tx_train)\n    loss = criterion(predict, ty_train.squeeze().long())\n    \n    optimizer.zero_grad()\n    loss.backward()\n    optimizer.step()\n    \n    if epoch % 250 == 0:\n        print('{}\/{}, cost:{:.5f}'.format(epoch,nb_epochs,loss.item()))<\/pre>\n\n\n\n<p>\ucc38\uace0\ub85c \uc704\uc758 \ucf54\ub4dc\ub294 pytorch\ub97c \uc0ac\uc6a9\ud574\uc11c \ub3d9\uc77c\ud55c \uc608\uce21 \ucf54\ub4dc\ub97c Linear Regression\uc73c\ub85c \uad6c\ud604\ud55c \uac83\uc785\ub2c8\ub2e4. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>k-NN(Nearest Neighbors) \uc54c\uace0\ub9ac\uc998\uc740 \uac00\uc7a5 \uac04\ub2e8\ud55c \uba38\uc2e0\ub7ec\ub2dd \uc54c\uace0\ub9ac\uc998\uc785\ub2c8\ub2e4. \ud6c8\ub828\uc6a9 \ub370\uc774\ud130\uc14b\uc744 \ud1b5\ud574\uc11c \ubaa8\ub378\uc744 \ub9cc\ub4e4\uace0 \uc0c8\ub85c\uc6b4 \ub370\uc774\ud130\uac00 \uc785\ub825\ub420 \ub54c\ub294 \ud6c8\ub828 \ub370\uc774\ud130\uc14b\uc5d0\uc11c \uac00\uc7a5 \uac00\uae4c\uc6b4 &#8220;\ucd5c\uadfc\uc811 \uc774\uc6c3&#8221;\uc744 \ucc3e\uc2b5\ub2c8\ub2e4. KNN \uc54c\uace0\ub9ac\uc998\uc758 \uc88b\uc740 \uc124\uba85\uc744 \ud574\uc8fc\ub294 \uc0ac\uc774\ud2b8\uc758 \ud5c8\ubbfc\uc11d\ub2d8\uc758 \uac15\uc758\ub97c \uc62c\ub824\ub4dc\ub9ac\ub2c8 \ucc38\uace0\ud574\ubcf4\uc2dc\uba74 \uc88b\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \uc678\uc5d0\ub3c4 \uc54c\uace0\ub9ac\uc998\uc744 \uc124\uba85\ud558\ub294 \ub9ce\uc740 \uac15\uc758 \uc0ac\uc774\ud2b8\uac00 \uc788\uc73c\ub2c8 \uac1c\ub150\uc774 \uad81\uae08\ud558\uc2e0 \ubd84\ub4e4\uc740 \ucc3e\uc544\ubcf4\uc2dc\uae38 \ucd94\ucc9c\ud574\ub4dc\ub9bd\ub2c8\ub2e4. \uc774\ubc88 \uae00\uc5d0\uc11c\ub294 \uac1c\ub150\uc5d0 \ub300\ud55c \uc124\uba85\ubcf4\ub2e4\ub294 \ubc14\ub85c \uc608\uc81c \ucf54\ub4dc\ub97c &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.cedartrees.co.kr\/index.php\/2020\/11\/30\/kneighborsclassifier\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;\ucd5c\uadfc\uc811\uc774\uc6c3 \uc54c\uace0\ub9ac\uc998(K-NN)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17,70],"tags":[49,54,48,45,50],"_links":{"self":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/606"}],"collection":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/comments?post=606"}],"version-history":[{"count":8,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/606\/revisions"}],"predecessor-version":[{"id":644,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/606\/revisions\/644"}],"wp:attachment":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/media?parent=606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/categories?post=606"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/tags?post=606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}