{"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":"**Inquisitive_turtles** ","metadata":{}},{"cell_type":"code","source":"import pandas as pd","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:19:19.870425Z","iopub.execute_input":"2024-12-31T23:19:19.870826Z","iopub.status.idle":"2024-12-31T23:19:20.245345Z","shell.execute_reply.started":"2024-12-31T23:19:19.870787Z","shell.execute_reply":"2024-12-31T23:19:20.244294Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df = pd.read_csv('/kaggle/input/playground-series-s4e12/train.csv')\ntest_df = pd.read_csv('/kaggle/input/playground-series-s4e12/test.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:19:22.844042Z","iopub.execute_input":"2024-12-31T23:19:22.844439Z","iopub.status.idle":"2024-12-31T23:19:32.591816Z","shell.execute_reply.started":"2024-12-31T23:19:22.844411Z","shell.execute_reply":"2024-12-31T23:19:32.590763Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print('\\ntrain df stats')\nprint(train_df.describe())\nprint('\\ntest df stats')\nprint(test_df.describe())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:19:32.593088Z","iopub.execute_input":"2024-12-31T23:19:32.593375Z","iopub.status.idle":"2024-12-31T23:19:33.642022Z","shell.execute_reply.started":"2024-12-31T23:19:32.59335Z","shell.execute_reply":"2024-12-31T23:19:33.641104Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def check_missing(df):\n    missing_values = df.isnull().sum()\n    cols_with_missing = missing_values[missing_values > 0]\n    print(cols_with_missing)\n    print('\\n')\nprint('\\nchecking missing values for train df')\ncheck_missing(train_df)\nprint('\\nchecking missing values for test df')\ncheck_missing(test_df)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:19:38.598113Z","iopub.execute_input":"2024-12-31T23:19:38.598482Z","iopub.status.idle":"2024-12-31T23:19:39.632482Z","shell.execute_reply.started":"2024-12-31T23:19:38.598454Z","shell.execute_reply":"2024-12-31T23:19:39.631549Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df = train_df.dropna(subset = 'Premium Amount')\ntest_df_cleaned = test_df","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:19:45.813213Z","iopub.execute_input":"2024-12-31T23:19:45.813566Z","iopub.status.idle":"2024-12-31T23:19:46.013809Z","shell.execute_reply.started":"2024-12-31T23:19:45.813539Z","shell.execute_reply":"2024-12-31T23:19:46.012629Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def check_outliers(df):\n    Q1 = df['Previous Claims'].quantile(0.25)\n    Q3 = df['Previous Claims'].quantile(0.75)\n    IQR = Q3 - Q1\n    \n    lower_bound = Q1 - 1.5 * IQR\n    upper_bound = Q3 + 1.5 * IQR\n    \n    df_cleaned = df[(train_df['Previous Claims'] >= lower_bound) & (df['Previous Claims'] <= upper_bound)]\n    df_outliers = df[(train_df['Previous Claims'] < lower_bound) | (df['Previous Claims'] > upper_bound)]\n\n    return df_cleaned,df_outliers\n\ntrain_df_cleaned, train_df_outliers = check_outliers(train_df)\nprint('number of outliers in train df: ',train_df_outliers['Previous Claims'].count())\nprint(\"Original DataFrame with outliers in train df:\",train_df['Previous Claims'].count())\nprint(\"DataFrame after removing outliers in train df:\",train_df_cleaned['Previous Claims'].count())\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:19:52.226379Z","iopub.execute_input":"2024-12-31T23:19:52.226792Z","iopub.status.idle":"2024-12-31T23:19:52.441216Z","shell.execute_reply.started":"2024-12-31T23:19:52.226757Z","shell.execute_reply":"2024-12-31T23:19:52.439934Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print('\\n cleaned train df stats')\nprint(train_df_cleaned.describe())\nprint('\\n cleaned test df stats')\nprint(test_df_cleaned.describe())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:20:02.796742Z","iopub.execute_input":"2024-12-31T23:20:02.797187Z","iopub.status.idle":"2024-12-31T23:20:03.613777Z","shell.execute_reply.started":"2024-12-31T23:20:02.797154Z","shell.execute_reply":"2024-12-31T23:20:03.612528Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"mean_imputation_cols = ['Age','Number of Dependents','Credit Score','Credit Score']","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:20:25.606835Z","iopub.execute_input":"2024-12-31T23:20:25.607251Z","iopub.status.idle":"2024-12-31T23:20:25.61158Z","shell.execute_reply.started":"2024-12-31T23:20:25.607219Z","shell.execute_reply":"2024-12-31T23:20:25.610402Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom sklearn.impute import SimpleImputer\n\nimputer = SimpleImputer(strategy='mean')\ntrain_df_cleaned[mean_imputation_cols]= imputer.fit_transform(train_df_cleaned[mean_imputation_cols])\ntest_df_cleaned[mean_imputation_cols]= imputer.transform(test_df_cleaned[mean_imputation_cols])\nprint(train_df_cleaned.head(5))\nprint(test_df_cleaned.head(5))\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:20:31.709575Z","iopub.execute_input":"2024-12-31T23:20:31.710017Z","iopub.status.idle":"2024-12-31T23:20:32.773919Z","shell.execute_reply.started":"2024-12-31T23:20:31.709981Z","shell.execute_reply":"2024-12-31T23:20:32.772609Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print('\\nchecking missing values for cleaned train df')\ncheck_missing(train_df_cleaned)\nprint('\\nchecking missing values for cleaned test df')\ncheck_missing(test_df_cleaned)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:20:43.794447Z","iopub.execute_input":"2024-12-31T23:20:43.79491Z","iopub.status.idle":"2024-12-31T23:20:44.647507Z","shell.execute_reply.started":"2024-12-31T23:20:43.79488Z","shell.execute_reply":"2024-12-31T23:20:44.646619Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"mode_imputation_cols=['Annual Income','Health Score','Marital Status','Occupation', 'Customer Feedback']","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:20:50.19808Z","iopub.execute_input":"2024-12-31T23:20:50.198418Z","iopub.status.idle":"2024-12-31T23:20:50.202619Z","shell.execute_reply.started":"2024-12-31T23:20:50.198392Z","shell.execute_reply":"2024-12-31T23:20:50.20177Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom sklearn.impute import SimpleImputer\n\nimputer = SimpleImputer(strategy='most_frequent')\ntrain_df_cleaned[mode_imputation_cols]= imputer.fit_transform(train_df_cleaned[mode_imputation_cols])\ntest_df_cleaned[mode_imputation_cols]= imputer.transform(test_df_cleaned[mode_imputation_cols])\nprint(train_df_cleaned.head(5))\nprint(test_df_cleaned.head(5))\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:20:57.43891Z","iopub.execute_input":"2024-12-31T23:20:57.439284Z","iopub.status.idle":"2024-12-31T23:20:59.458002Z","shell.execute_reply.started":"2024-12-31T23:20:57.439254Z","shell.execute_reply":"2024-12-31T23:20:59.456983Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print('\\nchecking missing values for cleaned train df')\ncheck_missing(train_df_cleaned)\nprint('\\nchecking missing values for cleaned test df')\ncheck_missing(test_df_cleaned)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:21:08.293648Z","iopub.execute_input":"2024-12-31T23:21:08.293982Z","iopub.status.idle":"2024-12-31T23:21:09.268598Z","shell.execute_reply.started":"2024-12-31T23:21:08.293957Z","shell.execute_reply":"2024-12-31T23:21:09.267678Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned = train_df_cleaned.dropna(subset=['Vehicle Age','Insurance Duration'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:21:20.24767Z","iopub.execute_input":"2024-12-31T23:21:20.248015Z","iopub.status.idle":"2024-12-31T23:21:20.458181Z","shell.execute_reply.started":"2024-12-31T23:21:20.247991Z","shell.execute_reply":"2024-12-31T23:21:20.457301Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print('\\nchecking missing values for cleaned train df')\ncheck_missing(train_df_cleaned)\nprint('\\nchecking missing values for cleaned test df')\ncheck_missing(test_df_cleaned)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:21:27.299248Z","iopub.execute_input":"2024-12-31T23:21:27.299613Z","iopub.status.idle":"2024-12-31T23:21:28.237942Z","shell.execute_reply.started":"2024-12-31T23:21:27.299587Z","shell.execute_reply":"2024-12-31T23:21:28.236894Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:21:34.781518Z","iopub.execute_input":"2024-12-31T23:21:34.781887Z","iopub.status.idle":"2024-12-31T23:21:35.084717Z","shell.execute_reply.started":"2024-12-31T23:21:34.781857Z","shell.execute_reply":"2024-12-31T23:21:35.0835Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:21:45.600348Z","iopub.execute_input":"2024-12-31T23:21:45.600688Z","iopub.status.idle":"2024-12-31T23:21:45.903071Z","shell.execute_reply.started":"2024-12-31T23:21:45.600662Z","shell.execute_reply":"2024-12-31T23:21:45.902069Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.dtypes","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:22:14.663168Z","iopub.execute_input":"2024-12-31T23:22:14.663542Z","iopub.status.idle":"2024-12-31T23:22:14.671825Z","shell.execute_reply.started":"2024-12-31T23:22:14.663515Z","shell.execute_reply":"2024-12-31T23:22:14.670876Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.preprocessing import OneHotEncoder\nencoding_cols=['Customer Feedback','Occupation','Education Level','Marital Status',\n               'Property Type','Exercise Frequency','Smoking Status','Policy Type','Gender','Location']\n\nencoder = OneHotEncoder(sparse=False)\n\ntrain_encoded_array = encoder.fit_transform(train_df_cleaned[encoding_cols])\ntest_encoded_array = encoder.transform(test_df_cleaned[encoding_cols])\n\ntrain_encoded_df = pd.DataFrame(train_encoded_array, columns=encoder.get_feature_names_out(encoding_cols))\ntest_encoded_df = pd.DataFrame(test_encoded_array, columns=encoder.get_feature_names_out(encoding_cols))\n\ntrain_df_cleaned = pd.concat([train_df_cleaned.drop(columns=encoding_cols), train_encoded_df], axis=1)\ntest_df_cleaned = pd.concat([test_df_cleaned.drop(columns=encoding_cols), test_encoded_df], axis=1)\n\nprint(train_df_cleaned.columns)\nprint(test_df_cleaned.columns)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:22:23.974031Z","iopub.execute_input":"2024-12-31T23:22:23.974394Z","iopub.status.idle":"2024-12-31T23:22:29.30478Z","shell.execute_reply.started":"2024-12-31T23:22:23.974365Z","shell.execute_reply":"2024-12-31T23:22:29.303784Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.head(5)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:22:33.80961Z","iopub.execute_input":"2024-12-31T23:22:33.809977Z","iopub.status.idle":"2024-12-31T23:22:33.838762Z","shell.execute_reply.started":"2024-12-31T23:22:33.809946Z","shell.execute_reply":"2024-12-31T23:22:33.837551Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned.head(5)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:22:41.269008Z","iopub.execute_input":"2024-12-31T23:22:41.269421Z","iopub.status.idle":"2024-12-31T23:22:41.293997Z","shell.execute_reply.started":"2024-12-31T23:22:41.26939Z","shell.execute_reply":"2024-12-31T23:22:41.29288Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.dtypes","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:22:48.467806Z","iopub.execute_input":"2024-12-31T23:22:48.468184Z","iopub.status.idle":"2024-12-31T23:22:48.475611Z","shell.execute_reply.started":"2024-12-31T23:22:48.468152Z","shell.execute_reply":"2024-12-31T23:22:48.474633Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned = train_df_cleaned.dropna()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:22:58.657613Z","iopub.execute_input":"2024-12-31T23:22:58.657965Z","iopub.status.idle":"2024-12-31T23:22:58.932289Z","shell.execute_reply.started":"2024-12-31T23:22:58.657937Z","shell.execute_reply":"2024-12-31T23:22:58.9313Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:05.431519Z","iopub.execute_input":"2024-12-31T23:23:05.431845Z","iopub.status.idle":"2024-12-31T23:23:06.504673Z","shell.execute_reply.started":"2024-12-31T23:23:05.431819Z","shell.execute_reply":"2024-12-31T23:23:06.503565Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:12.049476Z","iopub.execute_input":"2024-12-31T23:23:12.04983Z","iopub.status.idle":"2024-12-31T23:23:13.28872Z","shell.execute_reply.started":"2024-12-31T23:23:12.049805Z","shell.execute_reply":"2024-12-31T23:23:13.287859Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned = test_df_cleaned","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:19.500237Z","iopub.execute_input":"2024-12-31T23:23:19.500618Z","iopub.status.idle":"2024-12-31T23:23:19.505154Z","shell.execute_reply.started":"2024-12-31T23:23:19.500591Z","shell.execute_reply":"2024-12-31T23:23:19.503785Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:25.690718Z","iopub.execute_input":"2024-12-31T23:23:25.691143Z","iopub.status.idle":"2024-12-31T23:23:26.954568Z","shell.execute_reply.started":"2024-12-31T23:23:25.69111Z","shell.execute_reply":"2024-12-31T23:23:26.953552Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned['Number of Dependents'] = train_df_cleaned['Number of Dependents'].astype('int32')\ntest_df_cleaned['Number of Dependents'] = test_df_cleaned['Number of Dependents'].astype('int32')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:32.808426Z","iopub.execute_input":"2024-12-31T23:23:32.808818Z","iopub.status.idle":"2024-12-31T23:23:32.819105Z","shell.execute_reply.started":"2024-12-31T23:23:32.808785Z","shell.execute_reply":"2024-12-31T23:23:32.817947Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned['Policy Start Date'] = train_df_cleaned['Policy Start Date'].astype('datetime64[ns]')\ntest_df_cleaned['Policy Start Date'] = test_df_cleaned['Policy Start Date'].astype('datetime64[ns]')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:39.565364Z","iopub.execute_input":"2024-12-31T23:23:39.565706Z","iopub.status.idle":"2024-12-31T23:23:40.098197Z","shell.execute_reply.started":"2024-12-31T23:23:39.565678Z","shell.execute_reply":"2024-12-31T23:23:40.096891Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned['Annual Income'] = train_df_cleaned['Annual Income'].astype('float64')\ntest_df_cleaned['Annual Income'] = test_df_cleaned['Annual Income'].astype('float64')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:45.71734Z","iopub.execute_input":"2024-12-31T23:23:45.717682Z","iopub.status.idle":"2024-12-31T23:23:45.775578Z","shell.execute_reply.started":"2024-12-31T23:23:45.717657Z","shell.execute_reply":"2024-12-31T23:23:45.774653Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned['Health Score'] = train_df_cleaned['Health Score'].astype('float64')\ntest_df_cleaned['Health Score'] = test_df_cleaned['Health Score'].astype('float64')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:52.921681Z","iopub.execute_input":"2024-12-31T23:23:52.922119Z","iopub.status.idle":"2024-12-31T23:23:52.974032Z","shell.execute_reply.started":"2024-12-31T23:23:52.922066Z","shell.execute_reply":"2024-12-31T23:23:52.972907Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.dtypes","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:23:59.818831Z","iopub.execute_input":"2024-12-31T23:23:59.819241Z","iopub.status.idle":"2024-12-31T23:23:59.827228Z","shell.execute_reply.started":"2024-12-31T23:23:59.819209Z","shell.execute_reply":"2024-12-31T23:23:59.826171Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned.dtypes","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:24:07.062829Z","iopub.execute_input":"2024-12-31T23:24:07.063258Z","iopub.status.idle":"2024-12-31T23:24:07.071153Z","shell.execute_reply.started":"2024-12-31T23:24:07.063219Z","shell.execute_reply":"2024-12-31T23:24:07.070036Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned = train_df_cleaned.drop(columns=['Policy Start Date'])\ntest_df_cleaned = test_df_cleaned.drop(columns=['Policy Start Date'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:24:16.958274Z","iopub.execute_input":"2024-12-31T23:24:16.958683Z","iopub.status.idle":"2024-12-31T23:24:17.112039Z","shell.execute_reply.started":"2024-12-31T23:24:16.958653Z","shell.execute_reply":"2024-12-31T23:24:17.111271Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:24:24.773416Z","iopub.execute_input":"2024-12-31T23:24:24.773824Z","iopub.status.idle":"2024-12-31T23:24:24.780493Z","shell.execute_reply.started":"2024-12-31T23:24:24.773794Z","shell.execute_reply":"2024-12-31T23:24:24.779462Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.stats import yeojohnson\nfrom sklearn.model_selection import KFold, train_test_split, cross_val_score\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.metrics import mean_squared_log_error, make_scorer\nfrom sklearn.ensemble import GradientBoostingRegressor\nfrom sklearn.svm import SVR\nimport xgboost as xgb\nimport lightgbm as lgb\nimport catboost as cb\n\nskewed_cols=['Annual Income','Health Score','Premium Amount']\nX = train_df_cleaned.drop(columns=['Premium Amount'])\ny = train_df_cleaned['Premium Amount']\n\nskewed_cols = ['Annual Income', 'Health Score', 'Premium Amount']\n\nmodels = {\n    'Gradient Boosting Regressor': GradientBoostingRegressor(),\n    'XGBoost': xgb.XGBRegressor(),\n    'LightGBM': lgb.LGBMRegressor(),\n    'CatBoost': cb.CatBoostRegressor(learning_rate=0.1, depth=6, iterations=100, verbose=0)\n}\n\nkf = KFold(n_splits=3, shuffle=True, random_state=42)\n\nresults = {}\n\nfor name, model in models.items():\n    scores = cross_val_score(model, X, y, cv=kf, scoring=make_scorer(mean_squared_log_error, greater_is_better=False), n_jobs=-1)\n    results[name] = scores\n    print(f\"{name}: Mean MSE = {-np.mean(scores):.4f}, Std = {np.std(scores):.4f}\")\n    print(scores)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:24:32.57749Z","iopub.execute_input":"2024-12-31T23:24:32.577833Z","iopub.status.idle":"2024-12-31T23:28:30.112988Z","shell.execute_reply.started":"2024-12-31T23:24:32.577806Z","shell.execute_reply":"2024-12-31T23:28:30.111843Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def apply_yeojohnson_transformations(df, skewed_cols, lambda_dict=None, calculate_lambda=True):\n    if lambda_dict is None:\n        lambda_dict = {}\n\n    for col in skewed_cols:\n        if col in df.columns:\n            print(f\"Initial Skewness of {col}: {df[col].skew()}\")\n\n            if calculate_lambda:\n                df[col], yeojohnson_lambda = yeojohnson(df[col])\n                lambda_dict[col] = yeojohnson_lambda\n            else:\n                df[col] = yeojohnson(df[col], lmbda=lambda_dict[col])\n\n            print(f\"After Yeo-Johnson transformation for {col}: Skewness = {df[col].skew()}\")\n\n    return df, lambda_dict\n\ndef yeojohnson_inverse(y_transformed, lmbda):\n    y_original = np.zeros_like(y_transformed)\n\n    pos_idx = y_transformed >= 0\n    if lmbda == 0:\n        y_original[pos_idx] = np.exp(y_transformed[pos_idx]) - 1\n    else:\n        y_original[pos_idx] = (y_transformed[pos_idx] * lmbda + 1)**(1 / lmbda) - 1\n    \n    neg_idx = ~pos_idx\n    if lmbda == 2:\n        y_original[neg_idx] = 1 - np.exp(-y_transformed[neg_idx])\n    else:\n        y_original[neg_idx] = 1 - ((-y_transformed[neg_idx] * (2 - lmbda) + 1)**(1 / (2 - lmbda)))\n    \n    return y_original\n\ndef inverse_yeojohnson_transformations(predictions, skewed_cols, lambda_dict):\n    for col in skewed_cols:\n        if col in lambda_dict:\n            predictions[col] = yeojohnson_inverse(predictions[col].values, lambda_dict[col])\n    return predictions\n\ndef plot_hist(df, col):\n    plt.hist(df[col], bins=10, color='blue', edgecolor='black', alpha=0.7)\n    plt.title(f'Distribution of {col}')\n    plt.xlabel('Value')\n    plt.ylabel('Frequency')\n    plt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:28:30.114519Z","iopub.execute_input":"2024-12-31T23:28:30.115745Z","iopub.status.idle":"2024-12-31T23:28:30.126126Z","shell.execute_reply.started":"2024-12-31T23:28:30.115716Z","shell.execute_reply":"2024-12-31T23:28:30.125155Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)\n\nlambda_dict = {}\nprint('Applying Yeo-Johnson transformations to train set:')\nX_train_transformed, lambda_dict = apply_yeojohnson_transformations(X_train.copy(), skewed_cols, lambda_dict=lambda_dict, calculate_lambda=True)\nprint('Applying Yeo-Johnson transformations to validation set:')\nX_val_transformed, _ = apply_yeojohnson_transformations(X_val.copy(), skewed_cols, lambda_dict=lambda_dict, calculate_lambda=False)\n\nbest_model = lgb.LGBMRegressor(random_state=42)\nbest_model.fit(X_train_transformed, y_train)\n\ny_val_pred = best_model.predict(X_val_transformed)\nval_mse = mean_squared_log_error(y_val, y_val_pred)\nprint(f\"Validation MSE for the best model: {val_mse:.4f}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:29:06.415861Z","iopub.execute_input":"2024-12-31T23:29:06.41624Z","iopub.status.idle":"2024-12-31T23:29:11.601708Z","shell.execute_reply.started":"2024-12-31T23:29:06.416209Z","shell.execute_reply":"2024-12-31T23:29:11.60032Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\ntransformed_results = {}\n\nprint(\"\\nPerforming cross-validation on transformed features:\")\nfor name, model in models.items():\n    scores = cross_val_score(\n        model,\n        X_train_transformed,  \n        y_train,\n        cv=kf,\n        scoring=make_scorer(mean_squared_log_error, greater_is_better=False)\n    )\n    transformed_results[name] = scores\n    print(f\"{name}: Mean MSE = {-np.mean(scores):.4f}, Std = {np.std(scores):.4f}\")\n\nprint(\"\\nComparison of Cross-Validation Results:\")\nprint(f\"{'Model':<20}{'Before Transformations':<30}{'After Transformations':<30}\")\nfor name in models.keys():\n    before_mean_mse = -np.mean(results[name])\n    after_mean_mse = -np.mean(transformed_results[name])\n    print(f\"{name:<20}{before_mean_mse:<30.4f}{after_mean_mse:<30.4f}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:29:27.634932Z","iopub.execute_input":"2024-12-31T23:29:27.635352Z","iopub.status.idle":"2024-12-31T23:35:32.009799Z","shell.execute_reply.started":"2024-12-31T23:29:27.63532Z","shell.execute_reply":"2024-12-31T23:35:32.008561Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned['Annual Income'].describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:35:32.011389Z","iopub.execute_input":"2024-12-31T23:35:32.011701Z","iopub.status.idle":"2024-12-31T23:35:32.044251Z","shell.execute_reply.started":"2024-12-31T23:35:32.011674Z","shell.execute_reply":"2024-12-31T23:35:32.04333Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.stats import boxcox, yeojohnson\nfrom scipy.stats import shapiro\nimport pandas as pd\n\nlambda_dict = {}\n\n\ndef plot_hist(df, col):\n    plt.hist(df[col], bins=10, color='blue', edgecolor='black', alpha=0.7)\n    plt.title(f'Distribution of {col}')\n    plt.xlabel('Value')\n    plt.ylabel('Frequency')\n    plt.show()\n\ndef apply_transformations(df, skewed_cols, lambda_dict=None, calculate_lambda=True):\n    if lambda_dict is None:\n        lambda_dict = {}\n\n    for col in skewed_cols:\n        if col in df.columns:\n            transformations = {}\n            print(f\"Initial Skewness of {col}: {df[col].skew()}\")\n\n            df[f'{col}_sqrt'] = np.sqrt(df[col])\n            transformations[f'{col}_sqrt'] = df[f'{col}_sqrt'].skew()\n\n            df[f'{col}_cbrt'] = np.cbrt(df[col])\n            transformations[f'{col}_cbrt'] = df[f'{col}_cbrt'].skew()\n\n            df[f'{col}_log'] = np.log1p(df[col])\n            transformations[f'{col}_log'] = df[f'{col}_log'].skew()\n\n            if (df[col] > 0).all():\n                if calculate_lambda:\n                    df[f'{col}_boxcox'], boxcox_lambda = boxcox(df[col] + 1e-6)\n                    lambda_dict[f'{col}_boxcox'] = boxcox_lambda\n                else:\n                    df[f'{col}_boxcox'] = boxcox(df[col] + 1e-6, lmbda=lambda_dict[f'{col}_boxcox'])\n                transformations[f'{col}_boxcox'] = pd.Series(df[f'{col}_boxcox']).skew()\n\n            if calculate_lambda:\n                df[f'{col}_yeojohnson'], yeojohnson_lambda = yeojohnson(df[col])\n                lambda_dict[f'{col}_yeojohnson'] = yeojohnson_lambda\n            else:\n                df[f'{col}_yeojohnson'] = yeojohnson(df[col], lmbda=lambda_dict[f'{col}_yeojohnson'])\n            transformations[f'{col}_yeojohnson'] = pd.Series(df[f'{col}_yeojohnson']).skew()\n\n            print(f\"After transformations for {col}:\")\n            for key, value in transformations.items():\n                print(f\"{key}: Skewness = {value}\")\n                plot_hist(df, key)\n\n    return df, lambda_dict\n\nprint('Applying transformations to train set:')\ntrain_df_cleaned, lambda_dict = apply_transformations(\n    train_df_cleaned, skewed_cols, lambda_dict=lambda_dict, calculate_lambda=True\n)\n\nprint('Applying transformations to test set:')\ntest_df_cleaned, _ = apply_transformations(\n    test_df_cleaned, skewed_cols, lambda_dict=lambda_dict, calculate_lambda=False\n)\n\nprint(\"Tracked Lambda Values:\")\nfor key, value in lambda_dict.items():\n    print(f\"{key}: lambda = {value}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:35:32.046098Z","iopub.execute_input":"2024-12-31T23:35:32.046357Z","iopub.status.idle":"2024-12-31T23:35:50.572128Z","shell.execute_reply.started":"2024-12-31T23:35:32.046335Z","shell.execute_reply":"2024-12-31T23:35:50.571113Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned = train_df_cleaned.drop(columns=['Annual Income_sqrt', 'Annual Income_cbrt', 'Annual Income_log','Annual Income_boxcox', 'Health Score_sqrt',\n                              'Health Score_cbrt', 'Health Score_log', 'Health Score_boxcox', 'Premium Amount_sqrt', 'Premium Amount_cbrt',\n                              'Premium Amount_log', 'Premium Amount_boxcox','Annual Income','Health Score', 'Premium Amount'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:35:50.573343Z","iopub.execute_input":"2024-12-31T23:35:50.573644Z","iopub.status.idle":"2024-12-31T23:35:50.652016Z","shell.execute_reply.started":"2024-12-31T23:35:50.573606Z","shell.execute_reply":"2024-12-31T23:35:50.651089Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned = test_df_cleaned.drop(columns=['Annual Income_sqrt', 'Annual Income_cbrt', 'Annual Income_log','Annual Income_boxcox', 'Health Score_sqrt',\n                              'Health Score_cbrt', 'Health Score_log', 'Health Score_boxcox','Annual Income','Health Score'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:35:50.652902Z","iopub.execute_input":"2024-12-31T23:35:50.653188Z","iopub.status.idle":"2024-12-31T23:35:50.745949Z","shell.execute_reply.started":"2024-12-31T23:35:50.653162Z","shell.execute_reply":"2024-12-31T23:35:50.744976Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(train_df_cleaned.columns)\nprint(test_df_cleaned.columns)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:35:50.746904Z","iopub.execute_input":"2024-12-31T23:35:50.747267Z","iopub.status.idle":"2024-12-31T23:35:50.753376Z","shell.execute_reply.started":"2024-12-31T23:35:50.747237Z","shell.execute_reply":"2024-12-31T23:35:50.752482Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import seaborn as sns\nimport matplotlib.pyplot as plt\n\ndef plot_correlation_matrix(df, figsize=(10, 8), save_plot=False, filename=\"correlation_matrix.png\"):\n\n    correlation_matrix = df.corr()\n\n    plt.figure(figsize=figsize)\n    sns.heatmap(\n        correlation_matrix,\n        annot=True,\n        fmt=\".2f\",\n        cmap=\"coolwarm\",\n        cbar=True,\n        square=True,\n        linewidths=0.5,\n        annot_kws={\"size\": 8}\n    )\n    plt.title(\"Feature Correlation Matrix\", fontsize=16)\n    plt.xticks(rotation=45, ha='right')\n    plt.yticks(rotation=0)\n\n    if save_plot:\n        plt.savefig(filename, bbox_inches=\"tight\")\n        print(f\"Correlation matrix saved as {filename}\")\n    else:\n        plt.show()\n\nprint(\"Correlation Matrix for Train DataFrame\")\nplot_correlation_matrix(train_df_cleaned, figsize=(12, 10))\n\nprint(\"Correlation Matrix for Test DataFrame\")\nplot_correlation_matrix(test_df_cleaned, figsize=(12, 10), save_plot=True, filename=\"test_correlation_matrix.png\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:35:50.754322Z","iopub.execute_input":"2024-12-31T23:35:50.754643Z","iopub.status.idle":"2024-12-31T23:36:07.689784Z","shell.execute_reply.started":"2024-12-31T23:35:50.754605Z","shell.execute_reply":"2024-12-31T23:36:07.688491Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:07.693275Z","iopub.execute_input":"2024-12-31T23:36:07.694019Z","iopub.status.idle":"2024-12-31T23:36:07.70174Z","shell.execute_reply.started":"2024-12-31T23:36:07.693978Z","shell.execute_reply":"2024-12-31T23:36:07.700708Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pip install tqdm","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:07.703487Z","iopub.execute_input":"2024-12-31T23:36:07.703766Z","iopub.status.idle":"2024-12-31T23:36:13.089312Z","shell.execute_reply.started":"2024-12-31T23:36:07.703739Z","shell.execute_reply":"2024-12-31T23:36:13.08814Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.ensemble import GradientBoostingRegressor\nfrom sklearn.svm import SVR\nimport xgboost as xgb\nimport lightgbm as lgb\nimport catboost as cb\nfrom tqdm import tqdm\ndef apply_advanced_regression_models(train_df, test_df, target_col, features):\n    X_train = train_df[features]\n    y_train = train_df[target_col]\n    X_test = test_df[features]\n    \n    models = {\n        'LightGBM': lgb.LGBMRegressor()\n    }\n\n    predictions = {}\n    results = {}\n\n    for model_name, model in tqdm(models.items(), desc=\"Training Models\", total=len(models)):\n        print(f\"\\nTraining {model_name}...\")\n\n\n        model.fit(X_train, y_train)\n        y_pred = model.predict(X_test)\n\n        predictions[model_name] = y_pred\n\n        if target_col in test_df.columns:\n            y_test = test_df[target_col]\n            mae = mean_absolute_error(y_test, y_pred)\n            mse = mean_squared_error(y_test, y_pred)\n            rmse = np.sqrt(mse)\n            r2 = r2_score(y_test, y_pred)\n\n            results[model_name] = {\n                'MAE': mae,\n                'MSE': mse,\n                'RMSE': rmse,\n                'R2 Score': r2\n            }\n\n            print(f\"{model_name} Results:\")\n            print(f\"MAE: {mae:.4f}\")\n            print(f\"MSE: {mse:.4f}\")\n            print(f\"RMSE: {rmse:.4f}\")\n            print(f\"R2 Score: {r2:.4f}\")\n\n    if target_col not in test_df.columns:\n        predictions_df = pd.DataFrame(predictions)\n        print(\"\\nPredictions for Test Data:\")\n        print(predictions_df.head())\n        return predictions_df\n    else:\n        if results:\n            results_df = pd.DataFrame(results).T\n            return results_df\n        else:\n            return None\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:13.090892Z","iopub.execute_input":"2024-12-31T23:36:13.091199Z","iopub.status.idle":"2024-12-31T23:36:13.109595Z","shell.execute_reply.started":"2024-12-31T23:36:13.091172Z","shell.execute_reply":"2024-12-31T23:36:13.108551Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\ntarget_col = 'Premium Amount_yeojohnson' \nfeatures = [col for col in train_df_cleaned.columns if col != target_col]\n\npredictions_df = apply_advanced_regression_models(train_df_cleaned, test_df_cleaned, target_col, features)\n\nif predictions_df is not None:\n    print(\"\\nPredictions for Test Data:\")\n    print(predictions_df)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:13.110715Z","iopub.execute_input":"2024-12-31T23:36:13.110981Z","iopub.status.idle":"2024-12-31T23:36:18.853907Z","shell.execute_reply.started":"2024-12-31T23:36:13.110957Z","shell.execute_reply":"2024-12-31T23:36:18.852829Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df_cleaned['Premium Amount_yeojohnson'].describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:18.854992Z","iopub.execute_input":"2024-12-31T23:36:18.855327Z","iopub.status.idle":"2024-12-31T23:36:18.888113Z","shell.execute_reply.started":"2024-12-31T23:36:18.8553Z","shell.execute_reply":"2024-12-31T23:36:18.886969Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:18.889259Z","iopub.execute_input":"2024-12-31T23:36:18.889544Z","iopub.status.idle":"2024-12-31T23:36:18.9379Z","shell.execute_reply.started":"2024-12-31T23:36:18.889513Z","shell.execute_reply":"2024-12-31T23:36:18.936826Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df['Premium Amount'].describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:18.939073Z","iopub.execute_input":"2024-12-31T23:36:18.939457Z","iopub.status.idle":"2024-12-31T23:36:18.999776Z","shell.execute_reply.started":"2024-12-31T23:36:18.939415Z","shell.execute_reply":"2024-12-31T23:36:18.998652Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:19.000883Z","iopub.execute_input":"2024-12-31T23:36:19.001272Z","iopub.status.idle":"2024-12-31T23:36:19.046708Z","shell.execute_reply.started":"2024-12-31T23:36:19.001236Z","shell.execute_reply":"2024-12-31T23:36:19.045765Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import numpy as np\n\ndef yeojohnson_inverse(y_transformed, lmbda):\n    y_original = np.zeros_like(y_transformed)\n    \n\n    pos_idx = y_transformed >= 0\n    if lmbda == 0:\n        y_original[pos_idx] = np.exp(y_transformed[pos_idx]) - 1\n    else:\n        y_original[pos_idx] = (y_transformed[pos_idx] * lmbda + 1)**(1 / lmbda) - 1\n    \n    neg_idx = ~pos_idx\n    if lmbda == 2:\n        y_original[neg_idx] = 1 - np.exp(-y_transformed[neg_idx])\n    else:\n        y_original[neg_idx] = 1 - ((-y_transformed[neg_idx] * (2 - lmbda) + 1)**(1 / (2 - lmbda)))\n    \n    return y_original\n\ndef inverse_transform_premium_amount(predictions, lambda_value):\n    for model in predictions.columns:\n        predictions[model] = yeojohnson_inverse(predictions[model].values, lambda_value)\n    return predictions\n\n\nlambda_value = lambda_dict[\"Premium Amount_yeojohnson\"] \n\npredictions = inverse_transform_premium_amount(predictions_df, lambda_value)\n\nprint(predictions.head())\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:19.047656Z","iopub.execute_input":"2024-12-31T23:36:19.047983Z","iopub.status.idle":"2024-12-31T23:36:19.086416Z","shell.execute_reply.started":"2024-12-31T23:36:19.047957Z","shell.execute_reply":"2024-12-31T23:36:19.085289Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df['Premium Amount'].describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:19.087536Z","iopub.execute_input":"2024-12-31T23:36:19.087926Z","iopub.status.idle":"2024-12-31T23:36:19.147158Z","shell.execute_reply.started":"2024-12-31T23:36:19.08789Z","shell.execute_reply":"2024-12-31T23:36:19.146264Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:19.14794Z","iopub.execute_input":"2024-12-31T23:36:19.148214Z","iopub.status.idle":"2024-12-31T23:36:19.193585Z","shell.execute_reply.started":"2024-12-31T23:36:19.148192Z","shell.execute_reply":"2024-12-31T23:36:19.192469Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:19.194695Z","iopub.execute_input":"2024-12-31T23:36:19.195085Z","iopub.status.idle":"2024-12-31T23:36:19.488443Z","shell.execute_reply.started":"2024-12-31T23:36:19.195028Z","shell.execute_reply":"2024-12-31T23:36:19.487527Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df_cleaned.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:19.489409Z","iopub.execute_input":"2024-12-31T23:36:19.48977Z","iopub.status.idle":"2024-12-31T23:36:20.808599Z","shell.execute_reply.started":"2024-12-31T23:36:19.489736Z","shell.execute_reply":"2024-12-31T23:36:20.80776Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:20.80972Z","iopub.execute_input":"2024-12-31T23:36:20.809997Z","iopub.status.idle":"2024-12-31T23:36:20.815457Z","shell.execute_reply.started":"2024-12-31T23:36:20.809956Z","shell.execute_reply":"2024-12-31T23:36:20.814789Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df['id'] = test_df['id']\npredictions_df.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:20.816631Z","iopub.execute_input":"2024-12-31T23:36:20.817003Z","iopub.status.idle":"2024-12-31T23:36:20.834937Z","shell.execute_reply.started":"2024-12-31T23:36:20.816968Z","shell.execute_reply":"2024-12-31T23:36:20.833955Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df = predictions_df.rename(columns={'LightGBM': 'Premium Amount'})","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:20.838261Z","iopub.execute_input":"2024-12-31T23:36:20.838544Z","iopub.status.idle":"2024-12-31T23:36:20.846222Z","shell.execute_reply.started":"2024-12-31T23:36:20.838521Z","shell.execute_reply":"2024-12-31T23:36:20.845295Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:20.847458Z","iopub.execute_input":"2024-12-31T23:36:20.847767Z","iopub.status.idle":"2024-12-31T23:36:20.911568Z","shell.execute_reply.started":"2024-12-31T23:36:20.847735Z","shell.execute_reply":"2024-12-31T23:36:20.910547Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df = predictions_df.reindex(columns=['id', 'Premium Amount'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:20.912654Z","iopub.execute_input":"2024-12-31T23:36:20.912961Z","iopub.status.idle":"2024-12-31T23:36:20.922611Z","shell.execute_reply.started":"2024-12-31T23:36:20.912934Z","shell.execute_reply":"2024-12-31T23:36:20.921555Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"predictions_df.to_csv('submission.csv', index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-31T23:36:20.92375Z","iopub.execute_input":"2024-12-31T23:36:20.923999Z","iopub.status.idle":"2024-12-31T23:36:22.631349Z","shell.execute_reply.started":"2024-12-31T23:36:20.923978Z","shell.execute_reply":"2024-12-31T23:36:22.630551Z"}},"outputs":[],"execution_count":null}]}