{"cells":[{"metadata":{"_uuid":"85c95b80d8ec01e7e50b8637b5676ac6a667b0d9"},"cell_type":"markdown","source":"* digit28 only 2 features (gkernel BN) 5-s100zz\n* digit28 only 2 features (gkernel BN) 5-s101zz\n* digit28 only 2 features (gkernel BN) 5-s102zz"},{"metadata":{"trusted":true,"_uuid":"0647fd23a18f9410198e5c5ac857df88cf9dd876"},"cell_type":"code","source":"ls -la ../input","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1226d9f0d5c79cabd74bc7a166b8c60e234dd4b2"},"cell_type":"code","source":"import datetime\nnow = datetime.datetime.now()\nprint(now)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"501bc5c48766ec5964873f6dc7ebd4007adae413"},"cell_type":"code","source":"%matplotlib inline\nfrom IPython.display import SVG\nfrom keras.utils.vis_utils import model_to_dot","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"import datetime\nimport os.path\nimport itertools\nfrom itertools import chain\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn import datasets\nfrom sklearn import preprocessing\nfrom sklearn.decomposition import PCA\nfrom sklearn import cluster, datasets, mixture\nfrom sklearn.datasets import load_digits\nfrom sklearn.preprocessing import StandardScaler, OneHotEncoder\nfrom sklearn.metrics import f1_score, classification_report, confusion_matrix\nfrom sklearn.model_selection import train_test_split\n\nimport matplotlib\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import ListedColormap\nimport seaborn as sns\n\nimport tensorflow as tf\n\nfrom keras.layers import Input, Embedding, LSTM, GRU, Dense, Dropout, Lambda, \\\n    Conv1D, Conv2D, Conv3D, \\\n    Conv2DTranspose, \\\n    AveragePooling1D, AveragePooling2D, \\\n    MaxPooling1D, MaxPooling2D, MaxPooling3D, \\\n    GlobalAveragePooling1D, GlobalAveragePooling2D, \\\n    GlobalMaxPooling1D, GlobalMaxPooling2D, GlobalMaxPooling3D, \\\n    LocallyConnected1D, LocallyConnected2D, \\\n    concatenate, Flatten, Average, Activation, \\\n    RepeatVector, Permute, Reshape, Dot, \\\n    multiply, dot, add, \\\n    PReLU, \\\n    Bidirectional, TimeDistributed, \\\n    SpatialDropout1D, \\\n    BatchNormalization\nfrom keras.models import Model, Sequential\nfrom keras import losses\nfrom keras.callbacks import BaseLogger, ProgbarLogger, Callback, History\nfrom keras.callbacks import ModelCheckpoint, LearningRateScheduler, ReduceLROnPlateau\nfrom keras.wrappers.scikit_learn import KerasClassifier\nfrom keras import regularizers\nfrom keras import initializers\nfrom keras.metrics import categorical_accuracy\nfrom keras.constraints import maxnorm, non_neg\nfrom keras.optimizers import RMSprop\nfrom keras.utils import to_categorical, plot_model\nfrom keras import backend as K\nimport keras","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"50fefbf82ee590bd43c1c0e8cc5034b3796652cc"},"cell_type":"code","source":"from PIL import Image\nfrom zipfile import ZipFile\nimport h5py\nimport cv2\nfrom tqdm import tqdm\nimport datetime","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2b9167f6d6b3a1964bf9e389f70c1816e61b9b3d"},"cell_type":"code","source":"# Load the data\ntrain = pd.read_csv(\"../input/digit-recognizer/train.csv\")\ntest = pd.read_csv(\"../input/digit-recognizer/test.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6619d8f5da36e0e7455ec299f65df2b9ad5bf24b"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1b2a6245ab12279bea772004c83cdd0421199c27"},"cell_type":"code","source":"test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ea8044e099445d033b11c7c91ab3c044def933e3"},"cell_type":"code","source":"y_train = train['label'].values\nprint(y_train.shape)\n\ny_cat = to_categorical(y_train)\ny_cat.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"72c1d0008273d0b659d37e60cbc90c0f7cba37fd"},"cell_type":"code","source":"x_train = train.iloc[:,1:].values / 255.0\nprint((x_train.min(), x_train.max()))\nx_train.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"7025fbfd69777c577ef7b73dcd085533254ce344"},"cell_type":"code","source":"x_train_fl = x_train.reshape((x_train.shape[0], -1))\nx_train_fl.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"417897373015722347be086aaf611d2f57b7ce88"},"cell_type":"code","source":"plt.imshow(x_train[0].reshape((28,28)))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3087425073721e87221a64c823b601c08658557f"},"cell_type":"code","source":"x_test = test.iloc[:,:].values / 255.0\nprint((x_test.min(), x_test.max()))\nx_test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9919f0461f51933b8b30e457331b29eeab1db53d"},"cell_type":"code","source":"x_test_fl = x_test.reshape((x_test.shape[0], -1))\nx_test_fl.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"580cfee9c6c8161e425a14a8fb9319913bcec1fd"},"cell_type":"code","source":"plt.imshow(x_test[0].reshape((28,28)))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"29cc82a94773e10a10712ee05957ad9a37f44560"},"cell_type":"code","source":"sample_submit = pd.read_csv(\"../input/digit-recognizer/sample_submission.csv\")\nprint(sample_submit.shape)\nsample_submit.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"920aba56f7154c85d0906db89f56eac6cb33a76d"},"cell_type":"code","source":"def get_pred(src, rs=10001, show=False):\n    print(src, rs)\n    y_pred0 = pd.read_csv(os.path.join(src, 'proba_s{}.csv'.format(rs)))\n    if show:\n        print(y_pred0.shape)\n        print(y_pred0.head())\n    y_pred0_test = pd.read_csv(os.path.join(src, 'proba_test_s{}.csv'.format(rs)))\n    if show:\n        print(y_pred0_test.shape)\n        print(y_pred0_test.head())\n    \n    return y_pred0, y_pred0_test","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"af2127eee7760694fc5daaa72d3d1d72d3aab10c"},"cell_type":"markdown","source":"## -###-"},{"metadata":{"trusted":true,"_uuid":"e7cc5c4487e92b8a75361c778579ef59ef5b0782"},"cell_type":"code","source":"y_pred_0, y_pred_test_0 = get_pred('../input/digit28-only-2-features-gkernel-bn-5-s100zz', rs=10001, show=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a3e72980a768bbb7117691721081da2d2b503a1c","scrolled":false},"cell_type":"code","source":"y_pred_list = []\ny_pred_test_list = []\n\nsrc = '../input/digit28-only-2-features-gkernel-bn-5-s100zz'\nrs_init = 10001\nfor ii in range(30):\n    rs = rs_init + ii\n    y_pred_0, y_pred_test_0 = get_pred(src, rs)\n    y_pred_list.append(y_pred_0)\n    y_pred_test_list.append(y_pred_test_0)\n\nsrc = '../input/digit28-only-2-features-gkernel-bn-5-s101zz'\nrs_init = 10101\nfor ii in range(30):\n    rs = rs_init + ii\n    y_pred_0, y_pred_test_0 = get_pred(src, rs)\n    y_pred_list.append(y_pred_0)\n    y_pred_test_list.append(y_pred_test_0)\n\nsrc = '../input/digit28-only-2-features-gkernel-bn-5-s102zz'\nrs_init = 10201\nfor ii in range(30):\n    rs = rs_init + ii\n    y_pred_0, y_pred_test_0 = get_pred(src, rs)\n    y_pred_list.append(y_pred_0)\n    y_pred_test_list.append(y_pred_test_0)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"401dc5a12981d12119e3bb108065cfc885855671"},"cell_type":"code","source":"len(y_pred_list)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"efda9982937b124dbcf52d3eb10c4c20bdfb0582"},"cell_type":"code","source":"n_slice = 70\n\ny_pred = np.stack(y_pred_list)[:n_slice]\nprint(y_pred.shape)\n\npred = y_pred.mean(axis=0)\nprint(pred.shape)\nprint(pred[0])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"31fe3b944b6c1cfbbfc68cdbb72ea72f499b6e98"},"cell_type":"code","source":"print(f1_score(y_train, np.argmax(pred, axis=1), average='macro'))\nprint(classification_report(y_train, np.argmax(pred, axis=1)))\nconfusion_matrix(y_train, np.argmax(pred, axis=1))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1c743591ded5bdcc5f5fbd18442c5dc2065347a0"},"cell_type":"code","source":"y_pred_test = np.stack(y_pred_test_list)[:n_slice]\nprint(y_pred_test.shape)\npred_test = y_pred_test.mean(axis=0)\nprint(pred_test.shape)\nprint(pred_test[0])\n\nsubmit_csv = sample_submit.copy()\nsubmit_csv.Label = np.argmax(pred_test, axis=1)\nsubmit_csv.head()\nsubmit_csv.to_csv('submit_{}.csv'.format(n_slice), index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"954aa3c387a4b40eff5d6fcb4b54d078f823148d"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"efda9982937b124dbcf52d3eb10c4c20bdfb0582"},"cell_type":"code","source":"n_slice = 80\n\ny_pred = np.stack(y_pred_list)[:n_slice]\nprint(y_pred.shape)\n\npred = y_pred.mean(axis=0)\nprint(pred.shape)\nprint(pred[0])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"31fe3b944b6c1cfbbfc68cdbb72ea72f499b6e98"},"cell_type":"code","source":"print(f1_score(y_train, np.argmax(pred, axis=1), average='macro'))\nprint(classification_report(y_train, np.argmax(pred, axis=1)))\nconfusion_matrix(y_train, np.argmax(pred, axis=1))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1c743591ded5bdcc5f5fbd18442c5dc2065347a0"},"cell_type":"code","source":"y_pred_test = np.stack(y_pred_test_list)[:n_slice]\nprint(y_pred_test.shape)\npred_test = y_pred_test.mean(axis=0)\nprint(pred_test.shape)\nprint(pred_test[0])\n\nsubmit_csv = sample_submit.copy()\nsubmit_csv.Label = np.argmax(pred_test, axis=1)\nsubmit_csv.head()\nsubmit_csv.to_csv('submit_{}.csv'.format(n_slice), index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4a5c034fc88a46fa90c9523cec1017c8044d0aa3"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"efda9982937b124dbcf52d3eb10c4c20bdfb0582"},"cell_type":"code","source":"y_pred = np.stack(y_pred_list)\nprint(y_pred.shape)\n\npred = y_pred.mean(axis=0)\nprint(pred.shape)\nprint(pred[0])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"31fe3b944b6c1cfbbfc68cdbb72ea72f499b6e98"},"cell_type":"code","source":"print(f1_score(y_train, np.argmax(pred, axis=1), average='macro'))\nprint(classification_report(y_train, np.argmax(pred, axis=1)))\nconfusion_matrix(y_train, np.argmax(pred, axis=1))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1c743591ded5bdcc5f5fbd18442c5dc2065347a0"},"cell_type":"code","source":"y_pred_test = np.stack(y_pred_test_list)\nprint(y_pred_test.shape)\npred_test = y_pred_test.mean(axis=0)\nprint(pred_test.shape)\nprint(pred_test[0])\n\nsubmit_csv = sample_submit.copy()\nsubmit_csv.Label = np.argmax(pred_test, axis=1)\nsubmit_csv.head()\nsubmit_csv.to_csv('submit.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f31d375b1d30ecf7abf7d6e9aee441f06dcd5f0c"},"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}