{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"46b423e4-879f-161c-25dc-f0524f48b6ba"},"outputs":[],"source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nfrom subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\n\n# Any results you write to the current directory are saved as output."},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"f2a86ee0-9315-fc88-a189-bd28a44788d1"},"outputs":[],"source":"import pandas as pd\nfrom keras.utils import np_utils\nfrom keras.models import Sequential\nfrom keras.layers import Dense\n\n# The competition datafiles are in the directory ../input\n# Read competition data files:\ntrain = pd.read_csv(\"../input/train.csv\")\ntest  = pd.read_csv(\"../input/test.csv\")\n\n# Write to the log:\nprint(\"Training set has {0[0]} rows and {0[1]} columns\".format(train.shape))\nprint(\"Test set has {0[0]} rows and {0[1]} columns\".format(test.shape))\n# Any files you write to the current directory get shown as outputs\n\nx_variables = test.columns\ny_variable = 'label'\n\n\ntrain[x_variables]  = train[x_variables]*1.0/255\ntest[x_variables]  = test[x_variables]*1.0/255\n\ndf_cv = train.sample(frac = 0.10,replace = False)\ndf_train = train.drop(df_cv.index)\n\n\nX_train = df_train[x_variables].as_matrix()\nY_train = df_train[y_variable].as_matrix()\nY_train = np_utils.to_categorical(Y_train,10)\n\n\nX_cv = df_cv[x_variables].as_matrix()\nY_cv = df_cv[y_variable].as_matrix()\nY_cv = np_utils.to_categorical(Y_cv,10)\n\nbatch_size = 200\nepochs = 25\n\nmodel = Sequential()\nmodel.add(Dense(200,input_dim = 784,init = 'uniform',activation = 'relu'))\nmodel.add(Dense(100,init = 'uniform',activation = 'relu'))\nmodel.add(Dense(10,activation = 'softmax'))\nmodel.summary()\nmodel.compile(loss='categorical_crossentropy', optimizer='rmsprop',metrics = ['accuracy'])\nmodel.fit(X_train,Y_train,batch_size = batch_size,nb_epoch = epochs,verbose = 0)\nscore = model.evaluate(X_cv,Y_cv,verbose = 0)\nprint(score)\n\nX_test = test[x_variables].as_matrix()\nY_predicted = model.predict(X_test)\n"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"ce987c26-0f9f-65c1-9723-82a99c3ce2d0"},"outputs":[],"source":"class_vec = []\nfor i in range(10):\n    temp = 'class_' + str(i)\n    class_vec.append(temp)\ndf = pd.DataFrame(columns = class_vec)\nfor i in range(10):\n    df[class_vec[i]] = Y_predicted[:,i]\ndf.max(axis = 1)\n"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"c313141e-da2e-425f-bf6f-ba0e4868f42e"},"outputs":[],"source":"len(Y_predicted.argmax(axis = 1))"}],"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.6.0"}},"nbformat":4,"nbformat_minor":0}