{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","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.11.5"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":16017,"databundleVersionId":708189,"sourceType":"competition"}],"dockerImageVersionId":30646,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# EDA","metadata":{}},{"cell_type":"code","source":"data = pd.read_csv(\"/kaggle/input/Kannada-MNIST/train.csv\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\nfrom sklearn.model_selection import train_test_split\n\n# Veri setinizin boyutu\ntotal_samples = 42000\n\nyour_data = pd.read_csv(\"/kaggle/input/Kannada-MNIST/train.csv\")\n\n# Veri setinin indekslerini sıfırlama ve karıştırma\nshuffled_data = your_data.sample(frac=1, random_state=42)\n\n# Veri setini train ve test olarak ayırma\ntrain, test = train_test_split(shuffled_data, test_size=1/3, random_state=42)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Feature Engineering","metadata":{}},{"cell_type":"code","source":"train_images = train.drop(\"label\", axis=1).values\ntrain_labels = train[\"label\"].values\n\ntest_images = test.drop(\"label\", axis=1).values\ntest_labels = test[\"label\"].values\n\ntrain_images=train_images/255.0\ntest_images=test_images/255.0","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_images = train_images.reshape(40000, 784)\ntest_images = test_images.reshape(20000, 784)\ntest_images = test_images.astype(\"float32\")\ntrain_images = train_images.astype(\"float32\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Modelling","metadata":{}},{"cell_type":"code","source":"import tensorflow as tf\n\nmodel = tf.keras.Sequential([\n    tf.keras.layers.Dense(64, activation = \"relu\", input_shape =(784,)),\n    tf.keras.layers.Dense(64, activation = \"relu\"),\n    tf.keras.layers.Dense(10, activation = \"softmax\")])\nmodel.compile(optimizer = \"adam\", loss = \"sparse_categorical_crossentropy\", metrics=[\"accuracy\"])\nhistory = model.fit(train_images, train_labels, batch_size = 120, epochs=40, verbose = 1, validation_data = (test_images, test_labels))","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_, accuracy=model.evaluate(test_images, test_labels)\nprint(\"Accuracy =  %2f\" % (accuracy*100))","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import matplotlib.pyplot as plt","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.plot(history.history[\"accuracy\"])\nplt.plot(history.history[\"val_accuracy\"])\nplt.title(\"Model Accuracy\")\nplt.xlabel(\"Epoch\")\nplt.ylabel(\"Accuracy\")\nplt.legend([\"Train\", \"Test\"], loc=\"upper left\")\nplt.show()","metadata":{},"execution_count":null,"outputs":[]}]}