{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.11","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":96164,"databundleVersionId":11418275,"sourceType":"competition"}],"dockerImageVersionId":31040,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"### Import Libararies","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.model_selection import train_test_split\nimport optuna\nfrom sklearn.preprocessing import StandardScaler\nfrom xgboost import XGBRegressor\nfrom scipy.stats import pearsonr\nimport xgboost as xgb","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:52:51.549869Z","iopub.execute_input":"2025-06-30T07:52:51.550182Z","iopub.status.idle":"2025-06-30T07:52:56.347309Z","shell.execute_reply.started":"2025-06-30T07:52:51.550154Z","shell.execute_reply":"2025-06-30T07:52:56.346320Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Loading Data","metadata":{}},{"cell_type":"code","source":"train_df = pd.read_parquet(\"/kaggle/input/drw-crypto-market-prediction/train.parquet\")\ntest_df = pd.read_parquet(\"/kaggle/input/drw-crypto-market-prediction/test.parquet\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:52:57.528273Z","iopub.execute_input":"2025-06-30T07:52:57.528580Z","iopub.status.idle":"2025-06-30T07:54:05.700629Z","shell.execute_reply.started":"2025-06-30T07:52:57.528555Z","shell.execute_reply":"2025-06-30T07:54:05.699197Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### EDA","metadata":{}},{"cell_type":"code","source":"train_df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:05.703371Z","iopub.execute_input":"2025-06-30T07:54:05.703780Z","iopub.status.idle":"2025-06-30T07:54:05.762912Z","shell.execute_reply.started":"2025-06-30T07:54:05.703748Z","shell.execute_reply":"2025-06-30T07:54:05.762063Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:05.764185Z","iopub.execute_input":"2025-06-30T07:54:05.764535Z","iopub.status.idle":"2025-06-30T07:54:05.786746Z","shell.execute_reply.started":"2025-06-30T07:54:05.764504Z","shell.execute_reply":"2025-06-30T07:54:05.785807Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(list(train_df.columns))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:05.788887Z","iopub.execute_input":"2025-06-30T07:54:05.789244Z","iopub.status.idle":"2025-06-30T07:54:05.808423Z","shell.execute_reply.started":"2025-06-30T07:54:05.789221Z","shell.execute_reply":"2025-06-30T07:54:05.807229Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_df.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:05.809512Z","iopub.execute_input":"2025-06-30T07:54:05.809835Z","iopub.status.idle":"2025-06-30T07:54:05.832785Z","shell.execute_reply.started":"2025-06-30T07:54:05.809809Z","shell.execute_reply":"2025-06-30T07:54:05.831752Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Summary Statistics\ntrain_df[\"label\"].describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:16.858802Z","iopub.execute_input":"2025-06-30T07:54:16.859487Z","iopub.status.idle":"2025-06-30T07:54:16.887765Z","shell.execute_reply.started":"2025-06-30T07:54:16.859459Z","shell.execute_reply":"2025-06-30T07:54:16.887008Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Check Null Values\ntrain_df.isnull().sum().sum()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:17.912354Z","iopub.execute_input":"2025-06-30T07:54:17.913055Z","iopub.status.idle":"2025-06-30T07:54:21.618624Z","shell.execute_reply.started":"2025-06-30T07:54:17.913024Z","shell.execute_reply":"2025-06-30T07:54:21.617829Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Check for problematic values","metadata":{}},{"cell_type":"code","source":"# Check if inf or inf is exist\nprint(\"Any Infs?\", np.isinf(train_df.to_numpy()).sum(), np.isinf(test_df.to_numpy()).sum())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:21.811771Z","iopub.execute_input":"2025-06-30T07:54:21.812166Z","iopub.status.idle":"2025-06-30T07:54:25.914508Z","shell.execute_reply.started":"2025-06-30T07:54:21.812143Z","shell.execute_reply":"2025-06-30T07:54:25.913693Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"count_inf = pd.DataFrame({\n    \"train_inf\": np.isinf(train_df).sum(),\n    \"test_inf\" : np.isinf(test_df).sum()\n})","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:32.750620Z","iopub.execute_input":"2025-06-30T07:54:32.751004Z","iopub.status.idle":"2025-06-30T07:54:36.833305Z","shell.execute_reply.started":"2025-06-30T07:54:32.750958Z","shell.execute_reply":"2025-06-30T07:54:36.832465Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"count_inf = count_inf[(count_inf[\"train_inf\"] > 0) | (count_inf[\"test_inf\"] > 0)]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:42.729644Z","iopub.execute_input":"2025-06-30T07:54:42.729956Z","iopub.status.idle":"2025-06-30T07:54:42.739007Z","shell.execute_reply.started":"2025-06-30T07:54:42.729932Z","shell.execute_reply":"2025-06-30T07:54:42.738123Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(\"Columns That contain Inf Values..... \")\nprint(f\"There are ==> {len(count_inf)} Columns Contain inf value\")\ncount_inf","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:44.474471Z","iopub.execute_input":"2025-06-30T07:54:44.475408Z","iopub.status.idle":"2025-06-30T07:54:44.485312Z","shell.execute_reply.started":"2025-06-30T07:54:44.475370Z","shell.execute_reply":"2025-06-30T07:54:44.484431Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Preprocessing","metadata":{}},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Drop unimportant Woman\n\nX = train_df.drop(columns= [\"label\"] + list(count_inf.index))\ny = train_df[\"label\"]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:47.446164Z","iopub.execute_input":"2025-06-30T07:54:47.446468Z","iopub.status.idle":"2025-06-30T07:54:49.321507Z","shell.execute_reply.started":"2025-06-30T07:54:47.446448Z","shell.execute_reply":"2025-06-30T07:54:49.320487Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_test = test_df.drop(columns= [\"label\"] + list(count_inf.index) )","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:49.809278Z","iopub.execute_input":"2025-06-30T07:54:49.810070Z","iopub.status.idle":"2025-06-30T07:54:54.267142Z","shell.execute_reply.started":"2025-06-30T07:54:49.810002Z","shell.execute_reply":"2025-06-30T07:54:54.266042Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"scaler = StandardScaler()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:54:56.662876Z","iopub.execute_input":"2025-06-30T07:54:56.663522Z","iopub.status.idle":"2025-06-30T07:54:56.667399Z","shell.execute_reply.started":"2025-06-30T07:54:56.663496Z","shell.execute_reply":"2025-06-30T07:54:56.666445Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"for col in X.columns:\n    X[col] = scaler.fit_transform(X[[col]])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:55:01.551796Z","iopub.execute_input":"2025-06-30T07:55:01.552597Z","iopub.status.idle":"2025-06-30T07:55:20.590834Z","shell.execute_reply.started":"2025-06-30T07:55:01.552568Z","shell.execute_reply":"2025-06-30T07:55:20.589239Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:55:20.592091Z","iopub.execute_input":"2025-06-30T07:55:20.592346Z","iopub.status.idle":"2025-06-30T07:55:20.922466Z","shell.execute_reply.started":"2025-06-30T07:55:20.592327Z","shell.execute_reply":"2025-06-30T07:55:20.921606Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"params = {\n    \"tree_method\": \"hist\",\n    \"device\": \"gpu\",\n    \"colsample_bylevel\": 0.4778,\n    \"colsample_bynode\": 0.3628,\n    \"colsample_bytree\": 0.7107,\n    \"gamma\": 1.7095,\n    \"learning_rate\": 0.02213,\n    \"max_depth\": 20,\n    \"max_leaves\": 12,\n    \"min_child_weight\": 16,\n    \"n_estimators\": 1667,\n    \"subsample\": 0.06567,\n    \"reg_alpha\": 39.3524,\n    \"reg_lambda\": 75.4484,\n    \"verbosity\": 0,\n    \"random_state\": 42,\n    \"n_jobs\": -1,\n    \"verbose\": False,\n    'subsample': 0.8, \n    'single_precision_histogram': True\n}","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T22:02:30.311881Z","iopub.execute_input":"2025-06-29T22:02:30.312211Z","iopub.status.idle":"2025-06-29T22:02:30.317869Z","shell.execute_reply.started":"2025-06-29T22:02:30.312187Z","shell.execute_reply":"2025-06-29T22:02:30.316985Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### Split Data","metadata":{}},{"cell_type":"code","source":"X_train, x_test, y_train, y_test = train_test_split(X,y, test_size=0.2, random_state=42)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:55:25.432613Z","iopub.execute_input":"2025-06-30T07:55:25.432956Z","iopub.status.idle":"2025-06-30T07:55:35.860109Z","shell.execute_reply.started":"2025-06-30T07:55:25.432930Z","shell.execute_reply":"2025-06-30T07:55:35.859022Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### Batch Training with Warm Start","metadata":{}},{"cell_type":"code","source":"batch_size = 20000  # Adjust based on your RAM (50k works for 16GB RAM)\nnum_rounds_per_batch = 10  # Trees added per batch\nmodel = None","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:52:37.817506Z","iopub.execute_input":"2025-06-29T11:52:37.817887Z","iopub.status.idle":"2025-06-29T11:52:37.822537Z","shell.execute_reply.started":"2025-06-29T11:52:37.817853Z","shell.execute_reply":"2025-06-29T11:52:37.821348Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import gc\n\nfor i in range(0, len(X_train), batch_size):\n    # Load data batch\n    X_batch = X_train[i:i+batch_size].astype(np.float32)\n    y_batch = y_train[i:i+batch_size].astype(np.float32)\n    \n    # Explicit garbage collection\n    gc.collect()\n    \n    # Train with warm start\n    dmatrix = xgb.DMatrix(X_batch, y_batch)\n    model = xgb.train(\n        params,\n        dtrain=dmatrix,\n        num_boost_round=num_rounds_per_batch,\n        xgb_model=model,  # Warm start magic here\n        verbose_eval=False\n    )\n    \n    # Memory cleanup\n    del X_batch, y_batch, dmatrix\n    gc.collect()\n    \n    print(f\"Processed {min(i+batch_size, len(X_train))}/{len(X_train)} rows\")\n\n# 3. Memory-Safe Prediction\ndef predict_in_batches(model, X, batch_size=50000):\n    predictions = []\n    for i in range(0, len(X), batch_size):\n        X_batch = X[i:i+batch_size].astype(np.float32)\n        dmatrix = xgb.DMatrix(X_batch)\n        batch_preds = model.predict(dmatrix)\n        predictions.append(batch_preds)\n        \n        # Cleanup\n        del X_batch, dmatrix\n        gc.collect()\n        \n    return np.concatenate(predictions)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:52:39.088729Z","iopub.execute_input":"2025-06-29T11:52:39.089100Z","iopub.status.idle":"2025-06-29T11:52:53.817755Z","shell.execute_reply.started":"2025-06-29T11:52:39.089071Z","shell.execute_reply":"2025-06-29T11:52:53.816763Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import shap\n\n# Sample 10,000 rows\nsample_idx = np.random.choice(len(X_train), 10000, replace=False)\nX_sample = X_train.iloc[sample_idx]\n\n# Compute SHAP values\nexplainer = shap.TreeExplainer(model)\nshap_values = explainer.shap_values(X_sample)\n\n# SHAP summary plot\nshap.summary_plot(shap_values, X_sample, max_display=30)\n\n# Top features by mean absolute SHAP value\nshap_df = pd.DataFrame({\n    'feature': X_train.columns,\n    'mean_abs_shap': np.abs(shap_values).mean(axis=0)\n}).sort_values('mean_abs_shap', ascending=False)\n\ntop_shap_features = shap_df.head(100)['feature'].values\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:50:16.587322Z","iopub.execute_input":"2025-06-29T11:50:16.587679Z","iopub.status.idle":"2025-06-29T11:50:22.639342Z","shell.execute_reply.started":"2025-06-29T11:50:16.587652Z","shell.execute_reply":"2025-06-29T11:50:22.638239Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"top_shap_features","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:50:26.309881Z","iopub.execute_input":"2025-06-29T11:50:26.310255Z","iopub.status.idle":"2025-06-29T11:50:26.316533Z","shell.execute_reply.started":"2025-06-29T11:50:26.310229Z","shell.execute_reply":"2025-06-29T11:50:26.315578Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_train = X_train[top_shap_features]\n\nX_train.shape[1]\n\n# X_train = X_train.loc[:, (X_train != 0).any(axis=0)]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:51:28.575286Z","iopub.execute_input":"2025-06-29T11:51:28.575626Z","iopub.status.idle":"2025-06-29T11:51:28.729313Z","shell.execute_reply.started":"2025-06-29T11:51:28.575602Z","shell.execute_reply":"2025-06-29T11:51:28.728320Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"x_test = x_test[top_shap_features]\n\nx_test.shape[1]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:53:17.215392Z","iopub.execute_input":"2025-06-29T11:53:17.215740Z","iopub.status.idle":"2025-06-29T11:53:17.267136Z","shell.execute_reply.started":"2025-06-29T11:53:17.215716Z","shell.execute_reply":"2025-06-29T11:53:17.266311Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"y_pred = predict_in_batches(model, x_test)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:53:19.218276Z","iopub.execute_input":"2025-06-29T11:53:19.218607Z","iopub.status.idle":"2025-06-29T11:53:20.180638Z","shell.execute_reply.started":"2025-06-29T11:53:19.218582Z","shell.execute_reply":"2025-06-29T11:53:20.179600Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"corr, _ = pearsonr(y_test, y_pred)\nprint(f\"\\nPearson Correlation: {corr:.4f}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T11:53:21.912379Z","iopub.execute_input":"2025-06-29T11:53:21.912710Z","iopub.status.idle":"2025-06-29T11:53:21.930102Z","shell.execute_reply.started":"2025-06-29T11:53:21.912689Z","shell.execute_reply":"2025-06-29T11:53:21.928943Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Switch to LightGBM (often better for feature-rich datasets)\nfrom lightgbm import LGBMRegressor\n\nmodel = LGBMRegressor(\n    boosting_type='goss',  # Better for high dimensionality\n    num_leaves=127,        # More complex relationships\n    max_depth=-1,          # Unlimited depth\n    n_estimators=2000,\n    learning_rate=0.05,\n    subsample=0.8,\n    colsample_bytree=0.7,\n    importance_type='gain',\n    device='cpu'           # Enable GPU acceleration\n)\n\n# Train in batches\nfor i in range(0, len(X_train), 50000):\n    model.fit(\n        X_train[i:i+50000], \n        y_train[i:i+50000],\n        init_model=model if i > 0 else None\n    )","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T07:55:51.688527Z","iopub.execute_input":"2025-06-30T07:55:51.688835Z","iopub.status.idle":"2025-06-30T09:40:29.904041Z","shell.execute_reply.started":"2025-06-30T07:55:51.688813Z","shell.execute_reply":"2025-06-30T09:40:29.901275Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def predict_in_batches(model, X, batch_size=50000, verbose=True):\n    \"\"\"Make predictions in memory-safe batches\"\"\"\n    predictions = []\n    for i in range(0, len(X), batch_size):\n        batch = X[i:i+batch_size].astype(np.float32)\n        batch_preds = model.predict(batch, num_iteration=model.best_iteration_)\n        predictions.append(batch_preds)\n        \n        if verbose:\n            print(f\"Predicted batch {i//batch_size + 1}/{(len(X)-1)//batch_size + 1}\")\n    \n    return np.concatenate(predictions)\n\n# Usage\ny_pred = predict_in_batches(model, x_test, batch_size=50000)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T09:56:37.232423Z","iopub.execute_input":"2025-06-30T09:56:37.241391Z","iopub.status.idle":"2025-06-30T10:06:44.262276Z","shell.execute_reply.started":"2025-06-30T09:56:37.241320Z","shell.execute_reply":"2025-06-30T10:06:44.260995Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"corr, _ = pearsonr(y_test, y_pred)\nprint(f\"\\nPearson Correlation: {corr:.4f}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T10:13:23.430736Z","iopub.execute_input":"2025-06-30T10:13:23.431153Z","iopub.status.idle":"2025-06-30T10:13:23.489284Z","shell.execute_reply.started":"2025-06-30T10:13:23.431123Z","shell.execute_reply":"2025-06-30T10:13:23.488261Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### Test and Submit","metadata":{}},{"cell_type":"code","source":"X_test_scaled = scaler.fit_transform(X_test)\n\nX_test.shape\n# X_train.shape\n# X_test = X_test.drop(columns=X_test.select_dtypes(include=['object', 'category']).columns)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T10:21:54.879861Z","iopub.execute_input":"2025-06-30T10:21:54.880838Z","iopub.status.idle":"2025-06-30T10:22:04.390299Z","shell.execute_reply.started":"2025-06-30T10:21:54.880808Z","shell.execute_reply":"2025-06-30T10:22:04.389451Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"y_pred_1 = predict_in_batches(model, X_test, batch_size=50000)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T10:22:30.290101Z","iopub.execute_input":"2025-06-30T10:22:30.290453Z","iopub.status.idle":"2025-06-30T11:14:37.823624Z","shell.execute_reply.started":"2025-06-30T10:22:30.290430Z","shell.execute_reply":"2025-06-30T11:14:37.822755Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Generate row IDs (starting at 1)\nrow_ids = range(1, len(y_pred_1) + 1)\n\n# Create submission DataFrame\nsubmission = pd.DataFrame({\n    'ID': row_ids,\n    'prediction': y_pred_1\n})\n\n# Save to CSV without index\nsubmission.to_csv('submission.csv', index=False)\n\nprint(\"Submission file saved: submission.csv\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-30T11:26:37.838040Z","iopub.execute_input":"2025-06-30T11:26:37.838379Z","iopub.status.idle":"2025-06-30T11:26:39.177143Z","shell.execute_reply.started":"2025-06-30T11:26:37.838354Z","shell.execute_reply":"2025-06-30T11:26:39.176182Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_test = test_df.drop(columns= [\"label\"] + list(count_inf.index))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T14:14:11.738625Z","iopub.execute_input":"2025-06-29T14:14:11.739807Z","iopub.status.idle":"2025-06-29T14:14:27.189672Z","shell.execute_reply.started":"2025-06-29T14:14:11.739765Z","shell.execute_reply":"2025-06-29T14:14:27.138068Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_test.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T14:19:36.124339Z","iopub.execute_input":"2025-06-29T14:19:36.124680Z","iopub.status.idle":"2025-06-29T14:19:36.131662Z","shell.execute_reply.started":"2025-06-29T14:19:36.124652Z","shell.execute_reply":"2025-06-29T14:19:36.130550Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"for col in df_test.columns:\n    df_test[col] = scaler.fit_transform(df_test[[col]])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T14:19:53.609907Z","iopub.execute_input":"2025-06-29T14:19:53.610318Z","execution_failed":"2025-06-29T14:20:10.910Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"y_pred = predict_in_batches(model, _test, batch_size=50000)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-29T14:11:11.337096Z","iopub.execute_input":"2025-06-29T14:11:11.337667Z","iopub.status.idle":"2025-06-29T14:11:11.439962Z","shell.execute_reply.started":"2025-06-29T14:11:11.337634Z","shell.execute_reply":"2025-06-29T14:11:11.438865Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"params = {\n    \"tree_method\": \"hist\",\n    \"device\": \"gpu\",\n    \"colsample_bylevel\": 0.4778,\n    \"colsample_bynode\": 0.3628,\n    \"colsample_bytree\": 0.7107,\n    \"gamma\": 1.7095,\n    \"learning_rate\": 0.02213,\n    \"max_depth\": 20,\n    \"max_leaves\": 12,\n    \"min_child_weight\": 16,\n    \"n_estimators\": 1667,\n    \"subsample\": 0.06567,\n    \"reg_alpha\": 39.3524,\n    \"reg_lambda\": 75.4484,\n    \"verbosity\": 0,\n    \"random_state\": 42,\n    \"n_jobs\": -1,\n    \"verbose\": False,\n}","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-28T18:55:34.101037Z","iopub.execute_input":"2025-06-28T18:55:34.101374Z","iopub.status.idle":"2025-06-28T18:55:34.107567Z","shell.execute_reply.started":"2025-06-28T18:55:34.101353Z","shell.execute_reply":"2025-06-28T18:55:34.106271Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"model = XGBRegressor(**params)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-28T18:55:35.960914Z","iopub.execute_input":"2025-06-28T18:55:35.961239Z","iopub.status.idle":"2025-06-28T18:55:35.966104Z","shell.execute_reply.started":"2025-06-28T18:55:35.961216Z","shell.execute_reply":"2025-06-28T18:55:35.964890Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pca = PCA(n_components=100)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-28T18:55:38.866707Z","iopub.execute_input":"2025-06-28T18:55:38.867085Z","iopub.status.idle":"2025-06-28T18:55:38.872186Z","shell.execute_reply.started":"2025-06-28T18:55:38.867052Z","shell.execute_reply":"2025-06-28T18:55:38.871186Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_train = pca.fit_transform(X_train)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-28T18:55:40.544810Z","iopub.execute_input":"2025-06-28T18:55:40.545716Z","execution_failed":"2025-06-28T18:55:54.464Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"model.fit","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-26T16:32:36.887555Z","iopub.execute_input":"2025-06-26T16:32:36.887895Z","execution_failed":"2025-06-26T16:32:46.609Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}