{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"<h2> Подключение библиотек","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport sklearn\nimport os\n\nfrom sklearn.svm import SVC","metadata":{"execution":{"iopub.status.busy":"2021-10-11T20:12:17.704653Z","iopub.execute_input":"2021-10-11T20:12:17.705695Z","iopub.status.idle":"2021-10-11T20:12:17.720694Z","shell.execute_reply.started":"2021-10-11T20:12:17.705657Z","shell.execute_reply":"2021-10-11T20:12:17.719536Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<h2> Загрузка данных","metadata":{}},{"cell_type":"code","source":"for dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n        \ntrain_data = pd.read_csv('../input/digit-recognizer/train.csv')\ntest_data = pd.read_csv('../input/digit-recognizer/test.csv')","metadata":{"execution":{"iopub.status.busy":"2021-10-11T20:12:17.721915Z","iopub.execute_input":"2021-10-11T20:12:17.722140Z","iopub.status.idle":"2021-10-11T20:12:22.509157Z","shell.execute_reply.started":"2021-10-11T20:12:17.722116Z","shell.execute_reply":"2021-10-11T20:12:22.508071Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<h2> Разделение данных на признаки и метки","metadata":{}},{"cell_type":"code","source":"X_train = train_data.iloc[0:,1:]\ny_train = train_data.iloc[0:,[0]]\n\nX_test = test_data.iloc[0:,0:]","metadata":{"execution":{"iopub.status.busy":"2021-10-11T20:12:22.510445Z","iopub.execute_input":"2021-10-11T20:12:22.510669Z","iopub.status.idle":"2021-10-11T20:12:22.519260Z","shell.execute_reply.started":"2021-10-11T20:12:22.510643Z","shell.execute_reply":"2021-10-11T20:12:22.518045Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<h2> Нормализация данных и преобразование выборок в массив numpy","metadata":{}},{"cell_type":"code","source":"X_train = (X_train.astype('float32')/255).to_numpy()\ny_train = (y_train.astype('float32')).to_numpy()\n\nX_test = (X_test.astype('float32')/255).to_numpy()","metadata":{"execution":{"iopub.status.busy":"2021-10-11T20:12:22.521388Z","iopub.execute_input":"2021-10-11T20:12:22.521615Z","iopub.status.idle":"2021-10-11T20:12:22.720297Z","shell.execute_reply.started":"2021-10-11T20:12:22.521590Z","shell.execute_reply":"2021-10-11T20:12:22.719170Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<h2> Классификация тестовой выборки </h2>\n    Для классификации выборки был использован метод опорных векторов (SVM). Опытным путем было установлено лучшее значение С, при котором метод давал оптимальный результат.","metadata":{}},{"cell_type":"code","source":"svc = sklearn.svm.SVC(C=10)\nsvc.fit(X_train, y_train.ravel())\ny_res = svc.predict(X_test)","metadata":{"execution":{"iopub.status.busy":"2021-10-11T20:12:22.721585Z","iopub.execute_input":"2021-10-11T20:12:22.721810Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<h2> Преобразование выходного массива из float32 в int и вывод результатов в файл ","metadata":{}},{"cell_type":"code","source":"y_int = y_res.astype('int')\npd.DataFrame({\n    \"ImageId\": range(1,len(y_int)+1),\n    \"Label\": y_int\n    }).to_csv('submission.csv', index=False, header=True)","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}