{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\n\nimport matplotlib.pyplot as plt\n\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.tree import DecisionTreeClassifier","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"data = pd.read_csv('../input/train.csv')\ntest = pd.read_csv('../input/test.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"cd81e7ae9a266f4a17b3eb5f993fdf245fecea4c"},"cell_type":"code","source":"np.random.seed(0)\n\ndatalen_t = len(data)\nsplitmark = int(.83 * datalen_t)\nprint(datalen_t, datalen_t - splitmark)\ntrain, valid = data.iloc[:splitmark, :], data.iloc[splitmark:, :] ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e2fefef5c149b11b96b2910db8db47fef415f58b"},"cell_type":"code","source":"def extract_data(data):\n    labels = data.iloc[:, 0]\n    digits = data.iloc[:, 1:]\n    return digits, labels","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5a7b6dd72f5052a505e4aa3e810fc15566dab2ac"},"cell_type":"code","source":"x, y = extract_data(train)\nxv, yv = extract_data(valid)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"99742c2258cb73c2be4597164cb8520763dece69"},"cell_type":"code","source":"best_depth = 0\nbest_score = 0\nfor depth in range(1, 100):\n    dt = DecisionTreeClassifier(max_depth=depth)\n    dt.fit(x, y)\n    score = dt.score(xv, yv)\n    if score > best_score:\n        best_depth = depth\n        best_score = score\nprint(best_depth, best_score)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8b1e192ef11b053ceb5dc19a2c82b72ecfaba91c"},"cell_type":"code","source":"best_estimators = 1\nfor estimators in range(1, 100):\n    rf = RandomForestClassifier(max_depth=best_depth, n_jobs=-1, n_estimators=estimators)\n    rf.fit(x, y)\n    score = rf.score(xv, yv)\n    if score > best_score:\n        best_estimators = estimators\n        best_score = score\nprint(best_estimators, best_score)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f3e121fb9a6cf155d7e813761165c7468e3b49b1"},"cell_type":"code","source":"xt = np.array(test)\nrf = RandomForestClassifier(max_depth=best_depth, n_jobs=-1, n_estimators=best_estimators)\nrf.fit(x, y)\nprint(rf.score(xv, yv))\nyt = rf.predict(xt)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"51d396119282c652e84d7011e48e323557795902"},"cell_type":"code","source":"submission = pd.DataFrame({'ImageId': [i + 1 for i in range(len(xt))], 'Label': yt})\nsubmission.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"42fd01a2b31e32c619434302e14f1e86c079e74a"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}