{"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":"# Importing libraries","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport seaborn as sns\nimport pandas as pd\nimport nltk\nimport matplotlib.pyplot as plt\nimport sklearn.datasets as sd\nfrom sklearn.metrics import accuracy_score , recall_score , confusion_matrix\nimport tensorflow as tf\nfrom tensorflow.keras.losses import BinaryCrossentropy\nfrom tensorflow.keras.losses import SparseCategoricalCrossentropy\nfrom tensorflow.keras.activations import linear,relu,sigmoid\nfrom tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Dense\nfrom tensorflow.keras.optimizers import Adam\nfrom tensorflow.keras.regularizers import l2\nfrom sklearn.model_selection import train_test_split\n","metadata":{"execution":{"iopub.status.busy":"2023-09-25T21:12:59.862970Z","iopub.execute_input":"2023-09-25T21:12:59.863388Z","iopub.status.idle":"2023-09-25T21:13:12.029888Z","shell.execute_reply.started":"2023-09-25T21:12:59.863356Z","shell.execute_reply":"2023-09-25T21:13:12.028544Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\ndata = pd.read_csv('/kaggle/input/digit-recognizer/train.csv');\n\ncolumns = data.columns;\n\nx_train , x_test , y_train , y_test = train_test_split( data[columns[1:]] , data['label'] , test_size = 0.2 , random_state = 40);\n\nx_train = np.array(x_train)/255.0;\nx_test = np.array(x_test)/255.0;\ny_train = np.array(y_train);\ny_test = np.array(y_test);\n\n\nmodel  = Sequential(\n[\n    Dense( units = 128 , activation = 'relu'),\n    Dense( units = 64 , activation = 'relu'),\n    Dense( units = 10 , activation = 'linear')   \n],name = 'model'\n\n)\nmodel.compile(optimizer = Adam(learning_rate = 0.001) , loss = SparseCategoricalCrossentropy(from_logits = True) );\nmodel.fit(x_train,y_train,epochs = 100);\n\n\n\n","metadata":{"scrolled":true,"execution":{"iopub.status.busy":"2023-09-25T21:13:27.682365Z","iopub.execute_input":"2023-09-25T21:13:27.683233Z","iopub.status.idle":"2023-09-25T21:21:56.183149Z","shell.execute_reply.started":"2023-09-25T21:13:27.683195Z","shell.execute_reply":"2023-09-25T21:21:56.181551Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\ndef softmax_prediction(features):\n    \n    logit = model.predict(features);\n\n    f_x = tf.nn.softmax(logit);\n\n    prediction = np.argmax(np.array(f_x),axis = 1);\n\n    return prediction;\n\n\n\n\nprint(accuracy_score(softmax_prediction(x_train),y_train))\n\nprint(accuracy_score(softmax_prediction(x_test),y_test));\n\ntest_data = pd.read_csv('/kaggle/input/digit-recognizer/test.csv');\n\ntest_array = np.array(test_data);\n\nprediction = softmax_prediction(test_array);\n\ntest_data['ImageId'] = test_data.index + 1 ;\n\ntest_data['Label'] = prediction;\n\nprint(test_data['Label']);\n\nsubmission = test_data[['Label','ImageId']];\n\nprint(submission);\n\nsubmission.to_csv('Submission3.csv', index=False);\n\n\n\n","metadata":{"scrolled":true,"execution":{"iopub.status.busy":"2023-09-25T21:22:05.147974Z","iopub.execute_input":"2023-09-25T21:22:05.148456Z","iopub.status.idle":"2023-09-25T21:22:12.893148Z","shell.execute_reply.started":"2023-09-25T21:22:05.148420Z","shell.execute_reply":"2023-09-25T21:22:12.891790Z"},"trusted":true},"execution_count":null,"outputs":[]}]}