{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":84896,"databundleVersionId":10305135,"sourceType":"competition"}],"dockerImageVersionId":30822,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Insurance Regression(SIMPLE)\n##### This is my take on this insurance dataset, without best parameters(gridsearch etc) , simple implementation of the dataset and applying XGBoost","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-12-28T20:56:15.151048Z","iopub.execute_input":"2024-12-28T20:56:15.151557Z","iopub.status.idle":"2024-12-28T20:56:15.598155Z","shell.execute_reply.started":"2024-12-28T20:56:15.151519Z","shell.execute_reply":"2024-12-28T20:56:15.596938Z"}}},{"cell_type":"markdown","source":"### Importing the libraries ","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:24:30.417742Z","iopub.execute_input":"2024-12-28T21:24:30.418091Z","iopub.status.idle":"2024-12-28T21:24:30.423776Z","shell.execute_reply.started":"2024-12-28T21:24:30.418062Z","shell.execute_reply":"2024-12-28T21:24:30.422341Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Importing the training and test datasets","metadata":{}},{"cell_type":"code","source":"train_dataset = pd.read_csv(\"/kaggle/input/playground-series-s4e12/train.csv\")\ntest_dataset = pd.read_csv(\"/kaggle/input/playground-series-s4e12/test.csv\")\nX = train_dataset.iloc[:,:-1]\ny = train_dataset.iloc[:,-1]\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:24:30.425184Z","iopub.execute_input":"2024-12-28T21:24:30.425502Z","iopub.status.idle":"2024-12-28T21:24:38.525283Z","shell.execute_reply.started":"2024-12-28T21:24:30.425475Z","shell.execute_reply":"2024-12-28T21:24:38.524247Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Understanding the dataset dynamics (categorical and numerical)","metadata":{}},{"cell_type":"code","source":"numerical_columns = train_dataset.select_dtypes(include=[np.number]).columns.tolist()\ncategorical_columns = train_dataset.select_dtypes(exclude=[np.number]).columns.tolist()\n\nprint(\"\\nNumerical Columns:\")\nprint(numerical_columns)\nprint(f\"\\nTotal number of numerical columns: {len(numerical_columns)}\")\n\nprint(\"\\nCategorical Columns:\")\nprint(categorical_columns)\nprint(f\"\\nTotal number of categorical columns: {len(categorical_columns)}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:24:38.526889Z","iopub.execute_input":"2024-12-28T21:24:38.527241Z","iopub.status.idle":"2024-12-28T21:24:38.738901Z","shell.execute_reply.started":"2024-12-28T21:24:38.527199Z","shell.execute_reply":"2024-12-28T21:24:38.737436Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Splitting the dataset into training and testing ","metadata":{}},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2,random_state = 0)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:24:38.740862Z","iopub.execute_input":"2024-12-28T21:24:38.741424Z","iopub.status.idle":"2024-12-28T21:24:40.476557Z","shell.execute_reply.started":"2024-12-28T21:24:38.741366Z","shell.execute_reply":"2024-12-28T21:24:40.47524Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Encoding the categorical into numerical","metadata":{}},{"cell_type":"code","source":"from sklearn.preprocessing import OneHotEncoder\nfrom sklearn.compose import ColumnTransformer\ncategorical_features = categorical_columns\ncolumn_transformer = ColumnTransformer(\n    transformers=[\n        ('cat', OneHotEncoder(handle_unknown='ignore'), categorical_features)\n    ],\n    remainder='passthrough'\n)\nX_train = column_transformer.fit_transform(X_train)\nX_test = column_transformer.transform(X_test)\nX_test_dataset = column_transformer.transform(test_dataset)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:24:40.477732Z","iopub.execute_input":"2024-12-28T21:24:40.478048Z","iopub.status.idle":"2024-12-28T21:24:52.733814Z","shell.execute_reply.started":"2024-12-28T21:24:40.478021Z","shell.execute_reply":"2024-12-28T21:24:52.732535Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### XGBoost implementation","metadata":{}},{"cell_type":"code","source":"import xgboost as xgb\nfrom xgboost import XGBRegressor\nreg = XGBRegressor(n_estimators=1000, max_depth=7, eta=0.1, subsample=0.7)\nreg.fit(X_train, y_train)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:24:52.734899Z","iopub.execute_input":"2024-12-28T21:24:52.735196Z","iopub.status.idle":"2024-12-28T21:29:06.578238Z","shell.execute_reply.started":"2024-12-28T21:24:52.735171Z","shell.execute_reply":"2024-12-28T21:29:06.577258Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"y_pred = reg.predict(X_test)\ny_test_pred = reg.predict(X_test_dataset)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:29:06.579926Z","iopub.execute_input":"2024-12-28T21:29:06.580216Z","iopub.status.idle":"2024-12-28T21:29:48.57288Z","shell.execute_reply.started":"2024-12-28T21:29:06.580191Z","shell.execute_reply":"2024-12-28T21:29:48.57212Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Submission steps","metadata":{}},{"cell_type":"code","source":"submission_df = pd.read_csv('/kaggle/input/playground-series-s4e12/sample_submission.csv')\nsubmission_df['Premium Amount'] = y_test_pred\nsubmission_df.to_csv('submission.csv', index=False)\nsubmission_df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-28T21:29:48.57359Z","iopub.execute_input":"2024-12-28T21:29:48.573832Z","iopub.status.idle":"2024-12-28T21:29:50.020346Z","shell.execute_reply.started":"2024-12-28T21:29:48.573809Z","shell.execute_reply":"2024-12-28T21:29:50.019416Z"}},"outputs":[],"execution_count":null}]}