{"cells":[{"cell_type":"markdown","metadata":{"_cell_guid":"7386e70c-257a-89e5-8574-f0042f8bb3db"},"source":"A single-layer perceptron on the Digits Datas"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"b3ed196e-0069-e12b-4655-345551056cdb"},"outputs":[],"source":"import numpy as np\nimport pandas as pd\n\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Dropout, Convolution2D, MaxPooling2D, Flatten, Activation\nfrom keras.utils.np_utils import to_categorical\n\n\nfrom sklearn.cross_validation import StratifiedKFold, train_test_split\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.decomposition import PCA"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"c5fd712f-488a-eea4-b4b8-ff3be815a8dd"},"outputs":[],"source":"train = pd.read_csv(\"../input/train.csv\")\ntest  = pd.read_csv(\"../input/test.csv\")"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"619424cc-a50e-86a0-8f1f-4533e9f11b21"},"outputs":[],"source":"X_train = train.loc[:,\"pixel0\":\"pixel783\"].values/255\ny_train = train.label\nX_test = test.loc[:,\"pixel0\":\"pixel783\"].values/255"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"4d89006b-d0fd-6ac0-7f88-fadaba312dcf"},"outputs":[],"source":"y_dummy_train = to_categorical(y_train)"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"5fa2371c-8e26-cadb-3c19-cdcb0df03fec"},"outputs":[],"source":"X_train = X_train.reshape(X_train.shape[0], 1, 28, 28).astype('float32')\nX_test = X_test.reshape(X_test.shape[0], 1, 28, 28).astype('float32')"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"fc7667d5-26eb-1372-3cc7-cc5237a6da91"},"outputs":[],"source":"X_train.shape"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"f0f733b5-1e78-500f-7421-54e0794ca07c"},"outputs":[],"source":"model = Sequential()\nmodel.add(Convolution2D(32, 5, 5, activation='relu',input_shape = (1, 28, 28)))\n"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"70f10c8a-3f68-c605-ce26-1c6873ed24a7"},"outputs":[],"source":"#building the keras model:\n\nmodel = Sequential()\nmodel.add(Convolution2D(32, 5, 5, activation='relu', border_mode='valid',input_shape = (1, 28, 28)))\nmodel.add(MaxPooling2D(pool_size=(2,2)))\n\nmodel.add(Convolution2D(16, 3, 3, activation='relu'))\nmodel.add(MaxPooling2D(pool_size=(2,2)))\nmodel.add(Dropout(0.2))\nmodel.add(Flatten())\n\nmodel.add(Dense(128, activation='relu'))\nmodel.add(Dense(64, activation='relu'))\nmodel.add(Dropout(0.2))\nmodel.add(Dense(10, activation='softmax'))\n\nmodel.compile(optimizer=\"adam\", loss = \"categorical_crossentropy\",  metrics = [\"accuracy\"])"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"e01a4f9c-0bb7-a130-aa15-a4dbb2b32834"},"outputs":[],"source":"hist = model.fit(X_train, y_dummy_train, nb_epoch=2, batch_size=256, verbose = 1) #validation_split=0.2)"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"b863faf8-dcf6-ba11-a260-a21c112236f6"},"outputs":[],"source":"#scores = pd.DataFrame(hist.history)\n#scores.loc[:5,[\"acc\", \"val_acc\"]].plot()"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"6a3223d5-a30d-0591-145d-9d798a24f1cb"},"outputs":[],"source":"#scores.val_acc.max()"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"525e3b9f-1fe9-e3aa-9a54-ea1382264352"},"outputs":[],"source":"preds = model.predict_classes(X_test_pca)"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"eae812a9-75af-ed79-bf5f-670d0a7613bb"},"outputs":[],"source":"solution = pd.DataFrame({\"ImageId\": np.arange(1,(len(preds)+1)),  \"Label\":preds})"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"19427472-aee4-d260-9633-8b32c070886e"},"outputs":[],"source":"solution.to_csv(\"solution.csv\", index=False)"}],"metadata":{"_change_revision":0,"_is_fork":false,"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.5.2"}},"nbformat":4,"nbformat_minor":0}