{ "cells": [ { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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69axfv163nnnHV544QX27NlDnz59mDRpEq1bt66S32NVoCKjKEqVc9FFFyEi/N///R+NGjXipZde4l//+hfR0dEcOHCAjh07ct1113HNNdfw0EMPMWzYMACGDx/Ok08+ydlnn80ll1xCQUEBF110EUlJSfz22280atSIHTt2kJiYyE033cR3330HQFZWFqmpqcyYMYMOHTpw4403csUVVzBjxgxee+013n//ferVq8fUqVNL+Lpp0yZGjhzJvffeywMPPMALL7zAJ598Qr169Xjvvfc8dkOHDmX+/Pls3ryZ1q1bk56ezmmnncaQIUPYsmULDoeDjh07snDhQowra/KSJUt8rtWoUSMuvPBCunfvXqKuePupqal07dyZIf/6F39cfz0AGRkZiAhTp06lYcOG3HLLLfTq1YuPPvqIadOm8fzzzzNs2DDPzyUoEJET+ujZs6coSlls2LChpl2olWzbtk0AiY+PL1F3+eWXCyATJ070KZ8xY4YAMmrUKBERWbZsmQBy+umn+9idffbZAkhSUpKnbMuWLQJIo0aNZM+ePZ7yzMxMCQsLk/DwcCksLPSUT548WQDp1q2bZGZmesrT0tLE4XBIRESEOJ1OERHZs2ePABIdHe3jx7XXXiuArFixwqccEPt49WXx4sUCyAUXXOBT7q/9vNw8ubZfvxLt5+fne9r//fffPeVOp1NatWolgM/9V5RAv+fAWqnAM1bnZBRFqRbc/807/MwnxMbGAjbKyxv38NT27dsBSExMpF+/fvz973/3sYuIiABg9+7dnrLQUDsw07BhQ0466SRPeVRUFM2bNycvL4/9+/eX8KV79+5ERUV5Pjdu3JhmzZqRk5NDcnIyAM2aNWPgwIEl5lr8+VEZ/LXvLHQSER5e6n0CPhFyxhjatWsH2OG/YEGHyxRFOe6YUjbhcpfn5OQA9oG/cOFCT/2aNWuYNWsWW7duBeDo0aMVup5b6PLy8ipkH+56uLvbDwsLY+bMmZ76jRs3Mm3aNH744YeA/CgNf+1PfX8qP7iyEVTXfR4PtCejKErQIeIbgDBjxgwGDBjAypUrefzxx+nQoUON+PXtt99y5ZVXMmPGDO677z7OOuusamv/rjvv5KzExCptvybQnoyiKEFLXl4e119/PStWrGDNmjXEx8fXiB8iwj/+8Q8mT57M8uXL6datW7W3n5l2uEqv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Q0ZG5WKPQjyjZSeYyGB7L9td+7woiqJUGmMMkZGRdOzYsVra7t69e5W3W1FCQkJo0aIFlc0q4hkuc9Tu4bLKeN8G2AqklWVkjAmmDdEURVFqFZ6eTC0fLquMELwJHBVxrxQqleXA2ZVoX1EU5YTH1BGRqUxP5t9AjDHG72S7sfQCTj8mzxRFqROICFOmTOHCCy/k4osvpnv37lxxxRUsX77cr/3SpUvp27cvUVFRtGnThscff5zCwpLL7lasWMHIkSO55JJLOPnkk+nduzefffZZmX68/PLLdOzYkcjISHr16sWcOUWJS/7zn/8QFhaGMQZjDB07dmTZMs+UM8OGDSM0NJTw8HCmT58OwBdffEGfPn244IILOOOMMzj99NO54YYbSvXh7bff5rTTTiMyMpLExERmzJjhU3/kcCapGzfy+tixDHv035x/++106tyJK664gt9++81j16VLF4+f4eHhPPDAAz4/lxYtWmCMoX379jid5fUHqhkRCegAlgEHsYstyzwCbbsmjp49e4qilMWGDRvKN7I5c2v/UcUUFhbKtddeK/3795fU1FQRETl06JDExMSIw+GQxYsXi4jIiBEjBJDhw4fLNddcI4sXL5bFixdLly5dBJB3333Xp90PP/xQhg8fLrm5uSIikpmZKT179hRApk+fXuxXg8TGxsp9990nERER0rZtW3E4HAKIMcan7bfeeksAcTgckpOTU+J+Lr74Yhk/fryIiCxfvlzCwsJkzZo1IiLidDrlmWeekb/97W8+57Rt21YAufXWW+Whhx6SNWvWyMcff+z5GWzZssVjm/7rLzJq0CB57eGHRdaskYK1a2Tzps0SFRUlUVFRsm3bNs/P9dJLLxVALrvsshJ+Ll68WE466STJysoq/5fkokLfcy+AtVIRzaiIkc8J8BQ2jX55h4qMUidQkak8Y8aMkQYNGsj+/ft9yt2i8tRTT/l8vuWWW3zs5syZI4BccsklnrIdO3b4bXPKlCkCSEJCgk85IGFhYXLnnXdKZmamp43u3bsLIA0aNJDk5GQREcnPz5eEhAQB5IsvvvBpJz09XZo2bep5cD/wwAMSGxtb4p4fe+wxn89ukZk6dapP+f333y+APPvssyIikpebJ9PGPSudTz5ZkjdvloN/bJH0/QdFRGTkyJECyIgRIzzn//zzzwJIo0aN5OjRoz5t//e/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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "ename": "ValueError", "evalue": "Metric '['euclidean', 'manhattan', 'chebyshev']' not valid for algorithm 'auto'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtest\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0mX_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY_test\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel_selection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain_test_split\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtest_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrandom_state\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m45\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 56\u001b[0;31m \u001b[0mclas\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKNeighborsClassifier\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0mn\u001b[0m \u001b[0;34m,\u001b[0m\u001b[0mmetric\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 57\u001b[0m \u001b[0mclas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY_train\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0mprediction_Y\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mclas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/playground/env/lib/python3.6/site-packages/sklearn/neighbors/classification.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, n_neighbors, weights, algorithm, leaf_size, p, metric, metric_params, n_jobs, **kwargs)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[0malgorithm\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0malgorithm\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[0mleaf_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mleaf_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmetric\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmetric\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 126\u001b[0;31m metric_params=metric_params, n_jobs=n_jobs, **kwargs)\n\u001b[0m\u001b[1;32m 127\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweights\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_check_weights\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mweights\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 128\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/playground/env/lib/python3.6/site-packages/sklearn/neighbors/base.py\u001b[0m in \u001b[0;36m_init_params\u001b[0;34m(self, n_neighbors, radius, algorithm, leaf_size, metric, p, metric_params, n_jobs)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmetric\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mVALID_METRICS\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0malg_check\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m raise ValueError(\"Metric '%s' not valid for algorithm '%s'\"\n\u001b[0;32m--> 143\u001b[0;31m % (metric, algorithm))\n\u001b[0m\u001b[1;32m 144\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmetric_params\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m'p'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmetric_params\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mValueError\u001b[0m: Metric '['euclidean', 'manhattan', 'chebyshev']' not valid for algorithm 'auto'" ] } ], "source": [ "\n", "%matplotlib inline\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import scipy as sp\n", "\n", "from sklearn.model_selection import cross_val_score\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn import model_selection\n", "\n", "from matplotlib import pylab as plt\n", "plt.rcParams['font.family'] = 'serif'\n", "plt.rcParams['font.serif'] = 'FreeSerif'\n", "plt.rcParams['lines.linewidth'] = 2\n", "plt.rcParams['lines.markersize'] = 12\n", "plt.rcParams['xtick.labelsize'] = 24\n", "plt.rcParams['ytick.labelsize'] = 24\n", "plt.rcParams['legend.fontsize'] = 24\n", "plt.rcParams['axes.titlesize'] = 36\n", "plt.rcParams['axes.labelsize'] = 24\n", "\n", "data = pd.read_csv('data.txt', header = None)\n", "data.head()\n", "\n", "mistakes = [[],[],[]]\n", "\n", "Y = data[0]\n", "X = data.drop([0], axis = 1)\n", "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.33, random_state = 45)\n", "\n", "i = 0\n", "for metrics in (\"euclidean\" ,\"manhattan\", \"chebyshev\"):\n", " for n in range(1, len(X_train / 2) ):\n", " clas = KNeighborsClassifier( n ,metric = metrics)\n", " clas.fit(X_train, Y_train)\n", " prediction_Y = clas.predict(X_test)\n", " mistakes[i].append((prediction_Y != Y_test).sum())\n", " i = i + 1\n", "metrics = [\"euclidean\" ,\"manhattan\", \"chebyshev\"]\n", "colours = ['blue','green','red']\n", "for i in range(3):\n", " plt.plot(range(1, len(X_train/2)), mistakes[i], color = colours[i], label = metrics[i])\n", "plt.xlabel('neigh.')\n", "plt.ylabel('errors')\n", "plt.legend(loc = 'upper right')\n", "plt.title(\"Метрики\")\n", "plt.show()\n", "\n", "\n", "#Graphics of errors(training test and real)\n", "errors = [];\n", "test = np.arange(0.1 , 0.8, 0.005)\n", "for j in test:\n", " X_train, X_test, Y_train, Y_test = model_selection.train_test_split(X, Y, test_size = j, random_state = 45)\n", " clas = KNeighborsClassifier( n ,metric = metrics)\n", " clas.fit(X_train, Y_train)\n", " prediction_Y = clas.predict(X_test)\n", " errors.append((prediction_Y != Y_test).sum())\n", "plt.plot(test, errors)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }