{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":16017,"databundleVersionId":708189,"sourceType":"competition"}],"dockerImageVersionId":30698,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.metrics import accuracy_score, confusion_matrix\nimport matplotlib.pyplot as plt\nimport seaborn as sns","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-04-26T18:12:41.316457Z","iopub.execute_input":"2024-04-26T18:12:41.316712Z","iopub.status.idle":"2024-04-26T18:12:43.885859Z","shell.execute_reply.started":"2024-04-26T18:12:41.316687Z","shell.execute_reply":"2024-04-26T18:12:43.884947Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Load datasets\ntrain = pd.read_csv('/kaggle/input/Kannada-MNIST/train.csv')\ntest = pd.read_csv('/kaggle/input/Kannada-MNIST/test.csv')","metadata":{"execution":{"iopub.status.busy":"2024-04-26T18:12:49.210843Z","iopub.execute_input":"2024-04-26T18:12:49.211189Z","iopub.status.idle":"2024-04-26T18:12:54.322905Z","shell.execute_reply.started":"2024-04-26T18:12:49.211163Z","shell.execute_reply":"2024-04-26T18:12:54.322018Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Prepare data\nX = train.drop('label', axis=1).values / 255.0  # Normalize data\ny = train['label'].values\nX_test = test.drop(test.columns[0], axis=1).values / 255.0  # Normalize and remove ID if the first column is ID\n\n# Splitting the dataset\nX_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# Train the AdaBoost model\nada_model = AdaBoostClassifier(n_estimators=100, learning_rate=0.1, random_state=42)\nada_model.fit(X_train, y_train)\n","metadata":{"execution":{"iopub.status.busy":"2024-04-26T18:13:02.446261Z","iopub.execute_input":"2024-04-26T18:13:02.447019Z","iopub.status.idle":"2024-04-26T18:14:45.658958Z","shell.execute_reply.started":"2024-04-26T18:13:02.446989Z","shell.execute_reply":"2024-04-26T18:14:45.657985Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predict on training and validation set\ntrain_preds = ada_model.predict(X_train)\nval_preds = ada_model.predict(X_val)\n\n# Calculate accuracy\ntrain_accuracy = accuracy_score(y_train, train_preds)\nval_accuracy = accuracy_score(y_val, val_preds)\n\n# Print the accuracies\nprint(f\"Training accuracy: {train_accuracy * 100:.2f}%\")\nprint(f\"Validation accuracy: {val_accuracy * 100:.2f}%\")","metadata":{"execution":{"iopub.status.busy":"2024-04-26T18:14:45.660566Z","iopub.execute_input":"2024-04-26T18:14:45.660907Z","iopub.status.idle":"2024-04-26T18:14:55.225402Z","shell.execute_reply.started":"2024-04-26T18:14:45.660882Z","shell.execute_reply":"2024-04-26T18:14:55.224467Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Confusion matrix for the validation set\ncm = confusion_matrix(y_val, val_preds)\nplt.figure(figsize=(10,7))\nsns.heatmap(cm, annot=True, fmt='d', cmap='Reds')\nplt.title('Confusion Matrix for Validation Data')\nplt.xlabel('Predicted Labels')\nplt.ylabel('Actual Labels')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-26T18:22:20.202681Z","iopub.execute_input":"2024-04-26T18:22:20.203518Z","iopub.status.idle":"2024-04-26T18:22:20.711627Z","shell.execute_reply.started":"2024-04-26T18:22:20.203485Z","shell.execute_reply":"2024-04-26T18:22:20.710708Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predicting the test set\ntest_preds = ada_model.predict(X_test)\n\n# Prepare submission\nsubmission_df = pd.DataFrame({\n    'id': test.iloc[:, 0],  # Assuming the first column is 'id'\n    'label': test_preds.astype(int)\n})\nsubmission_filename = 'submission.csv'\nsubmission_df.to_csv(submission_filename, index=False)\nprint(\"Submission file for AdaBoost created!\")\nprint(submission_df.head())","metadata":{"execution":{"iopub.status.busy":"2024-04-26T18:22:29.741509Z","iopub.execute_input":"2024-04-26T18:22:29.742293Z","iopub.status.idle":"2024-04-26T18:22:30.290806Z","shell.execute_reply.started":"2024-04-26T18:22:29.742261Z","shell.execute_reply":"2024-04-26T18:22:30.289580Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}