kbssrikar7 commited on
Commit
55fb1d9
·
0 Parent(s):

Ready for Render deployment - Heart Attack Risk Predictor Ensemble Model

Browse files
Files changed (45) hide show
  1. .DS_Store +0 -0
  2. .dockerignore +18 -0
  3. .gitignore +13 -0
  4. .streamlit/config.toml +11 -0
  5. Copy_of_oneLastTime.ipynb +0 -0
  6. DEPLOY.md +124 -0
  7. Dockerfile +37 -0
  8. README.md +38 -0
  9. content/.config/.last_opt_in_prompt.yaml +1 -0
  10. content/.config/.last_survey_prompt.yaml +1 -0
  11. content/.config/.last_update_check.json +1 -0
  12. content/.config/active_config +1 -0
  13. content/.config/config_sentinel +0 -0
  14. content/.config/configurations/config_default +6 -0
  15. content/.config/default_configs.db +0 -0
  16. content/.config/gce +1 -0
  17. content/.config/hidden_gcloud_config_universe_descriptor_data_cache_configs.db +0 -0
  18. content/.config/logs/2025.11.03/14.39.05.026360.log +765 -0
  19. content/.config/logs/2025.11.03/14.39.27.468532.log +5 -0
  20. content/.config/logs/2025.11.03/14.39.37.422924.log +153 -0
  21. content/.config/logs/2025.11.03/14.39.39.770295.log +5 -0
  22. content/.config/logs/2025.11.03/14.39.49.932668.log +8 -0
  23. content/.config/logs/2025.11.03/14.39.50.786121.log +8 -0
  24. content/catboost_info/catboost_training.json +704 -0
  25. content/catboost_info/learn/events.out.tfevents +0 -0
  26. content/catboost_info/learn_error.tsv +701 -0
  27. content/catboost_info/time_left.tsv +701 -0
  28. content/models/cat_5cv_results.csv +21 -0
  29. content/models/fairness_subgroups.csv +10 -0
  30. content/models/hybrid_metrics.csv +4 -0
  31. content/models/hybrid_metrics_best.csv +4 -0
  32. content/models/hybrid_metrics_optionA.csv +4 -0
  33. content/models/lgb_5cv_results.csv +26 -0
  34. content/models/metrics_class_weights.csv +6 -0
  35. content/models/model_metrics.csv +6 -0
  36. content/models/model_metrics_best.csv +4 -0
  37. content/models/pr_auc_table.csv +5 -0
  38. content/models/xgb_5cv_results.csv +26 -0
  39. content/sample_data/README.md +19 -0
  40. content/sample_data/anscombe.json +49 -0
  41. model_assets/.gitkeep +2 -0
  42. render.yaml +11 -0
  43. requirements.txt +9 -0
  44. streamlit_app.py +1162 -0
  45. test_predict.py +218 -0
.DS_Store ADDED
Binary file (6.15 kB). View file
 
.dockerignore ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .venv
2
+ __pycache__
3
+ .ipynb_checkpoints
4
+ .git
5
+ .gitignore
6
+ *.pyc
7
+ *.pyo
8
+ *.pyd
9
+ *.swp
10
+ *.tmp
11
+ *.log
12
+ node_modules
13
+ dist
14
+ build
15
+ Dockerfile
16
+ README.md
17
+ Copy_of_oneLastTime.ipynb
18
+
.gitignore ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python / Streamlit
2
+ __pycache__/
3
+ *.pyc
4
+ .streamlit/secrets.toml
5
+
6
+ # Model assets (keep directory, ignore large binaries by default)
7
+ model_assets/*
8
+ !model_assets/.gitkeep
9
+
10
+ # Jupyter checkpoints
11
+ .ipynb_checkpoints/
12
+
13
+
.streamlit/config.toml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [theme]
2
+ primaryColor = "#3B82F6"
3
+ backgroundColor = "#0B1221"
4
+ secondaryBackgroundColor = "#111827"
5
+ textColor = "#E5E7EB"
6
+ font = "sans serif"
7
+
8
+ [server]
9
+ port = 8051
10
+ headless = true
11
+
Copy_of_oneLastTime.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
DEPLOY.md ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🚀 Deploy to Render - Step by Step Guide
2
+
3
+ ## Prerequisites
4
+ - GitHub account
5
+ - Render account (free - sign up at https://render.com)
6
+
7
+ ## 📋 Deployment Steps
8
+
9
+ ### Step 1: Push Code to GitHub
10
+ ```bash
11
+ # Initialize git if not already done
12
+ git init
13
+
14
+ # Add all files
15
+ git add .
16
+
17
+ # Commit
18
+ git commit -m "Ready for Render deployment"
19
+
20
+ # Create a new repository on GitHub (https://github.com/new)
21
+ # Then push:
22
+ git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git
23
+ git branch -M main
24
+ git push -u origin main
25
+ ```
26
+
27
+ ### Step 2: Deploy on Render
28
+
29
+ 1. **Go to Render Dashboard**
30
+ - Visit https://dashboard.render.com
31
+ - Sign in or create account (use GitHub login for easier setup)
32
+
33
+ 2. **Create New Web Service**
34
+ - Click "New +" button → "Web Service"
35
+ - Connect your GitHub account if not already connected
36
+ - Select your repository
37
+
38
+ 3. **Configure Service** (Render will auto-detect render.yaml)
39
+ - **Name**: heart-attack-risk-predictor (or your choice)
40
+ - **Runtime**: Docker
41
+ - **Plan**: Free
42
+ - Click "Create Web Service"
43
+
44
+ 4. **Wait for Build & Deploy**
45
+ - Render will automatically:
46
+ - Build your Docker image
47
+ - Deploy the container
48
+ - Assign a public URL
49
+ - Build takes 2-5 minutes
50
+
51
+ 5. **Access Your App**
52
+ - Once deployed, you'll get a URL like:
53
+ `https://heart-attack-risk-predictor.onrender.com`
54
+ - Open it in your browser!
55
+
56
+ ## ⚠️ Important Notes
57
+
58
+ ### Free Tier Limitations
59
+ - App sleeps after 15 minutes of inactivity
60
+ - First request after sleep takes ~30 seconds to wake up
61
+ - 750 hours/month free (enough for most usage)
62
+
63
+ ### Custom Domain (Optional)
64
+ - Go to Settings → Custom Domain
65
+ - Add your domain (requires DNS setup)
66
+
67
+ ### Environment Variables (if needed)
68
+ - Go to Environment → Add Environment Variable
69
+ - Currently none required for this app
70
+
71
+ ### Logs & Monitoring
72
+ - View logs: Click "Logs" tab in dashboard
73
+ - Monitor performance: "Metrics" tab
74
+
75
+ ## 🔄 Auto-Deploy on Updates
76
+
77
+ Once set up, any push to your GitHub main branch will automatically:
78
+ 1. Trigger new build
79
+ 2. Deploy updated version
80
+ 3. Switch traffic to new version
81
+
82
+ No manual intervention needed!
83
+
84
+ ## 🐛 Troubleshooting
85
+
86
+ ### Build Fails
87
+ - Check Render logs for errors
88
+ - Verify Dockerfile builds locally: `docker build -t heart-app .`
89
+ - Check all files are committed to Git
90
+
91
+ ### App Won't Start
92
+ - Check port is 8051 (matches Dockerfile EXPOSE)
93
+ - Verify model files are in model_assets/
94
+ - Check logs for Python errors
95
+
96
+ ### Slow Response
97
+ - Free tier sleeps after inactivity
98
+ - Upgrade to paid plan ($7/month) for always-on
99
+
100
+ ## 📦 What's Included
101
+
102
+ Your repo now has:
103
+ - ✅ `render.yaml` - Render configuration
104
+ - ✅ `Dockerfile` - Container definition
105
+ - ✅ `requirements.txt` - Python dependencies
106
+ - ✅ `streamlit_app.py` - Main application
107
+ - ✅ `model_assets/` - ML models
108
+ - ✅ `.streamlit/config.toml` - Streamlit settings
109
+
110
+ ## 🎉 You're Done!
111
+
112
+ Your app is now live and accessible worldwide!
113
+
114
+ ### Next Steps:
115
+ - Share your URL
116
+ - Monitor usage in Render dashboard
117
+ - Set up custom domain if needed
118
+ - Consider upgrading if you need 24/7 uptime
119
+
120
+ ---
121
+
122
+ **Need Help?**
123
+ - Render Docs: https://render.com/docs
124
+ - Render Community: https://community.render.com
Dockerfile ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ # Prevents Python from writing .pyc files and buffering stdout/stderr
4
+ ENV PYTHONDONTWRITEBYTECODE=1 \
5
+ PYTHONUNBUFFERED=1 \
6
+ PIP_NO_CACHE_DIR=1
7
+
8
+ WORKDIR /app
9
+
10
+ # System deps for lightgbm, xgboost, catboost (runtime)
11
+ RUN apt-get update && apt-get install -y --no-install-recommends \
12
+ build-essential \
13
+ libgomp1 \
14
+ curl \
15
+ && rm -rf /var/lib/apt/lists/*
16
+
17
+ # Copy dependency list and install
18
+ COPY requirements.txt /app/requirements.txt
19
+ RUN pip install --upgrade pip \
20
+ && pip install -r requirements.txt
21
+
22
+ # Copy app code
23
+ COPY streamlit_app.py /app/streamlit_app.py
24
+ COPY .streamlit /app/.streamlit
25
+
26
+ # Copy model assets if present
27
+ RUN mkdir -p /app/model_assets
28
+ COPY model_assets/ /app/model_assets/
29
+
30
+ # Optional: copy test script for quick in-container verification
31
+ COPY test_predict.py /app/test_predict.py
32
+
33
+ EXPOSE 8051
34
+
35
+ CMD ["streamlit", "run", "streamlit_app.py", "--server.headless=true", "--server.address=0.0.0.0", "--server.port=8051"]
36
+
37
+
README.md ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Streamlit Inference App
2
+
3
+ This app loads your trained models (CatBoost/XGBoost/LightGBM) and optional sklearn preprocessor, then serves batch CSV inference with an optional simple ensemble. No dataset is required at deploy time; users upload CSVs.
4
+
5
+ ## Project Layout
6
+
7
+ - `streamlit_app.py` – main app
8
+ - `requirements.txt` – dependencies (installed on Streamlit Cloud)
9
+ - `.streamlit/config.toml` – dark theme
10
+ - `model_assets/` – place your artifacts here:
11
+ - `CatBoost.joblib` / `XGBoost.joblib` / `LightGBM.joblib` (or any of the alternative names used in the notebook)
12
+ - `preprocessor.joblib` (recommended)
13
+ - optional: `feature_names.json`, `hybrid_metrics.csv`, `model_metrics_summary.csv`
14
+
15
+ ## Local Preview (optional)
16
+
17
+ If you want to run locally without installing ML libs on your laptop, skip. Otherwise:
18
+
19
+ ```bash
20
+ pip install -r requirements.txt
21
+ streamlit run streamlit_app.py
22
+ ```
23
+
24
+ ## Deploy to Streamlit Cloud
25
+
26
+ 1. Push this folder to a public GitHub repo.
27
+ 2. On Streamlit Cloud, create a new app pointing to that repo, file `streamlit_app.py`.
28
+ 3. In the repo, put your artifacts inside `model_assets/`.
29
+
30
+ ## Preparing Artifacts in Colab
31
+
32
+ Artifacts the app can use (any subset works):
33
+ - Models: `CatBoost.joblib`, `XGBoost.joblib`, `LightGBM.joblib` (supports common alt names)
34
+ - Preprocessor: `preprocessor.joblib`
35
+ - Optional: `feature_names.json`, `hybrid_metrics.csv`, `model_metrics_summary.csv`
36
+
37
+ The app auto-detects assets and displays metrics if the CSVs are present.
38
+
content/.config/.last_opt_in_prompt.yaml ADDED
@@ -0,0 +1 @@
 
 
1
+ {}
content/.config/.last_survey_prompt.yaml ADDED
@@ -0,0 +1 @@
 
 
1
+ last_prompt_time: 1762180776.7114816
content/.config/.last_update_check.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"last_update_check_time": 1762180779.211006, "last_update_check_revision": 20251024121634, "notifications": [], "last_nag_times": {}}
content/.config/active_config ADDED
@@ -0,0 +1 @@
 
 
1
+ default
content/.config/config_sentinel ADDED
File without changes
content/.config/configurations/config_default ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ [component_manager]
2
+ disable_update_check = true
3
+
4
+ [compute]
5
+ gce_metadata_read_timeout_sec = 0
6
+
content/.config/default_configs.db ADDED
Binary file (12.3 kB). View file
 
content/.config/gce ADDED
@@ -0,0 +1 @@
 
 
1
+ False
content/.config/hidden_gcloud_config_universe_descriptor_data_cache_configs.db ADDED
Binary file (12.3 kB). View file
 
content/.config/logs/2025.11.03/14.39.05.026360.log ADDED
@@ -0,0 +1,765 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-11-03 14:39:17,055 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-11-03 14:39:17,060 DEBUG root Loaded Command Group: ['gcloud', 'components', 'update']
3
+ 2025-11-03 14:39:17,062 DEBUG root Running [gcloud.components.update] with arguments: [--compile-python: "True", --quiet: "True", COMPONENT-IDS:6: "['core', 'gcloud-deps', 'bq', 'gcloud', 'gcloud-crc32c', 'gsutil']"]
4
+ 2025-11-03 14:39:17,063 INFO ___FILE_ONLY___ Beginning update. This process may take several minutes.
5
+
6
+ 2025-11-03 14:39:17,104 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
7
+ 2025-11-03 14:39:17,151 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components-2.json HTTP/1.1" 200 233157
8
+ 2025-11-03 14:39:17,162 INFO ___FILE_ONLY___
9
+
10
+ 2025-11-03 14:39:17,162 INFO ___FILE_ONLY___
11
+ Your current Google Cloud CLI version is: 545.0.0
12
+
13
+ 2025-11-03 14:39:17,162 INFO ___FILE_ONLY___ Installing components from version: 545.0.0
14
+
15
+ 2025-11-03 14:39:17,162 INFO ___FILE_ONLY___
16
+
17
+ 2025-11-03 14:39:17,163 DEBUG root Chosen display Format:table[box,title="These components will be removed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
18
+ 2025-11-03 14:39:17,163 DEBUG root Chosen display Format:table[box,title="These components will be updated."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
19
+ 2025-11-03 14:39:17,164 DEBUG root Chosen display Format:table[box,title="These components will be installed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
20
+ 2025-11-03 14:39:17,209 INFO ___FILE_ONLY___ ┌─────────────────────────────────────────────────────────────────────────────┐
21
+ 2025-11-03 14:39:17,209 INFO ___FILE_ONLY___
22
+
23
+ 2025-11-03 14:39:17,209 INFO ___FILE_ONLY___ │ These components will be installed. │
24
+ 2025-11-03 14:39:17,209 INFO ___FILE_ONLY___
25
+
26
+ 2025-11-03 14:39:17,209 INFO ___FILE_ONLY___ ├─────────────────────────────────────────────────────┬────────────┬──────────┤
27
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___
28
+
29
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ │ Name │ Version │ Size │
30
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___
31
+
32
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ ├─────────────────────────────────────────────────────┼────────────┼──────────┤
33
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___
34
+
35
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ │
36
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ BigQuery Command Line Tool
37
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___
38
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ │
39
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ 2.1.25
40
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___
41
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ │
42
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ 1.8 MiB
43
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___
44
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ │
45
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___
46
+
47
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ │
48
+ 2025-11-03 14:39:17,210 INFO ___FILE_ONLY___ BigQuery Command Line Tool (Platform Specific)
49
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___
50
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ │
51
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ 2.1.17
52
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___
53
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ │
54
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ < 1 MiB
55
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___
56
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ │
57
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___
58
+
59
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ │
60
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ Bundled Python 3.12 (Platform Specific)
61
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___
62
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ │
63
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ 3.12.9
64
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___
65
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ │
66
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___ 89.3 MiB
67
+ 2025-11-03 14:39:17,211 INFO ___FILE_ONLY___
68
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ │
69
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___
70
+
71
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ │
72
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ Cloud Storage Command Line Tool
73
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___
74
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ │
75
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ 5.35
76
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___
77
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ │
78
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ 12.4 MiB
79
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___
80
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ │
81
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___
82
+
83
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ │
84
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___ Cloud Storage Command Line Tool (Platform Specific)
85
+ 2025-11-03 14:39:17,212 INFO ___FILE_ONLY___
86
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ │
87
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ 5.34
88
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___
89
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ │
90
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ < 1 MiB
91
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___
92
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ │
93
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___
94
+
95
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ │
96
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ Google Cloud CLI Core Libraries (Platform Specific)
97
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___
98
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ │
99
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ 2025.05.23
100
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___
101
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ │
102
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___ < 1 MiB
103
+ 2025-11-03 14:39:17,213 INFO ___FILE_ONLY___
104
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
105
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___
106
+
107
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
108
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ Google Cloud CRC32C Hash Tool (Platform Specific)
109
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___
110
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
111
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ 1.0.0
112
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___
113
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
114
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ 1.5 MiB
115
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___
116
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
117
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___
118
+
119
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
120
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ gcloud cli dependencies (Platform Specific)
121
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___
122
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
123
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ 2021.04.16
124
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___
125
+ 2025-11-03 14:39:17,214 INFO ___FILE_ONLY___ │
126
+ 2025-11-03 14:39:17,215 INFO ___FILE_ONLY___ < 1 MiB
127
+ 2025-11-03 14:39:17,215 INFO ___FILE_ONLY___
128
+ 2025-11-03 14:39:17,215 INFO ___FILE_ONLY___ │
129
+ 2025-11-03 14:39:17,215 INFO ___FILE_ONLY___
130
+
131
+ 2025-11-03 14:39:17,215 INFO ___FILE_ONLY___ └─────────────────────────────────────────────────────┴────────────┴──────────┘
132
+ 2025-11-03 14:39:17,215 INFO ___FILE_ONLY___
133
+
134
+ 2025-11-03 14:39:17,215 INFO ___FILE_ONLY___
135
+
136
+ 2025-11-03 14:39:17,218 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
137
+ 2025-11-03 14:39:17,270 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/RELEASE_NOTES HTTP/1.1" 200 1509806
138
+ 2025-11-03 14:39:17,791 INFO ___FILE_ONLY___ For the latest full release notes, please visit:
139
+ https://cloud.google.com/sdk/release_notes
140
+
141
+
142
+ 2025-11-03 14:39:17,792 INFO ___FILE_ONLY___ Performing in place update...
143
+
144
+
145
+ 2025-11-03 14:39:17,794 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
146
+
147
+ 2025-11-03 14:39:17,794 INFO ___FILE_ONLY___ ╠═ Downloading: BigQuery Command Line Tool ═╣
148
+
149
+ 2025-11-03 14:39:17,794 INFO ___FILE_ONLY___ ╚
150
+ 2025-11-03 14:39:17,797 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
151
+ 2025-11-03 14:39:18,035 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-bq-20251024121634.tar.gz HTTP/1.1" 200 1911793
152
+ 2025-11-03 14:39:18,049 INFO ___FILE_ONLY___ ═
153
+ 2025-11-03 14:39:18,049 INFO ___FILE_ONLY___ ═
154
+ 2025-11-03 14:39:18,049 INFO ___FILE_ONLY___ ═
155
+ 2025-11-03 14:39:18,049 INFO ___FILE_ONLY___ ═
156
+ 2025-11-03 14:39:18,049 INFO ___FILE_ONLY___ ═
157
+ 2025-11-03 14:39:18,049 INFO ___FILE_ONLY___ ═
158
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
159
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
160
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
161
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
162
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
163
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
164
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
165
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
166
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
167
+ 2025-11-03 14:39:18,050 INFO ___FILE_ONLY___ ═
168
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
169
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
170
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
171
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
172
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
173
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
174
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
175
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
176
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
177
+ 2025-11-03 14:39:18,051 INFO ___FILE_ONLY___ ═
178
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
179
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
180
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
181
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
182
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
183
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
184
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
185
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
186
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
187
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
188
+ 2025-11-03 14:39:18,052 INFO ___FILE_ONLY___ ═
189
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
190
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
191
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
192
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
193
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
194
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
195
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
196
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
197
+ 2025-11-03 14:39:18,053 INFO ___FILE_ONLY___ ═
198
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
199
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
200
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
201
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
202
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
203
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
204
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
205
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
206
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
207
+ 2025-11-03 14:39:18,054 INFO ___FILE_ONLY___ ═
208
+ 2025-11-03 14:39:18,055 INFO ___FILE_ONLY___ ═
209
+ 2025-11-03 14:39:18,055 INFO ___FILE_ONLY___ ═
210
+ 2025-11-03 14:39:18,055 INFO ___FILE_ONLY___ ═
211
+ 2025-11-03 14:39:18,055 INFO ___FILE_ONLY___ ═
212
+ 2025-11-03 14:39:18,055 INFO ___FILE_ONLY___ ╝
213
+
214
+ 2025-11-03 14:39:18,057 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
215
+
216
+ 2025-11-03 14:39:18,057 INFO ___FILE_ONLY___ ╠═ Downloading: BigQuery Command Line Tool (Platform Spe... ═╣
217
+
218
+ 2025-11-03 14:39:18,058 INFO ___FILE_ONLY___ ╚
219
+ 2025-11-03 14:39:18,060 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
220
+ 2025-11-03 14:39:18,315 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-bq-nix-20250523104322.tar.gz HTTP/1.1" 200 1935
221
+ 2025-11-03 14:39:18,316 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
222
+ 2025-11-03 14:39:18,316 INFO ___FILE_ONLY___ ╝
223
+
224
+ 2025-11-03 14:39:18,318 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
225
+
226
+ 2025-11-03 14:39:18,318 INFO ___FILE_ONLY___ ╠═ Downloading: Bundled Python 3.12 ═╣
227
+
228
+ 2025-11-03 14:39:18,318 INFO ___FILE_ONLY___ ╚
229
+ 2025-11-03 14:39:18,318 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
230
+ 2025-11-03 14:39:18,318 INFO ___FILE_ONLY___ ╝
231
+
232
+ 2025-11-03 14:39:18,320 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
233
+
234
+ 2025-11-03 14:39:18,320 INFO ___FILE_ONLY___ ╠═ Downloading: Bundled Python 3.12 (Platform Specific) ═╣
235
+
236
+ 2025-11-03 14:39:18,320 INFO ___FILE_ONLY___ ╚
237
+ 2025-11-03 14:39:18,323 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
238
+ 2025-11-03 14:39:18,531 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20250502143716.tar.gz HTTP/1.1" 200 93610468
239
+ 2025-11-03 14:39:18,871 INFO ___FILE_ONLY___ ═
240
+ 2025-11-03 14:39:18,873 INFO ___FILE_ONLY___ ═
241
+ 2025-11-03 14:39:18,875 INFO ___FILE_ONLY___ ═
242
+ 2025-11-03 14:39:18,877 INFO ___FILE_ONLY___ ═
243
+ 2025-11-03 14:39:18,880 INFO ___FILE_ONLY___ ═
244
+ 2025-11-03 14:39:18,882 INFO ___FILE_ONLY___ ═
245
+ 2025-11-03 14:39:18,884 INFO ___FILE_ONLY___ ═
246
+ 2025-11-03 14:39:18,886 INFO ___FILE_ONLY___ ═
247
+ 2025-11-03 14:39:18,888 INFO ___FILE_ONLY___ ═
248
+ 2025-11-03 14:39:18,890 INFO ___FILE_ONLY___ ═
249
+ 2025-11-03 14:39:18,892 INFO ___FILE_ONLY___ ═
250
+ 2025-11-03 14:39:18,894 INFO ___FILE_ONLY___ ═
251
+ 2025-11-03 14:39:18,896 INFO ___FILE_ONLY___ ═
252
+ 2025-11-03 14:39:18,898 INFO ___FILE_ONLY___ ═
253
+ 2025-11-03 14:39:18,900 INFO ___FILE_ONLY___ ═
254
+ 2025-11-03 14:39:18,902 INFO ___FILE_ONLY___ ═
255
+ 2025-11-03 14:39:18,904 INFO ___FILE_ONLY___ ═
256
+ 2025-11-03 14:39:18,906 INFO ___FILE_ONLY___ ═
257
+ 2025-11-03 14:39:18,908 INFO ___FILE_ONLY___ ═
258
+ 2025-11-03 14:39:18,910 INFO ___FILE_ONLY___ ═
259
+ 2025-11-03 14:39:18,912 INFO ___FILE_ONLY___ ═
260
+ 2025-11-03 14:39:18,914 INFO ___FILE_ONLY___ ═
261
+ 2025-11-03 14:39:18,916 INFO ___FILE_ONLY___ ═
262
+ 2025-11-03 14:39:18,918 INFO ___FILE_ONLY___ ═
263
+ 2025-11-03 14:39:18,920 INFO ___FILE_ONLY___ ═
264
+ 2025-11-03 14:39:18,922 INFO ___FILE_ONLY___ ═
265
+ 2025-11-03 14:39:18,925 INFO ___FILE_ONLY___ ═
266
+ 2025-11-03 14:39:18,927 INFO ___FILE_ONLY___ ═
267
+ 2025-11-03 14:39:18,929 INFO ___FILE_ONLY___ ═
268
+ 2025-11-03 14:39:18,931 INFO ___FILE_ONLY___ ═
269
+ 2025-11-03 14:39:18,933 INFO ___FILE_ONLY___ ═
270
+ 2025-11-03 14:39:18,935 INFO ___FILE_ONLY___ ═
271
+ 2025-11-03 14:39:18,937 INFO ___FILE_ONLY___ ═
272
+ 2025-11-03 14:39:18,939 INFO ___FILE_ONLY___ ═
273
+ 2025-11-03 14:39:18,941 INFO ___FILE_ONLY___ ═
274
+ 2025-11-03 14:39:18,943 INFO ___FILE_ONLY___ ═
275
+ 2025-11-03 14:39:18,945 INFO ___FILE_ONLY___ ═
276
+ 2025-11-03 14:39:18,947 INFO ___FILE_ONLY___ ═
277
+ 2025-11-03 14:39:18,950 INFO ___FILE_ONLY___ ═
278
+ 2025-11-03 14:39:18,952 INFO ___FILE_ONLY___ ═
279
+ 2025-11-03 14:39:18,955 INFO ___FILE_ONLY___ ═
280
+ 2025-11-03 14:39:18,958 INFO ___FILE_ONLY___ ═
281
+ 2025-11-03 14:39:18,960 INFO ___FILE_ONLY___ ═
282
+ 2025-11-03 14:39:18,963 INFO ___FILE_ONLY___ ═
283
+ 2025-11-03 14:39:18,966 INFO ___FILE_ONLY___ ═
284
+ 2025-11-03 14:39:18,968 INFO ___FILE_ONLY___ ═
285
+ 2025-11-03 14:39:18,971 INFO ___FILE_ONLY___ ═
286
+ 2025-11-03 14:39:18,974 INFO ___FILE_ONLY___ ═
287
+ 2025-11-03 14:39:18,976 INFO ___FILE_ONLY___ ═
288
+ 2025-11-03 14:39:18,979 INFO ___FILE_ONLY___ ═
289
+ 2025-11-03 14:39:18,982 INFO ___FILE_ONLY___ ═
290
+ 2025-11-03 14:39:18,984 INFO ___FILE_ONLY___ ═
291
+ 2025-11-03 14:39:18,987 INFO ___FILE_ONLY___ ═
292
+ 2025-11-03 14:39:18,989 INFO ___FILE_ONLY___ ═
293
+ 2025-11-03 14:39:18,991 INFO ___FILE_ONLY___ ═
294
+ 2025-11-03 14:39:18,993 INFO ___FILE_ONLY___ ═
295
+ 2025-11-03 14:39:18,995 INFO ___FILE_ONLY___ ═
296
+ 2025-11-03 14:39:18,997 INFO ___FILE_ONLY___ ═
297
+ 2025-11-03 14:39:18,999 INFO ___FILE_ONLY___ ═
298
+ 2025-11-03 14:39:19,001 INFO ___FILE_ONLY___ ═
299
+ 2025-11-03 14:39:19,001 INFO ___FILE_ONLY___ ╝
300
+
301
+ 2025-11-03 14:39:19,004 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
302
+
303
+ 2025-11-03 14:39:19,004 INFO ___FILE_ONLY___ ╠═ Downloading: Cloud Storage Command Line Tool ═╣
304
+
305
+ 2025-11-03 14:39:19,004 INFO ___FILE_ONLY___ ╚
306
+ 2025-11-03 14:39:19,007 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
307
+ 2025-11-03 14:39:19,060 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gsutil-20250627154417.tar.gz HTTP/1.1" 200 12962791
308
+ 2025-11-03 14:39:19,118 INFO ___FILE_ONLY___ ═
309
+ 2025-11-03 14:39:19,118 INFO ___FILE_ONLY___ ═
310
+ 2025-11-03 14:39:19,118 INFO ___FILE_ONLY___ ═
311
+ 2025-11-03 14:39:19,119 INFO ___FILE_ONLY___ ═
312
+ 2025-11-03 14:39:19,119 INFO ___FILE_ONLY___ ═
313
+ 2025-11-03 14:39:19,120 INFO ___FILE_ONLY___ ═
314
+ 2025-11-03 14:39:19,120 INFO ___FILE_ONLY___ ═
315
+ 2025-11-03 14:39:19,120 INFO ___FILE_ONLY___ ═
316
+ 2025-11-03 14:39:19,121 INFO ___FILE_ONLY___ ═
317
+ 2025-11-03 14:39:19,121 INFO ___FILE_ONLY___ ═
318
+ 2025-11-03 14:39:19,121 INFO ___FILE_ONLY___ ═
319
+ 2025-11-03 14:39:19,122 INFO ___FILE_ONLY___ ═
320
+ 2025-11-03 14:39:19,122 INFO ___FILE_ONLY___ ═
321
+ 2025-11-03 14:39:19,122 INFO ___FILE_ONLY___ ═
322
+ 2025-11-03 14:39:19,123 INFO ___FILE_ONLY___ ═
323
+ 2025-11-03 14:39:19,123 INFO ___FILE_ONLY___ ═
324
+ 2025-11-03 14:39:19,123 INFO ___FILE_ONLY___ ═
325
+ 2025-11-03 14:39:19,124 INFO ___FILE_ONLY___ ═
326
+ 2025-11-03 14:39:19,124 INFO ___FILE_ONLY___ ═
327
+ 2025-11-03 14:39:19,124 INFO ___FILE_ONLY___ ═
328
+ 2025-11-03 14:39:19,125 INFO ___FILE_ONLY___ ═
329
+ 2025-11-03 14:39:19,125 INFO ___FILE_ONLY___ ═
330
+ 2025-11-03 14:39:19,125 INFO ___FILE_ONLY___ ═
331
+ 2025-11-03 14:39:19,126 INFO ___FILE_ONLY___ ═
332
+ 2025-11-03 14:39:19,126 INFO ___FILE_ONLY___ ═
333
+ 2025-11-03 14:39:19,126 INFO ___FILE_ONLY___ ═
334
+ 2025-11-03 14:39:19,127 INFO ___FILE_ONLY___ ═
335
+ 2025-11-03 14:39:19,127 INFO ___FILE_ONLY___ ═
336
+ 2025-11-03 14:39:19,127 INFO ___FILE_ONLY___ ═
337
+ 2025-11-03 14:39:19,128 INFO ___FILE_ONLY___ ═
338
+ 2025-11-03 14:39:19,128 INFO ___FILE_ONLY___ ═
339
+ 2025-11-03 14:39:19,128 INFO ___FILE_ONLY___ ═
340
+ 2025-11-03 14:39:19,129 INFO ___FILE_ONLY___ ═
341
+ 2025-11-03 14:39:19,129 INFO ___FILE_ONLY___ ═
342
+ 2025-11-03 14:39:19,129 INFO ___FILE_ONLY___ ═
343
+ 2025-11-03 14:39:19,130 INFO ___FILE_ONLY___ ═
344
+ 2025-11-03 14:39:19,130 INFO ___FILE_ONLY___ ═
345
+ 2025-11-03 14:39:19,130 INFO ___FILE_ONLY___ ═
346
+ 2025-11-03 14:39:19,131 INFO ___FILE_ONLY___ ═
347
+ 2025-11-03 14:39:19,131 INFO ___FILE_ONLY___ ═
348
+ 2025-11-03 14:39:19,131 INFO ___FILE_ONLY___ ═
349
+ 2025-11-03 14:39:19,132 INFO ___FILE_ONLY___ ═
350
+ 2025-11-03 14:39:19,132 INFO ___FILE_ONLY___ ═
351
+ 2025-11-03 14:39:19,132 INFO ___FILE_ONLY___ ═
352
+ 2025-11-03 14:39:19,133 INFO ___FILE_ONLY___ ═
353
+ 2025-11-03 14:39:19,133 INFO ___FILE_ONLY___ ═
354
+ 2025-11-03 14:39:19,133 INFO ___FILE_ONLY___ ═
355
+ 2025-11-03 14:39:19,134 INFO ___FILE_ONLY___ ═
356
+ 2025-11-03 14:39:19,134 INFO ___FILE_ONLY___ ═
357
+ 2025-11-03 14:39:19,134 INFO ___FILE_ONLY___ ═
358
+ 2025-11-03 14:39:19,135 INFO ___FILE_ONLY___ ═
359
+ 2025-11-03 14:39:19,135 INFO ___FILE_ONLY___ ═
360
+ 2025-11-03 14:39:19,135 INFO ___FILE_ONLY___ ═
361
+ 2025-11-03 14:39:19,136 INFO ___FILE_ONLY___ ═
362
+ 2025-11-03 14:39:19,136 INFO ___FILE_ONLY___ ═
363
+ 2025-11-03 14:39:19,136 INFO ___FILE_ONLY___ ═
364
+ 2025-11-03 14:39:19,137 INFO ___FILE_ONLY___ ═
365
+ 2025-11-03 14:39:19,137 INFO ___FILE_ONLY___ ═
366
+ 2025-11-03 14:39:19,137 INFO ___FILE_ONLY___ ═
367
+ 2025-11-03 14:39:19,138 INFO ___FILE_ONLY___ ═
368
+ 2025-11-03 14:39:19,138 INFO ___FILE_ONLY___ ╝
369
+
370
+ 2025-11-03 14:39:19,140 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
371
+
372
+ 2025-11-03 14:39:19,140 INFO ___FILE_ONLY___ ╠═ Downloading: Cloud Storage Command Line Tool (Platfor... ═╣
373
+
374
+ 2025-11-03 14:39:19,140 INFO ___FILE_ONLY___ ╚
375
+ 2025-11-03 14:39:19,143 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
376
+ 2025-11-03 14:39:19,347 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gsutil-nix-20250523104322.tar.gz HTTP/1.1" 200 1950
377
+ 2025-11-03 14:39:19,348 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
378
+ 2025-11-03 14:39:19,348 INFO ___FILE_ONLY___ ╝
379
+
380
+ 2025-11-03 14:39:19,350 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
381
+
382
+ 2025-11-03 14:39:19,351 INFO ___FILE_ONLY___ ╠═ Downloading: Default set of gcloud commands ═╣
383
+
384
+ 2025-11-03 14:39:19,351 INFO ___FILE_ONLY___ ╚
385
+ 2025-11-03 14:39:19,351 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
386
+ 2025-11-03 14:39:19,351 INFO ___FILE_ONLY___ ╝
387
+
388
+ 2025-11-03 14:39:19,353 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
389
+
390
+ 2025-11-03 14:39:19,353 INFO ___FILE_ONLY___ ╠═ Downloading: Google Cloud CLI Core Libraries (Platfor... ═╣
391
+
392
+ 2025-11-03 14:39:19,353 INFO ___FILE_ONLY___ ╚
393
+ 2025-11-03 14:39:19,356 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
394
+ 2025-11-03 14:39:19,591 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-core-nix-20250523104322.tar.gz HTTP/1.1" 200 2325
395
+ 2025-11-03 14:39:19,592 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
396
+ 2025-11-03 14:39:19,592 INFO ___FILE_ONLY___ ╝
397
+
398
+ 2025-11-03 14:39:19,594 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
399
+
400
+ 2025-11-03 14:39:19,594 INFO ___FILE_ONLY___ ╠═ Downloading: Google Cloud CRC32C Hash Tool ═╣
401
+
402
+ 2025-11-03 14:39:19,594 INFO ___FILE_ONLY___ ╚
403
+ 2025-11-03 14:39:19,594 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
404
+ 2025-11-03 14:39:19,594 INFO ___FILE_ONLY___ ╝
405
+
406
+ 2025-11-03 14:39:19,596 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
407
+
408
+ 2025-11-03 14:39:19,596 INFO ___FILE_ONLY___ ╠═ Downloading: Google Cloud CRC32C Hash Tool (Platform ... ═╣
409
+
410
+ 2025-11-03 14:39:19,596 INFO ___FILE_ONLY___ ╚
411
+ 2025-11-03 14:39:19,599 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
412
+ 2025-11-03 14:39:19,644 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gcloud-crc32c-linux-x86_64-20250613150750.tar.gz HTTP/1.1" 200 1525557
413
+ 2025-11-03 14:39:19,656 INFO ___FILE_ONLY___ ═
414
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
415
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
416
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
417
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
418
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
419
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
420
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
421
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
422
+ 2025-11-03 14:39:19,657 INFO ___FILE_ONLY___ ═
423
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
424
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
425
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
426
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
427
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
428
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
429
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
430
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
431
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
432
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
433
+ 2025-11-03 14:39:19,658 INFO ___FILE_ONLY___ ═
434
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
435
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
436
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
437
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
438
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
439
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
440
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
441
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
442
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
443
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
444
+ 2025-11-03 14:39:19,659 INFO ___FILE_ONLY___ ═
445
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
446
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
447
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
448
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
449
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
450
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
451
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
452
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
453
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
454
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
455
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
456
+ 2025-11-03 14:39:19,660 INFO ___FILE_ONLY___ ═
457
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
458
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
459
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
460
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
461
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
462
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
463
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
464
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
465
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
466
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
467
+ 2025-11-03 14:39:19,661 INFO ___FILE_ONLY___ ═
468
+ 2025-11-03 14:39:19,662 INFO ___FILE_ONLY___ ═
469
+ 2025-11-03 14:39:19,662 INFO ___FILE_ONLY___ ═
470
+ 2025-11-03 14:39:19,662 INFO ___FILE_ONLY___ ═
471
+ 2025-11-03 14:39:19,662 INFO ___FILE_ONLY___ ═
472
+ 2025-11-03 14:39:19,662 INFO ___FILE_ONLY___ ═
473
+ 2025-11-03 14:39:19,662 INFO ___FILE_ONLY___ ╝
474
+
475
+ 2025-11-03 14:39:19,664 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
476
+
477
+ 2025-11-03 14:39:19,664 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud cli dependencies (Platform Specific) ═╣
478
+
479
+ 2025-11-03 14:39:19,664 INFO ___FILE_ONLY___ ╚
480
+ 2025-11-03 14:39:19,667 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
481
+ 2025-11-03 14:39:19,910 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gcloud-deps-linux-x86_64-20210416153011.tar.gz HTTP/1.1" 200 104
482
+ 2025-11-03 14:39:19,911 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
483
+ 2025-11-03 14:39:19,911 INFO ___FILE_ONLY___ ╝
484
+
485
+ 2025-11-03 14:39:19,913 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
486
+
487
+ 2025-11-03 14:39:19,914 INFO ___FILE_ONLY___ ╠═ Installing: BigQuery Command Line Tool ═╣
488
+
489
+ 2025-11-03 14:39:19,914 INFO ___FILE_ONLY___ ╚
490
+ 2025-11-03 14:39:20,014 INFO ___FILE_ONLY___ ═
491
+ 2025-11-03 14:39:20,017 INFO ___FILE_ONLY___ ═
492
+ 2025-11-03 14:39:20,019 INFO ___FILE_ONLY___ ═
493
+ 2025-11-03 14:39:20,022 INFO ___FILE_ONLY___ ═
494
+ 2025-11-03 14:39:20,025 INFO ___FILE_ONLY___ ═
495
+ 2025-11-03 14:39:20,028 INFO ___FILE_ONLY___ ═
496
+ 2025-11-03 14:39:20,030 INFO ___FILE_ONLY___ ═
497
+ 2025-11-03 14:39:20,032 INFO ___FILE_ONLY___ ═
498
+ 2025-11-03 14:39:20,035 INFO ___FILE_ONLY___ ═
499
+ 2025-11-03 14:39:20,038 INFO ___FILE_ONLY___ ═
500
+ 2025-11-03 14:39:20,040 INFO ___FILE_ONLY___ ═
501
+ 2025-11-03 14:39:20,043 INFO ___FILE_ONLY___ ═
502
+ 2025-11-03 14:39:20,045 INFO ___FILE_ONLY___ ═
503
+ 2025-11-03 14:39:20,048 INFO ___FILE_ONLY___ ═
504
+ 2025-11-03 14:39:20,050 INFO ___FILE_ONLY___ ═
505
+ 2025-11-03 14:39:20,053 INFO ___FILE_ONLY___ ═
506
+ 2025-11-03 14:39:20,055 INFO ___FILE_ONLY___ ═
507
+ 2025-11-03 14:39:20,059 INFO ___FILE_ONLY___ ═
508
+ 2025-11-03 14:39:20,062 INFO ___FILE_ONLY___ ═
509
+ 2025-11-03 14:39:20,064 INFO ___FILE_ONLY___ ═
510
+ 2025-11-03 14:39:20,067 INFO ___FILE_ONLY___ ═
511
+ 2025-11-03 14:39:20,069 INFO ___FILE_ONLY___ ═
512
+ 2025-11-03 14:39:20,071 INFO ___FILE_ONLY___ ═
513
+ 2025-11-03 14:39:20,074 INFO ___FILE_ONLY___ ═
514
+ 2025-11-03 14:39:20,076 INFO ___FILE_ONLY___ ═
515
+ 2025-11-03 14:39:20,079 INFO ___FILE_ONLY___ ═
516
+ 2025-11-03 14:39:20,081 INFO ___FILE_ONLY___ ═
517
+ 2025-11-03 14:39:20,084 INFO ___FILE_ONLY___ ═
518
+ 2025-11-03 14:39:20,086 INFO ___FILE_ONLY___ ═
519
+ 2025-11-03 14:39:20,088 INFO ___FILE_ONLY___ ═
520
+ 2025-11-03 14:39:20,090 INFO ___FILE_ONLY___ ═
521
+ 2025-11-03 14:39:20,092 INFO ___FILE_ONLY___ ═
522
+ 2025-11-03 14:39:20,094 INFO ___FILE_ONLY___ ═
523
+ 2025-11-03 14:39:20,098 INFO ___FILE_ONLY___ ═
524
+ 2025-11-03 14:39:20,100 INFO ___FILE_ONLY___ ═
525
+ 2025-11-03 14:39:20,103 INFO ___FILE_ONLY___ ═
526
+ 2025-11-03 14:39:20,105 INFO ___FILE_ONLY___ ═
527
+ 2025-11-03 14:39:20,109 INFO ___FILE_ONLY___ ═
528
+ 2025-11-03 14:39:20,120 INFO ___FILE_ONLY___ ═
529
+ 2025-11-03 14:39:20,125 INFO ___FILE_ONLY___ ═
530
+ 2025-11-03 14:39:20,128 INFO ___FILE_ONLY___ ═
531
+ 2025-11-03 14:39:20,130 INFO ___FILE_ONLY___ ═
532
+ 2025-11-03 14:39:20,133 INFO ___FILE_ONLY___ ═
533
+ 2025-11-03 14:39:20,136 INFO ___FILE_ONLY___ ═
534
+ 2025-11-03 14:39:20,139 INFO ___FILE_ONLY___ ═
535
+ 2025-11-03 14:39:20,144 INFO ___FILE_ONLY___ ═
536
+ 2025-11-03 14:39:20,146 INFO ___FILE_ONLY___ ═
537
+ 2025-11-03 14:39:20,149 INFO ___FILE_ONLY___ ═
538
+ 2025-11-03 14:39:20,151 INFO ___FILE_ONLY___ ═
539
+ 2025-11-03 14:39:20,154 INFO ___FILE_ONLY___ ═
540
+ 2025-11-03 14:39:20,156 INFO ___FILE_ONLY___ ═
541
+ 2025-11-03 14:39:20,159 INFO ___FILE_ONLY___ ═
542
+ 2025-11-03 14:39:20,162 INFO ___FILE_ONLY___ ═
543
+ 2025-11-03 14:39:20,164 INFO ___FILE_ONLY___ ═
544
+ 2025-11-03 14:39:20,167 INFO ___FILE_ONLY___ ═
545
+ 2025-11-03 14:39:20,169 INFO ___FILE_ONLY___ ═
546
+ 2025-11-03 14:39:20,172 INFO ___FILE_ONLY___ ═
547
+ 2025-11-03 14:39:20,174 INFO ___FILE_ONLY___ ═
548
+ 2025-11-03 14:39:20,176 INFO ___FILE_ONLY___ ═
549
+ 2025-11-03 14:39:20,179 INFO ___FILE_ONLY___ ═
550
+ 2025-11-03 14:39:20,179 INFO ___FILE_ONLY___ ╝
551
+
552
+ 2025-11-03 14:39:20,188 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
553
+
554
+ 2025-11-03 14:39:20,188 INFO ___FILE_ONLY___ ╠═ Installing: BigQuery Command Line Tool (Platform Spec... ═╣
555
+
556
+ 2025-11-03 14:39:20,188 INFO ___FILE_ONLY___ ╚
557
+ 2025-11-03 14:39:20,189 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
558
+ 2025-11-03 14:39:20,189 INFO ___FILE_ONLY___ ╝
559
+
560
+ 2025-11-03 14:39:20,193 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
561
+
562
+ 2025-11-03 14:39:20,194 INFO ___FILE_ONLY___ ╠═ Installing: Bundled Python 3.12 ═╣
563
+
564
+ 2025-11-03 14:39:20,194 INFO ___FILE_ONLY___ ╚
565
+ 2025-11-03 14:39:20,196 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
566
+ 2025-11-03 14:39:20,196 INFO ___FILE_ONLY___ ╝
567
+
568
+ 2025-11-03 14:39:20,198 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
569
+
570
+ 2025-11-03 14:39:20,198 INFO ___FILE_ONLY___ ╠═ Installing: Bundled Python 3.12 (Platform Specific) ═╣
571
+
572
+ 2025-11-03 14:39:20,198 INFO ___FILE_ONLY___ ╚
573
+ 2025-11-03 14:39:22,375 INFO ___FILE_ONLY___ ═
574
+ 2025-11-03 14:39:22,388 INFO ___FILE_ONLY___ ═
575
+ 2025-11-03 14:39:22,401 INFO ___FILE_ONLY___ ═
576
+ 2025-11-03 14:39:22,414 INFO ___FILE_ONLY___ ═
577
+ 2025-11-03 14:39:22,428 INFO ___FILE_ONLY___ ═
578
+ 2025-11-03 14:39:22,442 INFO ___FILE_ONLY___ ═
579
+ 2025-11-03 14:39:22,456 INFO ___FILE_ONLY___ ═
580
+ 2025-11-03 14:39:22,469 INFO ___FILE_ONLY___ ═
581
+ 2025-11-03 14:39:22,483 INFO ___FILE_ONLY___ ═
582
+ 2025-11-03 14:39:22,496 INFO ___FILE_ONLY___ ═
583
+ 2025-11-03 14:39:22,510 INFO ___FILE_ONLY___ ═
584
+ 2025-11-03 14:39:22,524 INFO ___FILE_ONLY___ ═
585
+ 2025-11-03 14:39:22,537 INFO ___FILE_ONLY___ ═
586
+ 2025-11-03 14:39:22,551 INFO ___FILE_ONLY___ ═
587
+ 2025-11-03 14:39:22,568 INFO ___FILE_ONLY___ ═
588
+ 2025-11-03 14:39:22,585 INFO ___FILE_ONLY___ ═
589
+ 2025-11-03 14:39:22,601 INFO ___FILE_ONLY___ ═
590
+ 2025-11-03 14:39:22,617 INFO ___FILE_ONLY___ ═
591
+ 2025-11-03 14:39:22,633 INFO ___FILE_ONLY___ ═
592
+ 2025-11-03 14:39:22,649 INFO ___FILE_ONLY___ ═
593
+ 2025-11-03 14:39:22,665 INFO ___FILE_ONLY___ ═
594
+ 2025-11-03 14:39:22,681 INFO ___FILE_ONLY___ ═
595
+ 2025-11-03 14:39:22,697 INFO ___FILE_ONLY___ ═
596
+ 2025-11-03 14:39:22,712 INFO ___FILE_ONLY___ ═
597
+ 2025-11-03 14:39:22,728 INFO ___FILE_ONLY___ ═
598
+ 2025-11-03 14:39:22,744 INFO ___FILE_ONLY___ ═
599
+ 2025-11-03 14:39:22,759 INFO ___FILE_ONLY___ ═
600
+ 2025-11-03 14:39:22,775 INFO ___FILE_ONLY___ ═
601
+ 2025-11-03 14:39:22,791 INFO ___FILE_ONLY___ ═
602
+ 2025-11-03 14:39:22,807 INFO ___FILE_ONLY___ ═
603
+ 2025-11-03 14:39:22,823 INFO ___FILE_ONLY___ ═
604
+ 2025-11-03 14:39:22,838 INFO ___FILE_ONLY___ ═
605
+ 2025-11-03 14:39:22,852 INFO ___FILE_ONLY___ ═
606
+ 2025-11-03 14:39:22,866 INFO ___FILE_ONLY___ ═
607
+ 2025-11-03 14:39:22,884 INFO ___FILE_ONLY___ ═
608
+ 2025-11-03 14:39:22,900 INFO ___FILE_ONLY___ ═
609
+ 2025-11-03 14:39:23,747 INFO ___FILE_ONLY___ ═
610
+ 2025-11-03 14:39:23,773 INFO ___FILE_ONLY___ ═
611
+ 2025-11-03 14:39:24,269 INFO ___FILE_ONLY___ ═
612
+ 2025-11-03 14:39:24,289 INFO ___FILE_ONLY___ ═
613
+ 2025-11-03 14:39:24,312 INFO ___FILE_ONLY___ ═
614
+ 2025-11-03 14:39:24,341 INFO ___FILE_ONLY___ ═
615
+ 2025-11-03 14:39:24,361 INFO ___FILE_ONLY___ ═
616
+ 2025-11-03 14:39:24,390 INFO ___FILE_ONLY___ ═
617
+ 2025-11-03 14:39:24,413 INFO ___FILE_ONLY___ ═
618
+ 2025-11-03 14:39:24,433 INFO ___FILE_ONLY___ ═
619
+ 2025-11-03 14:39:24,451 INFO ___FILE_ONLY___ ═
620
+ 2025-11-03 14:39:24,469 INFO ___FILE_ONLY___ ═
621
+ 2025-11-03 14:39:24,557 INFO ___FILE_ONLY___ ═
622
+ 2025-11-03 14:39:24,576 INFO ___FILE_ONLY___ ═
623
+ 2025-11-03 14:39:24,714 INFO ___FILE_ONLY___ ═
624
+ 2025-11-03 14:39:24,732 INFO ___FILE_ONLY___ ═
625
+ 2025-11-03 14:39:24,749 INFO ___FILE_ONLY___ ═
626
+ 2025-11-03 14:39:24,768 INFO ___FILE_ONLY___ ═
627
+ 2025-11-03 14:39:24,784 INFO ___FILE_ONLY___ ═
628
+ 2025-11-03 14:39:24,804 INFO ___FILE_ONLY___ ═
629
+ 2025-11-03 14:39:24,823 INFO ___FILE_ONLY___ ═
630
+ 2025-11-03 14:39:24,841 INFO ___FILE_ONLY___ ═
631
+ 2025-11-03 14:39:24,870 INFO ___FILE_ONLY___ ═
632
+ 2025-11-03 14:39:25,351 INFO ___FILE_ONLY___ ═
633
+ 2025-11-03 14:39:25,351 INFO ___FILE_ONLY___ ╝
634
+
635
+ 2025-11-03 14:39:25,406 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
636
+
637
+ 2025-11-03 14:39:25,406 INFO ___FILE_ONLY___ ╠═ Installing: Cloud Storage Command Line Tool ═╣
638
+
639
+ 2025-11-03 14:39:25,406 INFO ___FILE_ONLY___ ╚
640
+ 2025-11-03 14:39:25,946 INFO ___FILE_ONLY___ ═
641
+ 2025-11-03 14:39:25,959 INFO ___FILE_ONLY___ ═
642
+ 2025-11-03 14:39:25,971 INFO ___FILE_ONLY___ ═
643
+ 2025-11-03 14:39:25,982 INFO ___FILE_ONLY___ ═
644
+ 2025-11-03 14:39:25,993 INFO ___FILE_ONLY___ ═
645
+ 2025-11-03 14:39:26,029 INFO ___FILE_ONLY___ ═
646
+ 2025-11-03 14:39:26,043 INFO ___FILE_ONLY___ ═
647
+ 2025-11-03 14:39:26,060 INFO ___FILE_ONLY___ ═
648
+ 2025-11-03 14:39:26,077 INFO ___FILE_ONLY___ ═
649
+ 2025-11-03 14:39:26,093 INFO ___FILE_ONLY___ ═
650
+ 2025-11-03 14:39:26,112 INFO ___FILE_ONLY___ ═
651
+ 2025-11-03 14:39:26,124 INFO ___FILE_ONLY___ ═
652
+ 2025-11-03 14:39:26,136 INFO ___FILE_ONLY___ ═
653
+ 2025-11-03 14:39:26,146 INFO ___FILE_ONLY___ ═
654
+ 2025-11-03 14:39:26,156 INFO ___FILE_ONLY___ ═
655
+ 2025-11-03 14:39:26,174 INFO ___FILE_ONLY___ ═
656
+ 2025-11-03 14:39:26,189 INFO ___FILE_ONLY___ ═
657
+ 2025-11-03 14:39:26,199 INFO ___FILE_ONLY___ ═
658
+ 2025-11-03 14:39:26,212 INFO ___FILE_ONLY___ ═
659
+ 2025-11-03 14:39:26,224 INFO ___FILE_ONLY___ ═
660
+ 2025-11-03 14:39:26,235 INFO ___FILE_ONLY___ ═
661
+ 2025-11-03 14:39:26,249 INFO ___FILE_ONLY___ ═
662
+ 2025-11-03 14:39:26,260 INFO ___FILE_ONLY___ ═
663
+ 2025-11-03 14:39:26,272 INFO ___FILE_ONLY___ ═
664
+ 2025-11-03 14:39:26,283 INFO ___FILE_ONLY___ ═
665
+ 2025-11-03 14:39:26,295 INFO ___FILE_ONLY___ ═
666
+ 2025-11-03 14:39:26,307 INFO ___FILE_ONLY___ ═
667
+ 2025-11-03 14:39:26,321 INFO ___FILE_ONLY___ ═
668
+ 2025-11-03 14:39:26,339 INFO ___FILE_ONLY___ ═
669
+ 2025-11-03 14:39:26,352 INFO ___FILE_ONLY___ ═
670
+ 2025-11-03 14:39:26,365 INFO ___FILE_ONLY___ ═
671
+ 2025-11-03 14:39:26,387 INFO ___FILE_ONLY___ ═
672
+ 2025-11-03 14:39:26,404 INFO ___FILE_ONLY___ ═
673
+ 2025-11-03 14:39:26,424 INFO ___FILE_ONLY___ ═
674
+ 2025-11-03 14:39:26,439 INFO ___FILE_ONLY___ ═
675
+ 2025-11-03 14:39:26,457 INFO ___FILE_ONLY___ ═
676
+ 2025-11-03 14:39:26,468 INFO ___FILE_ONLY___ ═
677
+ 2025-11-03 14:39:26,479 INFO ___FILE_ONLY___ ═
678
+ 2025-11-03 14:39:26,517 INFO ___FILE_ONLY___ ═
679
+ 2025-11-03 14:39:26,532 INFO ___FILE_ONLY___ ═
680
+ 2025-11-03 14:39:26,545 INFO ___FILE_ONLY___ ═
681
+ 2025-11-03 14:39:26,556 INFO ___FILE_ONLY___ ═
682
+ 2025-11-03 14:39:26,568 INFO ___FILE_ONLY___ ═
683
+ 2025-11-03 14:39:26,579 INFO ___FILE_ONLY___ ═
684
+ 2025-11-03 14:39:26,591 INFO ___FILE_ONLY___ ═
685
+ 2025-11-03 14:39:26,602 INFO ___FILE_ONLY___ ═
686
+ 2025-11-03 14:39:26,612 INFO ___FILE_ONLY___ ═
687
+ 2025-11-03 14:39:26,622 INFO ___FILE_ONLY___ ═
688
+ 2025-11-03 14:39:26,633 INFO ___FILE_ONLY___ ═
689
+ 2025-11-03 14:39:26,647 INFO ___FILE_ONLY___ ═
690
+ 2025-11-03 14:39:26,662 INFO ___FILE_ONLY___ ═
691
+ 2025-11-03 14:39:26,676 INFO ___FILE_ONLY___ ═
692
+ 2025-11-03 14:39:26,691 INFO ___FILE_ONLY___ ═
693
+ 2025-11-03 14:39:26,705 INFO ___FILE_ONLY___ ═
694
+ 2025-11-03 14:39:26,718 INFO ___FILE_ONLY___ ═
695
+ 2025-11-03 14:39:26,734 INFO ___FILE_ONLY___ ═
696
+ 2025-11-03 14:39:26,752 INFO ___FILE_ONLY___ ═
697
+ 2025-11-03 14:39:26,773 INFO ___FILE_ONLY___ ═
698
+ 2025-11-03 14:39:26,791 INFO ___FILE_ONLY___ ═
699
+ 2025-11-03 14:39:26,810 INFO ___FILE_ONLY___ ═
700
+ 2025-11-03 14:39:26,811 INFO ___FILE_ONLY___ ╝
701
+
702
+ 2025-11-03 14:39:26,842 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
703
+
704
+ 2025-11-03 14:39:26,842 INFO ___FILE_ONLY___ ╠═ Installing: Cloud Storage Command Line Tool (Platform... ═╣
705
+
706
+ 2025-11-03 14:39:26,842 INFO ___FILE_ONLY___ ╚
707
+ 2025-11-03 14:39:26,843 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
708
+ 2025-11-03 14:39:26,843 INFO ___FILE_ONLY___ ╝
709
+
710
+ 2025-11-03 14:39:26,848 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
711
+
712
+ 2025-11-03 14:39:26,848 INFO ___FILE_ONLY___ ╠═ Installing: Default set of gcloud commands ═╣
713
+
714
+ 2025-11-03 14:39:26,848 INFO ___FILE_ONLY___ ╚
715
+ 2025-11-03 14:39:26,851 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
716
+ 2025-11-03 14:39:26,851 INFO ___FILE_ONLY___ ╝
717
+
718
+ 2025-11-03 14:39:26,853 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
719
+
720
+ 2025-11-03 14:39:26,853 INFO ___FILE_ONLY___ ╠═ Installing: Google Cloud CLI Core Libraries (Platform... ═╣
721
+
722
+ 2025-11-03 14:39:26,853 INFO ___FILE_ONLY___ ╚
723
+ 2025-11-03 14:39:26,854 INFO ___FILE_ONLY___ ══════════════════════════════
724
+ 2025-11-03 14:39:26,855 INFO ___FILE_ONLY___ ══════════════════════════════
725
+ 2025-11-03 14:39:26,855 INFO ___FILE_ONLY___ ╝
726
+
727
+ 2025-11-03 14:39:26,859 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
728
+
729
+ 2025-11-03 14:39:26,859 INFO ___FILE_ONLY___ ╠═ Installing: Google Cloud CRC32C Hash Tool ═╣
730
+
731
+ 2025-11-03 14:39:26,860 INFO ___FILE_ONLY___ ╚
732
+ 2025-11-03 14:39:26,862 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
733
+ 2025-11-03 14:39:26,862 INFO ___FILE_ONLY___ ╝
734
+
735
+ 2025-11-03 14:39:26,864 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
736
+
737
+ 2025-11-03 14:39:26,865 INFO ___FILE_ONLY___ ╠═ Installing: Google Cloud CRC32C Hash Tool (Platform S... ═╣
738
+
739
+ 2025-11-03 14:39:26,865 INFO ___FILE_ONLY___ ╚
740
+ 2025-11-03 14:39:26,902 INFO ___FILE_ONLY___ ══════════════════════════════
741
+ 2025-11-03 14:39:26,903 INFO ___FILE_ONLY___ ══════════════════════════════
742
+ 2025-11-03 14:39:26,903 INFO ___FILE_ONLY___ ╝
743
+
744
+ 2025-11-03 14:39:26,908 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
745
+
746
+ 2025-11-03 14:39:26,908 INFO ___FILE_ONLY___ ╠═ Installing: gcloud cli dependencies (Platform Specific) ═╣
747
+
748
+ 2025-11-03 14:39:26,908 INFO ___FILE_ONLY___ ╚
749
+ 2025-11-03 14:39:26,909 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
750
+ 2025-11-03 14:39:26,909 INFO ___FILE_ONLY___ ╝
751
+
752
+ 2025-11-03 14:39:26,914 DEBUG root Updating notification cache...
753
+ 2025-11-03 14:39:26,915 INFO ___FILE_ONLY___
754
+
755
+ 2025-11-03 14:39:26,917 INFO ___FILE_ONLY___ Performing post processing steps...
756
+ 2025-11-03 14:39:26,918 DEBUG root Executing command: ['/tools/google-cloud-sdk/bin/gcloud', 'components', 'post-process']
757
+ 2025-11-03 14:39:36,454 DEBUG ___FILE_ONLY___
758
+ 2025-11-03 14:39:36,455 DEBUG ___FILE_ONLY___
759
+ 2025-11-03 14:39:36,706 INFO root descriptor_list: [{'universeDomain': 'googleapis.com', 'universeShortName': '', 'authenticationDomain': 'auth.cloud.google.com', 'projectPrefix': '', 'cloudWebDomain': 'cloud.google.com', 'documentationDomain': 'cloud.google.com', 'version': '1.0.0', 'state': 'primary', 'artifactRegistryDomain': 'pkg.dev'}]
760
+ 2025-11-03 14:39:36,706 INFO ___FILE_ONLY___
761
+ Update done!
762
+
763
+
764
+ 2025-11-03 14:39:36,710 DEBUG root Chosen display Format:none
765
+ 2025-11-03 14:39:36,710 INFO root Display format: "none"
content/.config/logs/2025.11.03/14.39.27.468532.log ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 2025-11-03 14:39:27,469 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-11-03 14:39:27,471 DEBUG root Loaded Command Group: ['gcloud', 'components', 'post_process']
3
+ 2025-11-03 14:39:27,473 DEBUG root Running [gcloud.components.post-process] with arguments: []
4
+ 2025-11-03 14:39:36,318 DEBUG root Chosen display Format:none
5
+ 2025-11-03 14:39:36,319 INFO root Display format: "none"
content/.config/logs/2025.11.03/14.39.37.422924.log ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-11-03 14:39:37,423 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-11-03 14:39:37,458 DEBUG root Loaded Command Group: ['gcloud', 'components', 'update']
3
+ 2025-11-03 14:39:37,460 DEBUG root Running [gcloud.components.update] with arguments: [--quiet: "True", COMPONENT-IDS:8: "['gcloud', 'core', 'bq', 'gsutil', 'compute', 'preview', 'alpha', 'beta']"]
4
+ 2025-11-03 14:39:37,462 INFO ___FILE_ONLY___ Beginning update. This process may take several minutes.
5
+
6
+ 2025-11-03 14:39:37,470 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
7
+ 2025-11-03 14:39:37,699 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components-2.json HTTP/1.1" 200 233157
8
+ 2025-11-03 14:39:37,714 WARNING root Component [compute] no longer exists.
9
+ 2025-11-03 14:39:37,714 INFO ___FILE_ONLY___
10
+
11
+ 2025-11-03 14:39:37,715 INFO ___FILE_ONLY___
12
+ Your current Google Cloud CLI version is: 545.0.0
13
+
14
+ 2025-11-03 14:39:37,715 INFO ___FILE_ONLY___ Installing components from version: 545.0.0
15
+
16
+ 2025-11-03 14:39:37,715 INFO ___FILE_ONLY___
17
+
18
+ 2025-11-03 14:39:37,715 DEBUG root Chosen display Format:table[box,title="These components will be removed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
19
+ 2025-11-03 14:39:37,716 DEBUG root Chosen display Format:table[box,title="These components will be updated."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
20
+ 2025-11-03 14:39:37,716 DEBUG root Chosen display Format:table[box,title="These components will be installed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
21
+ 2025-11-03 14:39:37,733 INFO ___FILE_ONLY___ ┌────────────────────────────────────────────────┐
22
+ 2025-11-03 14:39:37,733 INFO ___FILE_ONLY___
23
+
24
+ 2025-11-03 14:39:37,733 INFO ___FILE_ONLY___ │ These components will be installed. │
25
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___
26
+
27
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ ├─────────────────────────┬────────────┬─────────┤
28
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___
29
+
30
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ │ Name │ Version │ Size │
31
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___
32
+
33
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ ├─────────────────────────┼────────────┼─────────┤
34
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___
35
+
36
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ │
37
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ gcloud Alpha Commands
38
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___
39
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ │
40
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ 2025.10.24
41
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___
42
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ │
43
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ < 1 MiB
44
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___
45
+ 2025-11-03 14:39:37,734 INFO ___FILE_ONLY___ │
46
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
47
+
48
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ │
49
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ gcloud Beta Commands
50
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
51
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ │
52
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ 2025.10.24
53
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
54
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ │
55
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ < 1 MiB
56
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
57
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ │
58
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
59
+
60
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ │
61
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ gcloud Preview Commands
62
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
63
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ │
64
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
65
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___
66
+ 2025-11-03 14:39:37,735 INFO ___FILE_ONLY___ │
67
+ 2025-11-03 14:39:37,736 INFO ___FILE_ONLY___ < 1 MiB
68
+ 2025-11-03 14:39:37,736 INFO ___FILE_ONLY___
69
+ 2025-11-03 14:39:37,736 INFO ___FILE_ONLY___ │
70
+ 2025-11-03 14:39:37,736 INFO ___FILE_ONLY___
71
+
72
+ 2025-11-03 14:39:37,736 INFO ___FILE_ONLY___ └─────────────────────────┴──��─────────┴─────────┘
73
+ 2025-11-03 14:39:37,736 INFO ___FILE_ONLY___
74
+
75
+ 2025-11-03 14:39:37,736 INFO ___FILE_ONLY___
76
+
77
+ 2025-11-03 14:39:37,739 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
78
+ 2025-11-03 14:39:37,946 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/RELEASE_NOTES HTTP/1.1" 200 1509806
79
+ 2025-11-03 14:39:38,475 INFO ___FILE_ONLY___ For the latest full release notes, please visit:
80
+ https://cloud.google.com/sdk/release_notes
81
+
82
+
83
+ 2025-11-03 14:39:38,476 INFO ___FILE_ONLY___ Performing in place update...
84
+
85
+
86
+ 2025-11-03 14:39:38,478 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
87
+
88
+ 2025-11-03 14:39:38,478 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud Alpha Commands ═╣
89
+
90
+ 2025-11-03 14:39:38,478 INFO ___FILE_ONLY___ ╚
91
+ 2025-11-03 14:39:38,481 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
92
+ 2025-11-03 14:39:38,726 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-alpha-20251024121634.tar.gz HTTP/1.1" 200 800
93
+ 2025-11-03 14:39:38,727 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
94
+ 2025-11-03 14:39:38,727 INFO ___FILE_ONLY___ ╝
95
+
96
+ 2025-11-03 14:39:38,729 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
97
+
98
+ 2025-11-03 14:39:38,729 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud Beta Commands ═╣
99
+
100
+ 2025-11-03 14:39:38,729 INFO ___FILE_ONLY___ ╚
101
+ 2025-11-03 14:39:38,732 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
102
+ 2025-11-03 14:39:38,938 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-beta-20251024121634.tar.gz HTTP/1.1" 200 797
103
+ 2025-11-03 14:39:38,939 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
104
+ 2025-11-03 14:39:38,939 INFO ___FILE_ONLY___ ╝
105
+
106
+ 2025-11-03 14:39:38,941 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
107
+
108
+ 2025-11-03 14:39:38,941 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud Preview Commands ═╣
109
+
110
+ 2025-11-03 14:39:38,941 INFO ___FILE_ONLY___ ╚
111
+ 2025-11-03 14:39:38,944 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
112
+ 2025-11-03 14:39:39,187 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-preview-20241115154308.tar.gz HTTP/1.1" 200 823
113
+ 2025-11-03 14:39:39,188 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
114
+ 2025-11-03 14:39:39,188 INFO ___FILE_ONLY___ ╝
115
+
116
+ 2025-11-03 14:39:39,190 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
117
+
118
+ 2025-11-03 14:39:39,191 INFO ___FILE_ONLY___ ╠═ Installing: gcloud Alpha Commands ═╣
119
+
120
+ 2025-11-03 14:39:39,191 INFO ___FILE_ONLY___ ╚
121
+ 2025-11-03 14:39:39,192 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
122
+ 2025-11-03 14:39:39,192 INFO ___FILE_ONLY___ ╝
123
+
124
+ 2025-11-03 14:39:39,197 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
125
+
126
+ 2025-11-03 14:39:39,197 INFO ___FILE_ONLY___ ╠═ Installing: gcloud Beta Commands ═╣
127
+
128
+ 2025-11-03 14:39:39,197 INFO ___FILE_ONLY___ ╚
129
+ 2025-11-03 14:39:39,198 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
130
+ 2025-11-03 14:39:39,198 INFO ___FILE_ONLY___ ╝
131
+
132
+ 2025-11-03 14:39:39,204 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
133
+
134
+ 2025-11-03 14:39:39,204 INFO ___FILE_ONLY___ ╠═ Installing: gcloud Preview Commands ═╣
135
+
136
+ 2025-11-03 14:39:39,204 INFO ___FILE_ONLY___ ╚
137
+ 2025-11-03 14:39:39,205 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
138
+ 2025-11-03 14:39:39,205 INFO ___FILE_ONLY___ ╝
139
+
140
+ 2025-11-03 14:39:39,210 DEBUG root Updating notification cache...
141
+ 2025-11-03 14:39:39,211 INFO ___FILE_ONLY___
142
+
143
+ 2025-11-03 14:39:39,213 INFO ___FILE_ONLY___ Performing post processing steps...
144
+ 2025-11-03 14:39:39,213 DEBUG root Executing command: ['/tools/google-cloud-sdk/bin/gcloud', 'components', 'post-process']
145
+ 2025-11-03 14:39:49,015 DEBUG ___FILE_ONLY___
146
+ 2025-11-03 14:39:49,015 DEBUG ___FILE_ONLY___
147
+ 2025-11-03 14:39:49,231 INFO root descriptor_list: [{'universeDomain': 'googleapis.com', 'universeShortName': '', 'authenticationDomain': 'auth.cloud.google.com', 'projectPrefix': '', 'cloudWebDomain': 'cloud.google.com', 'documentationDomain': 'cloud.google.com', 'version': '1.0.0', 'state': 'primary', 'artifactRegistryDomain': 'pkg.dev'}]
148
+ 2025-11-03 14:39:49,232 INFO ___FILE_ONLY___
149
+ Update done!
150
+
151
+
152
+ 2025-11-03 14:39:49,234 DEBUG root Chosen display Format:none
153
+ 2025-11-03 14:39:49,234 INFO root Display format: "none"
content/.config/logs/2025.11.03/14.39.39.770295.log ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 2025-11-03 14:39:39,771 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-11-03 14:39:39,772 DEBUG root Loaded Command Group: ['gcloud', 'components', 'post_process']
3
+ 2025-11-03 14:39:39,774 DEBUG root Running [gcloud.components.post-process] with arguments: []
4
+ 2025-11-03 14:39:48,871 DEBUG root Chosen display Format:none
5
+ 2025-11-03 14:39:48,872 INFO root Display format: "none"
content/.config/logs/2025.11.03/14.39.49.932668.log ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ 2025-11-03 14:39:49,934 DEBUG root Loaded Command Group: ['gcloud', 'config']
2
+ 2025-11-03 14:39:50,033 DEBUG root Loaded Command Group: ['gcloud', 'config', 'set']
3
+ 2025-11-03 14:39:50,036 DEBUG root Running [gcloud.config.set] with arguments: [SECTION/PROPERTY: "component_manager/disable_update_check", VALUE: "true"]
4
+ 2025-11-03 14:39:50,037 INFO ___FILE_ONLY___ Updated property [component_manager/disable_update_check].
5
+
6
+ 2025-11-03 14:39:50,038 DEBUG root Chosen display Format:default
7
+ 2025-11-03 14:39:50,038 INFO root Display format: "default"
8
+ 2025-11-03 14:39:50,044 DEBUG root SDK update checks are disabled.
content/.config/logs/2025.11.03/14.39.50.786121.log ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ 2025-11-03 14:39:50,787 DEBUG root Loaded Command Group: ['gcloud', 'config']
2
+ 2025-11-03 14:39:50,884 DEBUG root Loaded Command Group: ['gcloud', 'config', 'set']
3
+ 2025-11-03 14:39:50,886 DEBUG root Running [gcloud.config.set] with arguments: [SECTION/PROPERTY: "compute/gce_metadata_read_timeout_sec", VALUE: "0"]
4
+ 2025-11-03 14:39:50,887 INFO ___FILE_ONLY___ Updated property [compute/gce_metadata_read_timeout_sec].
5
+
6
+ 2025-11-03 14:39:50,888 DEBUG root Chosen display Format:default
7
+ 2025-11-03 14:39:50,889 INFO root Display format: "default"
8
+ 2025-11-03 14:39:50,895 DEBUG root SDK update checks are disabled.
content/catboost_info/catboost_training.json ADDED
@@ -0,0 +1,704 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "meta":{"test_sets":[],"test_metrics":[],"learn_metrics":[{"best_value":"Min","name":"Logloss"}],"launch_mode":"Train","parameters":"","iteration_count":700,"learn_sets":["learn"],"name":"experiment"},
3
+ "iterations":[
4
+ {"learn":[0.6693583577],"iteration":0,"passed_time":0.01865212669,"remaining_time":13.03783656},
5
+ {"learn":[0.6477139008],"iteration":1,"passed_time":0.03458756226,"remaining_time":12.07105923},
6
+ {"learn":[0.628030331],"iteration":2,"passed_time":0.05041877062,"remaining_time":11.71396104},
7
+ {"learn":[0.6101154077],"iteration":3,"passed_time":0.06667631671,"remaining_time":11.60167911},
8
+ {"learn":[0.5929662391],"iteration":4,"passed_time":0.0830777077,"remaining_time":11.54780137},
9
+ {"learn":[0.5779215016],"iteration":5,"passed_time":0.11232623,"remaining_time":12.9924006},
10
+ {"learn":[0.5635537711],"iteration":6,"passed_time":0.1362002775,"remaining_time":13.48382748},
11
+ {"learn":[0.5499281966],"iteration":7,"passed_time":0.1521344541,"remaining_time":13.15963028},
12
+ {"learn":[0.537432518],"iteration":8,"passed_time":0.1680868496,"remaining_time":12.90533478},
13
+ {"learn":[0.5261347604],"iteration":9,"passed_time":0.1846384894,"remaining_time":12.74005577},
14
+ {"learn":[0.5158017254],"iteration":10,"passed_time":0.2011274277,"remaining_time":12.5978907},
15
+ {"learn":[0.5057060019],"iteration":11,"passed_time":0.2183500294,"remaining_time":12.51873502},
16
+ {"learn":[0.4966583459],"iteration":12,"passed_time":0.2344609216,"remaining_time":12.39035793},
17
+ {"learn":[0.4880953169],"iteration":13,"passed_time":0.2511674712,"remaining_time":12.30720609},
18
+ {"learn":[0.4807266708],"iteration":14,"passed_time":0.2676450326,"remaining_time":12.22245649},
19
+ {"learn":[0.473552984],"iteration":15,"passed_time":0.2840140929,"remaining_time":12.14160247},
20
+ {"learn":[0.4671030309],"iteration":16,"passed_time":0.3002439332,"remaining_time":12.06274155},
21
+ {"learn":[0.4606843277],"iteration":17,"passed_time":0.3163784082,"remaining_time":11.98722636},
22
+ {"learn":[0.4552058945],"iteration":18,"passed_time":0.3329022502,"remaining_time":11.9319175},
23
+ {"learn":[0.4492992689],"iteration":19,"passed_time":0.3498086563,"remaining_time":11.89349432},
24
+ {"learn":[0.4439409032],"iteration":20,"passed_time":0.3660912012,"remaining_time":11.83694884},
25
+ {"learn":[0.4389497637],"iteration":21,"passed_time":0.3838101671,"remaining_time":11.82833151},
26
+ {"learn":[0.4346480056],"iteration":22,"passed_time":0.4003929387,"remaining_time":11.78547911},
27
+ {"learn":[0.4306448388],"iteration":23,"passed_time":0.417273285,"remaining_time":11.75319753},
28
+ {"learn":[0.4265241492],"iteration":24,"passed_time":0.4332481263,"remaining_time":11.69769941},
29
+ {"learn":[0.4228412902],"iteration":25,"passed_time":0.4496340834,"remaining_time":11.65589893},
30
+ {"learn":[0.4193573119],"iteration":26,"passed_time":0.4656756731,"remaining_time":11.60739733},
31
+ {"learn":[0.4160587943],"iteration":27,"passed_time":0.4825201567,"remaining_time":11.58048376},
32
+ {"learn":[0.4129280643],"iteration":28,"passed_time":0.4992944248,"remaining_time":11.55263997},
33
+ {"learn":[0.4099001995],"iteration":29,"passed_time":0.5155521739,"remaining_time":11.51399855},
34
+ {"learn":[0.4071097682],"iteration":30,"passed_time":0.5313766693,"remaining_time":11.46745135},
35
+ {"learn":[0.4043702292],"iteration":31,"passed_time":0.5474695897,"remaining_time":11.42842768},
36
+ {"learn":[0.4018854653],"iteration":32,"passed_time":0.5637429816,"remaining_time":11.39444148},
37
+ {"learn":[0.3993758653],"iteration":33,"passed_time":0.5796752772,"remaining_time":11.35481572},
38
+ {"learn":[0.3971043262],"iteration":34,"passed_time":0.5957528617,"remaining_time":11.31930437},
39
+ {"learn":[0.3948935616],"iteration":35,"passed_time":0.6120851442,"remaining_time":11.28957044},
40
+ {"learn":[0.3929564998],"iteration":36,"passed_time":0.6283334354,"remaining_time":11.25905588},
41
+ {"learn":[0.3909427511],"iteration":37,"passed_time":0.6441231851,"remaining_time":11.22130391},
42
+ {"learn":[0.3891973895],"iteration":38,"passed_time":0.660403531,"remaining_time":11.19299318},
43
+ {"learn":[0.3875007765],"iteration":39,"passed_time":0.6761008324,"remaining_time":11.15566373},
44
+ {"learn":[0.385906558],"iteration":40,"passed_time":0.6924084971,"remaining_time":11.12919999},
45
+ {"learn":[0.384509948],"iteration":41,"passed_time":0.7085396441,"remaining_time":11.10045442},
46
+ {"learn":[0.383010682],"iteration":42,"passed_time":0.725732844,"remaining_time":11.08852276},
47
+ {"learn":[0.3817163272],"iteration":43,"passed_time":0.7416481608,"remaining_time":11.05729985},
48
+ {"learn":[0.380475967],"iteration":44,"passed_time":0.7576827266,"remaining_time":11.02849302},
49
+ {"learn":[0.379262517],"iteration":45,"passed_time":0.7726771134,"remaining_time":10.98545287},
50
+ {"learn":[0.3781763152],"iteration":46,"passed_time":0.7884400392,"remaining_time":10.95428395},
51
+ {"learn":[0.3771640466],"iteration":47,"passed_time":0.8044929279,"remaining_time":10.9276956},
52
+ {"learn":[0.3761616253],"iteration":48,"passed_time":0.8211239031,"remaining_time":10.90921757},
53
+ {"learn":[0.3751458709],"iteration":49,"passed_time":0.8370885855,"remaining_time":10.88215161},
54
+ {"learn":[0.3740434253],"iteration":50,"passed_time":0.8530863536,"remaining_time":10.85594203},
55
+ {"learn":[0.3730919138],"iteration":51,"passed_time":0.8693189838,"remaining_time":10.83305195},
56
+ {"learn":[0.372019777],"iteration":52,"passed_time":0.8848581964,"remaining_time":10.80194817},
57
+ {"learn":[0.3711592441],"iteration":53,"passed_time":0.9026463338,"remaining_time":10.79832466},
58
+ {"learn":[0.3703810452],"iteration":54,"passed_time":0.9223208006,"remaining_time":10.81630757},
59
+ {"learn":[0.3695687032],"iteration":55,"passed_time":0.9385781127,"remaining_time":10.7936483},
60
+ {"learn":[0.3687201613],"iteration":56,"passed_time":0.9538749702,"remaining_time":10.76037905},
61
+ {"learn":[0.3680214555],"iteration":57,"passed_time":0.9708719406,"remaining_time":10.74654803},
62
+ {"learn":[0.3673946263],"iteration":58,"passed_time":0.9866647832,"remaining_time":10.71952756},
63
+ {"learn":[0.3667363728],"iteration":59,"passed_time":1.002158274,"remaining_time":10.68968826},
64
+ {"learn":[0.3661825009],"iteration":60,"passed_time":1.018216475,"remaining_time":10.66623488},
65
+ {"learn":[0.3655205874],"iteration":61,"passed_time":1.033585696,"remaining_time":10.63593022},
66
+ {"learn":[0.3649776259],"iteration":62,"passed_time":1.049320872,"remaining_time":10.60979993},
67
+ {"learn":[0.3643694281],"iteration":63,"passed_time":1.065190733,"remaining_time":10.58533291},
68
+ {"learn":[0.3638445926],"iteration":64,"passed_time":1.080880802,"remaining_time":10.55937399},
69
+ {"learn":[0.3633160797],"iteration":65,"passed_time":1.097158402,"remaining_time":10.53937011},
70
+ {"learn":[0.3628515481],"iteration":66,"passed_time":1.112784581,"remaining_time":10.51332298},
71
+ {"learn":[0.3624389545],"iteration":67,"passed_time":1.132528968,"remaining_time":10.52585746},
72
+ {"learn":[0.3620307356],"iteration":68,"passed_time":1.15287329,"remaining_time":10.5429427},
73
+ {"learn":[0.3616249567],"iteration":69,"passed_time":1.175255212,"remaining_time":10.57729691},
74
+ {"learn":[0.3611576714],"iteration":70,"passed_time":1.193070407,"remaining_time":10.56959558},
75
+ {"learn":[0.3608498427],"iteration":71,"passed_time":1.209297345,"remaining_time":10.54776017},
76
+ {"learn":[0.3604745295],"iteration":72,"passed_time":1.224935588,"remaining_time":10.5210221},
77
+ {"learn":[0.360160775],"iteration":73,"passed_time":1.240559542,"remaining_time":10.49446315},
78
+ {"learn":[0.3597599285],"iteration":74,"passed_time":1.256324734,"remaining_time":10.46937279},
79
+ {"learn":[0.3594184621],"iteration":75,"passed_time":1.271652918,"remaining_time":10.44093974},
80
+ {"learn":[0.3590822767],"iteration":76,"passed_time":1.2876072,"remaining_time":10.4179128},
81
+ {"learn":[0.3588411484],"iteration":77,"passed_time":1.304212473,"remaining_time":10.40025844},
82
+ {"learn":[0.3584713601],"iteration":78,"passed_time":1.320112788,"remaining_time":10.37708913},
83
+ {"learn":[0.3581468869],"iteration":79,"passed_time":1.335718752,"remaining_time":10.35182033},
84
+ {"learn":[0.357792436],"iteration":80,"passed_time":1.351146243,"remaining_time":10.32542623},
85
+ {"learn":[0.3575437086],"iteration":81,"passed_time":1.368243267,"remaining_time":10.31188219},
86
+ {"learn":[0.3572471216],"iteration":82,"passed_time":1.383935113,"remaining_time":10.2878068},
87
+ {"learn":[0.3569938279],"iteration":83,"passed_time":1.399416461,"remaining_time":10.26238738},
88
+ {"learn":[0.3567045958],"iteration":84,"passed_time":1.414301628,"remaining_time":10.23288825},
89
+ {"learn":[0.3564370627],"iteration":85,"passed_time":1.430064219,"remaining_time":10.20999337},
90
+ {"learn":[0.3562029233],"iteration":86,"passed_time":1.445912185,"remaining_time":10.18786401},
91
+ {"learn":[0.3559449935],"iteration":87,"passed_time":1.462334039,"remaining_time":10.16986854},
92
+ {"learn":[0.3557689097],"iteration":88,"passed_time":1.47830579,"remaining_time":10.1488184},
93
+ {"learn":[0.3555588918],"iteration":89,"passed_time":1.494461736,"remaining_time":10.12912954},
94
+ {"learn":[0.355310147],"iteration":90,"passed_time":1.509688898,"remaining_time":10.10330262},
95
+ {"learn":[0.3550349801],"iteration":91,"passed_time":1.525695745,"remaining_time":10.08285883},
96
+ {"learn":[0.3548768654],"iteration":92,"passed_time":1.541432104,"remaining_time":10.06074502},
97
+ {"learn":[0.3546973132],"iteration":93,"passed_time":1.556733556,"remaining_time":10.03596314},
98
+ {"learn":[0.3544483418],"iteration":94,"passed_time":1.571281627,"remaining_time":10.00658299},
99
+ {"learn":[0.3542316662],"iteration":95,"passed_time":1.586309106,"remaining_time":9.980528126},
100
+ {"learn":[0.3540577261],"iteration":96,"passed_time":1.602653789,"remaining_time":9.962889021},
101
+ {"learn":[0.3538645619],"iteration":97,"passed_time":1.618533567,"remaining_time":9.942420486},
102
+ {"learn":[0.3536669186],"iteration":98,"passed_time":1.634405083,"remaining_time":9.921994491},
103
+ {"learn":[0.3534577199],"iteration":99,"passed_time":1.650075911,"remaining_time":9.900455467},
104
+ {"learn":[0.3532980366],"iteration":100,"passed_time":1.666481187,"remaining_time":9.883388426},
105
+ {"learn":[0.3531143364],"iteration":101,"passed_time":1.682352214,"remaining_time":9.863202197},
106
+ {"learn":[0.3529525442],"iteration":102,"passed_time":1.697257392,"remaining_time":9.83750158},
107
+ {"learn":[0.352720932],"iteration":103,"passed_time":1.712669295,"remaining_time":9.814912499},
108
+ {"learn":[0.3525441858],"iteration":104,"passed_time":1.728641479,"remaining_time":9.79563505},
109
+ {"learn":[0.3523488954],"iteration":105,"passed_time":1.744725107,"remaining_time":9.777044467},
110
+ {"learn":[0.3521533784],"iteration":106,"passed_time":1.760464663,"remaining_time":9.75659388},
111
+ {"learn":[0.3520032112],"iteration":107,"passed_time":1.776160127,"remaining_time":9.735988846},
112
+ {"learn":[0.3518237985],"iteration":108,"passed_time":1.791493465,"remaining_time":9.713510436},
113
+ {"learn":[0.3516535359],"iteration":109,"passed_time":1.806730086,"remaining_time":9.690643186},
114
+ {"learn":[0.3515493984],"iteration":110,"passed_time":1.821961682,"remaining_time":9.667886766},
115
+ {"learn":[0.351366709],"iteration":111,"passed_time":1.836755648,"remaining_time":9.642967151},
116
+ {"learn":[0.3512264938],"iteration":112,"passed_time":1.851543786,"remaining_time":9.618196482},
117
+ {"learn":[0.3510295301],"iteration":113,"passed_time":1.866795209,"remaining_time":9.59598239},
118
+ {"learn":[0.3509164168],"iteration":114,"passed_time":1.882892384,"remaining_time":9.578191694},
119
+ {"learn":[0.3507827897],"iteration":115,"passed_time":1.900041467,"remaining_time":9.565726004},
120
+ {"learn":[0.3506489185],"iteration":116,"passed_time":1.919069729,"remaining_time":9.562544036},
121
+ {"learn":[0.3505308903],"iteration":117,"passed_time":1.934436136,"remaining_time":9.541032469},
122
+ {"learn":[0.3504389356],"iteration":118,"passed_time":1.950137177,"remaining_time":9.52125798},
123
+ {"learn":[0.3503299529],"iteration":119,"passed_time":1.967775977,"remaining_time":9.510917223},
124
+ {"learn":[0.3502196978],"iteration":120,"passed_time":1.982812677,"remaining_time":9.488004461},
125
+ {"learn":[0.3500952209],"iteration":121,"passed_time":1.998823569,"remaining_time":9.469836251},
126
+ {"learn":[0.3499537508],"iteration":122,"passed_time":2.014944159,"remaining_time":9.45221772},
127
+ {"learn":[0.3498405677],"iteration":123,"passed_time":2.02993917,"remaining_time":9.429394852},
128
+ {"learn":[0.3497413452],"iteration":124,"passed_time":2.045058174,"remaining_time":9.407267602},
129
+ {"learn":[0.3496569372],"iteration":125,"passed_time":2.059579338,"remaining_time":9.382528094},
130
+ {"learn":[0.3495457584],"iteration":126,"passed_time":2.075097866,"remaining_time":9.362449425},
131
+ {"learn":[0.3494268587],"iteration":127,"passed_time":2.090921899,"remaining_time":9.343807236},
132
+ {"learn":[0.3493299019],"iteration":128,"passed_time":2.106776347,"remaining_time":9.325343366},
133
+ {"learn":[0.3492671057],"iteration":129,"passed_time":2.122184211,"remaining_time":9.30496154},
134
+ {"learn":[0.3491970068],"iteration":130,"passed_time":2.137863715,"remaining_time":9.285835527},
135
+ {"learn":[0.3491134179],"iteration":131,"passed_time":2.152905589,"remaining_time":9.264017988},
136
+ {"learn":[0.3490168272],"iteration":132,"passed_time":2.168520585,"remaining_time":9.244745651},
137
+ {"learn":[0.3489065373],"iteration":133,"passed_time":2.188268102,"remaining_time":9.242983177},
138
+ {"learn":[0.3487909665],"iteration":134,"passed_time":2.207644116,"remaining_time":9.239399449},
139
+ {"learn":[0.3487346189],"iteration":135,"passed_time":2.233057874,"remaining_time":9.26062236},
140
+ {"learn":[0.34863144],"iteration":136,"passed_time":2.248304473,"remaining_time":9.239382614},
141
+ {"learn":[0.348476846],"iteration":137,"passed_time":2.263890083,"remaining_time":9.219610338},
142
+ {"learn":[0.3483455195],"iteration":138,"passed_time":2.279316356,"remaining_time":9.199255219},
143
+ {"learn":[0.3482603795],"iteration":139,"passed_time":2.294547482,"remaining_time":9.17818993},
144
+ {"learn":[0.3481707951],"iteration":140,"passed_time":2.319552452,"remaining_time":9.195956176},
145
+ {"learn":[0.3480961995],"iteration":141,"passed_time":2.360873448,"remaining_time":9.277235098},
146
+ {"learn":[0.3479716703],"iteration":142,"passed_time":2.398541986,"remaining_time":9.342572633},
147
+ {"learn":[0.3478644305],"iteration":143,"passed_time":2.432609106,"remaining_time":9.392574047},
148
+ {"learn":[0.3477603453],"iteration":144,"passed_time":2.469232654,"remaining_time":9.451200849},
149
+ {"learn":[0.3476748915],"iteration":145,"passed_time":2.506379206,"remaining_time":9.510507398},
150
+ {"learn":[0.3475981871],"iteration":146,"passed_time":2.547768694,"remaining_time":9.584463182},
151
+ {"learn":[0.3475498743],"iteration":147,"passed_time":2.586595851,"remaining_time":9.647303443},
152
+ {"learn":[0.3474708692],"iteration":148,"passed_time":2.627151488,"remaining_time":9.715170939},
153
+ {"learn":[0.3474002649],"iteration":149,"passed_time":2.669977206,"remaining_time":9.789916422},
154
+ {"learn":[0.3473024192],"iteration":150,"passed_time":2.705921463,"remaining_time":9.838085318},
155
+ {"learn":[0.3472470128],"iteration":151,"passed_time":2.742570456,"remaining_time":9.887688224},
156
+ {"learn":[0.347147616],"iteration":152,"passed_time":2.781770856,"remaining_time":9.945285348},
157
+ {"learn":[0.3470970374],"iteration":153,"passed_time":2.822281895,"remaining_time":10.00627217},
158
+ {"learn":[0.3470168821],"iteration":154,"passed_time":2.862211586,"remaining_time":10.06390525},
159
+ {"learn":[0.3469638635],"iteration":155,"passed_time":2.909171781,"remaining_time":10.14480416},
160
+ {"learn":[0.3469139298],"iteration":156,"passed_time":2.949198769,"remaining_time":10.2000951},
161
+ {"learn":[0.3468255654],"iteration":157,"passed_time":2.988617608,"remaining_time":10.25209331},
162
+ {"learn":[0.3467315541],"iteration":158,"passed_time":3.027149685,"remaining_time":10.2999244},
163
+ {"learn":[0.3466544837],"iteration":159,"passed_time":3.067973263,"remaining_time":10.35440976},
164
+ {"learn":[0.3465898574],"iteration":160,"passed_time":3.106035713,"remaining_time":10.39846739},
165
+ {"learn":[0.3465275841],"iteration":161,"passed_time":3.145590366,"remaining_time":10.44646677},
166
+ {"learn":[0.3464766569],"iteration":162,"passed_time":3.183824494,"remaining_time":10.48904143},
167
+ {"learn":[0.3464196297],"iteration":163,"passed_time":3.230074141,"remaining_time":10.55682768},
168
+ {"learn":[0.3463545154],"iteration":164,"passed_time":3.269585225,"remaining_time":10.6013824},
169
+ {"learn":[0.3462822379],"iteration":165,"passed_time":3.31091483,"remaining_time":10.65077421},
170
+ {"learn":[0.3462016817],"iteration":166,"passed_time":3.336220211,"remaining_time":10.64793636},
171
+ {"learn":[0.3461531597],"iteration":167,"passed_time":3.376383622,"remaining_time":10.69188147},
172
+ {"learn":[0.3460966728],"iteration":168,"passed_time":3.402090205,"remaining_time":10.68940769},
173
+ {"learn":[0.3460331271],"iteration":169,"passed_time":3.426235468,"remaining_time":10.68179293},
174
+ {"learn":[0.3459555512],"iteration":170,"passed_time":3.450143567,"remaining_time":10.67325115},
175
+ {"learn":[0.3459097133],"iteration":171,"passed_time":3.474912066,"remaining_time":10.66717192},
176
+ {"learn":[0.3458622545],"iteration":172,"passed_time":3.500473859,"remaining_time":10.6632932},
177
+ {"learn":[0.3458136803],"iteration":173,"passed_time":3.526967252,"remaining_time":10.66198146},
178
+ {"learn":[0.3457595636],"iteration":174,"passed_time":3.5510893,"remaining_time":10.6532679},
179
+ {"learn":[0.3456799834],"iteration":175,"passed_time":3.57518436,"remaining_time":10.64429889},
180
+ {"learn":[0.3456301891],"iteration":176,"passed_time":3.599148696,"remaining_time":10.6347727},
181
+ {"learn":[0.3455485872],"iteration":177,"passed_time":3.624690193,"remaining_time":10.62970944},
182
+ {"learn":[0.3454828804],"iteration":178,"passed_time":3.656224449,"remaining_time":10.64185999},
183
+ {"learn":[0.345395492],"iteration":179,"passed_time":3.680855291,"remaining_time":10.63358195},
184
+ {"learn":[0.3453230402],"iteration":180,"passed_time":3.719229037,"remaining_time":10.66452967},
185
+ {"learn":[0.3452733157],"iteration":181,"passed_time":3.747628623,"remaining_time":10.66632762},
186
+ {"learn":[0.3452000796],"iteration":182,"passed_time":3.784341855,"remaining_time":10.69128273},
187
+ {"learn":[0.345130643],"iteration":183,"passed_time":3.828873591,"remaining_time":10.73749333},
188
+ {"learn":[0.3450523351],"iteration":184,"passed_time":3.86798823,"remaining_time":10.76764291},
189
+ {"learn":[0.3450015473],"iteration":185,"passed_time":3.907913884,"remaining_time":10.7992889},
190
+ {"learn":[0.3449318144],"iteration":186,"passed_time":3.931695983,"remaining_time":10.78588256},
191
+ {"learn":[0.3448912923],"iteration":187,"passed_time":3.953022356,"remaining_time":10.76567791},
192
+ {"learn":[0.3448336028],"iteration":188,"passed_time":3.977794309,"remaining_time":10.75477721},
193
+ {"learn":[0.3447925055],"iteration":189,"passed_time":4.005782534,"remaining_time":10.75236364},
194
+ {"learn":[0.3447422929],"iteration":190,"passed_time":4.049402043,"remaining_time":10.79133843},
195
+ {"learn":[0.3447172999],"iteration":191,"passed_time":4.08320109,"remaining_time":10.80346955},
196
+ {"learn":[0.3446466607],"iteration":192,"passed_time":4.123720982,"remaining_time":10.83277999},
197
+ {"learn":[0.3445972673],"iteration":193,"passed_time":4.167750498,"remaining_time":10.8705245},
198
+ {"learn":[0.3445478216],"iteration":194,"passed_time":4.203789383,"remaining_time":10.88673661},
199
+ {"learn":[0.3444930079],"iteration":195,"passed_time":4.246007882,"remaining_time":10.91830598},
200
+ {"learn":[0.3444503768],"iteration":196,"passed_time":4.285158918,"remaining_time":10.94129409},
201
+ {"learn":[0.3444047481],"iteration":197,"passed_time":4.317785339,"remaining_time":10.94711232},
202
+ {"learn":[0.3443564875],"iteration":198,"passed_time":4.356154694,"remaining_time":10.96700252},
203
+ {"learn":[0.3443102313],"iteration":199,"passed_time":4.383902132,"remaining_time":10.95975533},
204
+ {"learn":[0.3442544067],"iteration":200,"passed_time":4.41238953,"remaining_time":10.95414117},
205
+ {"learn":[0.3442094925],"iteration":201,"passed_time":4.448829656,"remaining_time":10.96790677},
206
+ {"learn":[0.3441584607],"iteration":202,"passed_time":4.495294419,"remaining_time":11.00572082},
207
+ {"learn":[0.3441317423],"iteration":203,"passed_time":4.532038737,"remaining_time":11.01907458},
208
+ {"learn":[0.3440640311],"iteration":204,"passed_time":4.577055553,"remaining_time":11.05191463},
209
+ {"learn":[0.344003065],"iteration":205,"passed_time":4.620470806,"remaining_time":11.08015815},
210
+ {"learn":[0.3439352144],"iteration":206,"passed_time":4.650901734,"remaining_time":11.07678529},
211
+ {"learn":[0.3438830847],"iteration":207,"passed_time":4.666982389,"remaining_time":11.03920834},
212
+ {"learn":[0.3438148158],"iteration":208,"passed_time":4.6831025,"remaining_time":11.0019298},
213
+ {"learn":[0.343793448],"iteration":209,"passed_time":4.697753613,"remaining_time":10.9614251},
214
+ {"learn":[0.3437594617],"iteration":210,"passed_time":4.713570414,"remaining_time":10.92386698},
215
+ {"learn":[0.3437058679],"iteration":211,"passed_time":4.729317506,"remaining_time":10.8863535},
216
+ {"learn":[0.3436483004],"iteration":212,"passed_time":4.744371977,"remaining_time":10.84746081},
217
+ {"learn":[0.343590454],"iteration":213,"passed_time":4.759872193,"remaining_time":10.8098032},
218
+ {"learn":[0.3435563805],"iteration":214,"passed_time":4.774987109,"remaining_time":10.77148255},
219
+ {"learn":[0.3435081897],"iteration":215,"passed_time":4.790411657,"remaining_time":10.73407057},
220
+ {"learn":[0.3434632755],"iteration":216,"passed_time":4.806460622,"remaining_time":10.69825106},
221
+ {"learn":[0.3433945186],"iteration":217,"passed_time":4.821901147,"remaining_time":10.66126767},
222
+ {"learn":[0.3433496567],"iteration":218,"passed_time":4.837108353,"remaining_time":10.62396858},
223
+ {"learn":[0.3433090649],"iteration":219,"passed_time":4.852692133,"remaining_time":10.58769193},
224
+ {"learn":[0.3432748869],"iteration":220,"passed_time":4.868116205,"remaining_time":10.55125639},
225
+ {"learn":[0.3432341382],"iteration":221,"passed_time":4.885535143,"remaining_time":10.5193054},
226
+ {"learn":[0.3431823745],"iteration":222,"passed_time":4.903280165,"remaining_time":10.48818224},
227
+ {"learn":[0.3431280661],"iteration":223,"passed_time":4.926439929,"remaining_time":10.46868485},
228
+ {"learn":[0.3430701674],"iteration":224,"passed_time":4.946037481,"remaining_time":10.44163468},
229
+ {"learn":[0.3430304993],"iteration":225,"passed_time":4.971464165,"remaining_time":10.42687617},
230
+ {"learn":[0.3429804262],"iteration":226,"passed_time":5.009577291,"remaining_time":10.43845841},
231
+ {"learn":[0.3429589364],"iteration":227,"passed_time":5.023847884,"remaining_time":10.4002465},
232
+ {"learn":[0.3429145277],"iteration":228,"passed_time":5.040267077,"remaining_time":10.36666285},
233
+ {"learn":[0.3428644197],"iteration":229,"passed_time":5.056120349,"remaining_time":10.33207202},
234
+ {"learn":[0.3428323505],"iteration":230,"passed_time":5.072636328,"remaining_time":10.29898891},
235
+ {"learn":[0.3427805868],"iteration":231,"passed_time":5.089705399,"remaining_time":10.26716434},
236
+ {"learn":[0.3427590273],"iteration":232,"passed_time":5.10595368,"remaining_time":10.23382132},
237
+ {"learn":[0.3427080827],"iteration":233,"passed_time":5.121845906,"remaining_time":10.19991535},
238
+ {"learn":[0.3426846409],"iteration":234,"passed_time":5.137764265,"remaining_time":10.1662144},
239
+ {"learn":[0.3426580967],"iteration":235,"passed_time":5.154148781,"remaining_time":10.13358065},
240
+ {"learn":[0.3426098013],"iteration":236,"passed_time":5.170969668,"remaining_time":10.10193653},
241
+ {"learn":[0.3425897581],"iteration":237,"passed_time":5.186875434,"remaining_time":10.06864055},
242
+ {"learn":[0.3425521815],"iteration":238,"passed_time":5.203309533,"remaining_time":10.03650918},
243
+ {"learn":[0.3424989189],"iteration":239,"passed_time":5.220129541,"remaining_time":10.00524829},
244
+ {"learn":[0.3424636777],"iteration":240,"passed_time":5.235224435,"remaining_time":9.970821641},
245
+ {"learn":[0.3424409505],"iteration":241,"passed_time":5.250775633,"remaining_time":9.937418347},
246
+ {"learn":[0.3423942237],"iteration":242,"passed_time":5.26607982,"remaining_time":9.903697438},
247
+ {"learn":[0.3423794963],"iteration":243,"passed_time":5.281257465,"remaining_time":9.869891},
248
+ {"learn":[0.342337911],"iteration":244,"passed_time":5.297099158,"remaining_time":9.837469865},
249
+ {"learn":[0.3423066785],"iteration":245,"passed_time":5.311572095,"remaining_time":9.802657444},
250
+ {"learn":[0.3422774328],"iteration":246,"passed_time":5.32667706,"remaining_time":9.769168859},
251
+ {"learn":[0.3422391416],"iteration":247,"passed_time":5.341452636,"remaining_time":9.735228192},
252
+ {"learn":[0.3422052948],"iteration":248,"passed_time":5.357044195,"remaining_time":9.702919405},
253
+ {"learn":[0.3421800578],"iteration":249,"passed_time":5.37712671,"remaining_time":9.678828079},
254
+ {"learn":[0.3421386991],"iteration":250,"passed_time":5.403481686,"remaining_time":9.665989151},
255
+ {"learn":[0.3420818287],"iteration":251,"passed_time":5.424865061,"remaining_time":9.644204552},
256
+ {"learn":[0.3420561385],"iteration":252,"passed_time":5.440331523,"remaining_time":9.611969133},
257
+ {"learn":[0.34202515],"iteration":253,"passed_time":5.455718091,"remaining_time":9.579725466},
258
+ {"learn":[0.3419859002],"iteration":254,"passed_time":5.47133636,"remaining_time":9.548018353},
259
+ {"learn":[0.3419502582],"iteration":255,"passed_time":5.486436114,"remaining_time":9.515537634},
260
+ {"learn":[0.3418838193],"iteration":256,"passed_time":5.502844969,"remaining_time":9.485448722},
261
+ {"learn":[0.3418690396],"iteration":257,"passed_time":5.517254835,"remaining_time":9.452041229},
262
+ {"learn":[0.341839794],"iteration":258,"passed_time":5.533362407,"remaining_time":9.421671125},
263
+ {"learn":[0.3417826622],"iteration":259,"passed_time":5.549026483,"remaining_time":9.390660201},
264
+ {"learn":[0.341756972],"iteration":260,"passed_time":5.563892864,"remaining_time":9.358425163},
265
+ {"learn":[0.3417198485],"iteration":261,"passed_time":5.579075382,"remaining_time":9.326851211},
266
+ {"learn":[0.3416694442],"iteration":262,"passed_time":5.594062334,"remaining_time":9.295076957},
267
+ {"learn":[0.3416337674],"iteration":263,"passed_time":5.609435283,"remaining_time":9.26406736},
268
+ {"learn":[0.3415778556],"iteration":264,"passed_time":5.624776251,"remaining_time":9.233123279},
269
+ {"learn":[0.3415397735],"iteration":265,"passed_time":5.63990579,"remaining_time":9.201951553},
270
+ {"learn":[0.3415079135],"iteration":266,"passed_time":5.654728855,"remaining_time":9.170402974},
271
+ {"learn":[0.3414789642],"iteration":267,"passed_time":5.669269511,"remaining_time":9.138523988},
272
+ {"learn":[0.3414484288],"iteration":268,"passed_time":5.684810229,"remaining_time":9.108376241},
273
+ {"learn":[0.3414138673],"iteration":269,"passed_time":5.700958842,"remaining_time":9.079304823},
274
+ {"learn":[0.3413903209],"iteration":270,"passed_time":5.716067904,"remaining_time":9.04868314},
275
+ {"learn":[0.3413751404],"iteration":271,"passed_time":5.730687667,"remaining_time":9.017405593},
276
+ {"learn":[0.3413371978],"iteration":272,"passed_time":5.745954976,"remaining_time":8.987262911},
277
+ {"learn":[0.341309939],"iteration":273,"passed_time":5.760638135,"remaining_time":8.956320604},
278
+ {"learn":[0.3412701663],"iteration":274,"passed_time":5.776377043,"remaining_time":8.927128157},
279
+ {"learn":[0.3412261933],"iteration":275,"passed_time":5.793014273,"remaining_time":8.899413231},
280
+ {"learn":[0.3412083113],"iteration":276,"passed_time":5.808584164,"remaining_time":8.870148381},
281
+ {"learn":[0.341188791],"iteration":277,"passed_time":5.822980401,"remaining_time":8.839200465},
282
+ {"learn":[0.3411347963],"iteration":278,"passed_time":5.839922558,"remaining_time":8.812212892},
283
+ {"learn":[0.3410837646],"iteration":279,"passed_time":5.856001381,"remaining_time":8.784002072},
284
+ {"learn":[0.3410773856],"iteration":280,"passed_time":5.872292794,"remaining_time":8.756194593},
285
+ {"learn":[0.3410320532],"iteration":281,"passed_time":5.889086099,"remaining_time":8.729212728},
286
+ {"learn":[0.341017134],"iteration":282,"passed_time":5.904267971,"remaining_time":8.699928424},
287
+ {"learn":[0.3409884287],"iteration":283,"passed_time":5.920886543,"remaining_time":8.672847893},
288
+ {"learn":[0.3409494752],"iteration":284,"passed_time":5.939364773,"remaining_time":8.648548704},
289
+ {"learn":[0.3409228613],"iteration":285,"passed_time":5.954779585,"remaining_time":8.619855763},
290
+ {"learn":[0.3408732587],"iteration":286,"passed_time":5.973068219,"remaining_time":8.595390851},
291
+ {"learn":[0.340852867],"iteration":287,"passed_time":5.987509096,"remaining_time":8.565464401},
292
+ {"learn":[0.340819543],"iteration":288,"passed_time":6.003337512,"remaining_time":8.5376184},
293
+ {"learn":[0.3407856438],"iteration":289,"passed_time":6.018917336,"remaining_time":8.50950382},
294
+ {"learn":[0.3407436577],"iteration":290,"passed_time":6.034707128,"remaining_time":8.4817705},
295
+ {"learn":[0.3407093925],"iteration":291,"passed_time":6.050633113,"remaining_time":8.454309281},
296
+ {"learn":[0.3406827264],"iteration":292,"passed_time":6.066241026,"remaining_time":8.426484974},
297
+ {"learn":[0.3406351456],"iteration":293,"passed_time":6.082154741,"remaining_time":8.399166072},
298
+ {"learn":[0.3405883839],"iteration":294,"passed_time":6.098739267,"remaining_time":8.372845434},
299
+ {"learn":[0.3405751031],"iteration":295,"passed_time":6.114388091,"remaining_time":8.345313475},
300
+ {"learn":[0.3405319318],"iteration":296,"passed_time":6.130342064,"remaining_time":8.318275596},
301
+ {"learn":[0.3405076883],"iteration":297,"passed_time":6.14593008,"remaining_time":8.290818431},
302
+ {"learn":[0.3404692227],"iteration":298,"passed_time":6.161894578,"remaining_time":8.263945571},
303
+ {"learn":[0.3404472798],"iteration":299,"passed_time":6.17699848,"remaining_time":8.235997973},
304
+ {"learn":[0.3404057817],"iteration":300,"passed_time":6.194331039,"remaining_time":8.211089981},
305
+ {"learn":[0.3403879868],"iteration":301,"passed_time":6.210300552,"remaining_time":8.184435827},
306
+ {"learn":[0.340365887],"iteration":302,"passed_time":6.227114428,"remaining_time":8.158958508},
307
+ {"learn":[0.3403376348],"iteration":303,"passed_time":6.243237134,"remaining_time":8.132637845},
308
+ {"learn":[0.3402862022],"iteration":304,"passed_time":6.260310177,"remaining_time":8.107614819},
309
+ {"learn":[0.3402639978],"iteration":305,"passed_time":6.275791038,"remaining_time":8.080593689},
310
+ {"learn":[0.340232469],"iteration":306,"passed_time":6.291627627,"remaining_time":8.054103119},
311
+ {"learn":[0.3402143953],"iteration":307,"passed_time":6.307340868,"remaining_time":8.027524742},
312
+ {"learn":[0.3402021254],"iteration":308,"passed_time":6.321636185,"remaining_time":7.999222486},
313
+ {"learn":[0.3401865614],"iteration":309,"passed_time":6.337444574,"remaining_time":7.972914142},
314
+ {"learn":[0.3401630673],"iteration":310,"passed_time":6.354635524,"remaining_time":7.948402633},
315
+ {"learn":[0.340130301],"iteration":311,"passed_time":6.370339774,"remaining_time":7.922089207},
316
+ {"learn":[0.340106772],"iteration":312,"passed_time":6.385626035,"remaining_time":7.895326759},
317
+ {"learn":[0.3400823368],"iteration":313,"passed_time":6.402585897,"remaining_time":7.870694765},
318
+ {"learn":[0.3400542589],"iteration":314,"passed_time":6.432108448,"remaining_time":7.861465881},
319
+ {"learn":[0.3400406992],"iteration":315,"passed_time":6.452623297,"remaining_time":7.841162488},
320
+ {"learn":[0.3400162639],"iteration":316,"passed_time":6.468221223,"remaining_time":7.814917125},
321
+ {"learn":[0.3399895106],"iteration":317,"passed_time":6.484333523,"remaining_time":7.789356623},
322
+ {"learn":[0.3399458339],"iteration":318,"passed_time":6.50062516,"remaining_time":7.764069549},
323
+ {"learn":[0.3399104184],"iteration":319,"passed_time":6.515770431,"remaining_time":7.737477387},
324
+ {"learn":[0.3398751772],"iteration":320,"passed_time":6.53124209,"remaining_time":7.711341907},
325
+ {"learn":[0.339855012],"iteration":321,"passed_time":6.546556303,"remaining_time":7.685087834},
326
+ {"learn":[0.3398259407],"iteration":322,"passed_time":6.562910348,"remaining_time":7.660115174},
327
+ {"learn":[0.3398070129],"iteration":323,"passed_time":6.577195571,"remaining_time":7.63279486},
328
+ {"learn":[0.3397845471],"iteration":324,"passed_time":6.592753654,"remaining_time":7.607023447},
329
+ {"learn":[0.3397538898],"iteration":325,"passed_time":6.609012387,"remaining_time":7.582118505},
330
+ {"learn":[0.3397324],"iteration":326,"passed_time":6.62395407,"remaining_time":7.555764122},
331
+ {"learn":[0.339700662],"iteration":327,"passed_time":6.638936873,"remaining_time":7.529525965},
332
+ {"learn":[0.3396644448],"iteration":328,"passed_time":6.653559864,"remaining_time":7.502950485},
333
+ {"learn":[0.3396320097],"iteration":329,"passed_time":6.668961224,"remaining_time":7.47732016},
334
+ {"learn":[0.3396044721],"iteration":330,"passed_time":6.684372709,"remaining_time":7.451762929},
335
+ {"learn":[0.3395861369],"iteration":331,"passed_time":6.69985103,"remaining_time":7.4263409},
336
+ {"learn":[0.3395576581],"iteration":332,"passed_time":6.715007127,"remaining_time":7.40062347},
337
+ {"learn":[0.3395049881],"iteration":333,"passed_time":6.730560338,"remaining_time":7.375404442},
338
+ {"learn":[0.3394697818],"iteration":334,"passed_time":6.747210356,"remaining_time":7.351438149},
339
+ {"learn":[0.3394204232],"iteration":335,"passed_time":6.76231767,"remaining_time":7.325844142},
340
+ {"learn":[0.339382498],"iteration":336,"passed_time":6.778724133,"remaining_time":7.301711751},
341
+ {"learn":[0.3393344641],"iteration":337,"passed_time":6.795909331,"remaining_time":7.278459106},
342
+ {"learn":[0.3393063165],"iteration":338,"passed_time":6.811711408,"remaining_time":7.253769376},
343
+ {"learn":[0.3392760251],"iteration":339,"passed_time":6.826747178,"remaining_time":7.228320541},
344
+ {"learn":[0.3392589971],"iteration":340,"passed_time":6.841735983,"remaining_time":7.202883337},
345
+ {"learn":[0.3392346315],"iteration":341,"passed_time":6.85643306,"remaining_time":7.177201858},
346
+ {"learn":[0.3392006627],"iteration":342,"passed_time":6.872963126,"remaining_time":7.153492233},
347
+ {"learn":[0.3391569336],"iteration":343,"passed_time":6.88942387,"remaining_time":7.12975261},
348
+ {"learn":[0.3391332652],"iteration":344,"passed_time":6.905074025,"remaining_time":7.105221098},
349
+ {"learn":[0.3390974838],"iteration":345,"passed_time":6.920407156,"remaining_time":7.08041657},
350
+ {"learn":[0.3390728393],"iteration":346,"passed_time":6.938913673,"remaining_time":7.058894889},
351
+ {"learn":[0.3390492755],"iteration":347,"passed_time":6.953431104,"remaining_time":7.0333556},
352
+ {"learn":[0.3390156552],"iteration":348,"passed_time":6.970558836,"remaining_time":7.010504732},
353
+ {"learn":[0.3389861133],"iteration":349,"passed_time":6.985702635,"remaining_time":6.985702635},
354
+ {"learn":[0.3389502621],"iteration":350,"passed_time":7.001376569,"remaining_time":6.961482685},
355
+ {"learn":[0.3389262103],"iteration":351,"passed_time":7.014980522,"remaining_time":6.935264835},
356
+ {"learn":[0.3388921891],"iteration":352,"passed_time":7.030437641,"remaining_time":6.910940117},
357
+ {"learn":[0.3388672659],"iteration":353,"passed_time":7.045684906,"remaining_time":6.886460389},
358
+ {"learn":[0.3388546822],"iteration":354,"passed_time":7.059926279,"remaining_time":6.861055116},
359
+ {"learn":[0.3388330007],"iteration":355,"passed_time":7.075034417,"remaining_time":6.836550111},
360
+ {"learn":[0.3388103083],"iteration":356,"passed_time":7.089501733,"remaining_time":6.811482057},
361
+ {"learn":[0.3387708668],"iteration":357,"passed_time":7.104603381,"remaining_time":6.787079207},
362
+ {"learn":[0.3387532288],"iteration":358,"passed_time":7.1190679,"remaining_time":6.762122991},
363
+ {"learn":[0.3387258829],"iteration":359,"passed_time":7.134354421,"remaining_time":6.738001398},
364
+ {"learn":[0.3387100923],"iteration":360,"passed_time":7.149220928,"remaining_time":6.713534334},
365
+ {"learn":[0.3386711214],"iteration":361,"passed_time":7.164973072,"remaining_time":6.689947233},
366
+ {"learn":[0.3386461633],"iteration":362,"passed_time":7.180160925,"remaining_time":6.665879426},
367
+ {"learn":[0.3386176148],"iteration":363,"passed_time":7.194982234,"remaining_time":6.641522063},
368
+ {"learn":[0.3386091269],"iteration":364,"passed_time":7.209040415,"remaining_time":6.616516546},
369
+ {"learn":[0.3385890489],"iteration":365,"passed_time":7.224393064,"remaining_time":6.592752141},
370
+ {"learn":[0.338558252],"iteration":366,"passed_time":7.239304581,"remaining_time":6.568633312},
371
+ {"learn":[0.3385261829],"iteration":367,"passed_time":7.254016876,"remaining_time":6.54438479},
372
+ {"learn":[0.3385007542],"iteration":368,"passed_time":7.268933217,"remaining_time":6.520370989},
373
+ {"learn":[0.3384806936],"iteration":369,"passed_time":7.283535588,"remaining_time":6.496126335},
374
+ {"learn":[0.338454864],"iteration":370,"passed_time":7.297888611,"remaining_time":6.471712542},
375
+ {"learn":[0.338421296],"iteration":371,"passed_time":7.313312254,"remaining_time":6.448296826},
376
+ {"learn":[0.3383962507],"iteration":372,"passed_time":7.328784976,"remaining_time":6.42496699},
377
+ {"learn":[0.3383692534],"iteration":373,"passed_time":7.345520716,"remaining_time":6.402780089},
378
+ {"learn":[0.3383410361],"iteration":374,"passed_time":7.360965984,"remaining_time":6.379503853},
379
+ {"learn":[0.3382997297],"iteration":375,"passed_time":7.376847918,"remaining_time":6.356645546},
380
+ {"learn":[0.338270728],"iteration":376,"passed_time":7.392506129,"remaining_time":6.333632572},
381
+ {"learn":[0.3382298573],"iteration":377,"passed_time":7.407722328,"remaining_time":6.310281983},
382
+ {"learn":[0.3382006988],"iteration":378,"passed_time":7.423089555,"remaining_time":6.287102235},
383
+ {"learn":[0.3381719586],"iteration":379,"passed_time":7.438173976,"remaining_time":6.263725453},
384
+ {"learn":[0.3381436367],"iteration":380,"passed_time":7.473312458,"remaining_time":6.257182872},
385
+ {"learn":[0.3380950625],"iteration":381,"passed_time":7.488683196,"remaining_time":6.234034702},
386
+ {"learn":[0.3380801608],"iteration":382,"passed_time":7.502766283,"remaining_time":6.209861388},
387
+ {"learn":[0.3380630805],"iteration":383,"passed_time":7.517732819,"remaining_time":6.186467632},
388
+ {"learn":[0.3380325451],"iteration":384,"passed_time":7.532669879,"remaining_time":6.163093537},
389
+ {"learn":[0.3380025152],"iteration":385,"passed_time":7.547305588,"remaining_time":6.139518018},
390
+ {"learn":[0.3379622545],"iteration":386,"passed_time":7.563370026,"remaining_time":6.117144233},
391
+ {"learn":[0.3379313008],"iteration":387,"passed_time":7.578999449,"remaining_time":6.094453165},
392
+ {"learn":[0.3379008352],"iteration":388,"passed_time":7.593629537,"remaining_time":6.070999449},
393
+ {"learn":[0.3378795023],"iteration":389,"passed_time":7.60929908,"remaining_time":6.048417218},
394
+ {"learn":[0.3378620037],"iteration":390,"passed_time":7.623722897,"remaining_time":6.02488587},
395
+ {"learn":[0.3378274422],"iteration":391,"passed_time":7.638920407,"remaining_time":6.002008891},
396
+ {"learn":[0.3378031812],"iteration":392,"passed_time":7.654844863,"remaining_time":5.979738863},
397
+ {"learn":[0.3377844104],"iteration":393,"passed_time":7.670134799,"remaining_time":5.957008245},
398
+ {"learn":[0.3377489949],"iteration":394,"passed_time":7.684898547,"remaining_time":5.933909005},
399
+ {"learn":[0.3377118017],"iteration":395,"passed_time":7.702094342,"remaining_time":5.912718889},
400
+ {"learn":[0.3376860593],"iteration":396,"passed_time":7.717038912,"remaining_time":5.889830706},
401
+ {"learn":[0.3376515152],"iteration":397,"passed_time":7.732604366,"remaining_time":5.867453564},
402
+ {"learn":[0.3376256159],"iteration":398,"passed_time":7.747532967,"remaining_time":5.844630133},
403
+ {"learn":[0.3376065836],"iteration":399,"passed_time":7.761625367,"remaining_time":5.821219025},
404
+ {"learn":[0.3375883182],"iteration":400,"passed_time":7.775630314,"remaining_time":5.797789187},
405
+ {"learn":[0.3375665669],"iteration":401,"passed_time":7.790134436,"remaining_time":5.774776273},
406
+ {"learn":[0.3375253477],"iteration":402,"passed_time":7.805112754,"remaining_time":5.752155057},
407
+ {"learn":[0.3374962763],"iteration":403,"passed_time":7.820296682,"remaining_time":5.729722321},
408
+ {"learn":[0.3374702899],"iteration":404,"passed_time":7.835438921,"remaining_time":5.707295016},
409
+ {"learn":[0.3374407828],"iteration":405,"passed_time":7.851217645,"remaining_time":5.685364502},
410
+ {"learn":[0.3374256894],"iteration":406,"passed_time":7.866644687,"remaining_time":5.66321104},
411
+ {"learn":[0.3374018641],"iteration":407,"passed_time":7.881928012,"remaining_time":5.640987695},
412
+ {"learn":[0.3373600697],"iteration":408,"passed_time":7.896706014,"remaining_time":5.618438753},
413
+ {"learn":[0.3373457258],"iteration":409,"passed_time":7.910260111,"remaining_time":5.59506203},
414
+ {"learn":[0.3373179093],"iteration":410,"passed_time":7.925274936,"remaining_time":5.572760235},
415
+ {"learn":[0.337285143],"iteration":411,"passed_time":7.942168179,"remaining_time":5.551806882},
416
+ {"learn":[0.3372512962],"iteration":412,"passed_time":7.957472713,"remaining_time":5.529769173},
417
+ {"learn":[0.3372110355],"iteration":413,"passed_time":7.974490881,"remaining_time":5.508947807},
418
+ {"learn":[0.3371866874],"iteration":414,"passed_time":7.989915759,"remaining_time":5.487050581},
419
+ {"learn":[0.3371588012],"iteration":415,"passed_time":8.004604745,"remaining_time":5.464682085},
420
+ {"learn":[0.3371279346],"iteration":416,"passed_time":8.019245894,"remaining_time":5.442317957},
421
+ {"learn":[0.3370894691],"iteration":417,"passed_time":8.034229866,"remaining_time":5.420222063},
422
+ {"learn":[0.3370698268],"iteration":418,"passed_time":8.048248901,"remaining_time":5.397512986},
423
+ {"learn":[0.3370435266],"iteration":419,"passed_time":8.063077271,"remaining_time":5.375384847},
424
+ {"learn":[0.3370146819],"iteration":420,"passed_time":8.077620241,"remaining_time":5.35310225},
425
+ {"learn":[0.336970552],"iteration":421,"passed_time":8.09308022,"remaining_time":5.331460429},
426
+ {"learn":[0.3369416549],"iteration":422,"passed_time":8.107219026,"remaining_time":5.308982672},
427
+ {"learn":[0.3369064835],"iteration":423,"passed_time":8.12196097,"remaining_time":5.286936858},
428
+ {"learn":[0.336877691],"iteration":424,"passed_time":8.135919745,"remaining_time":5.264418659},
429
+ {"learn":[0.3368339619],"iteration":425,"passed_time":8.150609182,"remaining_time":5.242410601},
430
+ {"learn":[0.3368164285],"iteration":426,"passed_time":8.164353095,"remaining_time":5.219832306},
431
+ {"learn":[0.3368039843],"iteration":427,"passed_time":8.178820087,"remaining_time":5.197754822},
432
+ {"learn":[0.3367960716],"iteration":428,"passed_time":8.192855837,"remaining_time":5.1754404},
433
+ {"learn":[0.3367868517],"iteration":429,"passed_time":8.206328135,"remaining_time":5.152810689},
434
+ {"learn":[0.3367547129],"iteration":430,"passed_time":8.220868386,"remaining_time":5.130890014},
435
+ {"learn":[0.3367083695],"iteration":431,"passed_time":8.235962769,"remaining_time":5.109347274},
436
+ {"learn":[0.3366763353],"iteration":432,"passed_time":8.250215775,"remaining_time":5.087315501},
437
+ {"learn":[0.336659011],"iteration":433,"passed_time":8.264767128,"remaining_time":5.065502433},
438
+ {"learn":[0.3366535906],"iteration":434,"passed_time":8.278305433,"remaining_time":5.043105609},
439
+ {"learn":[0.336637312],"iteration":435,"passed_time":8.292224506,"remaining_time":5.020979976},
440
+ {"learn":[0.336612441],"iteration":436,"passed_time":8.306918355,"remaining_time":4.999358186},
441
+ {"learn":[0.3365996657],"iteration":437,"passed_time":8.320090599,"remaining_time":4.976857847},
442
+ {"learn":[0.3365617928],"iteration":438,"passed_time":8.33479899,"remaining_time":4.955313295},
443
+ {"learn":[0.3365495403],"iteration":439,"passed_time":8.350335129,"remaining_time":4.93428894},
444
+ {"learn":[0.3365064735],"iteration":440,"passed_time":8.365651273,"remaining_time":4.913160271},
445
+ {"learn":[0.3364532458],"iteration":441,"passed_time":8.382114553,"remaining_time":4.8927275},
446
+ {"learn":[0.3364174643],"iteration":442,"passed_time":8.396912371,"remaining_time":4.871346454},
447
+ {"learn":[0.3363892993],"iteration":443,"passed_time":8.411402095,"remaining_time":4.849817424},
448
+ {"learn":[0.3363793648],"iteration":444,"passed_time":8.42539093,"remaining_time":4.828033005},
449
+ {"learn":[0.3363509209],"iteration":445,"passed_time":8.440294499,"remaining_time":4.806804491},
450
+ {"learn":[0.3363206295],"iteration":446,"passed_time":8.455296898,"remaining_time":4.785660213},
451
+ {"learn":[0.3362951137],"iteration":447,"passed_time":8.475754764,"remaining_time":4.767612055},
452
+ {"learn":[0.3362762382],"iteration":448,"passed_time":8.502298547,"remaining_time":4.752955312},
453
+ {"learn":[0.3362583562],"iteration":449,"passed_time":8.516293061,"remaining_time":4.731273923},
454
+ {"learn":[0.3362176946],"iteration":450,"passed_time":8.530978981,"remaining_time":4.710008351},
455
+ {"learn":[0.3362008061],"iteration":451,"passed_time":8.544448764,"remaining_time":4.688104632},
456
+ {"learn":[0.3361687369],"iteration":452,"passed_time":8.558767689,"remaining_time":4.666701146},
457
+ {"learn":[0.3361457483],"iteration":453,"passed_time":8.572997505,"remaining_time":4.645280586},
458
+ {"learn":[0.3361189601],"iteration":454,"passed_time":8.587723162,"remaining_time":4.624158626},
459
+ {"learn":[0.3360838061],"iteration":455,"passed_time":8.603323147,"remaining_time":4.603532561},
460
+ {"learn":[0.3360557456],"iteration":456,"passed_time":8.618834691,"remaining_time":4.582881466},
461
+ {"learn":[0.3360168967],"iteration":457,"passed_time":8.635399774,"remaining_time":4.562809488},
462
+ {"learn":[0.3359835204],"iteration":458,"passed_time":8.651028146,"remaining_time":4.542260966},
463
+ {"learn":[0.3359608803],"iteration":459,"passed_time":8.665498808,"remaining_time":4.521129813},
464
+ {"learn":[0.3359288286],"iteration":460,"passed_time":8.68130646,"remaining_time":4.500720703},
465
+ {"learn":[0.3359005241],"iteration":461,"passed_time":8.696135348,"remaining_time":4.4798273},
466
+ {"learn":[0.3358629649],"iteration":462,"passed_time":8.7115896,"remaining_time":4.459280206},
467
+ {"learn":[0.3358349219],"iteration":463,"passed_time":8.72603405,"remaining_time":4.438241456},
468
+ {"learn":[0.3358095454],"iteration":464,"passed_time":8.741004735,"remaining_time":4.417497017},
469
+ {"learn":[0.3357617903],"iteration":465,"passed_time":8.756265481,"remaining_time":4.39692301},
470
+ {"learn":[0.3357390631],"iteration":466,"passed_time":8.770162314,"remaining_time":4.375691262},
471
+ {"learn":[0.3357043274],"iteration":467,"passed_time":8.785620529,"remaining_time":4.355264878},
472
+ {"learn":[0.3356895825],"iteration":468,"passed_time":8.799623556,"remaining_time":4.334142945},
473
+ {"learn":[0.3356540451],"iteration":469,"passed_time":8.81424242,"remaining_time":4.313352674},
474
+ {"learn":[0.3356342285],"iteration":470,"passed_time":8.82868306,"remaining_time":4.292501955},
475
+ {"learn":[0.335599179],"iteration":471,"passed_time":8.843715977,"remaining_time":4.271964497},
476
+ {"learn":[0.3355819593],"iteration":472,"passed_time":8.85908091,"remaining_time":4.251609654},
477
+ {"learn":[0.3355575937],"iteration":473,"passed_time":8.874734515,"remaining_time":4.231413503},
478
+ {"learn":[0.3355287838],"iteration":474,"passed_time":8.889247812,"remaining_time":4.210696332},
479
+ {"learn":[0.33548929],"iteration":475,"passed_time":8.904240473,"remaining_time":4.190230811},
480
+ {"learn":[0.3354566283],"iteration":476,"passed_time":8.918934037,"remaining_time":4.169648407},
481
+ {"learn":[0.3354341451],"iteration":477,"passed_time":8.936039649,"remaining_time":4.150210883},
482
+ {"learn":[0.3353937798],"iteration":478,"passed_time":8.951244026,"remaining_time":4.129905907},
483
+ {"learn":[0.3353775535],"iteration":479,"passed_time":8.967140684,"remaining_time":4.10993948},
484
+ {"learn":[0.3353356894],"iteration":480,"passed_time":8.981870354,"remaining_time":4.089458644},
485
+ {"learn":[0.3353111495],"iteration":481,"passed_time":8.995660735,"remaining_time":4.068576847},
486
+ {"learn":[0.3352722657],"iteration":482,"passed_time":9.010114203,"remaining_time":4.048022323},
487
+ {"learn":[0.3352479002],"iteration":483,"passed_time":9.025143957,"remaining_time":4.027750196},
488
+ {"learn":[0.3352227329],"iteration":484,"passed_time":9.0394518,"remaining_time":4.007179664},
489
+ {"learn":[0.3351988902],"iteration":485,"passed_time":9.053991396,"remaining_time":3.986736952},
490
+ {"learn":[0.3351657231],"iteration":486,"passed_time":9.078514118,"remaining_time":3.970684819},
491
+ {"learn":[0.335144913],"iteration":487,"passed_time":9.09398955,"remaining_time":3.950667591},
492
+ {"learn":[0.3351067438],"iteration":488,"passed_time":9.111002822,"remaining_time":3.931332506},
493
+ {"learn":[0.3350797116],"iteration":489,"passed_time":9.12571774,"remaining_time":3.911021889},
494
+ {"learn":[0.3350731409],"iteration":490,"passed_time":9.139239238,"remaining_time":3.890226071},
495
+ {"learn":[0.3350376558],"iteration":491,"passed_time":9.15393612,"remaining_time":3.869956734},
496
+ {"learn":[0.3350186409],"iteration":492,"passed_time":9.16778617,"remaining_time":3.849354436},
497
+ {"learn":[0.3349795828],"iteration":493,"passed_time":9.183158095,"remaining_time":3.829414104},
498
+ {"learn":[0.3349463982],"iteration":494,"passed_time":9.198327062,"remaining_time":3.809408177},
499
+ {"learn":[0.3349167866],"iteration":495,"passed_time":9.213245831,"remaining_time":3.78931885},
500
+ {"learn":[0.3349072181],"iteration":496,"passed_time":9.227604338,"remaining_time":3.76902149},
501
+ {"learn":[0.3348861989],"iteration":497,"passed_time":9.242254192,"remaining_time":3.748866158},
502
+ {"learn":[0.3348546178],"iteration":498,"passed_time":9.257479786,"remaining_time":3.728964803},
503
+ {"learn":[0.3348040392],"iteration":499,"passed_time":9.273410361,"remaining_time":3.709364145},
504
+ {"learn":[0.3347716738],"iteration":500,"passed_time":9.288508921,"remaining_time":3.689447655},
505
+ {"learn":[0.3347458791],"iteration":501,"passed_time":9.303061571,"remaining_time":3.669335042},
506
+ {"learn":[0.3347193175],"iteration":502,"passed_time":9.317163371,"remaining_time":3.649067961},
507
+ {"learn":[0.3347033701],"iteration":503,"passed_time":9.331158765,"remaining_time":3.628783964},
508
+ {"learn":[0.3346697498],"iteration":504,"passed_time":9.346685193,"remaining_time":3.609116065},
509
+ {"learn":[0.3346478069],"iteration":505,"passed_time":9.360473816,"remaining_time":3.588798262},
510
+ {"learn":[0.3346170972],"iteration":506,"passed_time":9.374522624,"remaining_time":3.568605259},
511
+ {"learn":[0.334582588],"iteration":507,"passed_time":9.389553004,"remaining_time":3.548807435},
512
+ {"learn":[0.3345531855],"iteration":508,"passed_time":9.404514202,"remaining_time":3.529002382},
513
+ {"learn":[0.3345227547],"iteration":509,"passed_time":9.419747965,"remaining_time":3.509317869},
514
+ {"learn":[0.3344913479],"iteration":510,"passed_time":9.434634058,"remaining_time":3.489522186},
515
+ {"learn":[0.3344695967],"iteration":511,"passed_time":9.449995248,"remaining_time":3.46992013},
516
+ {"learn":[0.334451767],"iteration":512,"passed_time":9.464306293,"remaining_time":3.449951807},
517
+ {"learn":[0.3344233231],"iteration":513,"passed_time":9.478928521,"remaining_time":3.430118103},
518
+ {"learn":[0.3344040119],"iteration":514,"passed_time":9.495897251,"remaining_time":3.411147556},
519
+ {"learn":[0.3343719079],"iteration":515,"passed_time":9.527976143,"remaining_time":3.397572888},
520
+ {"learn":[0.3343418954],"iteration":516,"passed_time":9.542560771,"remaining_time":3.377734277},
521
+ {"learn":[0.334309042],"iteration":517,"passed_time":9.557429736,"remaining_time":3.358015853},
522
+ {"learn":[0.3342671778],"iteration":518,"passed_time":9.572537284,"remaining_time":3.338399323},
523
+ {"learn":[0.3342250174],"iteration":519,"passed_time":9.587639893,"remaining_time":3.318798425},
524
+ {"learn":[0.3341972532],"iteration":520,"passed_time":9.602132584,"remaining_time":3.299005245},
525
+ {"learn":[0.3341767743],"iteration":521,"passed_time":9.616345324,"remaining_time":3.279136911},
526
+ {"learn":[0.3341539773],"iteration":522,"passed_time":9.630435193,"remaining_time":3.259248622},
527
+ {"learn":[0.334109342],"iteration":523,"passed_time":9.645478233,"remaining_time":3.239702613},
528
+ {"learn":[0.3340841399],"iteration":524,"passed_time":9.659383329,"remaining_time":3.219794443},
529
+ {"learn":[0.3340682622],"iteration":525,"passed_time":9.673316888,"remaining_time":3.199918514},
530
+ {"learn":[0.3340433738],"iteration":526,"passed_time":9.687205606,"remaining_time":3.180050417},
531
+ {"learn":[0.3340135704],"iteration":527,"passed_time":9.702195411,"remaining_time":3.160563657},
532
+ {"learn":[0.3339939803],"iteration":528,"passed_time":9.71593529,"remaining_time":3.140689858},
533
+ {"learn":[0.3339707477],"iteration":529,"passed_time":9.730743563,"remaining_time":3.121181897},
534
+ {"learn":[0.3339452144],"iteration":530,"passed_time":9.745524178,"remaining_time":3.101682836},
535
+ {"learn":[0.3339202911],"iteration":531,"passed_time":9.759965094,"remaining_time":3.08209424},
536
+ {"learn":[0.3338790893],"iteration":532,"passed_time":9.775107641,"remaining_time":3.062744796},
537
+ {"learn":[0.3338499656],"iteration":533,"passed_time":9.790850058,"remaining_time":3.043597584},
538
+ {"learn":[0.333829173],"iteration":534,"passed_time":9.805634755,"remaining_time":3.024167728},
539
+ {"learn":[0.3338051909],"iteration":535,"passed_time":9.819915664,"remaining_time":3.004601062},
540
+ {"learn":[0.3337726163],"iteration":536,"passed_time":9.835397141,"remaining_time":2.985418499},
541
+ {"learn":[0.3337447475],"iteration":537,"passed_time":9.850747991,"remaining_time":2.966210361},
542
+ {"learn":[0.3337440155],"iteration":538,"passed_time":9.864539276,"remaining_time":2.946550693},
543
+ {"learn":[0.333727493],"iteration":539,"passed_time":9.879212415,"remaining_time":2.927174049},
544
+ {"learn":[0.3336857857],"iteration":540,"passed_time":9.894395755,"remaining_time":2.907964741},
545
+ {"learn":[0.3336467102],"iteration":541,"passed_time":9.910333005,"remaining_time":2.888990064},
546
+ {"learn":[0.333626301],"iteration":542,"passed_time":9.924730921,"remaining_time":2.8695815},
547
+ {"learn":[0.3336007328],"iteration":543,"passed_time":9.942354309,"remaining_time":2.851116309},
548
+ {"learn":[0.3335807768],"iteration":544,"passed_time":9.956775789,"remaining_time":2.831743573},
549
+ {"learn":[0.3335576835],"iteration":545,"passed_time":9.971713787,"remaining_time":2.812534658},
550
+ {"learn":[0.3335431653],"iteration":546,"passed_time":9.985944109,"remaining_time":2.793143416},
551
+ {"learn":[0.3335066518],"iteration":547,"passed_time":10.00072888,"remaining_time":2.773924798},
552
+ {"learn":[0.3334790096],"iteration":548,"passed_time":10.01508401,"remaining_time":2.754604163},
553
+ {"learn":[0.3334528663],"iteration":549,"passed_time":10.02990686,"remaining_time":2.735429145},
554
+ {"learn":[0.333428553],"iteration":550,"passed_time":10.04430745,"remaining_time":2.716155736},
555
+ {"learn":[0.3334094161],"iteration":551,"passed_time":10.05883222,"remaining_time":2.696933275},
556
+ {"learn":[0.3333805365],"iteration":552,"passed_time":10.07378897,"remaining_time":2.677842637},
557
+ {"learn":[0.3333617656],"iteration":553,"passed_time":10.08786536,"remaining_time":2.658534915},
558
+ {"learn":[0.3333428727],"iteration":554,"passed_time":10.10261982,"remaining_time":2.639423196},
559
+ {"learn":[0.3333107513],"iteration":555,"passed_time":10.11800474,"remaining_time":2.620490437},
560
+ {"learn":[0.3332924859],"iteration":556,"passed_time":10.13248139,"remaining_time":2.601337233},
561
+ {"learn":[0.3332744993],"iteration":557,"passed_time":10.14716569,"remaining_time":2.582253635},
562
+ {"learn":[0.3332287485],"iteration":558,"passed_time":10.16308306,"remaining_time":2.563496801},
563
+ {"learn":[0.3332059167],"iteration":559,"passed_time":10.17779774,"remaining_time":2.544449436},
564
+ {"learn":[0.3331860478],"iteration":560,"passed_time":10.19254756,"remaining_time":2.525426221},
565
+ {"learn":[0.3331722964],"iteration":561,"passed_time":10.2070168,"remaining_time":2.506349321},
566
+ {"learn":[0.3331290205],"iteration":562,"passed_time":10.22263367,"remaining_time":2.487568051},
567
+ {"learn":[0.333095592],"iteration":563,"passed_time":10.23831046,"remaining_time":2.468812451},
568
+ {"learn":[0.3330793308],"iteration":564,"passed_time":10.25274242,"remaining_time":2.449770314},
569
+ {"learn":[0.333028212],"iteration":565,"passed_time":10.26723824,"remaining_time":2.430759583},
570
+ {"learn":[0.3329951668],"iteration":566,"passed_time":10.28230136,"remaining_time":2.41189785},
571
+ {"learn":[0.3329744091],"iteration":567,"passed_time":10.29708222,"remaining_time":2.392983897},
572
+ {"learn":[0.3329461743],"iteration":568,"passed_time":10.31173576,"remaining_time":2.374055157},
573
+ {"learn":[0.3329256605],"iteration":569,"passed_time":10.32640543,"remaining_time":2.355145098},
574
+ {"learn":[0.3328955086],"iteration":570,"passed_time":10.34282511,"remaining_time":2.336645253},
575
+ {"learn":[0.3328673087],"iteration":571,"passed_time":10.35825941,"remaining_time":2.317932176},
576
+ {"learn":[0.3328411131],"iteration":572,"passed_time":10.37325306,"remaining_time":2.299132877},
577
+ {"learn":[0.3328066562],"iteration":573,"passed_time":10.38837498,"remaining_time":2.280374995},
578
+ {"learn":[0.3327926783],"iteration":574,"passed_time":10.40186065,"remaining_time":2.261274055},
579
+ {"learn":[0.3327671275],"iteration":575,"passed_time":10.41667677,"remaining_time":2.242479026},
580
+ {"learn":[0.3327488447],"iteration":576,"passed_time":10.43119446,"remaining_time":2.223634175},
581
+ {"learn":[0.3327223528],"iteration":577,"passed_time":10.44549706,"remaining_time":2.204758896},
582
+ {"learn":[0.3327048891],"iteration":578,"passed_time":10.45858301,"remaining_time":2.185645154},
583
+ {"learn":[0.3326724016],"iteration":579,"passed_time":10.47337878,"remaining_time":2.166905954},
584
+ {"learn":[0.3326632341],"iteration":580,"passed_time":10.48725435,"remaining_time":2.147991855},
585
+ {"learn":[0.3326498313],"iteration":581,"passed_time":10.50041369,"remaining_time":2.128949855},
586
+ {"learn":[0.3326177273],"iteration":582,"passed_time":10.51534246,"remaining_time":2.110283134},
587
+ {"learn":[0.3325971089],"iteration":583,"passed_time":10.54492078,"remaining_time":2.094539058},
588
+ {"learn":[0.3325897191],"iteration":584,"passed_time":10.56175734,"remaining_time":2.076242895},
589
+ {"learn":[0.3325505913],"iteration":585,"passed_time":10.57704515,"remaining_time":2.057650423},
590
+ {"learn":[0.3325138512],"iteration":586,"passed_time":10.59647951,"remaining_time":2.039867435},
591
+ {"learn":[0.3324921],"iteration":587,"passed_time":10.61107114,"remaining_time":2.021156407},
592
+ {"learn":[0.332465399],"iteration":588,"passed_time":10.62541362,"remaining_time":2.002412414},
593
+ {"learn":[0.3324517173],"iteration":589,"passed_time":10.63940084,"remaining_time":1.983617105},
594
+ {"learn":[0.3324186896],"iteration":590,"passed_time":10.65514974,"remaining_time":1.965162981},
595
+ {"learn":[0.3323993959],"iteration":591,"passed_time":10.67053624,"remaining_time":1.946651882},
596
+ {"learn":[0.332379039],"iteration":592,"passed_time":10.68613165,"remaining_time":1.928189016},
597
+ {"learn":[0.3323648693],"iteration":593,"passed_time":10.69993358,"remaining_time":1.909415757},
598
+ {"learn":[0.3323425081],"iteration":594,"passed_time":10.71410368,"remaining_time":1.890724179},
599
+ {"learn":[0.3323116241],"iteration":595,"passed_time":10.72913779,"remaining_time":1.87219854},
600
+ {"learn":[0.3322827096],"iteration":596,"passed_time":10.74390096,"remaining_time":1.853637853},
601
+ {"learn":[0.3322618821],"iteration":597,"passed_time":10.7576163,"remaining_time":1.834911141},
602
+ {"learn":[0.3322333859],"iteration":598,"passed_time":10.77179185,"remaining_time":1.81627876},
603
+ {"learn":[0.3321977787],"iteration":599,"passed_time":10.78620993,"remaining_time":1.797701656},
604
+ {"learn":[0.3321576575],"iteration":600,"passed_time":10.8008116,"remaining_time":1.779168633},
605
+ {"learn":[0.3321364466],"iteration":601,"passed_time":10.814848,"remaining_time":1.760556651},
606
+ {"learn":[0.3321110701],"iteration":602,"passed_time":10.82868711,"remaining_time":1.741928109},
607
+ {"learn":[0.3320814236],"iteration":603,"passed_time":10.84413071,"remaining_time":1.723570445},
608
+ {"learn":[0.3320631059],"iteration":604,"passed_time":10.85967541,"remaining_time":1.705238288},
609
+ {"learn":[0.3320444396],"iteration":605,"passed_time":10.87737227,"remaining_time":1.687249163},
610
+ {"learn":[0.3320343308],"iteration":606,"passed_time":10.89063586,"remaining_time":1.668581771},
611
+ {"learn":[0.3319991419],"iteration":607,"passed_time":10.90752655,"remaining_time":1.650480991},
612
+ {"learn":[0.3319654868],"iteration":608,"passed_time":10.92276677,"remaining_time":1.632137563},
613
+ {"learn":[0.3319380015],"iteration":609,"passed_time":10.94384434,"remaining_time":1.614665558},
614
+ {"learn":[0.3319204855],"iteration":610,"passed_time":10.96442142,"remaining_time":1.597108848},
615
+ {"learn":[0.3318993791],"iteration":611,"passed_time":10.97927598,"remaining_time":1.578719422},
616
+ {"learn":[0.3318804862],"iteration":612,"passed_time":10.99357959,"remaining_time":1.560263335},
617
+ {"learn":[0.3318469356],"iteration":613,"passed_time":11.00884735,"remaining_time":1.541955818},
618
+ {"learn":[0.3318181954],"iteration":614,"passed_time":11.02453499,"remaining_time":1.523716217},
619
+ {"learn":[0.3317936207],"iteration":615,"passed_time":11.04001913,"remaining_time":1.505457154},
620
+ {"learn":[0.331767948],"iteration":616,"passed_time":11.0566994,"remaining_time":1.487367991},
621
+ {"learn":[0.3317493863],"iteration":617,"passed_time":11.07263206,"remaining_time":1.469184189},
622
+ {"learn":[0.3317241144],"iteration":618,"passed_time":11.08719808,"remaining_time":1.450828828},
623
+ {"learn":[0.3316923242],"iteration":619,"passed_time":11.10346463,"remaining_time":1.432705114},
624
+ {"learn":[0.3316686906],"iteration":620,"passed_time":11.11959173,"remaining_time":1.41456964},
625
+ {"learn":[0.3316284997],"iteration":621,"passed_time":11.13567968,"remaining_time":1.396435716},
626
+ {"learn":[0.3316127091],"iteration":622,"passed_time":11.14974551,"remaining_time":1.378058433},
627
+ {"learn":[0.3315869492],"iteration":623,"passed_time":11.16500314,"remaining_time":1.359840126},
628
+ {"learn":[0.3315719953],"iteration":624,"passed_time":11.17943011,"remaining_time":1.341531613},
629
+ {"learn":[0.3315513943],"iteration":625,"passed_time":11.19502195,"remaining_time":1.323373202},
630
+ {"learn":[0.3315175998],"iteration":626,"passed_time":11.2098819,"remaining_time":1.305137764},
631
+ {"learn":[0.3314971557],"iteration":627,"passed_time":11.22433508,"remaining_time":1.286866443},
632
+ {"learn":[0.3314769034],"iteration":628,"passed_time":11.238155,"remaining_time":1.268535779},
633
+ {"learn":[0.331470141],"iteration":629,"passed_time":11.25116332,"remaining_time":1.250129258},
634
+ {"learn":[0.3314505684],"iteration":630,"passed_time":11.26492947,"remaining_time":1.231822716},
635
+ {"learn":[0.3314225079],"iteration":631,"passed_time":11.27973465,"remaining_time":1.213642336},
636
+ {"learn":[0.3313993101],"iteration":632,"passed_time":11.29322349,"remaining_time":1.195333292},
637
+ {"learn":[0.3313756939],"iteration":633,"passed_time":11.30736295,"remaining_time":1.177107184},
638
+ {"learn":[0.3313353287],"iteration":634,"passed_time":11.32233985,"remaining_time":1.15897967},
639
+ {"learn":[0.331297142],"iteration":635,"passed_time":11.33801453,"remaining_time":1.14093228},
640
+ {"learn":[0.3312679835],"iteration":636,"passed_time":11.35231826,"remaining_time":1.122756751},
641
+ {"learn":[0.3312539533],"iteration":637,"passed_time":11.36590464,"remaining_time":1.104523648},
642
+ {"learn":[0.3312240977],"iteration":638,"passed_time":11.38165708,"remaining_time":1.086511865},
643
+ {"learn":[0.3312018236],"iteration":639,"passed_time":11.39639225,"remaining_time":1.068411774},
644
+ {"learn":[0.331174896],"iteration":640,"passed_time":11.41069071,"remaining_time":1.050281984},
645
+ {"learn":[0.3311560379],"iteration":641,"passed_time":11.42576781,"remaining_time":1.032234475},
646
+ {"learn":[0.331137877],"iteration":642,"passed_time":11.43988393,"remaining_time":1.014111017},
647
+ {"learn":[0.3311118035],"iteration":643,"passed_time":11.45491822,"remaining_time":0.9960798455},
648
+ {"learn":[0.3310849804],"iteration":644,"passed_time":11.47026004,"remaining_time":0.9780841893},
649
+ {"learn":[0.3310507327],"iteration":645,"passed_time":11.48538086,"remaining_time":0.9600782759},
650
+ {"learn":[0.3310210688],"iteration":646,"passed_time":11.50157611,"remaining_time":0.9421692947},
651
+ {"learn":[0.330998603],"iteration":647,"passed_time":11.51573487,"remaining_time":0.9241021806},
652
+ {"learn":[0.3309693922],"iteration":648,"passed_time":11.53082518,"remaining_time":0.9061203143},
653
+ {"learn":[0.3309498893],"iteration":649,"passed_time":11.54488828,"remaining_time":0.8880683295},
654
+ {"learn":[0.330926186],"iteration":650,"passed_time":11.56416353,"remaining_time":0.8704209109},
655
+ {"learn":[0.3309048705],"iteration":651,"passed_time":11.59505947,"remaining_time":0.8536240099},
656
+ {"learn":[0.3308731151],"iteration":652,"passed_time":11.60999547,"remaining_time":0.8356352025},
657
+ {"learn":[0.330849011],"iteration":653,"passed_time":11.62505336,"remaining_time":0.8176643033},
658
+ {"learn":[0.3308370548],"iteration":654,"passed_time":11.63888185,"remaining_time":0.7996178368},
659
+ {"learn":[0.330815443],"iteration":655,"passed_time":11.65346968,"remaining_time":0.7816351613},
660
+ {"learn":[0.3307927158],"iteration":656,"passed_time":11.66841692,"remaining_time":0.7636863435},
661
+ {"learn":[0.3307651433],"iteration":657,"passed_time":11.68307404,"remaining_time":0.7457281302},
662
+ {"learn":[0.3307434618],"iteration":658,"passed_time":11.69709116,"remaining_time":0.7277401175},
663
+ {"learn":[0.3307152967],"iteration":659,"passed_time":11.71155741,"remaining_time":0.7097913584},
664
+ {"learn":[0.3307010399],"iteration":660,"passed_time":11.7258654,"remaining_time":0.691843798},
665
+ {"learn":[0.3306725612],"iteration":661,"passed_time":11.74053965,"remaining_time":0.6739282579},
666
+ {"learn":[0.3306512805],"iteration":662,"passed_time":11.75524899,"remaining_time":0.6560244535},
667
+ {"learn":[0.3306215817],"iteration":663,"passed_time":11.77019991,"remaining_time":0.6381433683},
668
+ {"learn":[0.3305655131],"iteration":664,"passed_time":11.78590059,"remaining_time":0.6203105574},
669
+ {"learn":[0.3305457313],"iteration":665,"passed_time":11.8002068,"remaining_time":0.6024129597},
670
+ {"learn":[0.3304988476],"iteration":666,"passed_time":11.81651582,"remaining_time":0.5846252202},
671
+ {"learn":[0.3304529226],"iteration":667,"passed_time":11.83225298,"remaining_time":0.5668145138},
672
+ {"learn":[0.33041742],"iteration":668,"passed_time":11.84879964,"remaining_time":0.5490475167},
673
+ {"learn":[0.3303887321],"iteration":669,"passed_time":11.86518118,"remaining_time":0.5312767694},
674
+ {"learn":[0.3303513297],"iteration":670,"passed_time":11.88012552,"remaining_time":0.5134480477},
675
+ {"learn":[0.330319278],"iteration":671,"passed_time":11.89542962,"remaining_time":0.4956429007},
676
+ {"learn":[0.3302906947],"iteration":672,"passed_time":11.91060724,"remaining_time":0.4778401123},
677
+ {"learn":[0.3302699543],"iteration":673,"passed_time":11.92643789,"remaining_time":0.4600703042},
678
+ {"learn":[0.3302250401],"iteration":674,"passed_time":11.94474019,"remaining_time":0.4423977847},
679
+ {"learn":[0.3301810497],"iteration":675,"passed_time":11.96195672,"remaining_time":0.424684854},
680
+ {"learn":[0.3301605882],"iteration":676,"passed_time":11.97724956,"remaining_time":0.4069080352},
681
+ {"learn":[0.3301338174],"iteration":677,"passed_time":11.9918097,"remaining_time":0.389114769},
682
+ {"learn":[0.3301170857],"iteration":678,"passed_time":12.00643191,"remaining_time":0.3713329455},
683
+ {"learn":[0.3300876658],"iteration":679,"passed_time":12.02205502,"remaining_time":0.3535898535},
684
+ {"learn":[0.3300791605],"iteration":680,"passed_time":12.03637873,"remaining_time":0.3358167339},
685
+ {"learn":[0.3300521981],"iteration":681,"passed_time":12.0525651,"remaining_time":0.3181028911},
686
+ {"learn":[0.3300361635],"iteration":682,"passed_time":12.067467,"remaining_time":0.3003615504},
687
+ {"learn":[0.3300130354],"iteration":683,"passed_time":12.08185166,"remaining_time":0.2826164132},
688
+ {"learn":[0.3300000509],"iteration":684,"passed_time":12.09571084,"remaining_time":0.2648695805},
689
+ {"learn":[0.3299684001],"iteration":685,"passed_time":12.11060623,"remaining_time":0.2471552292},
690
+ {"learn":[0.3299393113],"iteration":686,"passed_time":12.12595127,"remaining_time":0.2294575932},
691
+ {"learn":[0.3299050636],"iteration":687,"passed_time":12.14066725,"remaining_time":0.2117558241},
692
+ {"learn":[0.3298688464],"iteration":688,"passed_time":12.15545765,"remaining_time":0.1940639102},
693
+ {"learn":[0.3298451431],"iteration":689,"passed_time":12.17076848,"remaining_time":0.1763879489},
694
+ {"learn":[0.329818843],"iteration":690,"passed_time":12.18537255,"remaining_time":0.158709628},
695
+ {"learn":[0.3297872444],"iteration":691,"passed_time":12.19982698,"remaining_time":0.1410384622},
696
+ {"learn":[0.3297754974],"iteration":692,"passed_time":12.21439948,"remaining_time":0.1233777725},
697
+ {"learn":[0.3297364741],"iteration":693,"passed_time":12.22912579,"remaining_time":0.1057273123},
698
+ {"learn":[0.3296994378],"iteration":694,"passed_time":12.24400876,"remaining_time":0.08808639399},
699
+ {"learn":[0.3296580094],"iteration":695,"passed_time":12.25860718,"remaining_time":0.07045176542},
700
+ {"learn":[0.3296351601],"iteration":696,"passed_time":12.27372949,"remaining_time":0.05282810399},
701
+ {"learn":[0.3296136181],"iteration":697,"passed_time":12.2897054,"remaining_time":0.03521405558},
702
+ {"learn":[0.3295870913],"iteration":698,"passed_time":12.30525272,"remaining_time":0.01760408114},
703
+ {"learn":[0.3295459418],"iteration":699,"passed_time":12.32283916,"remaining_time":0}
704
+ ]}
content/catboost_info/learn/events.out.tfevents ADDED
Binary file (38.4 kB). View file
 
content/catboost_info/learn_error.tsv ADDED
@@ -0,0 +1,701 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ iter Logloss
2
+ 0 0.6693583577
3
+ 1 0.6477139008
4
+ 2 0.628030331
5
+ 3 0.6101154077
6
+ 4 0.5929662391
7
+ 5 0.5779215016
8
+ 6 0.5635537711
9
+ 7 0.5499281966
10
+ 8 0.537432518
11
+ 9 0.5261347604
12
+ 10 0.5158017254
13
+ 11 0.5057060019
14
+ 12 0.4966583459
15
+ 13 0.4880953169
16
+ 14 0.4807266708
17
+ 15 0.473552984
18
+ 16 0.4671030309
19
+ 17 0.4606843277
20
+ 18 0.4552058945
21
+ 19 0.4492992689
22
+ 20 0.4439409032
23
+ 21 0.4389497637
24
+ 22 0.4346480056
25
+ 23 0.4306448388
26
+ 24 0.4265241492
27
+ 25 0.4228412902
28
+ 26 0.4193573119
29
+ 27 0.4160587943
30
+ 28 0.4129280643
31
+ 29 0.4099001995
32
+ 30 0.4071097682
33
+ 31 0.4043702292
34
+ 32 0.4018854653
35
+ 33 0.3993758653
36
+ 34 0.3971043262
37
+ 35 0.3948935616
38
+ 36 0.3929564998
39
+ 37 0.3909427511
40
+ 38 0.3891973895
41
+ 39 0.3875007765
42
+ 40 0.385906558
43
+ 41 0.384509948
44
+ 42 0.383010682
45
+ 43 0.3817163272
46
+ 44 0.380475967
47
+ 45 0.379262517
48
+ 46 0.3781763152
49
+ 47 0.3771640466
50
+ 48 0.3761616253
51
+ 49 0.3751458709
52
+ 50 0.3740434253
53
+ 51 0.3730919138
54
+ 52 0.372019777
55
+ 53 0.3711592441
56
+ 54 0.3703810452
57
+ 55 0.3695687032
58
+ 56 0.3687201613
59
+ 57 0.3680214555
60
+ 58 0.3673946263
61
+ 59 0.3667363728
62
+ 60 0.3661825009
63
+ 61 0.3655205874
64
+ 62 0.3649776259
65
+ 63 0.3643694281
66
+ 64 0.3638445926
67
+ 65 0.3633160797
68
+ 66 0.3628515481
69
+ 67 0.3624389545
70
+ 68 0.3620307356
71
+ 69 0.3616249567
72
+ 70 0.3611576714
73
+ 71 0.3608498427
74
+ 72 0.3604745295
75
+ 73 0.360160775
76
+ 74 0.3597599285
77
+ 75 0.3594184621
78
+ 76 0.3590822767
79
+ 77 0.3588411484
80
+ 78 0.3584713601
81
+ 79 0.3581468869
82
+ 80 0.357792436
83
+ 81 0.3575437086
84
+ 82 0.3572471216
85
+ 83 0.3569938279
86
+ 84 0.3567045958
87
+ 85 0.3564370627
88
+ 86 0.3562029233
89
+ 87 0.3559449935
90
+ 88 0.3557689097
91
+ 89 0.3555588918
92
+ 90 0.355310147
93
+ 91 0.3550349801
94
+ 92 0.3548768654
95
+ 93 0.3546973132
96
+ 94 0.3544483418
97
+ 95 0.3542316662
98
+ 96 0.3540577261
99
+ 97 0.3538645619
100
+ 98 0.3536669186
101
+ 99 0.3534577199
102
+ 100 0.3532980366
103
+ 101 0.3531143364
104
+ 102 0.3529525442
105
+ 103 0.352720932
106
+ 104 0.3525441858
107
+ 105 0.3523488954
108
+ 106 0.3521533784
109
+ 107 0.3520032112
110
+ 108 0.3518237985
111
+ 109 0.3516535359
112
+ 110 0.3515493984
113
+ 111 0.351366709
114
+ 112 0.3512264938
115
+ 113 0.3510295301
116
+ 114 0.3509164168
117
+ 115 0.3507827897
118
+ 116 0.3506489185
119
+ 117 0.3505308903
120
+ 118 0.3504389356
121
+ 119 0.3503299529
122
+ 120 0.3502196978
123
+ 121 0.3500952209
124
+ 122 0.3499537508
125
+ 123 0.3498405677
126
+ 124 0.3497413452
127
+ 125 0.3496569372
128
+ 126 0.3495457584
129
+ 127 0.3494268587
130
+ 128 0.3493299019
131
+ 129 0.3492671057
132
+ 130 0.3491970068
133
+ 131 0.3491134179
134
+ 132 0.3490168272
135
+ 133 0.3489065373
136
+ 134 0.3487909665
137
+ 135 0.3487346189
138
+ 136 0.34863144
139
+ 137 0.348476846
140
+ 138 0.3483455195
141
+ 139 0.3482603795
142
+ 140 0.3481707951
143
+ 141 0.3480961995
144
+ 142 0.3479716703
145
+ 143 0.3478644305
146
+ 144 0.3477603453
147
+ 145 0.3476748915
148
+ 146 0.3475981871
149
+ 147 0.3475498743
150
+ 148 0.3474708692
151
+ 149 0.3474002649
152
+ 150 0.3473024192
153
+ 151 0.3472470128
154
+ 152 0.347147616
155
+ 153 0.3470970374
156
+ 154 0.3470168821
157
+ 155 0.3469638635
158
+ 156 0.3469139298
159
+ 157 0.3468255654
160
+ 158 0.3467315541
161
+ 159 0.3466544837
162
+ 160 0.3465898574
163
+ 161 0.3465275841
164
+ 162 0.3464766569
165
+ 163 0.3464196297
166
+ 164 0.3463545154
167
+ 165 0.3462822379
168
+ 166 0.3462016817
169
+ 167 0.3461531597
170
+ 168 0.3460966728
171
+ 169 0.3460331271
172
+ 170 0.3459555512
173
+ 171 0.3459097133
174
+ 172 0.3458622545
175
+ 173 0.3458136803
176
+ 174 0.3457595636
177
+ 175 0.3456799834
178
+ 176 0.3456301891
179
+ 177 0.3455485872
180
+ 178 0.3454828804
181
+ 179 0.345395492
182
+ 180 0.3453230402
183
+ 181 0.3452733157
184
+ 182 0.3452000796
185
+ 183 0.345130643
186
+ 184 0.3450523351
187
+ 185 0.3450015473
188
+ 186 0.3449318144
189
+ 187 0.3448912923
190
+ 188 0.3448336028
191
+ 189 0.3447925055
192
+ 190 0.3447422929
193
+ 191 0.3447172999
194
+ 192 0.3446466607
195
+ 193 0.3445972673
196
+ 194 0.3445478216
197
+ 195 0.3444930079
198
+ 196 0.3444503768
199
+ 197 0.3444047481
200
+ 198 0.3443564875
201
+ 199 0.3443102313
202
+ 200 0.3442544067
203
+ 201 0.3442094925
204
+ 202 0.3441584607
205
+ 203 0.3441317423
206
+ 204 0.3440640311
207
+ 205 0.344003065
208
+ 206 0.3439352144
209
+ 207 0.3438830847
210
+ 208 0.3438148158
211
+ 209 0.343793448
212
+ 210 0.3437594617
213
+ 211 0.3437058679
214
+ 212 0.3436483004
215
+ 213 0.343590454
216
+ 214 0.3435563805
217
+ 215 0.3435081897
218
+ 216 0.3434632755
219
+ 217 0.3433945186
220
+ 218 0.3433496567
221
+ 219 0.3433090649
222
+ 220 0.3432748869
223
+ 221 0.3432341382
224
+ 222 0.3431823745
225
+ 223 0.3431280661
226
+ 224 0.3430701674
227
+ 225 0.3430304993
228
+ 226 0.3429804262
229
+ 227 0.3429589364
230
+ 228 0.3429145277
231
+ 229 0.3428644197
232
+ 230 0.3428323505
233
+ 231 0.3427805868
234
+ 232 0.3427590273
235
+ 233 0.3427080827
236
+ 234 0.3426846409
237
+ 235 0.3426580967
238
+ 236 0.3426098013
239
+ 237 0.3425897581
240
+ 238 0.3425521815
241
+ 239 0.3424989189
242
+ 240 0.3424636777
243
+ 241 0.3424409505
244
+ 242 0.3423942237
245
+ 243 0.3423794963
246
+ 244 0.342337911
247
+ 245 0.3423066785
248
+ 246 0.3422774328
249
+ 247 0.3422391416
250
+ 248 0.3422052948
251
+ 249 0.3421800578
252
+ 250 0.3421386991
253
+ 251 0.3420818287
254
+ 252 0.3420561385
255
+ 253 0.34202515
256
+ 254 0.3419859002
257
+ 255 0.3419502582
258
+ 256 0.3418838193
259
+ 257 0.3418690396
260
+ 258 0.341839794
261
+ 259 0.3417826622
262
+ 260 0.341756972
263
+ 261 0.3417198485
264
+ 262 0.3416694442
265
+ 263 0.3416337674
266
+ 264 0.3415778556
267
+ 265 0.3415397735
268
+ 266 0.3415079135
269
+ 267 0.3414789642
270
+ 268 0.3414484288
271
+ 269 0.3414138673
272
+ 270 0.3413903209
273
+ 271 0.3413751404
274
+ 272 0.3413371978
275
+ 273 0.341309939
276
+ 274 0.3412701663
277
+ 275 0.3412261933
278
+ 276 0.3412083113
279
+ 277 0.341188791
280
+ 278 0.3411347963
281
+ 279 0.3410837646
282
+ 280 0.3410773856
283
+ 281 0.3410320532
284
+ 282 0.341017134
285
+ 283 0.3409884287
286
+ 284 0.3409494752
287
+ 285 0.3409228613
288
+ 286 0.3408732587
289
+ 287 0.340852867
290
+ 288 0.340819543
291
+ 289 0.3407856438
292
+ 290 0.3407436577
293
+ 291 0.3407093925
294
+ 292 0.3406827264
295
+ 293 0.3406351456
296
+ 294 0.3405883839
297
+ 295 0.3405751031
298
+ 296 0.3405319318
299
+ 297 0.3405076883
300
+ 298 0.3404692227
301
+ 299 0.3404472798
302
+ 300 0.3404057817
303
+ 301 0.3403879868
304
+ 302 0.340365887
305
+ 303 0.3403376348
306
+ 304 0.3402862022
307
+ 305 0.3402639978
308
+ 306 0.340232469
309
+ 307 0.3402143953
310
+ 308 0.3402021254
311
+ 309 0.3401865614
312
+ 310 0.3401630673
313
+ 311 0.340130301
314
+ 312 0.340106772
315
+ 313 0.3400823368
316
+ 314 0.3400542589
317
+ 315 0.3400406992
318
+ 316 0.3400162639
319
+ 317 0.3399895106
320
+ 318 0.3399458339
321
+ 319 0.3399104184
322
+ 320 0.3398751772
323
+ 321 0.339855012
324
+ 322 0.3398259407
325
+ 323 0.3398070129
326
+ 324 0.3397845471
327
+ 325 0.3397538898
328
+ 326 0.3397324
329
+ 327 0.339700662
330
+ 328 0.3396644448
331
+ 329 0.3396320097
332
+ 330 0.3396044721
333
+ 331 0.3395861369
334
+ 332 0.3395576581
335
+ 333 0.3395049881
336
+ 334 0.3394697818
337
+ 335 0.3394204232
338
+ 336 0.339382498
339
+ 337 0.3393344641
340
+ 338 0.3393063165
341
+ 339 0.3392760251
342
+ 340 0.3392589971
343
+ 341 0.3392346315
344
+ 342 0.3392006627
345
+ 343 0.3391569336
346
+ 344 0.3391332652
347
+ 345 0.3390974838
348
+ 346 0.3390728393
349
+ 347 0.3390492755
350
+ 348 0.3390156552
351
+ 349 0.3389861133
352
+ 350 0.3389502621
353
+ 351 0.3389262103
354
+ 352 0.3388921891
355
+ 353 0.3388672659
356
+ 354 0.3388546822
357
+ 355 0.3388330007
358
+ 356 0.3388103083
359
+ 357 0.3387708668
360
+ 358 0.3387532288
361
+ 359 0.3387258829
362
+ 360 0.3387100923
363
+ 361 0.3386711214
364
+ 362 0.3386461633
365
+ 363 0.3386176148
366
+ 364 0.3386091269
367
+ 365 0.3385890489
368
+ 366 0.338558252
369
+ 367 0.3385261829
370
+ 368 0.3385007542
371
+ 369 0.3384806936
372
+ 370 0.338454864
373
+ 371 0.338421296
374
+ 372 0.3383962507
375
+ 373 0.3383692534
376
+ 374 0.3383410361
377
+ 375 0.3382997297
378
+ 376 0.338270728
379
+ 377 0.3382298573
380
+ 378 0.3382006988
381
+ 379 0.3381719586
382
+ 380 0.3381436367
383
+ 381 0.3380950625
384
+ 382 0.3380801608
385
+ 383 0.3380630805
386
+ 384 0.3380325451
387
+ 385 0.3380025152
388
+ 386 0.3379622545
389
+ 387 0.3379313008
390
+ 388 0.3379008352
391
+ 389 0.3378795023
392
+ 390 0.3378620037
393
+ 391 0.3378274422
394
+ 392 0.3378031812
395
+ 393 0.3377844104
396
+ 394 0.3377489949
397
+ 395 0.3377118017
398
+ 396 0.3376860593
399
+ 397 0.3376515152
400
+ 398 0.3376256159
401
+ 399 0.3376065836
402
+ 400 0.3375883182
403
+ 401 0.3375665669
404
+ 402 0.3375253477
405
+ 403 0.3374962763
406
+ 404 0.3374702899
407
+ 405 0.3374407828
408
+ 406 0.3374256894
409
+ 407 0.3374018641
410
+ 408 0.3373600697
411
+ 409 0.3373457258
412
+ 410 0.3373179093
413
+ 411 0.337285143
414
+ 412 0.3372512962
415
+ 413 0.3372110355
416
+ 414 0.3371866874
417
+ 415 0.3371588012
418
+ 416 0.3371279346
419
+ 417 0.3370894691
420
+ 418 0.3370698268
421
+ 419 0.3370435266
422
+ 420 0.3370146819
423
+ 421 0.336970552
424
+ 422 0.3369416549
425
+ 423 0.3369064835
426
+ 424 0.336877691
427
+ 425 0.3368339619
428
+ 426 0.3368164285
429
+ 427 0.3368039843
430
+ 428 0.3367960716
431
+ 429 0.3367868517
432
+ 430 0.3367547129
433
+ 431 0.3367083695
434
+ 432 0.3366763353
435
+ 433 0.336659011
436
+ 434 0.3366535906
437
+ 435 0.336637312
438
+ 436 0.336612441
439
+ 437 0.3365996657
440
+ 438 0.3365617928
441
+ 439 0.3365495403
442
+ 440 0.3365064735
443
+ 441 0.3364532458
444
+ 442 0.3364174643
445
+ 443 0.3363892993
446
+ 444 0.3363793648
447
+ 445 0.3363509209
448
+ 446 0.3363206295
449
+ 447 0.3362951137
450
+ 448 0.3362762382
451
+ 449 0.3362583562
452
+ 450 0.3362176946
453
+ 451 0.3362008061
454
+ 452 0.3361687369
455
+ 453 0.3361457483
456
+ 454 0.3361189601
457
+ 455 0.3360838061
458
+ 456 0.3360557456
459
+ 457 0.3360168967
460
+ 458 0.3359835204
461
+ 459 0.3359608803
462
+ 460 0.3359288286
463
+ 461 0.3359005241
464
+ 462 0.3358629649
465
+ 463 0.3358349219
466
+ 464 0.3358095454
467
+ 465 0.3357617903
468
+ 466 0.3357390631
469
+ 467 0.3357043274
470
+ 468 0.3356895825
471
+ 469 0.3356540451
472
+ 470 0.3356342285
473
+ 471 0.335599179
474
+ 472 0.3355819593
475
+ 473 0.3355575937
476
+ 474 0.3355287838
477
+ 475 0.33548929
478
+ 476 0.3354566283
479
+ 477 0.3354341451
480
+ 478 0.3353937798
481
+ 479 0.3353775535
482
+ 480 0.3353356894
483
+ 481 0.3353111495
484
+ 482 0.3352722657
485
+ 483 0.3352479002
486
+ 484 0.3352227329
487
+ 485 0.3351988902
488
+ 486 0.3351657231
489
+ 487 0.335144913
490
+ 488 0.3351067438
491
+ 489 0.3350797116
492
+ 490 0.3350731409
493
+ 491 0.3350376558
494
+ 492 0.3350186409
495
+ 493 0.3349795828
496
+ 494 0.3349463982
497
+ 495 0.3349167866
498
+ 496 0.3349072181
499
+ 497 0.3348861989
500
+ 498 0.3348546178
501
+ 499 0.3348040392
502
+ 500 0.3347716738
503
+ 501 0.3347458791
504
+ 502 0.3347193175
505
+ 503 0.3347033701
506
+ 504 0.3346697498
507
+ 505 0.3346478069
508
+ 506 0.3346170972
509
+ 507 0.334582588
510
+ 508 0.3345531855
511
+ 509 0.3345227547
512
+ 510 0.3344913479
513
+ 511 0.3344695967
514
+ 512 0.334451767
515
+ 513 0.3344233231
516
+ 514 0.3344040119
517
+ 515 0.3343719079
518
+ 516 0.3343418954
519
+ 517 0.334309042
520
+ 518 0.3342671778
521
+ 519 0.3342250174
522
+ 520 0.3341972532
523
+ 521 0.3341767743
524
+ 522 0.3341539773
525
+ 523 0.334109342
526
+ 524 0.3340841399
527
+ 525 0.3340682622
528
+ 526 0.3340433738
529
+ 527 0.3340135704
530
+ 528 0.3339939803
531
+ 529 0.3339707477
532
+ 530 0.3339452144
533
+ 531 0.3339202911
534
+ 532 0.3338790893
535
+ 533 0.3338499656
536
+ 534 0.333829173
537
+ 535 0.3338051909
538
+ 536 0.3337726163
539
+ 537 0.3337447475
540
+ 538 0.3337440155
541
+ 539 0.333727493
542
+ 540 0.3336857857
543
+ 541 0.3336467102
544
+ 542 0.333626301
545
+ 543 0.3336007328
546
+ 544 0.3335807768
547
+ 545 0.3335576835
548
+ 546 0.3335431653
549
+ 547 0.3335066518
550
+ 548 0.3334790096
551
+ 549 0.3334528663
552
+ 550 0.333428553
553
+ 551 0.3334094161
554
+ 552 0.3333805365
555
+ 553 0.3333617656
556
+ 554 0.3333428727
557
+ 555 0.3333107513
558
+ 556 0.3332924859
559
+ 557 0.3332744993
560
+ 558 0.3332287485
561
+ 559 0.3332059167
562
+ 560 0.3331860478
563
+ 561 0.3331722964
564
+ 562 0.3331290205
565
+ 563 0.333095592
566
+ 564 0.3330793308
567
+ 565 0.333028212
568
+ 566 0.3329951668
569
+ 567 0.3329744091
570
+ 568 0.3329461743
571
+ 569 0.3329256605
572
+ 570 0.3328955086
573
+ 571 0.3328673087
574
+ 572 0.3328411131
575
+ 573 0.3328066562
576
+ 574 0.3327926783
577
+ 575 0.3327671275
578
+ 576 0.3327488447
579
+ 577 0.3327223528
580
+ 578 0.3327048891
581
+ 579 0.3326724016
582
+ 580 0.3326632341
583
+ 581 0.3326498313
584
+ 582 0.3326177273
585
+ 583 0.3325971089
586
+ 584 0.3325897191
587
+ 585 0.3325505913
588
+ 586 0.3325138512
589
+ 587 0.3324921
590
+ 588 0.332465399
591
+ 589 0.3324517173
592
+ 590 0.3324186896
593
+ 591 0.3323993959
594
+ 592 0.332379039
595
+ 593 0.3323648693
596
+ 594 0.3323425081
597
+ 595 0.3323116241
598
+ 596 0.3322827096
599
+ 597 0.3322618821
600
+ 598 0.3322333859
601
+ 599 0.3321977787
602
+ 600 0.3321576575
603
+ 601 0.3321364466
604
+ 602 0.3321110701
605
+ 603 0.3320814236
606
+ 604 0.3320631059
607
+ 605 0.3320444396
608
+ 606 0.3320343308
609
+ 607 0.3319991419
610
+ 608 0.3319654868
611
+ 609 0.3319380015
612
+ 610 0.3319204855
613
+ 611 0.3318993791
614
+ 612 0.3318804862
615
+ 613 0.3318469356
616
+ 614 0.3318181954
617
+ 615 0.3317936207
618
+ 616 0.331767948
619
+ 617 0.3317493863
620
+ 618 0.3317241144
621
+ 619 0.3316923242
622
+ 620 0.3316686906
623
+ 621 0.3316284997
624
+ 622 0.3316127091
625
+ 623 0.3315869492
626
+ 624 0.3315719953
627
+ 625 0.3315513943
628
+ 626 0.3315175998
629
+ 627 0.3314971557
630
+ 628 0.3314769034
631
+ 629 0.331470141
632
+ 630 0.3314505684
633
+ 631 0.3314225079
634
+ 632 0.3313993101
635
+ 633 0.3313756939
636
+ 634 0.3313353287
637
+ 635 0.331297142
638
+ 636 0.3312679835
639
+ 637 0.3312539533
640
+ 638 0.3312240977
641
+ 639 0.3312018236
642
+ 640 0.331174896
643
+ 641 0.3311560379
644
+ 642 0.331137877
645
+ 643 0.3311118035
646
+ 644 0.3310849804
647
+ 645 0.3310507327
648
+ 646 0.3310210688
649
+ 647 0.330998603
650
+ 648 0.3309693922
651
+ 649 0.3309498893
652
+ 650 0.330926186
653
+ 651 0.3309048705
654
+ 652 0.3308731151
655
+ 653 0.330849011
656
+ 654 0.3308370548
657
+ 655 0.330815443
658
+ 656 0.3307927158
659
+ 657 0.3307651433
660
+ 658 0.3307434618
661
+ 659 0.3307152967
662
+ 660 0.3307010399
663
+ 661 0.3306725612
664
+ 662 0.3306512805
665
+ 663 0.3306215817
666
+ 664 0.3305655131
667
+ 665 0.3305457313
668
+ 666 0.3304988476
669
+ 667 0.3304529226
670
+ 668 0.33041742
671
+ 669 0.3303887321
672
+ 670 0.3303513297
673
+ 671 0.330319278
674
+ 672 0.3302906947
675
+ 673 0.3302699543
676
+ 674 0.3302250401
677
+ 675 0.3301810497
678
+ 676 0.3301605882
679
+ 677 0.3301338174
680
+ 678 0.3301170857
681
+ 679 0.3300876658
682
+ 680 0.3300791605
683
+ 681 0.3300521981
684
+ 682 0.3300361635
685
+ 683 0.3300130354
686
+ 684 0.3300000509
687
+ 685 0.3299684001
688
+ 686 0.3299393113
689
+ 687 0.3299050636
690
+ 688 0.3298688464
691
+ 689 0.3298451431
692
+ 690 0.329818843
693
+ 691 0.3297872444
694
+ 692 0.3297754974
695
+ 693 0.3297364741
696
+ 694 0.3296994378
697
+ 695 0.3296580094
698
+ 696 0.3296351601
699
+ 697 0.3296136181
700
+ 698 0.3295870913
701
+ 699 0.3295459418
content/catboost_info/time_left.tsv ADDED
@@ -0,0 +1,701 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ iter Passed Remaining
2
+ 0 18 13037
3
+ 1 34 12071
4
+ 2 50 11713
5
+ 3 66 11601
6
+ 4 83 11547
7
+ 5 112 12992
8
+ 6 136 13483
9
+ 7 152 13159
10
+ 8 168 12905
11
+ 9 184 12740
12
+ 10 201 12597
13
+ 11 218 12518
14
+ 12 234 12390
15
+ 13 251 12307
16
+ 14 267 12222
17
+ 15 284 12141
18
+ 16 300 12062
19
+ 17 316 11987
20
+ 18 332 11931
21
+ 19 349 11893
22
+ 20 366 11836
23
+ 21 383 11828
24
+ 22 400 11785
25
+ 23 417 11753
26
+ 24 433 11697
27
+ 25 449 11655
28
+ 26 465 11607
29
+ 27 482 11580
30
+ 28 499 11552
31
+ 29 515 11513
32
+ 30 531 11467
33
+ 31 547 11428
34
+ 32 563 11394
35
+ 33 579 11354
36
+ 34 595 11319
37
+ 35 612 11289
38
+ 36 628 11259
39
+ 37 644 11221
40
+ 38 660 11192
41
+ 39 676 11155
42
+ 40 692 11129
43
+ 41 708 11100
44
+ 42 725 11088
45
+ 43 741 11057
46
+ 44 757 11028
47
+ 45 772 10985
48
+ 46 788 10954
49
+ 47 804 10927
50
+ 48 821 10909
51
+ 49 837 10882
52
+ 50 853 10855
53
+ 51 869 10833
54
+ 52 884 10801
55
+ 53 902 10798
56
+ 54 922 10816
57
+ 55 938 10793
58
+ 56 953 10760
59
+ 57 970 10746
60
+ 58 986 10719
61
+ 59 1002 10689
62
+ 60 1018 10666
63
+ 61 1033 10635
64
+ 62 1049 10609
65
+ 63 1065 10585
66
+ 64 1080 10559
67
+ 65 1097 10539
68
+ 66 1112 10513
69
+ 67 1132 10525
70
+ 68 1152 10542
71
+ 69 1175 10577
72
+ 70 1193 10569
73
+ 71 1209 10547
74
+ 72 1224 10521
75
+ 73 1240 10494
76
+ 74 1256 10469
77
+ 75 1271 10440
78
+ 76 1287 10417
79
+ 77 1304 10400
80
+ 78 1320 10377
81
+ 79 1335 10351
82
+ 80 1351 10325
83
+ 81 1368 10311
84
+ 82 1383 10287
85
+ 83 1399 10262
86
+ 84 1414 10232
87
+ 85 1430 10209
88
+ 86 1445 10187
89
+ 87 1462 10169
90
+ 88 1478 10148
91
+ 89 1494 10129
92
+ 90 1509 10103
93
+ 91 1525 10082
94
+ 92 1541 10060
95
+ 93 1556 10035
96
+ 94 1571 10006
97
+ 95 1586 9980
98
+ 96 1602 9962
99
+ 97 1618 9942
100
+ 98 1634 9921
101
+ 99 1650 9900
102
+ 100 1666 9883
103
+ 101 1682 9863
104
+ 102 1697 9837
105
+ 103 1712 9814
106
+ 104 1728 9795
107
+ 105 1744 9777
108
+ 106 1760 9756
109
+ 107 1776 9735
110
+ 108 1791 9713
111
+ 109 1806 9690
112
+ 110 1821 9667
113
+ 111 1836 9642
114
+ 112 1851 9618
115
+ 113 1866 9595
116
+ 114 1882 9578
117
+ 115 1900 9565
118
+ 116 1919 9562
119
+ 117 1934 9541
120
+ 118 1950 9521
121
+ 119 1967 9510
122
+ 120 1982 9488
123
+ 121 1998 9469
124
+ 122 2014 9452
125
+ 123 2029 9429
126
+ 124 2045 9407
127
+ 125 2059 9382
128
+ 126 2075 9362
129
+ 127 2090 9343
130
+ 128 2106 9325
131
+ 129 2122 9304
132
+ 130 2137 9285
133
+ 131 2152 9264
134
+ 132 2168 9244
135
+ 133 2188 9242
136
+ 134 2207 9239
137
+ 135 2233 9260
138
+ 136 2248 9239
139
+ 137 2263 9219
140
+ 138 2279 9199
141
+ 139 2294 9178
142
+ 140 2319 9195
143
+ 141 2360 9277
144
+ 142 2398 9342
145
+ 143 2432 9392
146
+ 144 2469 9451
147
+ 145 2506 9510
148
+ 146 2547 9584
149
+ 147 2586 9647
150
+ 148 2627 9715
151
+ 149 2669 9789
152
+ 150 2705 9838
153
+ 151 2742 9887
154
+ 152 2781 9945
155
+ 153 2822 10006
156
+ 154 2862 10063
157
+ 155 2909 10144
158
+ 156 2949 10200
159
+ 157 2988 10252
160
+ 158 3027 10299
161
+ 159 3067 10354
162
+ 160 3106 10398
163
+ 161 3145 10446
164
+ 162 3183 10489
165
+ 163 3230 10556
166
+ 164 3269 10601
167
+ 165 3310 10650
168
+ 166 3336 10647
169
+ 167 3376 10691
170
+ 168 3402 10689
171
+ 169 3426 10681
172
+ 170 3450 10673
173
+ 171 3474 10667
174
+ 172 3500 10663
175
+ 173 3526 10661
176
+ 174 3551 10653
177
+ 175 3575 10644
178
+ 176 3599 10634
179
+ 177 3624 10629
180
+ 178 3656 10641
181
+ 179 3680 10633
182
+ 180 3719 10664
183
+ 181 3747 10666
184
+ 182 3784 10691
185
+ 183 3828 10737
186
+ 184 3867 10767
187
+ 185 3907 10799
188
+ 186 3931 10785
189
+ 187 3953 10765
190
+ 188 3977 10754
191
+ 189 4005 10752
192
+ 190 4049 10791
193
+ 191 4083 10803
194
+ 192 4123 10832
195
+ 193 4167 10870
196
+ 194 4203 10886
197
+ 195 4246 10918
198
+ 196 4285 10941
199
+ 197 4317 10947
200
+ 198 4356 10967
201
+ 199 4383 10959
202
+ 200 4412 10954
203
+ 201 4448 10967
204
+ 202 4495 11005
205
+ 203 4532 11019
206
+ 204 4577 11051
207
+ 205 4620 11080
208
+ 206 4650 11076
209
+ 207 4666 11039
210
+ 208 4683 11001
211
+ 209 4697 10961
212
+ 210 4713 10923
213
+ 211 4729 10886
214
+ 212 4744 10847
215
+ 213 4759 10809
216
+ 214 4774 10771
217
+ 215 4790 10734
218
+ 216 4806 10698
219
+ 217 4821 10661
220
+ 218 4837 10623
221
+ 219 4852 10587
222
+ 220 4868 10551
223
+ 221 4885 10519
224
+ 222 4903 10488
225
+ 223 4926 10468
226
+ 224 4946 10441
227
+ 225 4971 10426
228
+ 226 5009 10438
229
+ 227 5023 10400
230
+ 228 5040 10366
231
+ 229 5056 10332
232
+ 230 5072 10298
233
+ 231 5089 10267
234
+ 232 5105 10233
235
+ 233 5121 10199
236
+ 234 5137 10166
237
+ 235 5154 10133
238
+ 236 5170 10101
239
+ 237 5186 10068
240
+ 238 5203 10036
241
+ 239 5220 10005
242
+ 240 5235 9970
243
+ 241 5250 9937
244
+ 242 5266 9903
245
+ 243 5281 9869
246
+ 244 5297 9837
247
+ 245 5311 9802
248
+ 246 5326 9769
249
+ 247 5341 9735
250
+ 248 5357 9702
251
+ 249 5377 9678
252
+ 250 5403 9665
253
+ 251 5424 9644
254
+ 252 5440 9611
255
+ 253 5455 9579
256
+ 254 5471 9548
257
+ 255 5486 9515
258
+ 256 5502 9485
259
+ 257 5517 9452
260
+ 258 5533 9421
261
+ 259 5549 9390
262
+ 260 5563 9358
263
+ 261 5579 9326
264
+ 262 5594 9295
265
+ 263 5609 9264
266
+ 264 5624 9233
267
+ 265 5639 9201
268
+ 266 5654 9170
269
+ 267 5669 9138
270
+ 268 5684 9108
271
+ 269 5700 9079
272
+ 270 5716 9048
273
+ 271 5730 9017
274
+ 272 5745 8987
275
+ 273 5760 8956
276
+ 274 5776 8927
277
+ 275 5793 8899
278
+ 276 5808 8870
279
+ 277 5822 8839
280
+ 278 5839 8812
281
+ 279 5856 8784
282
+ 280 5872 8756
283
+ 281 5889 8729
284
+ 282 5904 8699
285
+ 283 5920 8672
286
+ 284 5939 8648
287
+ 285 5954 8619
288
+ 286 5973 8595
289
+ 287 5987 8565
290
+ 288 6003 8537
291
+ 289 6018 8509
292
+ 290 6034 8481
293
+ 291 6050 8454
294
+ 292 6066 8426
295
+ 293 6082 8399
296
+ 294 6098 8372
297
+ 295 6114 8345
298
+ 296 6130 8318
299
+ 297 6145 8290
300
+ 298 6161 8263
301
+ 299 6176 8235
302
+ 300 6194 8211
303
+ 301 6210 8184
304
+ 302 6227 8158
305
+ 303 6243 8132
306
+ 304 6260 8107
307
+ 305 6275 8080
308
+ 306 6291 8054
309
+ 307 6307 8027
310
+ 308 6321 7999
311
+ 309 6337 7972
312
+ 310 6354 7948
313
+ 311 6370 7922
314
+ 312 6385 7895
315
+ 313 6402 7870
316
+ 314 6432 7861
317
+ 315 6452 7841
318
+ 316 6468 7814
319
+ 317 6484 7789
320
+ 318 6500 7764
321
+ 319 6515 7737
322
+ 320 6531 7711
323
+ 321 6546 7685
324
+ 322 6562 7660
325
+ 323 6577 7632
326
+ 324 6592 7607
327
+ 325 6609 7582
328
+ 326 6623 7555
329
+ 327 6638 7529
330
+ 328 6653 7502
331
+ 329 6668 7477
332
+ 330 6684 7451
333
+ 331 6699 7426
334
+ 332 6715 7400
335
+ 333 6730 7375
336
+ 334 6747 7351
337
+ 335 6762 7325
338
+ 336 6778 7301
339
+ 337 6795 7278
340
+ 338 6811 7253
341
+ 339 6826 7228
342
+ 340 6841 7202
343
+ 341 6856 7177
344
+ 342 6872 7153
345
+ 343 6889 7129
346
+ 344 6905 7105
347
+ 345 6920 7080
348
+ 346 6938 7058
349
+ 347 6953 7033
350
+ 348 6970 7010
351
+ 349 6985 6985
352
+ 350 7001 6961
353
+ 351 7014 6935
354
+ 352 7030 6910
355
+ 353 7045 6886
356
+ 354 7059 6861
357
+ 355 7075 6836
358
+ 356 7089 6811
359
+ 357 7104 6787
360
+ 358 7119 6762
361
+ 359 7134 6738
362
+ 360 7149 6713
363
+ 361 7164 6689
364
+ 362 7180 6665
365
+ 363 7194 6641
366
+ 364 7209 6616
367
+ 365 7224 6592
368
+ 366 7239 6568
369
+ 367 7254 6544
370
+ 368 7268 6520
371
+ 369 7283 6496
372
+ 370 7297 6471
373
+ 371 7313 6448
374
+ 372 7328 6424
375
+ 373 7345 6402
376
+ 374 7360 6379
377
+ 375 7376 6356
378
+ 376 7392 6333
379
+ 377 7407 6310
380
+ 378 7423 6287
381
+ 379 7438 6263
382
+ 380 7473 6257
383
+ 381 7488 6234
384
+ 382 7502 6209
385
+ 383 7517 6186
386
+ 384 7532 6163
387
+ 385 7547 6139
388
+ 386 7563 6117
389
+ 387 7578 6094
390
+ 388 7593 6070
391
+ 389 7609 6048
392
+ 390 7623 6024
393
+ 391 7638 6002
394
+ 392 7654 5979
395
+ 393 7670 5957
396
+ 394 7684 5933
397
+ 395 7702 5912
398
+ 396 7717 5889
399
+ 397 7732 5867
400
+ 398 7747 5844
401
+ 399 7761 5821
402
+ 400 7775 5797
403
+ 401 7790 5774
404
+ 402 7805 5752
405
+ 403 7820 5729
406
+ 404 7835 5707
407
+ 405 7851 5685
408
+ 406 7866 5663
409
+ 407 7881 5640
410
+ 408 7896 5618
411
+ 409 7910 5595
412
+ 410 7925 5572
413
+ 411 7942 5551
414
+ 412 7957 5529
415
+ 413 7974 5508
416
+ 414 7989 5487
417
+ 415 8004 5464
418
+ 416 8019 5442
419
+ 417 8034 5420
420
+ 418 8048 5397
421
+ 419 8063 5375
422
+ 420 8077 5353
423
+ 421 8093 5331
424
+ 422 8107 5308
425
+ 423 8121 5286
426
+ 424 8135 5264
427
+ 425 8150 5242
428
+ 426 8164 5219
429
+ 427 8178 5197
430
+ 428 8192 5175
431
+ 429 8206 5152
432
+ 430 8220 5130
433
+ 431 8235 5109
434
+ 432 8250 5087
435
+ 433 8264 5065
436
+ 434 8278 5043
437
+ 435 8292 5020
438
+ 436 8306 4999
439
+ 437 8320 4976
440
+ 438 8334 4955
441
+ 439 8350 4934
442
+ 440 8365 4913
443
+ 441 8382 4892
444
+ 442 8396 4871
445
+ 443 8411 4849
446
+ 444 8425 4828
447
+ 445 8440 4806
448
+ 446 8455 4785
449
+ 447 8475 4767
450
+ 448 8502 4752
451
+ 449 8516 4731
452
+ 450 8530 4710
453
+ 451 8544 4688
454
+ 452 8558 4666
455
+ 453 8572 4645
456
+ 454 8587 4624
457
+ 455 8603 4603
458
+ 456 8618 4582
459
+ 457 8635 4562
460
+ 458 8651 4542
461
+ 459 8665 4521
462
+ 460 8681 4500
463
+ 461 8696 4479
464
+ 462 8711 4459
465
+ 463 8726 4438
466
+ 464 8741 4417
467
+ 465 8756 4396
468
+ 466 8770 4375
469
+ 467 8785 4355
470
+ 468 8799 4334
471
+ 469 8814 4313
472
+ 470 8828 4292
473
+ 471 8843 4271
474
+ 472 8859 4251
475
+ 473 8874 4231
476
+ 474 8889 4210
477
+ 475 8904 4190
478
+ 476 8918 4169
479
+ 477 8936 4150
480
+ 478 8951 4129
481
+ 479 8967 4109
482
+ 480 8981 4089
483
+ 481 8995 4068
484
+ 482 9010 4048
485
+ 483 9025 4027
486
+ 484 9039 4007
487
+ 485 9053 3986
488
+ 486 9078 3970
489
+ 487 9093 3950
490
+ 488 9111 3931
491
+ 489 9125 3911
492
+ 490 9139 3890
493
+ 491 9153 3869
494
+ 492 9167 3849
495
+ 493 9183 3829
496
+ 494 9198 3809
497
+ 495 9213 3789
498
+ 496 9227 3769
499
+ 497 9242 3748
500
+ 498 9257 3728
501
+ 499 9273 3709
502
+ 500 9288 3689
503
+ 501 9303 3669
504
+ 502 9317 3649
505
+ 503 9331 3628
506
+ 504 9346 3609
507
+ 505 9360 3588
508
+ 506 9374 3568
509
+ 507 9389 3548
510
+ 508 9404 3529
511
+ 509 9419 3509
512
+ 510 9434 3489
513
+ 511 9449 3469
514
+ 512 9464 3449
515
+ 513 9478 3430
516
+ 514 9495 3411
517
+ 515 9527 3397
518
+ 516 9542 3377
519
+ 517 9557 3358
520
+ 518 9572 3338
521
+ 519 9587 3318
522
+ 520 9602 3299
523
+ 521 9616 3279
524
+ 522 9630 3259
525
+ 523 9645 3239
526
+ 524 9659 3219
527
+ 525 9673 3199
528
+ 526 9687 3180
529
+ 527 9702 3160
530
+ 528 9715 3140
531
+ 529 9730 3121
532
+ 530 9745 3101
533
+ 531 9759 3082
534
+ 532 9775 3062
535
+ 533 9790 3043
536
+ 534 9805 3024
537
+ 535 9819 3004
538
+ 536 9835 2985
539
+ 537 9850 2966
540
+ 538 9864 2946
541
+ 539 9879 2927
542
+ 540 9894 2907
543
+ 541 9910 2888
544
+ 542 9924 2869
545
+ 543 9942 2851
546
+ 544 9956 2831
547
+ 545 9971 2812
548
+ 546 9985 2793
549
+ 547 10000 2773
550
+ 548 10015 2754
551
+ 549 10029 2735
552
+ 550 10044 2716
553
+ 551 10058 2696
554
+ 552 10073 2677
555
+ 553 10087 2658
556
+ 554 10102 2639
557
+ 555 10118 2620
558
+ 556 10132 2601
559
+ 557 10147 2582
560
+ 558 10163 2563
561
+ 559 10177 2544
562
+ 560 10192 2525
563
+ 561 10207 2506
564
+ 562 10222 2487
565
+ 563 10238 2468
566
+ 564 10252 2449
567
+ 565 10267 2430
568
+ 566 10282 2411
569
+ 567 10297 2392
570
+ 568 10311 2374
571
+ 569 10326 2355
572
+ 570 10342 2336
573
+ 571 10358 2317
574
+ 572 10373 2299
575
+ 573 10388 2280
576
+ 574 10401 2261
577
+ 575 10416 2242
578
+ 576 10431 2223
579
+ 577 10445 2204
580
+ 578 10458 2185
581
+ 579 10473 2166
582
+ 580 10487 2147
583
+ 581 10500 2128
584
+ 582 10515 2110
585
+ 583 10544 2094
586
+ 584 10561 2076
587
+ 585 10577 2057
588
+ 586 10596 2039
589
+ 587 10611 2021
590
+ 588 10625 2002
591
+ 589 10639 1983
592
+ 590 10655 1965
593
+ 591 10670 1946
594
+ 592 10686 1928
595
+ 593 10699 1909
596
+ 594 10714 1890
597
+ 595 10729 1872
598
+ 596 10743 1853
599
+ 597 10757 1834
600
+ 598 10771 1816
601
+ 599 10786 1797
602
+ 600 10800 1779
603
+ 601 10814 1760
604
+ 602 10828 1741
605
+ 603 10844 1723
606
+ 604 10859 1705
607
+ 605 10877 1687
608
+ 606 10890 1668
609
+ 607 10907 1650
610
+ 608 10922 1632
611
+ 609 10943 1614
612
+ 610 10964 1597
613
+ 611 10979 1578
614
+ 612 10993 1560
615
+ 613 11008 1541
616
+ 614 11024 1523
617
+ 615 11040 1505
618
+ 616 11056 1487
619
+ 617 11072 1469
620
+ 618 11087 1450
621
+ 619 11103 1432
622
+ 620 11119 1414
623
+ 621 11135 1396
624
+ 622 11149 1378
625
+ 623 11165 1359
626
+ 624 11179 1341
627
+ 625 11195 1323
628
+ 626 11209 1305
629
+ 627 11224 1286
630
+ 628 11238 1268
631
+ 629 11251 1250
632
+ 630 11264 1231
633
+ 631 11279 1213
634
+ 632 11293 1195
635
+ 633 11307 1177
636
+ 634 11322 1158
637
+ 635 11338 1140
638
+ 636 11352 1122
639
+ 637 11365 1104
640
+ 638 11381 1086
641
+ 639 11396 1068
642
+ 640 11410 1050
643
+ 641 11425 1032
644
+ 642 11439 1014
645
+ 643 11454 996
646
+ 644 11470 978
647
+ 645 11485 960
648
+ 646 11501 942
649
+ 647 11515 924
650
+ 648 11530 906
651
+ 649 11544 888
652
+ 650 11564 870
653
+ 651 11595 853
654
+ 652 11609 835
655
+ 653 11625 817
656
+ 654 11638 799
657
+ 655 11653 781
658
+ 656 11668 763
659
+ 657 11683 745
660
+ 658 11697 727
661
+ 659 11711 709
662
+ 660 11725 691
663
+ 661 11740 673
664
+ 662 11755 656
665
+ 663 11770 638
666
+ 664 11785 620
667
+ 665 11800 602
668
+ 666 11816 584
669
+ 667 11832 566
670
+ 668 11848 549
671
+ 669 11865 531
672
+ 670 11880 513
673
+ 671 11895 495
674
+ 672 11910 477
675
+ 673 11926 460
676
+ 674 11944 442
677
+ 675 11961 424
678
+ 676 11977 406
679
+ 677 11991 389
680
+ 678 12006 371
681
+ 679 12022 353
682
+ 680 12036 335
683
+ 681 12052 318
684
+ 682 12067 300
685
+ 683 12081 282
686
+ 684 12095 264
687
+ 685 12110 247
688
+ 686 12125 229
689
+ 687 12140 211
690
+ 688 12155 194
691
+ 689 12170 176
692
+ 690 12185 158
693
+ 691 12199 141
694
+ 692 12214 123
695
+ 693 12229 105
696
+ 694 12244 88
697
+ 695 12258 70
698
+ 696 12273 52
699
+ 697 12289 35
700
+ 698 12305 17
701
+ 699 12322 0
content/models/cat_5cv_results.csv ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mean_fit_time,std_fit_time,mean_score_time,std_score_time,param_learning_rate,param_l2_leaf_reg,param_iterations,param_depth,params,split0_test_score,split1_test_score,split2_test_score,split3_test_score,split4_test_score,mean_test_score,std_test_score,rank_test_score
2
+ 38.11001029014587,0.5902427618273175,0.2989842891693115,0.02049712187948752,0.03,3,700,8,"{'learning_rate': 0.03, 'l2_leaf_reg': 3, 'iterations': 700, 'depth': 8}",0.926397077090998,0.9265518284109202,0.9194700980622093,0.9239981755092733,0.9241840493285965,0.9241202456803995,0.002558882597964069,10
3
+ 19.654340267181396,0.41662867872211634,0.367338228225708,0.13975771870268033,0.1,1,700,4,"{'learning_rate': 0.1, 'l2_leaf_reg': 1, 'iterations': 700, 'depth': 4}",0.9254284224762692,0.9260579507181619,0.9190089691033394,0.923284846063697,0.9235827416238479,0.9234725859970631,0.0024690347665889127,16
4
+ 34.89087595939636,0.9967449947208337,0.4105051040649414,0.09822836384229727,0.05,1,1000,6,"{'learning_rate': 0.05, 'l2_leaf_reg': 1, 'iterations': 1000, 'depth': 6}",0.9253573765375125,0.9250594491560918,0.9188148045067996,0.9232521929858126,0.9227504389032851,0.9230468524179003,0.002342192245748304,19
5
+ 21.79987425804138,0.3985537428585672,0.3243561744689941,0.10760975846338863,0.03,1,400,8,"{'learning_rate': 0.03, 'l2_leaf_reg': 1, 'iterations': 400, 'depth': 8}",0.9266623195140585,0.9269689522551202,0.9194963416921899,0.9247062434725732,0.924561441102776,0.9244790596073436,0.0026777627325484,4
6
+ 15.05811014175415,0.38236217145348916,0.39384994506835935,0.13462468184600443,0.01,5,400,6,"{'learning_rate': 0.01, 'l2_leaf_reg': 5, 'iterations': 400, 'depth': 6}",0.9254208331883769,0.9256962159204701,0.9177098296998872,0.9236850057066356,0.923382135654151,0.9231788040339042,0.0028834466002870033,17
7
+ 11.68787202835083,0.46885010971899516,0.3139543056488037,0.07042581847649869,0.01,7,400,4,"{'learning_rate': 0.01, 'l2_leaf_reg': 7, 'iterations': 400, 'depth': 4}",0.924104984596456,0.9245886582046533,0.9162627948458276,0.9224630503638012,0.9223166057737784,0.9219472187569032,0.002978199455717828,20
8
+ 53.55717611312866,1.2304360736256548,0.3442319393157959,0.04951838707504979,0.01,3,1000,8,"{'learning_rate': 0.01, 'l2_leaf_reg': 3, 'iterations': 1000, 'depth': 8}",0.9268091626684458,0.926980623176837,0.9195932486077563,0.92472477026774,0.924868966769881,0.924595354298132,0.002672194930755084,2
9
+ 24.922494840621948,0.8366955358887904,0.34283447265625,0.1275114378974683,0.03,1,700,6,"{'learning_rate': 0.03, 'l2_leaf_reg': 1, 'iterations': 700, 'depth': 6}",0.926504889621939,0.9266251702687034,0.9197108825700875,0.9245417663478399,0.9246725699860051,0.9244110557589149,0.0025085273075014405,6
10
+ 24.52978119850159,0.6004223260445951,0.41440391540527344,0.16280007393863527,0.05,1,700,6,"{'learning_rate': 0.05, 'l2_leaf_reg': 1, 'iterations': 700, 'depth': 6}",0.9259978741703081,0.9258690794904884,0.9194191414149322,0.9236431689505965,0.9237101651582476,0.9237278858369145,0.00237950947731214,12
11
+ 18.886256217956543,0.802687202030101,0.37441263198852537,0.13165946695750513,0.05,1,700,4,"{'learning_rate': 0.05, 'l2_leaf_reg': 1, 'iterations': 700, 'depth': 4}",0.9263525936598642,0.9268083973621037,0.9197073749160196,0.9244656183498052,0.9247634501344133,0.9244194868844412,0.002520644088634578,5
12
+ 14.337667655944824,0.6531201688347156,0.28923845291137695,0.025398286323908306,0.1,1,400,6,"{'learning_rate': 0.1, 'l2_leaf_reg': 1, 'iterations': 400, 'depth': 6}",0.9256011584952305,0.9251499466310433,0.9188177062933468,0.9232559238550632,0.9227272246057269,0.9231103919760821,0.0024066095726457157,18
13
+ 25.156621742248536,0.5404978209437277,0.3077115058898926,0.02574328527343798,0.05,7,700,6,"{'learning_rate': 0.05, 'l2_leaf_reg': 7, 'iterations': 700, 'depth': 6}",0.9265934738310351,0.9263200043647972,0.9195306210387625,0.9242413835415222,0.9242160008755106,0.9241802967303256,0.002530860047557084,8
14
+ 34.980569744110106,0.9223154983600989,0.43534088134765625,0.16663539198251964,0.05,7,1000,6,"{'learning_rate': 0.05, 'l2_leaf_reg': 7, 'iterations': 1000, 'depth': 6}",0.9261129889992634,0.9258436011668498,0.9193097663835426,0.9236126204656226,0.923324865216768,0.9236407684464094,0.002442233096331055,14
15
+ 54.2862389087677,0.9824481495011635,0.3240635871887207,0.029289801291009138,0.03,3,1000,8,"{'learning_rate': 0.03, 'l2_leaf_reg': 3, 'iterations': 1000, 'depth': 8}",0.9258795386771635,0.9256241814610214,0.9190364563561257,0.9235189660811051,0.9233952415281844,0.92349087682072,0.002453914869912298,15
16
+ 22.70888066291809,0.36993754434296755,0.3277118682861328,0.09948489362496582,0.01,3,400,8,"{'learning_rate': 0.01, 'l2_leaf_reg': 3, 'iterations': 400, 'depth': 8}",0.9259628932929223,0.9262151892836958,0.9185199064629832,0.9240844957063753,0.9239079650040639,0.9237380899500082,0.002773592053993965,11
17
+ 26.5092312335968,0.6668873000461152,0.40199952125549315,0.10039875081413047,0.01,1,700,6,"{'learning_rate': 0.01, 'l2_leaf_reg': 1, 'iterations': 700, 'depth': 6}",0.9263678678989418,0.9264693985403248,0.9189619984265938,0.9246253123088329,0.9244465813502966,0.9241742317049979,0.002739520189460893,9
18
+ 20.04692840576172,0.6347382861125668,0.318647575378418,0.02030222293523917,0.1,5,700,4,"{'learning_rate': 0.1, 'l2_leaf_reg': 5, 'iterations': 700, 'depth': 4}",0.9257745322694768,0.9259396790005455,0.9193119985270404,0.9235728883024941,0.9237365363451716,0.9236671268889456,0.0023910872911832577,13
19
+ 25.775655698776244,0.4548671685639499,0.3010541915893555,0.030130046058693856,0.03,3,700,6,"{'learning_rate': 0.03, 'l2_leaf_reg': 3, 'iterations': 700, 'depth': 6}",0.9268502659965687,0.9268378935440382,0.9198026874433732,0.92460059928602,0.9246570406413472,0.9245496973822694,0.0025720293374254717,3
20
+ 38.89018301963806,0.6626808655188186,0.3153115749359131,0.037640938024153935,0.03,7,700,8,"{'learning_rate': 0.03, 'l2_leaf_reg': 7, 'iterations': 700, 'depth': 8}",0.926570674079594,0.9267112353444235,0.9196592243919968,0.9242294894028008,0.9242904588216627,0.9242922164080956,0.0025499637159246673,7
21
+ 26.535576152801514,0.8229405456887033,0.27509465217590334,0.05751255336596141,0.03,5,700,6,"{'learning_rate': 0.03, 'l2_leaf_reg': 5, 'iterations': 700, 'depth': 6}",0.9266903488588374,0.9268877978950951,0.9199545050889841,0.9248251848597883,0.9247070087790862,0.9246129690963583,0.0024998207392249714,1
content/models/fairness_subgroups.csv ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ group,value,count,precision,recall,f1,roc_auc
2
+ age_group,20-29,2,0.0,0.0,0.0,
3
+ age_group,30-39,376,0.8783783783783784,0.6701030927835051,0.7602339181286549,0.9338949857739348
4
+ age_group,40-49,3956,0.8800922367409685,0.7425421530479897,0.8054871614491734,0.9226603997218991
5
+ age_group,50-59,7021,0.8670750382848392,0.7879209574172001,0.8256051326917468,0.9128061955033141
6
+ age_group,60+,2645,0.8868698710433763,0.8577097505668935,0.8720461095100864,0.906776596374456
7
+ gender,Female,4920,0.8778021978021978,0.7902651365255243,0.8317367763431903,0.9208101190800038
8
+ gender,Male,9080,0.873741095553918,0.7959275005594093,0.8330210772833724,0.9196556300350777
9
+ hypertension,0,9064,0.8207070707070707,0.7217639593908629,0.7680621201890614,0.9022559832707117
10
+ hypertension,1,4936,0.9174594292109681,0.8530176899063475,0.8840657859261256,0.8869817097574642
content/models/hybrid_metrics.csv ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ version,accuracy,precision,recall,f1,roc_auc
2
+ Ensemble@0.5,0.8487857142857143,0.855249745158002,0.8394797026872498,0.8472913510784101,0.923818485328485
3
+ HybridA (moderate=positive),0.8252142857142857,0.7774118794974997,0.9110920526014865,0.8389601842711418,0.923818485328485
4
+ HybridB (moderate=negative),0.8334285714285714,0.9136218517204683,0.7362778730703259,0.8154187114136457,0.923818485328485
content/models/hybrid_metrics_best.csv ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ version,accuracy,precision,recall,f1,roc_auc
2
+ Ensemble_best@0.5,0.8499285714285715,0.854967367657723,0.8426243567753001,0.8487509898495429,0.9253097715297214
3
+ HybridA_best (moderate=positive),0.8255,0.776173723159044,0.9145225843339051,0.8396876435461644,0.9253097715297214
4
+ HybridB_best (moderate=negative),0.8357857142857142,0.9173627154789408,0.7378502001143511,0.8178721381605006,0.9253097715297214
content/models/hybrid_metrics_optionA.csv ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ version,accuracy,precision,recall,f1,roc_auc
2
+ Ensemble@0.5,0.8407142857142857,0.8735109717868339,0.7965980560320183,0.8332834928229665,0.9192231777055275
3
+ HybridA (moderate=positive),0.8261428571428572,0.7873519778281683,0.8933676386506575,0.8370162046337217,0.9192231777055275
4
+ HybridB (moderate=negative),0.8142142857142857,0.9282790878970961,0.6808176100628931,0.7855199142409499,0.9192231777055275
content/models/lgb_5cv_results.csv ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mean_fit_time,std_fit_time,mean_score_time,std_score_time,param_subsample,param_reg_lambda,param_num_leaves,param_n_estimators,param_min_child_samples,param_learning_rate,param_colsample_bytree,params,split0_test_score,split1_test_score,split2_test_score,split3_test_score,split4_test_score,mean_test_score,std_test_score,rank_test_score
2
+ 21.503555631637575,2.0730016548644308,0.7430243492126465,0.04151718866404787,0.7,1.0,31,700,40,0.03,1.0,"{'subsample': 0.7, 'reg_lambda': 1.0, 'num_leaves': 31, 'n_estimators': 700, 'min_child_samples': 40, 'learning_rate': 0.03, 'colsample_bytree': 1.0}",0.9247806863209878,0.9249903802587188,0.9186090646518361,0.9231620143683748,0.9223958468856361,0.9227875984971107,0.0023055779418103784,7
3
+ 26.179000329971313,2.7366560473578274,1.2383384704589844,0.1858032140293796,0.7,0.5,63,700,40,0.05,1.0,"{'subsample': 0.7, 'reg_lambda': 0.5, 'num_leaves': 63, 'n_estimators': 700, 'min_child_samples': 40, 'learning_rate': 0.05, 'colsample_bytree': 1.0}",0.9210742758185103,0.9216737657864762,0.9151814807599913,0.9186705898829541,0.9176502449746149,0.9188500714445095,0.0023601139647699654,18
4
+ 45.290625143051145,3.4734323054685765,2.181506395339966,0.017920361754950154,1.0,1.0,127,1000,20,0.05,0.7,"{'subsample': 1.0, 'reg_lambda': 1.0, 'num_leaves': 127, 'n_estimators': 1000, 'min_child_samples': 20, 'learning_rate': 0.05, 'colsample_bytree': 0.7}",0.9191324385265289,0.9188642305413928,0.9139450327010616,0.9165565263043502,0.9171633505935461,0.917132315733376,0.0018703630581852393,20
5
+ 51.43286309242249,4.380080719932028,2.4177557945251467,0.11218331167689105,0.9,2.0,127,1000,40,0.1,0.7,"{'subsample': 0.9, 'reg_lambda': 2.0, 'num_leaves': 127, 'n_estimators': 1000, 'min_child_samples': 40, 'learning_rate': 0.1, 'colsample_bytree': 0.7}",0.9143384001608929,0.9128221688584031,0.9087773016261389,0.9112911537199764,0.9126359567020187,0.911972996213486,0.0018672503691896179,25
6
+ 22.921142101287842,1.7683872520492854,0.9362845420837402,0.15297340896941947,1.0,0.0,63,700,20,0.1,0.7,"{'subsample': 1.0, 'reg_lambda': 0.0, 'num_leaves': 63, 'n_estimators': 700, 'min_child_samples': 20, 'learning_rate': 0.1, 'colsample_bytree': 0.7}",0.9189274958656717,0.9187252317770116,0.9136272711302755,0.9176478215039905,0.9169712905465769,0.9171798221647054,0.0019144598143819517,19
7
+ 12.775744962692261,1.8287673840073213,0.38433990478515623,0.028366298904889856,0.7,0.5,63,400,20,0.1,0.7,"{'subsample': 0.7, 'reg_lambda': 0.5, 'num_leaves': 63, 'n_estimators': 400, 'min_child_samples': 20, 'learning_rate': 0.1, 'colsample_bytree': 0.7}",0.9215344800322167,0.9216393588888467,0.9158343827330818,0.9188102902093317,0.9190040084204125,0.919364504056778,0.0021346019251149368,16
8
+ 53.58119249343872,3.940408347296518,2.279737186431885,0.3503193269788073,0.9,0.5,127,1000,20,0.1,1.0,"{'subsample': 0.9, 'reg_lambda': 0.5, 'num_leaves': 127, 'n_estimators': 1000, 'min_child_samples': 20, 'learning_rate': 0.1, 'colsample_bytree': 1.0}",0.9150397077601202,0.9133738271799887,0.9086213066834107,0.912569757688652,0.9125835332058844,0.9124376265036112,0.0021095185686695987,24
9
+ 33.32507853507995,1.956669244625534,1.502634620666504,0.0787468812382392,1.0,1.0,127,700,20,0.03,1.0,"{'subsample': 1.0, 'reg_lambda': 1.0, 'num_leaves': 127, 'n_estimators': 700, 'min_child_samples': 20, 'learning_rate': 0.03, 'colsample_bytree': 1.0}",0.9217155706454123,0.921861425279108,0.9158780051945805,0.9189239701142704,0.9189772226924606,0.9194712387851665,0.0022002226936947496,14
10
+ 18.860712623596193,3.9007688984613127,0.5688663959503174,0.1213259385967057,0.7,1.0,63,400,10,0.03,0.9,"{'subsample': 0.7, 'reg_lambda': 1.0, 'num_leaves': 63, 'n_estimators': 400, 'min_child_samples': 10, 'learning_rate': 0.03, 'colsample_bytree': 0.9}",0.9251884989380259,0.9251606928075967,0.9190482229411355,0.9231450181862337,0.9226754388650199,0.9230435743476024,0.0022446175406666265,6
11
+ 11.6113760471344,1.6234109404705857,0.40931153297424316,0.0828388525740877,0.7,2.0,31,400,40,0.05,0.9,"{'subsample': 0.7, 'reg_lambda': 2.0, 'num_leaves': 31, 'n_estimators': 400, 'min_child_samples': 40, 'learning_rate': 0.05, 'colsample_bytree': 0.9}",0.9247231289065102,0.9249506799922231,0.918675582528069,0.9232167975595905,0.9222473774221315,0.922762713281705,0.002271863953902967,8
12
+ 20.84558172225952,1.017481506409034,0.707617998123169,0.04325841966926047,0.9,2.0,127,400,20,0.03,0.7,"{'subsample': 0.9, 'reg_lambda': 2.0, 'num_leaves': 127, 'n_estimators': 400, 'min_child_samples': 20, 'learning_rate': 0.03, 'colsample_bytree': 0.7}",0.9242703226541105,0.9242242767225284,0.9187244664706695,0.9222232383792032,0.9219512675771773,0.9222787143607377,0.0020245835889136864,11
13
+ 20.941693353652955,1.8927931552499075,0.947560453414917,0.04647470253308809,1.0,0.0,63,700,40,0.1,0.7,"{'subsample': 1.0, 'reg_lambda': 0.0, 'num_leaves': 63, 'n_estimators': 700, 'min_child_samples': 40, 'learning_rate': 0.1, 'colsample_bytree': 0.7}",0.9184531334846366,0.9181253272681105,0.9120615819054284,0.9160577377845602,0.915412106077605,0.9160219773040682,0.0022975010286810614,21
14
+ 12.300723600387574,1.8038180304695839,0.4264353275299072,0.06808087756935631,0.7,1.0,31,400,10,0.03,0.7,"{'subsample': 0.7, 'reg_lambda': 1.0, 'num_leaves': 31, 'n_estimators': 400, 'min_child_samples': 10, 'learning_rate': 0.03, 'colsample_bytree': 0.7}",0.9257972682453894,0.925997459629373,0.9196569922484991,0.9241776079987795,0.9238418297662396,0.9238942315776562,0.002283959810272936,1
15
+ 35.3159423828125,3.3229788447796826,1.6274062156677247,0.317789604945721,0.7,1.0,31,1000,20,0.01,0.9,"{'subsample': 0.7, 'reg_lambda': 1.0, 'num_leaves': 31, 'n_estimators': 1000, 'min_child_samples': 20, 'learning_rate': 0.01, 'colsample_bytree': 0.9}",0.9252771150348864,0.9262317071455791,0.9194353403991729,0.9242479205346533,0.9235220591949282,0.9237428284618439,0.002341233131144913,2
16
+ 24.883863592147826,4.148560127530907,1.372012996673584,0.31662935573594453,1.0,2.0,31,1000,20,0.05,0.9,"{'subsample': 1.0, 'reg_lambda': 2.0, 'num_leaves': 31, 'n_estimators': 1000, 'min_child_samples': 20, 'learning_rate': 0.05, 'colsample_bytree': 0.9}",0.9224286767174136,0.9230222993367568,0.9178068322787465,0.9211627786544789,0.9206785628462056,0.9210198299667203,0.001814110496230859,12
17
+ 49.76180310249329,3.6520468541623736,2.210342359542847,0.3939615235356329,0.7,0.0,127,1000,20,0.05,1.0,"{'subsample': 0.7, 'reg_lambda': 0.0, 'num_leaves': 127, 'n_estimators': 1000, 'min_child_samples': 20, 'learning_rate': 0.05, 'colsample_bytree': 1.0}",0.9180212456055871,0.9172911752430031,0.9118764096584083,0.9155270933811701,0.9156400398673672,0.9156711927511072,0.0021245802194369105,22
18
+ 21.713928079605104,2.330142248941923,0.799837589263916,0.04812405187930121,0.7,0.5,31,700,40,0.03,1.0,"{'subsample': 0.7, 'reg_lambda': 0.5, 'num_leaves': 31, 'n_estimators': 700, 'min_child_samples': 40, 'learning_rate': 0.03, 'colsample_bytree': 1.0}",0.9243565790564162,0.9252322489505816,0.918611424346391,0.9231021929092822,0.9222386082850043,0.9227082107095352,0.002291169752128871,9
19
+ 11.878070735931397,0.9369494144447713,0.3414334774017334,0.024780439381835828,0.7,0.5,31,400,10,0.03,1.0,"{'subsample': 0.7, 'reg_lambda': 0.5, 'num_leaves': 31, 'n_estimators': 400, 'min_child_samples': 10, 'learning_rate': 0.03, 'colsample_bytree': 1.0}",0.9250218056503907,0.9259432025984957,0.9192373492709228,0.9240818968530087,0.9234105476584427,0.923538960406252,0.002314922837402335,4
20
+ 31.39348683357239,2.5556707160009364,1.4228541374206543,0.2056993991699425,0.7,0.5,127,700,20,0.1,1.0,"{'subsample': 0.7, 'reg_lambda': 0.5, 'num_leaves': 127, 'n_estimators': 700, 'min_child_samples': 20, 'learning_rate': 0.1, 'colsample_bytree': 1.0}",0.9162593509672883,0.9152678328255898,0.9097570212950634,0.9137603832961141,0.9139424624706441,0.91379741017094,0.0022167746252358326,23
21
+ 19.039086866378785,2.2354028399331822,0.5552944660186767,0.09461688679178487,0.9,2.0,63,400,20,0.01,0.7,"{'subsample': 0.9, 'reg_lambda': 2.0, 'num_leaves': 63, 'n_estimators': 400, 'min_child_samples': 20, 'learning_rate': 0.01, 'colsample_bytree': 0.7}",0.9254355015599335,0.9257558779273884,0.9193175469980206,0.923868137177621,0.9234286918003529,0.9235611510926633,0.0022999990080764788,3
22
+ 33.96349043846131,2.1779514938889086,1.3074880123138428,0.10219578061802953,1.0,0.5,127,700,10,0.03,0.9,"{'subsample': 1.0, 'reg_lambda': 0.5, 'num_leaves': 127, 'n_estimators': 700, 'min_child_samples': 10, 'learning_rate': 0.03, 'colsample_bytree': 0.9}",0.9226158260058174,0.9223641358825645,0.9166429288834935,0.919813288170045,0.9199089195963875,0.9202690197076617,0.002162540615897755,13
23
+ 21.877939224243164,2.543465211932641,0.6460224151611328,0.1163213465132035,1.0,1.0,127,400,20,0.05,1.0,"{'subsample': 1.0, 'reg_lambda': 1.0, 'num_leaves': 127, 'n_estimators': 400, 'min_child_samples': 20, 'learning_rate': 0.05, 'colsample_bytree': 1.0}",0.9216716930817996,0.9217420374897429,0.9158719465193724,0.9191137980172439,0.9186402008368371,0.9194079351889991,0.0021795312308191582,15
24
+ 15.837239265441895,1.9929589015559848,0.4140350341796875,0.03332129640280623,0.9,0.0,63,400,20,0.05,0.7,"{'subsample': 0.9, 'reg_lambda': 0.0, 'num_leaves': 63, 'n_estimators': 400, 'min_child_samples': 20, 'learning_rate': 0.05, 'colsample_bytree': 0.7}",0.9242424208603887,0.9240473634064499,0.9189912713941786,0.921782581266623,0.9224200497041071,0.9222967373263493,0.0019003180529565567,10
25
+ 14.776464033126832,1.5895756361778721,0.39187040328979494,0.038635526135911265,0.7,0.5,63,400,20,0.1,0.9,"{'subsample': 0.7, 'reg_lambda': 0.5, 'num_leaves': 63, 'n_estimators': 400, 'min_child_samples': 20, 'learning_rate': 0.1, 'colsample_bytree': 0.9}",0.9215159213534213,0.9211389123166522,0.9152605943031042,0.9187019036744406,0.9177712909547404,0.9188777245204717,0.002298338181976264,17
26
+ 14.74906849861145,5.607893271225104,0.33304572105407715,0.07992082456996337,0.7,0.5,31,400,40,0.01,0.9,"{'subsample': 0.7, 'reg_lambda': 0.5, 'num_leaves': 31, 'n_estimators': 400, 'min_child_samples': 40, 'learning_rate': 0.01, 'colsample_bytree': 0.9}",0.924379458527268,0.9257473638943329,0.9185758057137197,0.9239087303105766,0.9231402190766425,0.9231503155045079,0.0024395445350077,5
content/models/metrics_class_weights.csv ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ model,accuracy,precision,recall,f1,roc_auc
2
+ LogReg_cw,0.8441428571428572,0.8468299711815562,0.8400514579759862,0.8434270952927669,0.9172743607426483
3
+ RF_cw,0.8448571428571429,0.844374643061108,0.8453401943967982,0.8448571428571429,0.9160123807387366
4
+ XGB_spw,0.8469285714285715,0.8527402238697485,0.8384791309319611,0.8455495495495495,0.9216147703231903
5
+ CAT_cw,0.8487142857142858,0.8550218340611354,0.839622641509434,0.8472522717438339,0.9245760161880869
6
+ LGBM_cw,0.8487142857142858,0.8548152458539424,0.8399085191538022,0.847296322999279,0.9230701177371813
content/models/model_metrics.csv ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ model,accuracy,precision,recall,f1,roc_auc
2
+ CAT_cw,0.8487142857142858,0.8550218340611354,0.839622641509434,0.8472522717438339,0.9245760161880869
3
+ LGBM_cw,0.8487142857142858,0.8548152458539424,0.8399085191538022,0.847296322999279,0.9230701177371813
4
+ LogReg_cw,0.8441428571428572,0.8468299711815562,0.8400514579759862,0.8434270952927669,0.9172743607426483
5
+ RF_cw,0.8448571428571429,0.844374643061108,0.8453401943967982,0.8448571428571429,0.9160123807387366
6
+ XGB_spw,0.8469285714285715,0.8527402238697485,0.8384791309319611,0.8455495495495495,0.9216147703231903
content/models/model_metrics_best.csv ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ model,accuracy,precision,recall,f1,roc_auc
2
+ XGBoost_best,0.8487142857142858,0.8528645833333334,0.8426243567753001,0.8477135461604832,0.925026526539274
3
+ CatBoost_best,0.8508571428571429,0.8568935427574171,0.8421955403087479,0.8494809688581315,0.9252638735555506
4
+ LightGBM_best,0.8513571428571428,0.8570390817957286,0.8431961120640366,0.8500612436054471,0.9248125876939063
content/models/pr_auc_table.csv ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ model,average_precision
2
+ XGBoost_best_5cv,0.9225704474388721
3
+ CatBoost_best_5cv,0.9297047473666876
4
+ LightGBM_best_5cv,0.9261651319743913
5
+ Ensemble(XGB+CAT),0.9270581584019474
content/models/xgb_5cv_results.csv ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mean_fit_time,std_fit_time,mean_score_time,std_score_time,param_subsample,param_reg_lambda,param_n_estimators,param_min_child_weight,param_max_depth,param_learning_rate,param_colsample_bytree,params,split0_test_score,split1_test_score,split2_test_score,split3_test_score,split4_test_score,mean_test_score,std_test_score,rank_test_score
2
+ 14.336833333969116,2.7424133508279325,0.7444849491119385,0.18647619061982823,1.0,1.0,800,3,6,0.1,0.7,"{'subsample': 1.0, 'reg_lambda': 1.0, 'n_estimators': 800, 'min_child_weight': 3, 'max_depth': 6, 'learning_rate': 0.1, 'colsample_bytree': 0.7}",0.9198797123379276,0.9193015233964832,0.9141436137529505,0.9175348909616791,0.9176244158798041,0.9176968312657688,0.0019998414913776435,22
3
+ 6.012605142593384,1.586421717141797,0.19579010009765624,0.02461654897054302,0.9,2.0,800,5,3,0.03,0.9,"{'subsample': 0.9, 'reg_lambda': 2.0, 'n_estimators': 800, 'min_child_weight': 5, 'max_depth': 3, 'learning_rate': 0.03, 'colsample_bytree': 0.9}",0.9263491178935607,0.9263324565367381,0.9195775598277436,0.9247987339534356,0.9244007905106073,0.924291731744417,0.002485548525338715,1
4
+ 9.323599052429199,0.5159651996694276,0.47173585891723635,0.06142525577882458,1.0,1.0,800,5,6,0.01,0.9,"{'subsample': 1.0, 'reg_lambda': 1.0, 'n_estimators': 800, 'min_child_weight': 5, 'max_depth': 6, 'learning_rate': 0.01, 'colsample_bytree': 0.9}",0.925496455021304,0.926086139501762,0.9193563384632351,0.9244194129690882,0.9234528627310524,0.9237622417372883,0.002381074110224218,7
5
+ 5.941135311126709,0.6166038547313512,0.2301846981048584,0.0043087775365802045,0.7,2.0,400,3,6,0.01,0.9,"{'subsample': 0.7, 'reg_lambda': 2.0, 'n_estimators': 400, 'min_child_weight': 3, 'max_depth': 6, 'learning_rate': 0.01, 'colsample_bytree': 0.9}",0.9248858681113781,0.9259093218489762,0.9184634970080191,0.9238998017345927,0.923414533629864,0.9233146044665661,0.0025724351494505224,12
6
+ 16.34238977432251,0.37355165425431197,0.7489948272705078,0.20598540874279325,0.7,0.0,800,1,9,0.05,0.9,"{'subsample': 0.7, 'reg_lambda': 0.0, 'n_estimators': 800, 'min_child_weight': 1, 'max_depth': 9, 'learning_rate': 0.05, 'colsample_bytree': 0.9}",0.9167500079958568,0.9153481262159802,0.9102685807531004,0.9138513909956076,0.9139372966516819,0.9140310805224454,0.002159845560188134,24
7
+ 10.794477891921996,0.9541498673640705,0.3437630653381348,0.017973386334218473,0.7,0.0,400,5,9,0.01,1.0,"{'subsample': 0.7, 'reg_lambda': 0.0, 'n_estimators': 400, 'min_child_weight': 5, 'max_depth': 9, 'learning_rate': 0.01, 'colsample_bytree': 1.0}",0.9244100548370694,0.9251943981744126,0.9182288030631132,0.923091287291473,0.9228810831025934,0.9227611252937322,0.002420955479704968,16
8
+ 4.31169319152832,0.593378770988325,0.16559019088745117,0.008477105109072394,0.9,2.0,200,5,9,0.03,0.7,"{'subsample': 0.9, 'reg_lambda': 2.0, 'n_estimators': 200, 'min_child_weight': 5, 'max_depth': 9, 'learning_rate': 0.03, 'colsample_bytree': 0.7}",0.9248699561170155,0.9250770671458419,0.91885836319277,0.922825614324293,0.9228236532263537,0.9228909308012548,0.0022345526330249787,15
9
+ 5.007780742645264,0.5060043689765834,0.18636550903320312,0.005540311459521528,1.0,1.0,800,1,3,0.03,0.9,"{'subsample': 1.0, 'reg_lambda': 1.0, 'n_estimators': 800, 'min_child_weight': 1, 'max_depth': 3, 'learning_rate': 0.03, 'colsample_bytree': 0.9}",0.9262781676180966,0.9263643124132274,0.9195421165777758,0.9245405546125278,0.9244685201370001,0.9242387342717254,0.0024851352331430074,2
10
+ 2.716584396362305,0.38097948337323845,0.14616041183471679,0.039904089578376094,0.7,2.0,200,1,6,0.03,0.7,"{'subsample': 0.7, 'reg_lambda': 2.0, 'n_estimators': 200, 'min_child_weight': 1, 'max_depth': 6, 'learning_rate': 0.03, 'colsample_bytree': 0.7}",0.9257802401792782,0.9263255368918952,0.9196901236355585,0.9243476335957315,0.9242779588152852,0.9240842986235498,0.002337305719775142,4
11
+ 5.445984745025635,0.6025395019424457,0.21784639358520508,0.06877278804488095,0.7,2.0,800,1,3,0.05,0.9,"{'subsample': 0.7, 'reg_lambda': 2.0, 'n_estimators': 800, 'min_child_weight': 1, 'max_depth': 3, 'learning_rate': 0.05, 'colsample_bytree': 0.9}",0.9261905081541637,0.9259874149836331,0.9195818327881535,0.9242626207972554,0.9241522093888824,0.9240349172224176,0.002381360414618945,5
12
+ 6.787776088714599,0.3430532397707743,0.21760215759277343,0.059046495628668545,1.0,0.0,200,3,9,0.01,1.0,"{'subsample': 1.0, 'reg_lambda': 0.0, 'n_estimators': 200, 'min_child_weight': 3, 'max_depth': 9, 'learning_rate': 0.01, 'colsample_bytree': 1.0}",0.9220966772598882,0.923322682076025,0.915732644821231,0.921187778667234,0.9199231893740762,0.920452594439691,0.00260917999887445,20
13
+ 9.720192909240723,0.33764817291106414,0.47258796691894533,0.06773432448140723,0.9,1.0,800,3,6,0.01,0.7,"{'subsample': 0.9, 'reg_lambda': 1.0, 'n_estimators': 800, 'min_child_weight': 3, 'max_depth': 6, 'learning_rate': 0.01, 'colsample_bytree': 0.7}",0.9261034545577517,0.9264764457362248,0.9197166383115352,0.9244364729267718,0.9241481755858039,0.9241762374236174,0.0024067263403975536,3
14
+ 5.8761683940887455,0.6143870302770171,0.29828662872314454,0.04647260628299888,1.0,0.0,400,5,9,0.05,0.9,"{'subsample': 1.0, 'reg_lambda': 0.0, 'n_estimators': 400, 'min_child_weight': 5, 'max_depth': 9, 'learning_rate': 0.05, 'colsample_bytree': 0.9}",0.9218539794861548,0.9217755674738555,0.9150386076322534,0.9192065595441631,0.9195420188989893,0.9194833466070833,0.002478303242938997,21
15
+ 2.7581575870513917,0.2633132724586938,0.13084306716918945,0.039930879038785096,0.9,1.0,400,3,3,0.1,0.7,"{'subsample': 0.9, 'reg_lambda': 1.0, 'n_estimators': 400, 'min_child_weight': 3, 'max_depth': 3, 'learning_rate': 0.1, 'colsample_bytree': 0.7}",0.9263181548744703,0.9258726030884383,0.919477607630691,0.9244138644968697,0.9240117437559917,0.9240187947692922,0.0024290810036577248,6
16
+ 7.556349658966065,0.492997578315865,0.29904756546020506,0.009935959858090856,0.7,2.0,400,3,9,0.03,1.0,"{'subsample': 0.7, 'reg_lambda': 2.0, 'n_estimators': 400, 'min_child_weight': 3, 'max_depth': 9, 'learning_rate': 0.03, 'colsample_bytree': 1.0}",0.923549117089989,0.9237686165152279,0.9176716122144295,0.9219253906507094,0.921864851716761,0.9217559176374234,0.002190372551579654,19
17
+ 1.6358491897583007,0.18053804082539826,0.07599682807922363,0.023467825379196155,0.7,1.0,200,5,3,0.05,0.9,"{'subsample': 0.7, 'reg_lambda': 1.0, 'n_estimators': 200, 'min_child_weight': 5, 'max_depth': 3, 'learning_rate': 0.05, 'colsample_bytree': 0.9}",0.9256829506105407,0.925604889363648,0.9186989881470311,0.9242111858220337,0.9236872697384029,0.9235770567363314,0.0025595591002717513,9
18
+ 16.44065918922424,0.37946010336079455,0.624353551864624,0.027445557276670102,0.7,0.0,800,1,9,0.1,1.0,"{'subsample': 0.7, 'reg_lambda': 0.0, 'n_estimators': 800, 'min_child_weight': 1, 'max_depth': 9, 'learning_rate': 0.1, 'colsample_bytree': 1.0}",0.9119043433398945,0.9097529874928854,0.9051045167710666,0.9085129156953651,0.9089040032673487,0.908835753313312,0.002204022305213528,25
19
+ 1.8156661987304688,0.3086791422199985,0.05843620300292969,0.007786695767772957,0.7,1.0,200,1,3,0.05,1.0,"{'subsample': 0.7, 'reg_lambda': 1.0, 'n_estimators': 200, 'min_child_weight': 1, 'max_depth': 3, 'learning_rate': 0.05, 'colsample_bytree': 1.0}",0.9257397746064403,0.9260659545469894,0.9186667496173708,0.9240134178639887,0.9235538513029852,0.9236079495875549,0.0026521408177050056,8
20
+ 1.8150565147399902,0.28940547728094107,0.06025094985961914,0.012948825597809768,0.7,0.0,200,1,3,0.03,0.9,"{'subsample': 0.7, 'reg_lambda': 0.0, 'n_estimators': 200, 'min_child_weight': 1, 'max_depth': 3, 'learning_rate': 0.03, 'colsample_bytree': 0.9}",0.9244796977141989,0.9248090983189377,0.9170120616424924,0.9230044568900289,0.9222983500246684,0.9223207329180653,0.002810802786929396,17
21
+ 5.742648553848267,0.48947094333368485,0.30849599838256836,0.049372804698920324,0.9,0.0,400,5,9,0.1,0.7,"{'subsample': 0.9, 'reg_lambda': 0.0, 'n_estimators': 400, 'min_child_weight': 5, 'max_depth': 9, 'learning_rate': 0.1, 'colsample_bytree': 0.7}",0.9172082989437081,0.9166793128225068,0.9112397066695586,0.9149191689638616,0.9147376318814449,0.9149568238562159,0.002092965909930583,23
22
+ 2.8859848976135254,0.3807237286270843,0.12069888114929199,0.00521380073004172,1.0,0.0,200,5,6,0.03,1.0,"{'subsample': 1.0, 'reg_lambda': 0.0, 'n_estimators': 200, 'min_child_weight': 5, 'max_depth': 6, 'learning_rate': 0.03, 'colsample_bytree': 1.0}",0.9251876539122731,0.9257745960450051,0.9191768581821341,0.9242473146669972,0.9233050150790894,0.9235382875770999,0.00233669367744405,10
23
+ 16.142475175857545,0.4774098370001288,0.6894989013671875,0.15814375182569287,1.0,1.0,800,3,9,0.01,0.9,"{'subsample': 1.0, 'reg_lambda': 1.0, 'n_estimators': 800, 'min_child_weight': 3, 'max_depth': 9, 'learning_rate': 0.01, 'colsample_bytree': 0.9}",0.9239971401777507,0.9242880203632713,0.9175306523525468,0.9218788823361643,0.9216315926691799,0.9218652575797825,0.0024190200626282607,18
24
+ 4.1485659122467045,0.2762408573830072,0.19593615531921388,0.06019605958011852,0.7,0.0,200,5,9,0.03,0.7,"{'subsample': 0.7, 'reg_lambda': 0.0, 'n_estimators': 200, 'min_child_weight': 5, 'max_depth': 9, 'learning_rate': 0.03, 'colsample_bytree': 0.7}",0.9251376220101593,0.9250192386853683,0.9189546004652871,0.9229751201403674,0.9230960704571788,0.9230365303516722,0.00223674702769231,14
25
+ 6.216812801361084,0.5135274304462328,0.18406295776367188,0.005573472838052655,0.7,1.0,800,1,3,0.01,0.7,"{'subsample': 0.7, 'reg_lambda': 1.0, 'n_estimators': 800, 'min_child_weight': 1, 'max_depth': 3, 'learning_rate': 0.01, 'colsample_bytree': 0.7}",0.925100855417975,0.9255116495409708,0.9183594312893776,0.9238837781294786,0.9233042657164622,0.9232319960188529,0.0025636452760256327,13
26
+ 2.66218638420105,0.39313848266395596,0.12299108505249023,0.04645305646815818,1.0,1.0,200,3,6,0.03,1.0,"{'subsample': 1.0, 'reg_lambda': 1.0, 'n_estimators': 200, 'min_child_weight': 3, 'max_depth': 6, 'learning_rate': 0.03, 'colsample_bytree': 1.0}",0.9251786137311072,0.9259145195545496,0.9191782931315254,0.924167292304741,0.9231276234069506,0.9235132684257747,0.002362535167399179,11
content/sample_data/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This directory includes a few sample datasets to get you started.
2
+
3
+ * `california_housing_data*.csv` is California housing data from the 1990 US
4
+ Census; more information is available at:
5
+ https://docs.google.com/document/d/e/2PACX-1vRhYtsvc5eOR2FWNCwaBiKL6suIOrxJig8LcSBbmCbyYsayia_DvPOOBlXZ4CAlQ5nlDD8kTaIDRwrN/pub
6
+
7
+ * `mnist_*.csv` is a small sample of the
8
+ [MNIST database](https://en.wikipedia.org/wiki/MNIST_database), which is
9
+ described at: http://yann.lecun.com/exdb/mnist/
10
+
11
+ * `anscombe.json` contains a copy of
12
+ [Anscombe's quartet](https://en.wikipedia.org/wiki/Anscombe%27s_quartet); it
13
+ was originally described in
14
+
15
+ Anscombe, F. J. (1973). 'Graphs in Statistical Analysis'. American
16
+ Statistician. 27 (1): 17-21. JSTOR 2682899.
17
+
18
+ and our copy was prepared by the
19
+ [vega_datasets library](https://github.com/altair-viz/vega_datasets/blob/4f67bdaad10f45e3549984e17e1b3088c731503d/vega_datasets/_data/anscombe.json).
content/sample_data/anscombe.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {"Series":"I", "X":10.0, "Y":8.04},
3
+ {"Series":"I", "X":8.0, "Y":6.95},
4
+ {"Series":"I", "X":13.0, "Y":7.58},
5
+ {"Series":"I", "X":9.0, "Y":8.81},
6
+ {"Series":"I", "X":11.0, "Y":8.33},
7
+ {"Series":"I", "X":14.0, "Y":9.96},
8
+ {"Series":"I", "X":6.0, "Y":7.24},
9
+ {"Series":"I", "X":4.0, "Y":4.26},
10
+ {"Series":"I", "X":12.0, "Y":10.84},
11
+ {"Series":"I", "X":7.0, "Y":4.81},
12
+ {"Series":"I", "X":5.0, "Y":5.68},
13
+
14
+ {"Series":"II", "X":10.0, "Y":9.14},
15
+ {"Series":"II", "X":8.0, "Y":8.14},
16
+ {"Series":"II", "X":13.0, "Y":8.74},
17
+ {"Series":"II", "X":9.0, "Y":8.77},
18
+ {"Series":"II", "X":11.0, "Y":9.26},
19
+ {"Series":"II", "X":14.0, "Y":8.10},
20
+ {"Series":"II", "X":6.0, "Y":6.13},
21
+ {"Series":"II", "X":4.0, "Y":3.10},
22
+ {"Series":"II", "X":12.0, "Y":9.13},
23
+ {"Series":"II", "X":7.0, "Y":7.26},
24
+ {"Series":"II", "X":5.0, "Y":4.74},
25
+
26
+ {"Series":"III", "X":10.0, "Y":7.46},
27
+ {"Series":"III", "X":8.0, "Y":6.77},
28
+ {"Series":"III", "X":13.0, "Y":12.74},
29
+ {"Series":"III", "X":9.0, "Y":7.11},
30
+ {"Series":"III", "X":11.0, "Y":7.81},
31
+ {"Series":"III", "X":14.0, "Y":8.84},
32
+ {"Series":"III", "X":6.0, "Y":6.08},
33
+ {"Series":"III", "X":4.0, "Y":5.39},
34
+ {"Series":"III", "X":12.0, "Y":8.15},
35
+ {"Series":"III", "X":7.0, "Y":6.42},
36
+ {"Series":"III", "X":5.0, "Y":5.73},
37
+
38
+ {"Series":"IV", "X":8.0, "Y":6.58},
39
+ {"Series":"IV", "X":8.0, "Y":5.76},
40
+ {"Series":"IV", "X":8.0, "Y":7.71},
41
+ {"Series":"IV", "X":8.0, "Y":8.84},
42
+ {"Series":"IV", "X":8.0, "Y":8.47},
43
+ {"Series":"IV", "X":8.0, "Y":7.04},
44
+ {"Series":"IV", "X":8.0, "Y":5.25},
45
+ {"Series":"IV", "X":19.0, "Y":12.50},
46
+ {"Series":"IV", "X":8.0, "Y":5.56},
47
+ {"Series":"IV", "X":8.0, "Y":7.91},
48
+ {"Series":"IV", "X":8.0, "Y":6.89}
49
+ ]
model_assets/.gitkeep ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+
2
+
render.yaml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ services:
2
+ - type: web
3
+ name: heart-attack-risk-predictor
4
+ runtime: docker
5
+ plan: free
6
+ dockerfilePath: ./Dockerfile
7
+ dockerContext: .
8
+ envVars:
9
+ - key: PORT
10
+ value: 8051
11
+ healthCheckPath: /_stcore/health
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ streamlit==1.39.0
2
+ pandas==2.2.2
3
+ numpy==2.0.2
4
+ scikit-learn==1.7.2
5
+ xgboost==3.1.1
6
+ catboost==1.2.8
7
+ lightgbm==4.6.0
8
+ joblib==1.5.2
9
+
streamlit_app.py ADDED
@@ -0,0 +1,1162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Streamlit App for Heart Attack Risk Prediction
3
+ Based on ensemble model (XGBoost + CatBoost + LightGBM)
4
+ """
5
+
6
+ import streamlit as st
7
+ import pandas as pd
8
+ import numpy as np
9
+ import joblib
10
+ import json
11
+ import os
12
+ from pathlib import Path
13
+
14
+ # Page configuration
15
+ st.set_page_config(
16
+ page_title="Predicting Heart Attack Risk: An Ensemble Modeling Approach",
17
+ layout="wide",
18
+ initial_sidebar_state="expanded"
19
+ )
20
+
21
+ # Custom CSS for modern styling
22
+ st.markdown("""
23
+ <style>
24
+ /* Modern Design System */
25
+ :root {
26
+ --primary: #3B82F6;
27
+ --primary-dark: #2563EB;
28
+ --secondary: #8B5CF6;
29
+ --success: #10B981;
30
+ --warning: #F59E0B;
31
+ --danger: #EF4444;
32
+ --bg-card: rgba(30, 41, 59, 0.4);
33
+ --bg-card-hover: rgba(30, 41, 59, 0.6);
34
+ --border: rgba(148, 163, 184, 0.1);
35
+ --border-strong: rgba(148, 163, 184, 0.2);
36
+ --text-primary: #F1F5F9;
37
+ --text-secondary: #CBD5E1;
38
+ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1);
39
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
40
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.2);
41
+ --radius: 16px;
42
+ --radius-sm: 12px;
43
+ }
44
+
45
+ /* Hide Streamlit branding */
46
+ #MainMenu {visibility: hidden;}
47
+ footer {visibility: hidden;}
48
+
49
+ /* Main container improvements */
50
+ .main .block-container {
51
+ padding-top: 2rem;
52
+ padding-bottom: 2rem;
53
+ max-width: 1400px;
54
+ }
55
+
56
+ /* Header with gradient */
57
+ .main-header {
58
+ font-size: 2.5rem;
59
+ font-weight: 800;
60
+ text-align: center;
61
+ margin: 0 0 0.5rem;
62
+ letter-spacing: -0.02em;
63
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
64
+ -webkit-background-clip: text;
65
+ background-clip: text;
66
+ color: transparent;
67
+ line-height: 1.2;
68
+ }
69
+
70
+ .subtitle {
71
+ text-align: center;
72
+ color: var(--text-secondary);
73
+ font-size: 0.95rem;
74
+ margin-bottom: 2rem;
75
+ font-weight: 400;
76
+ }
77
+
78
+ /* Section divider */
79
+ .section-divider {
80
+ height: 1px;
81
+ background: linear-gradient(90deg, transparent, var(--border-strong), transparent);
82
+ margin: 2rem 0;
83
+ border: none;
84
+ }
85
+
86
+ /* Modern cards */
87
+ .info-card {
88
+ padding: 1.5rem;
89
+ border-radius: var(--radius-sm);
90
+ background: var(--bg-card);
91
+ border: 1px solid var(--border);
92
+ backdrop-filter: blur(10px);
93
+ transition: all 0.3s ease;
94
+ box-shadow: var(--shadow-sm);
95
+ }
96
+
97
+ .info-card:hover {
98
+ background: var(--bg-card-hover);
99
+ border-color: var(--border-strong);
100
+ box-shadow: var(--shadow-md);
101
+ transform: translateY(-2px);
102
+ }
103
+
104
+ /* Metric cards */
105
+ div[data-testid="metric-container"] {
106
+ background: var(--bg-card);
107
+ padding: 1rem;
108
+ border-radius: var(--radius-sm);
109
+ border: 1px solid var(--border);
110
+ box-shadow: var(--shadow-sm);
111
+ }
112
+
113
+ div[data-testid="metric-container"]:hover {
114
+ background: var(--bg-card-hover);
115
+ border-color: var(--border-strong);
116
+ }
117
+
118
+ /* Buttons */
119
+ .stButton > button {
120
+ width: 100%;
121
+ background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
122
+ color: white;
123
+ border: none;
124
+ padding: 0.875rem 2rem;
125
+ font-size: 1.05rem;
126
+ font-weight: 600;
127
+ border-radius: var(--radius-sm);
128
+ transition: all 0.3s ease;
129
+ box-shadow: var(--shadow-md);
130
+ letter-spacing: 0.01em;
131
+ }
132
+
133
+ .stButton > button:hover {
134
+ transform: translateY(-2px);
135
+ box-shadow: var(--shadow-lg);
136
+ background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
137
+ }
138
+
139
+ /* Input fields */
140
+ .stTextInput > div > div > input,
141
+ .stNumberInput > div > div > input,
142
+ .stSelectbox > div > div,
143
+ .stRadio > div {
144
+ background: var(--bg-card);
145
+ border: 1px solid var(--border);
146
+ border-radius: var(--radius-sm);
147
+ color: var(--text-primary);
148
+ }
149
+
150
+ .stTextInput > div > div > input:focus,
151
+ .stNumberInput > div > div > input:focus,
152
+ .stSelectbox > div > div:focus-within {
153
+ border-color: var(--primary);
154
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
155
+ }
156
+
157
+ /* Sidebar */
158
+ section[data-testid="stSidebar"] {
159
+ background: linear-gradient(180deg, rgba(15, 23, 42, 0.95) 0%, rgba(30, 41, 59, 0.95) 100%);
160
+ border-right: 1px solid var(--border);
161
+ }
162
+
163
+ section[data-testid="stSidebar"] .block-container {
164
+ padding-top: 2rem;
165
+ }
166
+
167
+ /* Expander */
168
+ .streamlit-expanderHeader {
169
+ background: var(--bg-card);
170
+ border: 1px solid var(--border);
171
+ border-radius: var(--radius-sm);
172
+ font-weight: 600;
173
+ color: var(--text-primary);
174
+ }
175
+
176
+ .streamlit-expanderHeader:hover {
177
+ background: var(--bg-card-hover);
178
+ border-color: var(--border-strong);
179
+ }
180
+
181
+ /* Progress bars */
182
+ .stProgress > div > div > div {
183
+ background: linear-gradient(90deg, var(--primary), var(--secondary));
184
+ border-radius: 10px;
185
+ }
186
+
187
+ /* Tabs */
188
+ .stTabs [data-baseweb="tab-list"] {
189
+ gap: 8px;
190
+ background: transparent;
191
+ }
192
+
193
+ .stTabs [data-baseweb="tab"] {
194
+ background: var(--bg-card);
195
+ border: 1px solid var(--border);
196
+ border-radius: var(--radius-sm);
197
+ padding: 0.5rem 1.5rem;
198
+ color: var(--text-secondary);
199
+ }
200
+
201
+ .stTabs [aria-selected="true"] {
202
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
203
+ color: white;
204
+ border-color: transparent;
205
+ }
206
+
207
+ /* Alerts */
208
+ .stAlert {
209
+ border-radius: var(--radius-sm);
210
+ border: 1px solid var(--border);
211
+ backdrop-filter: blur(10px);
212
+ }
213
+
214
+ /* Success/Error states */
215
+ .risk-high {
216
+ color: var(--danger);
217
+ font-size: 1.5rem;
218
+ font-weight: 700;
219
+ }
220
+
221
+ .risk-low {
222
+ color: var(--success);
223
+ font-size: 1.5rem;
224
+ font-weight: 700;
225
+ }
226
+
227
+ /* Section headers */
228
+ h1, h2, h3 {
229
+ color: var(--text-primary);
230
+ font-weight: 700;
231
+ letter-spacing: -0.01em;
232
+ }
233
+
234
+ h2 {
235
+ font-size: 1.875rem;
236
+ margin-top: 2rem;
237
+ margin-bottom: 1rem;
238
+ }
239
+
240
+ h3 {
241
+ font-size: 1.25rem;
242
+ margin-top: 1.5rem;
243
+ margin-bottom: 0.75rem;
244
+ }
245
+
246
+ /* Info boxes */
247
+ .stMarkdown p {
248
+ color: var(--text-secondary);
249
+ line-height: 1.6;
250
+ }
251
+
252
+ /* Radio buttons */
253
+ .stRadio > label {
254
+ color: var(--text-primary);
255
+ font-weight: 500;
256
+ }
257
+
258
+ /* Selectbox */
259
+ .stSelectbox > label {
260
+ color: var(--text-primary);
261
+ font-weight: 500;
262
+ }
263
+ </style>
264
+ """, unsafe_allow_html=True)
265
+
266
+ # Paths
267
+ BASE_DIR = os.path.dirname(__file__)
268
+ ASSETS_DIR = os.path.join(BASE_DIR, "model_assets")
269
+ os.makedirs(ASSETS_DIR, exist_ok=True)
270
+
271
+ def find_first_existing(names):
272
+ for n in names:
273
+ p = os.path.join(ASSETS_DIR, n)
274
+ if os.path.exists(p):
275
+ return p
276
+ return None
277
+
278
+ def load_performance_metrics():
279
+ """Load model and ensemble metrics from available CSVs.
280
+ Returns:
281
+ metrics_rows: list of dicts with keys: model, accuracy, recall, f1, roc_auc
282
+ hybrid_rows: list of dicts with keys: version, accuracy, recall, f1, roc_auc
283
+ """
284
+ metrics_rows = []
285
+ hybrid_rows = []
286
+
287
+ # Candidate files in order of preference
288
+ candidate_model_metrics = [
289
+ os.path.join(BASE_DIR, "content", "models", "model_metrics_best.csv"),
290
+ os.path.join(BASE_DIR, "model_assets", "model_metrics.csv"),
291
+ os.path.join(BASE_DIR, "content", "models", "model_metrics.csv"),
292
+ ]
293
+ candidate_hybrid_metrics = [
294
+ os.path.join(BASE_DIR, "content", "models", "hybrid_metrics_best.csv"),
295
+ os.path.join(BASE_DIR, "model_assets", "hybrid_metrics.csv"),
296
+ os.path.join(BASE_DIR, "content", "models", "hybrid_metrics.csv"),
297
+ ]
298
+
299
+ # Load model metrics
300
+ for fp in candidate_model_metrics:
301
+ if os.path.exists(fp):
302
+ try:
303
+ df = pd.read_csv(fp)
304
+ except Exception:
305
+ try:
306
+ df = pd.read_csv(fp, index_col=0)
307
+ except Exception:
308
+ continue
309
+ cols = {c.lower(): c for c in df.columns}
310
+ # Normalize rows
311
+ for idx, row in df.iterrows():
312
+ mr = {}
313
+ mr["model"] = str(row.get(cols.get("model"), idx))
314
+ for k in ["accuracy", "precision", "recall", "f1", "roc_auc"]:
315
+ v = row.get(cols.get(k)) if cols.get(k) in row else None
316
+ try:
317
+ mr[k] = float(v)
318
+ except Exception:
319
+ mr[k] = None
320
+ metrics_rows.append(mr)
321
+ # Prefer first successful file then break
322
+ if metrics_rows:
323
+ break
324
+
325
+ # Load hybrid/ensemble metrics
326
+ for fp in candidate_hybrid_metrics:
327
+ if os.path.exists(fp):
328
+ try:
329
+ dfh = pd.read_csv(fp)
330
+ except Exception:
331
+ try:
332
+ dfh = pd.read_csv(fp, index_col=0)
333
+ except Exception:
334
+ continue
335
+ cols = {c.lower(): c for c in dfh.columns}
336
+ for idx, row in dfh.iterrows():
337
+ hr = {}
338
+ hr["version"] = str(row.get(cols.get("version", "version"), idx))
339
+ for k in ["accuracy", "precision", "recall", "f1", "roc_auc"]:
340
+ v = row.get(cols.get(k)) if cols.get(k) in row else None
341
+ try:
342
+ hr[k] = float(v)
343
+ except Exception:
344
+ hr[k] = None
345
+ hybrid_rows.append(hr)
346
+ if hybrid_rows:
347
+ break
348
+
349
+ return metrics_rows, hybrid_rows
350
+
351
+ def get_algo_metrics(metrics_rows, algo_name: str):
352
+ """Pick metrics for a given algo ('XGBoost', 'CatBoost', 'LightGBM').
353
+ Uses heuristics to match model names in CSV.
354
+ Returns best (highest accuracy) matching row or None.
355
+ """
356
+ if not metrics_rows:
357
+ return None
358
+ name_hints = {
359
+ "XGBoost": ["XGB", "XGBoost", "xgb"],
360
+ "CatBoost": ["CAT", "CatBoost", "cat"],
361
+ "LightGBM": ["LGBM", "LightGBM", "lgb"],
362
+ "LogReg": ["LogReg", "logreg", "logistic"],
363
+ "RandomForest": ["RF", "RandomForest", "random forest"],
364
+ }
365
+ hints = name_hints.get(algo_name, [algo_name])
366
+ best = None
367
+ for row in metrics_rows:
368
+ label = str(row.get("model", "")).upper()
369
+ if any(hint.upper() in label for hint in hints):
370
+ if best is None:
371
+ best = row
372
+ else:
373
+ acc_best = best.get("accuracy") or -1
374
+ acc_new = row.get("accuracy") or -1
375
+ if acc_new > acc_best:
376
+ best = row
377
+ return best
378
+
379
+ def get_ensemble_metrics(hybrid_rows):
380
+ """Return the preferred ensemble metrics row.
381
+ Preference: 'Ensemble_best@0.5' -> 'Ensemble@0.5' -> first Ensemble row.
382
+ """
383
+ if not hybrid_rows:
384
+ return None
385
+ # Normalize
386
+ rows = list(hybrid_rows)
387
+ # First preference
388
+ for r in rows:
389
+ ver = str(r.get("version", ""))
390
+ if ver.lower() == "ensemble_best@0.5" or ("ensemble_best" in ver.lower() and "@0.5" in ver.lower()):
391
+ return r
392
+ # Second preference
393
+ for r in rows:
394
+ ver = str(r.get("version", ""))
395
+ if ver.lower() == "ensemble@0.5" or ("ensemble" in ver.lower() and "@0.5" in ver.lower()):
396
+ return r
397
+ # Any ensemble row
398
+ for r in rows:
399
+ ver = str(r.get("version", ""))
400
+ if "ensemble" in ver.lower():
401
+ return r
402
+ return None
403
+
404
+ @st.cache_resource
405
+ def load_models():
406
+ """Load models and preprocessor (cached for performance). Robust per-model loading."""
407
+ preprocessor = None
408
+ try:
409
+ preproc_path = find_first_existing(["preprocessor.joblib"])
410
+ if preproc_path:
411
+ preprocessor = joblib.load(preproc_path)
412
+ except Exception as e:
413
+ st.warning(f"Preprocessor load skipped: {e}")
414
+
415
+ models = {}
416
+ # Resolve paths
417
+ xgb_path = find_first_existing([
418
+ "XGB_spw.joblib", "XGBoost.joblib", "xgb_model.joblib", "xgb_full.joblib", "XGBoost_best_5cv.joblib"
419
+ ])
420
+ cat_path = find_first_existing([
421
+ "CAT_cw.joblib", "CatBoost.joblib", "catboost.joblib", "cat_model.joblib", "cat_full.joblib", "CatBoost_best_5cv.joblib"
422
+ ])
423
+ lgb_path = find_first_existing([
424
+ "LGBM_cw.joblib", "LightGBM.joblib", "lgb_model.joblib", "LightGBM_best_5cv.joblib"
425
+ ])
426
+
427
+ # Load each model independently so one failure doesn't break others
428
+ if xgb_path:
429
+ try:
430
+ models["XGBoost"] = joblib.load(xgb_path)
431
+ except Exception as e:
432
+ st.warning(f"XGBoost model failed to load from {os.path.basename(xgb_path)}: {e}")
433
+ if cat_path:
434
+ try:
435
+ models["CatBoost"] = joblib.load(cat_path)
436
+ except Exception as e:
437
+ st.warning(f"CatBoost model failed to load from {os.path.basename(cat_path)}: {e}")
438
+ if lgb_path:
439
+ try:
440
+ models["LightGBM"] = joblib.load(lgb_path)
441
+ except Exception as e:
442
+ st.warning(f"LightGBM model failed to load from {os.path.basename(lgb_path)}: {e}")
443
+
444
+ # Do NOT restrict to CatBoost if preprocessor is missing; ensemble needs both.
445
+
446
+ # Load metrics paths for display/selection (optional)
447
+ metrics_paths = []
448
+ for mp in ["hybrid_metrics.csv", "model_metrics_summary.csv", "model_metrics.csv"]:
449
+ p = find_first_existing([mp])
450
+ if p:
451
+ metrics_paths.append(p)
452
+
453
+ return preprocessor, models, metrics_paths
454
+
455
+ def pick_best_model(models: dict, metrics_paths: list):
456
+ """Pick best model based on highest accuracy then recall from available metrics CSVs."""
457
+ fallback_order = [
458
+ ("CatBoost", ["CAT", "Cat", "cat"]),
459
+ ("XGBoost", ["XGB", "XGBoost", "xgb"]),
460
+ ("LightGBM", ["LGBM", "LightGBM", "lgbm"]),
461
+ ]
462
+
463
+ best_label = None
464
+ best_acc = -1.0
465
+ best_rec = -1.0
466
+
467
+ for mp in metrics_paths:
468
+ try:
469
+ dfm = pd.read_csv(mp)
470
+ except Exception:
471
+ try:
472
+ dfm = pd.read_csv(mp, index_col=0)
473
+ except Exception:
474
+ continue
475
+
476
+ cols = {c.lower(): c for c in dfm.columns}
477
+ if "accuracy" in cols and "recall" in cols:
478
+ acc_col = cols["accuracy"]
479
+ rec_col = cols["recall"]
480
+ if "model" in {c.lower() for c in dfm.columns}:
481
+ name_col = [c for c in dfm.columns if c.lower() == "model"][0]
482
+ iter_rows = dfm[[name_col, acc_col, rec_col]].itertuples(index=False, name=None)
483
+ else:
484
+ iter_rows = zip(dfm.index.astype(str).tolist(), dfm[acc_col].tolist(), dfm[rec_col].tolist())
485
+
486
+ for label, acc, rec in iter_rows:
487
+ try:
488
+ acc_f = float(acc)
489
+ rec_f = float(rec)
490
+ except Exception:
491
+ continue
492
+ if (acc_f > best_acc) or (np.isclose(acc_f, best_acc) and rec_f > best_rec):
493
+ best_acc = acc_f
494
+ best_rec = rec_f
495
+ best_label = str(label)
496
+
497
+ if best_label:
498
+ label_u = best_label.upper()
499
+ if "CAT" in label_u and "CatBoost" in models:
500
+ return "CatBoost"
501
+ if "XGB" in label_u and "XGBoost" in models:
502
+ return "XGBoost"
503
+ if ("LGBM" in label_u or "LGB" in label_u) and "LightGBM" in models:
504
+ return "LightGBM"
505
+
506
+ for key, hints in fallback_order:
507
+ if key in models:
508
+ return key
509
+ return None
510
+
511
+ # Load models
512
+ preprocessor, models, metrics_paths = load_models()
513
+
514
+ if not models:
515
+ st.error("⚠️ No models found in `model_assets/`. Please add your trained model files.")
516
+ st.stop()
517
+
518
+ # Enforce Ensemble-only usage: require both XGBoost and CatBoost
519
+ if not ("XGBoost" in models and "CatBoost" in models):
520
+ st.error("⚠️ Ensemble requires both XGBoost and CatBoost models. Please ensure both artifacts are present in `model_assets/`.")
521
+ st.stop()
522
+
523
+ # Main title
524
+ st.markdown('<h1 class="main-header">Predicting Heart Attack Risk: An Ensemble Modeling Approach</h1>', unsafe_allow_html=True)
525
+ st.markdown('<p class="subtitle">Advanced machine learning ensemble combining XGBoost and CatBoost for accurate cardiovascular risk assessment</p>', unsafe_allow_html=True)
526
+ st.markdown('<div class="section-divider"></div>', unsafe_allow_html=True)
527
+
528
+ # Sidebar for model info
529
+ with st.sidebar:
530
+ st.header("📊 Ensemble")
531
+ st.success("✅ Using Ensemble Only (50% XGBoost + 50% CatBoost)")
532
+ _model_rows, _hybrid_rows = load_performance_metrics()
533
+ ens_row = get_ensemble_metrics(_hybrid_rows)
534
+ acc_text = f"{ens_row['accuracy']*100:.2f}%" if ens_row and ens_row.get('accuracy') is not None else "n/a"
535
+ rec_text = f"{ens_row['recall']*100:.2f}%" if ens_row and ens_row.get('recall') is not None else "n/a"
536
+ cols_side = st.columns(2)
537
+ with cols_side[0]:
538
+ st.metric("Accuracy", acc_text)
539
+ with cols_side[1]:
540
+ st.metric("Recall", rec_text)
541
+
542
+ if metrics_paths:
543
+ st.markdown("**Performance Metrics:**")
544
+ for mp in metrics_paths:
545
+ try:
546
+ dfm = pd.read_csv(mp, index_col=0) if mp.endswith('.csv') else pd.read_csv(mp)
547
+ st.dataframe(dfm.head(10), use_container_width=True)
548
+ except Exception:
549
+ pass
550
+
551
+ st.markdown("---")
552
+ st.info("""
553
+ **Note:** This is a prediction tool, not a medical diagnosis.
554
+ Always consult healthcare professionals for medical advice.
555
+ """)
556
+
557
+ # Input form with all features
558
+ st.header("📝 Patient Information")
559
+
560
+ col1, col2 = st.columns(2)
561
+
562
+ with col1:
563
+ st.subheader("Demographics")
564
+ gender = st.selectbox("Gender", options=[1, 2], format_func=lambda x: "Male" if x == 1 else "Female")
565
+ height = st.number_input("Height (cm)", min_value=100, max_value=220, value=170, step=1)
566
+ weight = st.number_input("Weight (kg)", min_value=30.0, max_value=200.0, value=70.0, step=0.1)
567
+
568
+ # Calculate BMI with category
569
+ bmi = weight / ((height / 100) ** 2) if height > 0 else 0
570
+ if bmi < 18.5:
571
+ bmi_status = "⚠️ Underweight"
572
+ bmi_color = "inverse"
573
+ elif bmi < 25:
574
+ bmi_status = "✅ Normal"
575
+ bmi_color = "normal"
576
+ elif bmi < 30:
577
+ bmi_status = "⚠️ Overweight"
578
+ bmi_color = "normal"
579
+ else:
580
+ bmi_status = "🔴 Obese"
581
+ bmi_color = "inverse"
582
+
583
+ st.metric("BMI", f"{bmi:.2f}", delta=bmi_status, delta_color=bmi_color,
584
+ help="Body Mass Index - Healthy range: 18.5-24.9")
585
+
586
+ with col2:
587
+ st.subheader("Blood Pressure")
588
+ ap_hi = st.number_input("Systolic BP (mmHg)", min_value=80, max_value=250, value=120, step=1)
589
+ ap_lo = st.number_input("Diastolic BP (mmHg)", min_value=40, max_value=150, value=80, step=1)
590
+
591
+ # Calculate BP_diff and category
592
+ bp_diff = ap_hi - ap_lo
593
+
594
+ # BP Status
595
+ if ap_hi < 120 and ap_lo < 80:
596
+ bp_status = "✅ Normal"
597
+ bp_color = "normal"
598
+ elif ap_hi < 130 and ap_lo < 80:
599
+ bp_status = "⚠️ Elevated"
600
+ bp_color = "normal"
601
+ elif ap_hi < 140 or ap_lo < 90:
602
+ bp_status = "🔴 Stage 1"
603
+ bp_color = "inverse"
604
+ else:
605
+ bp_status = "🚨 Stage 2"
606
+ bp_color = "inverse"
607
+
608
+ st.metric("Pulse Pressure", f"{bp_diff} mmHg", delta=bp_status, delta_color=bp_color,
609
+ help="Normal BP: <120/80 mmHg")
610
+
611
+ st.markdown("---")
612
+
613
+ col3, col4 = st.columns(2)
614
+
615
+ with col3:
616
+ st.subheader("Medical History")
617
+ cholesterol = st.selectbox("Cholesterol Level", options=[1, 2, 3],
618
+ format_func=lambda x: {1: "Normal", 2: "Above Normal", 3: "Well Above Normal"}.get(x))
619
+ gluc = st.selectbox("Glucose Level", options=[1, 2, 3],
620
+ format_func=lambda x: {1: "Normal", 2: "Above Normal", 3: "Well Above Normal"}.get(x))
621
+ smoke = st.radio("Smoking", options=[0, 1], format_func=lambda x: "No" if x == 0 else "Yes", horizontal=True)
622
+ alco = st.radio("Alcohol Consumption", options=[0, 1], format_func=lambda x: "No" if x == 0 else "Yes", horizontal=True)
623
+
624
+ with col4:
625
+ st.subheader("Activity & Derived Features")
626
+ active = st.radio("Physical Activity", options=[0, 1], format_func=lambda x: "No" if x == 0 else "Yes", horizontal=True)
627
+
628
+ # Age in years (for display)
629
+ age_years = st.number_input("Age (years)", min_value=20, max_value=100, value=50, step=1)
630
+ age_days = age_years * 365 # Convert to days for model compatibility
631
+
632
+ # Derived features
633
+ systolic_pressure = ap_hi
634
+ map_value = ap_lo + (bp_diff / 3) # Mean Arterial Pressure approximation
635
+ pulse_pressure_ratio = bp_diff / ap_hi if ap_hi > 0 else 0
636
+
637
+ # Additional derived features
638
+ st.markdown("---")
639
+ st.subheader("Additional Health Metrics")
640
+
641
+ col5, col6, col7 = st.columns(3)
642
+
643
+ with col5:
644
+ protein_level = st.number_input("Protein Level", min_value=0.0, max_value=200.0, value=14.0, step=0.1)
645
+
646
+ with col6:
647
+ ejection_fraction = st.number_input("Ejection Fraction (%)", min_value=0.0, max_value=100.0, value=60.0, step=0.1)
648
+
649
+ with col7:
650
+ # Calculate Lifestyle Score automatically
651
+ lifestyle_score = 0
652
+ risk_factors = []
653
+
654
+ if smoke == 1:
655
+ lifestyle_score += 1
656
+ risk_factors.append("Smoking")
657
+ if alco == 1:
658
+ lifestyle_score += 1
659
+ risk_factors.append("Alcohol")
660
+ if active == 0:
661
+ lifestyle_score += 1
662
+ risk_factors.append("Inactive")
663
+
664
+ if lifestyle_score == 0:
665
+ score_label = "✅ Low Risk"
666
+ delta_color = "normal"
667
+ elif lifestyle_score == 1:
668
+ score_label = "⚠️ Moderate Risk"
669
+ delta_color = "normal"
670
+ elif lifestyle_score == 2:
671
+ score_label = "🔴 High Risk"
672
+ delta_color = "inverse"
673
+ else:
674
+ score_label = "🚨 Very High Risk"
675
+ delta_color = "inverse"
676
+
677
+ st.metric(
678
+ "Lifestyle Risk Score",
679
+ f"{lifestyle_score}/3 - {score_label}",
680
+ help=f"Auto-calculated from lifestyle factors. Risk factors: {', '.join(risk_factors) if risk_factors else 'None'}"
681
+ )
682
+ if risk_factors:
683
+ st.caption(f"⚠️ Risk factors: {', '.join(risk_factors)}")
684
+
685
+ # Calculate additional derived features
686
+ obesity_flag = 1 if bmi >= 30 else 0
687
+ hypertension_flag = 1 if ap_hi >= 140 or ap_lo >= 90 else 0
688
+ health_risk_score = lifestyle_score + obesity_flag + hypertension_flag
689
+ smoker_alcoholic = 1 if (smoke == 1 or alco == 1) else 0
690
+
691
+ # Age group and BMI category
692
+ if age_years < 30:
693
+ age_group = "20-29"
694
+ elif age_years < 40:
695
+ age_group = "30-39"
696
+ elif age_years < 50:
697
+ age_group = "40-49"
698
+ elif age_years < 60:
699
+ age_group = "50-59"
700
+ else:
701
+ age_group = "60+"
702
+
703
+ if bmi < 18.5:
704
+ bmi_category = "Underweight"
705
+ elif bmi < 25:
706
+ bmi_category = "Normal"
707
+ elif bmi < 30:
708
+ bmi_category = "Overweight"
709
+ else:
710
+ bmi_category = "Obese"
711
+
712
+ # BP Category
713
+ if ap_hi < 120 and ap_lo < 80:
714
+ bp_category = "Normal"
715
+ elif ap_hi < 130 and ap_lo < 80:
716
+ bp_category = "Elevated"
717
+ elif ap_hi < 140 or ap_lo < 90:
718
+ bp_category = "Stage 1"
719
+ else:
720
+ bp_category = "Stage 2"
721
+
722
+ # Risk Level
723
+ if health_risk_score <= 2:
724
+ risk_level = "Low"
725
+ elif health_risk_score <= 4:
726
+ risk_level = "Medium"
727
+ else:
728
+ risk_level = "High"
729
+
730
+ # Risk Age (derived)
731
+ risk_age = age_years + (health_risk_score * 5)
732
+
733
+ # Generate Reason based on risk factors
734
+ reasons = []
735
+ if obesity_flag == 1:
736
+ reasons.append("High BMI (>30)")
737
+ if hypertension_flag == 1:
738
+ reasons.append("High BP")
739
+ if cholesterol == 3:
740
+ reasons.append("High cholesterol")
741
+ if gluc == 3:
742
+ reasons.append("High glucose")
743
+ if lifestyle_score > 0:
744
+ if smoke == 1:
745
+ reasons.append("Smoking")
746
+ if alco == 1:
747
+ reasons.append("Alcohol consumption")
748
+ if active == 0:
749
+ reasons.append("Inactive")
750
+ if not reasons:
751
+ reasons.append("Healthy indicators")
752
+ reason = ", ".join(reasons)
753
+
754
+ # Create feature dictionary matching the dataset structure
755
+ feature_dict = {
756
+ 'age': age_days,
757
+ 'gender': gender,
758
+ 'height': height,
759
+ 'weight': weight,
760
+ 'ap_hi': ap_hi,
761
+ 'ap_lo': ap_lo,
762
+ 'cholesterol': cholesterol,
763
+ 'gluc': gluc,
764
+ 'smoke': smoke,
765
+ 'alco': alco,
766
+ 'active': active,
767
+ 'BMI': bmi,
768
+ 'BP_diff': bp_diff,
769
+ 'Systolic_Pressure': systolic_pressure,
770
+ 'age_years': age_years,
771
+ 'Age_Group': age_group,
772
+ 'Lifestyle_Score': lifestyle_score,
773
+ 'Obesity_Flag': obesity_flag,
774
+ 'Hypertension_Flag': hypertension_flag,
775
+ 'Health_Risk_Score': health_risk_score,
776
+ 'Reason': reason,
777
+ 'Pulse_Pressure_Ratio': pulse_pressure_ratio,
778
+ 'MAP': map_value,
779
+ 'BMI_Category': bmi_category,
780
+ 'Smoker_Alcoholic': smoker_alcoholic,
781
+ 'BP_Category': bp_category,
782
+ 'Risk_Age': risk_age,
783
+ 'Risk_Level': risk_level,
784
+ 'Protein_Level': protein_level,
785
+ 'Ejection_Fraction': ejection_fraction
786
+ }
787
+
788
+ # Health Summary Card (before prediction)
789
+ st.markdown("---")
790
+ st.subheader("📊 Health Summary")
791
+
792
+ summary_col1, summary_col2, summary_col3, summary_col4 = st.columns(4)
793
+
794
+ with summary_col1:
795
+ if obesity_flag == 1:
796
+ st.error("🔴 Obesity Risk")
797
+ else:
798
+ st.success("✅ Healthy Weight")
799
+
800
+ with summary_col2:
801
+ if hypertension_flag == 1:
802
+ st.error("🔴 Hypertension")
803
+ else:
804
+ st.success("✅ Normal BP")
805
+
806
+ with summary_col3:
807
+ if lifestyle_score >= 2:
808
+ st.error(f"🔴 High Lifestyle Risk ({lifestyle_score}/3)")
809
+ elif lifestyle_score == 1:
810
+ st.warning(f"⚠️ Moderate Risk ({lifestyle_score}/3)")
811
+ else:
812
+ st.success("✅ Low Risk (0/3)")
813
+
814
+ with summary_col4:
815
+ if cholesterol == 3 or gluc == 3:
816
+ st.error("🔴 Elevated Levels")
817
+ elif cholesterol == 2 or gluc == 2:
818
+ st.warning("⚠️ Above Normal")
819
+ else:
820
+ st.success("✅ Normal Levels")
821
+
822
+ # Prediction button
823
+ st.markdown("---")
824
+ predict_button = st.button("🔮 Predict Heart Attack Risk", type="primary", use_container_width=True)
825
+
826
+ if predict_button:
827
+ try:
828
+ # Create DataFrame matching EXACT training data structure (excluding id, cardio, Reason)
829
+ feature_cols = ['age', 'gender', 'height', 'weight', 'ap_hi', 'ap_lo', 'cholesterol', 'gluc',
830
+ 'smoke', 'alco', 'active', 'BMI', 'BP_diff', 'Systolic_Pressure', 'age_years',
831
+ 'Age_Group', 'Lifestyle_Score', 'Obesity_Flag', 'Hypertension_Flag', 'Health_Risk_Score',
832
+ 'Pulse_Pressure_Ratio', 'MAP', 'BMI_Category', 'Smoker_Alcoholic', 'BP_Category',
833
+ 'Risk_Age', 'Risk_Level', 'Protein_Level', 'Ejection_Fraction']
834
+
835
+ # Build input row with exact feature order
836
+ input_row = {
837
+ 'age': age_days,
838
+ 'gender': gender,
839
+ 'height': height,
840
+ 'weight': weight,
841
+ 'ap_hi': ap_hi,
842
+ 'ap_lo': ap_lo,
843
+ 'cholesterol': cholesterol,
844
+ 'gluc': gluc,
845
+ 'smoke': smoke,
846
+ 'alco': alco,
847
+ 'active': active,
848
+ 'BMI': bmi,
849
+ 'BP_diff': bp_diff,
850
+ 'Systolic_Pressure': systolic_pressure,
851
+ 'age_years': age_years,
852
+ 'Age_Group': age_group,
853
+ 'Lifestyle_Score': lifestyle_score,
854
+ 'Obesity_Flag': obesity_flag,
855
+ 'Hypertension_Flag': hypertension_flag,
856
+ 'Health_Risk_Score': health_risk_score,
857
+ 'Pulse_Pressure_Ratio': pulse_pressure_ratio,
858
+ 'MAP': map_value,
859
+ 'BMI_Category': bmi_category,
860
+ 'Smoker_Alcoholic': smoker_alcoholic,
861
+ 'BP_Category': bp_category,
862
+ 'Risk_Age': risk_age,
863
+ 'Risk_Level': risk_level,
864
+ 'Protein_Level': protein_level,
865
+ 'Ejection_Fraction': ejection_fraction
866
+ }
867
+
868
+ # Create DataFrame with exact column order
869
+ X_input = pd.DataFrame([input_row])[feature_cols]
870
+
871
+ # The model expects numeric features - categorical columns were one-hot encoded during training
872
+ # Load sample data to get all possible categorical values for proper one-hot encoding
873
+ sample_csv = os.path.join(BASE_DIR, "content", "cardio_train_extended.csv")
874
+ cat_cols = ['Age_Group', 'BMI_Category', 'BP_Category', 'Risk_Level']
875
+
876
+ if os.path.exists(sample_csv):
877
+ # Load sample to get all categorical values
878
+ sample_df = pd.read_csv(sample_csv, nrows=1000)
879
+ # Get all unique values for each categorical column
880
+ cat_values = {}
881
+ for col in cat_cols:
882
+ if col in sample_df.columns:
883
+ cat_values[col] = sorted(sample_df[col].unique().tolist())
884
+ else:
885
+ # Fallback to known values
886
+ cat_values = {
887
+ 'Age_Group': ['20-29', '30-39', '40-49', '50-59', '60+'],
888
+ 'BMI_Category': ['Underweight', 'Normal', 'Overweight', 'Obese'],
889
+ 'BP_Category': ['Normal', 'Elevated', 'Stage 1', 'Stage 2'],
890
+ 'Risk_Level': ['Low', 'Medium', 'High']
891
+ }
892
+
893
+ # Separate numeric and categorical columns
894
+ numeric_cols = [col for col in X_input.columns if col not in cat_cols]
895
+ X_numeric = X_input[numeric_cols].copy()
896
+
897
+ # One-hot encode categorical columns with all possible categories
898
+ X_cat_encoded_list = []
899
+ for col in cat_cols:
900
+ if col in X_input.columns:
901
+ # Create one-hot columns for all possible values
902
+ for val in cat_values.get(col, []):
903
+ col_name = f"{col}_{val}"
904
+ X_cat_encoded_list.append(pd.Series([1 if X_input[col].iloc[0] == val else 0], name=col_name))
905
+
906
+ if X_cat_encoded_list:
907
+ X_cat_encoded = pd.concat(X_cat_encoded_list, axis=1)
908
+ # Combine numeric and encoded categorical features
909
+ X_processed = pd.concat([X_numeric, X_cat_encoded], axis=1)
910
+ else:
911
+ X_processed = X_numeric.copy()
912
+
913
+ # Ensure all columns are numeric (float)
914
+ X_processed = X_processed.astype(float)
915
+
916
+ # Use ensemble model (50% XGBoost + 50% CatBoost) if both available, otherwise use best model
917
+ predictions = {}
918
+ ensemble_probs = []
919
+ ensemble_weights = []
920
+
921
+ # Try ensemble: XGBoost + CatBoost (0.5 each)
922
+ if "XGBoost" in models and "CatBoost" in models:
923
+ try:
924
+ # Predict with XGBoost
925
+ xgb_model = models["XGBoost"]
926
+
927
+ # Get expected features from XGBoost model
928
+ if hasattr(xgb_model, 'feature_names_in_'):
929
+ expected_features = list(xgb_model.feature_names_in_)
930
+ elif hasattr(xgb_model, 'get_booster'):
931
+ try:
932
+ booster = xgb_model.get_booster()
933
+ if hasattr(booster, 'feature_names') and booster.feature_names:
934
+ expected_features = list(booster.feature_names)
935
+ else:
936
+ # Check n_features_in_ to create placeholder columns
937
+ if hasattr(xgb_model, 'n_features_in_'):
938
+ n_features = xgb_model.n_features_in_
939
+ expected_features = [f"f{i}" for i in range(n_features)]
940
+ else:
941
+ expected_features = None
942
+ except:
943
+ expected_features = None
944
+ else:
945
+ expected_features = None
946
+
947
+ if expected_features:
948
+ # Align features exactly as XGBoost expects
949
+ X_aligned = pd.DataFrame(0.0, index=X_processed.index, columns=expected_features, dtype=float)
950
+ # Match columns by name
951
+ for col in X_processed.columns:
952
+ if col in X_aligned.columns:
953
+ X_aligned[col] = X_processed[col].values
954
+ X_xgb = X_aligned[expected_features] # Ensure exact order
955
+ else:
956
+ X_xgb = X_processed
957
+
958
+ if hasattr(xgb_model, 'predict_proba'):
959
+ xgb_prob = float(xgb_model.predict_proba(X_xgb)[0, 1])
960
+ ensemble_probs.append(xgb_prob)
961
+ ensemble_weights.append(0.5)
962
+ predictions["XGBoost"] = xgb_prob
963
+ except Exception as e:
964
+ st.warning(f"⚠️ XGBoost prediction failed (using CatBoost only): {str(e)}")
965
+ # Don't add to predictions, but continue with CatBoost
966
+
967
+ # Predict with CatBoost
968
+ if "CatBoost" in models:
969
+ try:
970
+ cat_model = models["CatBoost"]
971
+ if hasattr(cat_model, 'feature_names_in_'):
972
+ expected_features = list(cat_model.feature_names_in_)
973
+ X_aligned = pd.DataFrame(0, index=X_processed.index, columns=expected_features)
974
+ for col in X_processed.columns:
975
+ if col in X_aligned.columns:
976
+ X_aligned[col] = X_processed[col]
977
+ X_cat = X_aligned
978
+ else:
979
+ X_cat = X_processed
980
+
981
+ if hasattr(cat_model, 'predict_proba'):
982
+ cat_prob = float(cat_model.predict_proba(X_cat)[0, 1])
983
+ ensemble_probs.append(cat_prob)
984
+ ensemble_weights.append(0.5)
985
+ predictions["CatBoost"] = cat_prob
986
+ except Exception as e:
987
+ st.warning(f"CatBoost prediction failed: {e}")
988
+
989
+ # Ensemble-only: require both model probabilities
990
+ if len(ensemble_probs) >= 2:
991
+ # Ensemble prediction (weighted average)
992
+ ensemble_prob = np.average(ensemble_probs, weights=ensemble_weights)
993
+ predictions["Ensemble"] = ensemble_prob
994
+ else:
995
+ st.error("Ensemble prediction requires both XGBoost and CatBoost probabilities.")
996
+ with st.expander("Debug Info"):
997
+ st.write("XGBoost available:", "XGBoost" in models)
998
+ st.write("CatBoost available:", "CatBoost" in models)
999
+ st.write("Ensemble probs count:", len(ensemble_probs))
1000
+ st.stop()
1001
+
1002
+ if not predictions:
1003
+ st.error("No models with predict_proba available.")
1004
+ st.stop()
1005
+
1006
+ # Use ensemble prediction only
1007
+ if "Ensemble" in predictions:
1008
+ ensemble_prob = predictions["Ensemble"]
1009
+ else:
1010
+ st.error("Ensemble prediction missing.")
1011
+ st.stop()
1012
+
1013
+ # Binary prediction
1014
+ prediction = 1 if ensemble_prob >= 0.5 else 0
1015
+ risk_percentage = ensemble_prob * 100
1016
+
1017
+ # Display results
1018
+ st.markdown("---")
1019
+ st.header("🎯 Prediction Results")
1020
+
1021
+ # Main result with visual indicator
1022
+ if prediction == 1:
1023
+ st.error(f"⚠️ **HIGH RISK DETECTED** - {risk_percentage:.1f}% probability of heart disease")
1024
+ else:
1025
+ st.success(f"✅ **LOW RISK** - {risk_percentage:.1f}% probability of heart disease")
1026
+
1027
+ col_result1, col_result2, col_result3 = st.columns(3)
1028
+
1029
+ with col_result1:
1030
+ st.metric("Risk Probability", f"{risk_percentage:.2f}%",
1031
+ delta=f"{'High' if risk_percentage >= 70 else 'Moderate' if risk_percentage >= 50 else 'Low'} Risk",
1032
+ delta_color="inverse" if risk_percentage >= 70 else "normal")
1033
+
1034
+ with col_result2:
1035
+ if risk_percentage >= 70:
1036
+ risk_level_display = "🚨 Very High"
1037
+ elif risk_percentage >= 50:
1038
+ risk_level_display = "🔴 High"
1039
+ elif risk_percentage >= 30:
1040
+ risk_level_display = "⚠️ Moderate"
1041
+ else:
1042
+ risk_level_display = "✅ Low"
1043
+ st.metric("Risk Level", risk_level_display)
1044
+
1045
+ with col_result3:
1046
+ st.metric("Prediction", "Heart Disease Detected" if prediction == 1 else "No Heart Disease",
1047
+ delta="Consult Doctor" if prediction == 1 else "Continue Monitoring",
1048
+ delta_color="inverse" if prediction == 1 else "normal")
1049
+
1050
+ # Enhanced progress bar with color coding
1051
+ risk_bar_color = "#FF1744" if risk_percentage >= 70 else "#FF9800" if risk_percentage >= 50 else "#4CAF50"
1052
+ st.markdown(f"""
1053
+ <div style="background-color: #f0f0f0; border-radius: 5px; padding: 10px; margin: 10px 0;">
1054
+ <div style="background-color: {risk_bar_color}; width: {risk_percentage}%; height: 30px; border-radius: 5px; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold;">
1055
+ {risk_percentage:.1f}%
1056
+ </div>
1057
+ </div>
1058
+ """, unsafe_allow_html=True)
1059
+
1060
+ # Display Reason
1061
+ st.info(f"**Key Risk Factors Identified:** {reason}")
1062
+
1063
+ # Detailed breakdown with visual bars
1064
+ with st.expander("📊 Model Details & Breakdown"):
1065
+ # Ensemble-only display
1066
+ display_order = ["Ensemble"] if "Ensemble" in predictions else []
1067
+
1068
+ # Load accuracy/recall metrics for display under each model
1069
+ _model_rows_all, _hybrid_rows_all = load_performance_metrics()
1070
+ xgb_m_all = get_algo_metrics(_model_rows_all, "XGBoost")
1071
+ cat_m_all = get_algo_metrics(_model_rows_all, "CatBoost")
1072
+ avg_acc_all = None
1073
+ if xgb_m_all and cat_m_all and (xgb_m_all.get("accuracy") is not None) and (cat_m_all.get("accuracy") is not None):
1074
+ avg_acc_all = (xgb_m_all["accuracy"] + cat_m_all["accuracy"]) / 2.0
1075
+ ens_best_all = None
1076
+ for hr in _hybrid_rows_all or []:
1077
+ if "ENSEMBLE" in hr.get("version", "").upper() and "@0.5" in hr.get("version", ""):
1078
+ ens_best_all = hr
1079
+ break
1080
+
1081
+ # Explicit ensemble header with models and average accuracy
1082
+ header_text = "Ensemble uses: XGBoost + CatBoost"
1083
+ if avg_acc_all is not None:
1084
+ st.markdown(f"**{header_text}** · Average@0.5 Accuracy: {avg_acc_all*100:.2f}%")
1085
+ else:
1086
+ st.markdown(f"**{header_text}**")
1087
+
1088
+ # Create columns for display
1089
+ if len(display_order) > 0:
1090
+ cols = st.columns(len(display_order))
1091
+ for idx, name in enumerate(display_order):
1092
+ with cols[idx]:
1093
+ if name == "Ensemble":
1094
+ st.write(f"**🎯 {name} (Final)**")
1095
+ risk_prob = float(predictions[name])
1096
+ risk_pct = risk_prob * 100
1097
+
1098
+ # Custom progress bar that fills proportionally to risk
1099
+ st.markdown(f"""
1100
+ <div style="background: rgba(148, 163, 184, 0.1); border-radius: 10px; height: 32px; width: 100%; position: relative; overflow: hidden; border: 1px solid rgba(148, 163, 184, 0.2);">
1101
+ <div style="background: linear-gradient(90deg, {'#EF4444' if risk_pct >= 50 else '#F59E0B' if risk_pct >= 30 else '#10B981'}, {'#DC2626' if risk_pct >= 50 else '#D97706' if risk_pct >= 30 else '#059669'}); width: {risk_pct}%; height: 100%; border-radius: 10px; transition: width 0.3s ease; display: flex; align-items: center; justify-content: center; color: white; font-weight: 600; font-size: 0.9rem;">
1102
+ {risk_pct:.1f}%
1103
+ </div>
1104
+ </div>
1105
+ """, unsafe_allow_html=True)
1106
+ st.caption(f"Risk Level: {risk_pct:.2f}%")
1107
+
1108
+ # Show ensemble accuracy from average and recorded best if available
1109
+ if avg_acc_all is not None:
1110
+ st.caption(f"Accuracy (Average@0.5): {avg_acc_all*100:.2f}%")
1111
+ if ens_best_all and ens_best_all.get("accuracy") is not None:
1112
+ st.caption(f"Recorded Ensemble_best@0.5: {ens_best_all['accuracy']*100:.2f}%")
1113
+ st.success("✅ Final decision uses Ensemble (50% XGBoost + 50% CatBoost)")
1114
+ else:
1115
+ pass # No individual model cards in ensemble-only mode
1116
+
1117
+ # Show ensemble info
1118
+ if "Ensemble" in predictions:
1119
+ st.info("💡 **Ensemble Method**: Weighted average (50% XGBoost + 50% CatBoost). Final decision uses the Ensemble output.")
1120
+
1121
+ # Metrics breakdown: show per-model accuracy and averaged accuracy (concise)
1122
+ st.markdown("---")
1123
+ st.subheader("Ensemble Metrics")
1124
+ ens_row_bd = get_ensemble_metrics(_hybrid_rows_all)
1125
+ acc_bd = f"{ens_row_bd['accuracy']*100:.2f}%" if ens_row_bd and ens_row_bd.get('accuracy') is not None else "n/a"
1126
+ rec_bd = f"{ens_row_bd['recall']*100:.2f}%" if ens_row_bd and ens_row_bd.get('recall') is not None else "n/a"
1127
+ cols_acc = st.columns(2)
1128
+ with cols_acc[0]:
1129
+ st.metric("Accuracy", acc_bd)
1130
+ with cols_acc[1]:
1131
+ st.metric("Recall", rec_bd)
1132
+
1133
+ # Recommendations
1134
+ st.markdown("---")
1135
+ if prediction == 1 or risk_percentage > 70:
1136
+ st.warning("⚠️ **High Risk Detected!** Please consult with a healthcare professional immediately.")
1137
+ st.info("""
1138
+ **Recommendations:**
1139
+ - Schedule an appointment with a cardiologist
1140
+ - Monitor blood pressure regularly
1141
+ - Maintain a healthy diet and exercise routine
1142
+ - Avoid smoking and limit alcohol consumption
1143
+ - Follow up with regular health checkups
1144
+ """)
1145
+ elif risk_percentage > 50:
1146
+ st.warning("⚠️ **Moderate Risk** - Consider consulting a healthcare professional.")
1147
+ else:
1148
+ st.success("✅ **Low Risk** - Continue maintaining a healthy lifestyle!")
1149
+
1150
+ except Exception as e:
1151
+ st.error(f"Error making prediction: {str(e)}")
1152
+ with st.expander("Error Details"):
1153
+ st.exception(e)
1154
+
1155
+ # Footer
1156
+ st.markdown("---")
1157
+ st.markdown("""
1158
+ <div style='text-align: center; color: #666; padding: 2rem;'>
1159
+ <p>⚠️ <strong>Disclaimer:</strong> This tool is for educational purposes only and should not be used as a substitute for professional medical advice, diagnosis, or treatment.</p>
1160
+ <p>Always seek the advice of qualified health providers with any questions you may have regarding a medical condition.</p>
1161
+ </div>
1162
+ """, unsafe_allow_html=True)
test_predict.py ADDED
@@ -0,0 +1,218 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ import joblib
4
+ import pandas as pd
5
+ import numpy as np
6
+
7
+ # Paths inside the container image
8
+ APP_DIR = "/app"
9
+ ASSETS_DIR = os.path.join(APP_DIR, "model_assets")
10
+
11
+ # Resolve model paths with fallbacks
12
+ XGB_CANDIDATES = [
13
+ "XGB_spw.joblib", "XGBoost_best_5cv.joblib", "XGBoost_best.joblib",
14
+ "XGBoost.joblib", "xgb_model.joblib", "xgb_full.joblib"
15
+ ]
16
+ CAT_CANDIDATES = [
17
+ "CAT_cw.joblib", "CatBoost_best_5cv.joblib", "CatBoost_best.joblib",
18
+ "CatBoost.joblib", "catboost.joblib", "cat_model.joblib", "cat_full.joblib"
19
+ ]
20
+
21
+
22
+ def find_first(path_list):
23
+ for name in path_list:
24
+ p = os.path.join(ASSETS_DIR, name)
25
+ if os.path.exists(p):
26
+ return p
27
+ return None
28
+
29
+
30
+ def build_sample_input():
31
+ # Use values close to the UI defaults
32
+ gender = 1
33
+ height = 170
34
+ weight = 70.0
35
+ ap_hi = 120
36
+ ap_lo = 80
37
+ cholesterol = 1
38
+ gluc = 1
39
+ smoke = 0
40
+ alco = 0
41
+ active = 1
42
+ age_years = 50
43
+ age_days = age_years * 365
44
+
45
+ # Derived features
46
+ bmi = weight / ((height / 100) ** 2)
47
+ bp_diff = ap_hi - ap_lo
48
+ systolic_pressure = ap_hi
49
+ map_value = ap_lo + (bp_diff / 3)
50
+ pulse_ratio = bp_diff / ap_hi if ap_hi > 0 else 0
51
+
52
+ obesity_flag = 1 if bmi >= 30 else 0
53
+ hypertension_flag = 1 if (ap_hi >= 140 or ap_lo >= 90) else 0
54
+ lifestyle_score = (1 if smoke == 1 else 0) + (1 if alco == 1 else 0) + (1 if active == 0 else 0)
55
+ health_risk_score = lifestyle_score + obesity_flag + hypertension_flag
56
+ smoker_alcoholic = 1 if (smoke == 1 or alco == 1) else 0
57
+
58
+ age_group = "50-59"
59
+ bmi_category = (
60
+ "Underweight" if bmi < 18.5 else "Normal" if bmi < 25 else "Overweight" if bmi < 30 else "Obese"
61
+ )
62
+ if ap_hi < 120 and ap_lo < 80:
63
+ bp_category = "Normal"
64
+ elif ap_hi < 130 and ap_lo < 80:
65
+ bp_category = "Elevated"
66
+ elif ap_hi < 140 or ap_lo < 90:
67
+ bp_category = "Stage 1"
68
+ else:
69
+ bp_category = "Stage 2"
70
+
71
+ risk_level = "Low" if health_risk_score <= 2 else "Medium" if health_risk_score <= 4 else "High"
72
+ risk_age = age_years + (health_risk_score * 5)
73
+
74
+ protein_level = 14.0
75
+ ejection_fraction = 60.0
76
+
77
+ feature_cols = [
78
+ 'age','gender','height','weight','ap_hi','ap_lo','cholesterol','gluc','smoke','alco','active','BMI','BP_diff',
79
+ 'Systolic_Pressure','age_years','Age_Group','Lifestyle_Score','Obesity_Flag','Hypertension_Flag','Health_Risk_Score',
80
+ 'Pulse_Pressure_Ratio','MAP','BMI_Category','Smoker_Alcoholic','BP_Category','Risk_Age','Risk_Level','Protein_Level','Ejection_Fraction'
81
+ ]
82
+
83
+ row = {
84
+ 'age': age_days,
85
+ 'gender': gender,
86
+ 'height': height,
87
+ 'weight': weight,
88
+ 'ap_hi': ap_hi,
89
+ 'ap_lo': ap_lo,
90
+ 'cholesterol': cholesterol,
91
+ 'gluc': gluc,
92
+ 'smoke': smoke,
93
+ 'alco': alco,
94
+ 'active': active,
95
+ 'BMI': bmi,
96
+ 'BP_diff': bp_diff,
97
+ 'Systolic_Pressure': systolic_pressure,
98
+ 'age_years': age_years,
99
+ 'Age_Group': age_group,
100
+ 'Lifestyle_Score': lifestyle_score,
101
+ 'Obesity_Flag': obesity_flag,
102
+ 'Hypertension_Flag': hypertension_flag,
103
+ 'Health_Risk_Score': health_risk_score,
104
+ 'Pulse_Pressure_Ratio': pulse_ratio,
105
+ 'MAP': map_value,
106
+ 'BMI_Category': bmi_category,
107
+ 'Smoker_Alcoholic': smoker_alcoholic,
108
+ 'BP_Category': bp_category,
109
+ 'Risk_Age': risk_age,
110
+ 'Risk_Level': risk_level,
111
+ 'Protein_Level': protein_level,
112
+ 'Ejection_Fraction': ejection_fraction,
113
+ }
114
+
115
+ X = pd.DataFrame([row])[feature_cols]
116
+
117
+ # One-hot encode categoricals using the same fallback values as app
118
+ cat_cols = ['Age_Group', 'BMI_Category', 'BP_Category', 'Risk_Level']
119
+ cat_values = {
120
+ 'Age_Group': ['20-29', '30-39', '40-49', '50-59', '60+'],
121
+ 'BMI_Category': ['Underweight', 'Normal', 'Overweight', 'Obese'],
122
+ 'BP_Category': ['Normal', 'Elevated', 'Stage 1', 'Stage 2'],
123
+ 'Risk_Level': ['Low', 'Medium', 'High'],
124
+ }
125
+ numeric_cols = [c for c in X.columns if c not in cat_cols]
126
+ Xn = X[numeric_cols].copy()
127
+
128
+ parts = []
129
+ for col in cat_cols:
130
+ if col in X.columns:
131
+ for v in cat_values[col]:
132
+ parts.append(pd.Series([1 if X[col].iloc[0] == v else 0], name=f"{col}_{v}"))
133
+ Xe = pd.concat(parts, axis=1) if parts else pd.DataFrame(index=X.index)
134
+ Xp = pd.concat([Xn, Xe], axis=1).astype(float)
135
+
136
+ return Xp
137
+
138
+
139
+ def align_for_model(model, Xp):
140
+ # Align dataframe columns to model expectations (by name when available)
141
+ X_aligned = Xp
142
+ if hasattr(model, 'feature_names_in_'):
143
+ expected = list(model.feature_names_in_)
144
+ Xa = pd.DataFrame(0.0, index=Xp.index, columns=expected)
145
+ for c in Xp.columns:
146
+ if c in Xa.columns:
147
+ Xa[c] = Xp[c].values
148
+ X_aligned = Xa[expected]
149
+ else:
150
+ try:
151
+ # xgboost booster feature names
152
+ booster = getattr(model, 'get_booster', lambda: None)()
153
+ if booster is not None and getattr(booster, 'feature_names', None):
154
+ expected = list(booster.feature_names)
155
+ Xa = pd.DataFrame(0.0, index=Xp.index, columns=expected)
156
+ for c in Xp.columns:
157
+ if c in Xa.columns:
158
+ Xa[c] = Xp[c].values
159
+ X_aligned = Xa[expected]
160
+ elif hasattr(model, 'n_features_in_'):
161
+ n = int(getattr(model, 'n_features_in_', Xp.shape[1]))
162
+ # Fallback: trim or pad to match expected number of features
163
+ if Xp.shape[1] >= n:
164
+ X_aligned = Xp.iloc[:, :n].copy()
165
+ else:
166
+ # pad with zero columns
167
+ pad = pd.DataFrame(0.0, index=Xp.index, columns=[f"pad_{i}" for i in range(n - Xp.shape[1])])
168
+ X_aligned = pd.concat([Xp, pad], axis=1)
169
+ except Exception:
170
+ pass
171
+ return X_aligned
172
+
173
+
174
+ def main():
175
+ xgb_path = find_first(XGB_CANDIDATES)
176
+ cat_path = find_first(CAT_CANDIDATES)
177
+
178
+ assert xgb_path and os.path.exists(xgb_path), f"XGBoost artifact not found in {ASSETS_DIR}"
179
+ assert cat_path and os.path.exists(cat_path), f"CatBoost artifact not found in {ASSETS_DIR}"
180
+
181
+ xgb = joblib.load(xgb_path)
182
+ cat = joblib.load(cat_path)
183
+
184
+ Xp = build_sample_input()
185
+ # Force shape match for XGBoost using n_features_in_
186
+ n_xgb = int(getattr(xgb, 'n_features_in_', Xp.shape[1]))
187
+ X_xgb = Xp.iloc[:, :n_xgb].values
188
+ print(f"DBG: n_xgb={n_xgb}, Xp.shape={Xp.shape}, X_xgb.shape={X_xgb.shape}")
189
+ # Align for CatBoost (by names if available), otherwise force shape
190
+ if hasattr(cat, 'feature_names_in_'):
191
+ X_cat = align_for_model(cat, Xp)
192
+ else:
193
+ # CatBoost models often don't expose names; pass full matrix
194
+ X_cat = Xp.values
195
+ print(f"DBG: X_cat.shape={X_cat.shape}")
196
+
197
+ if hasattr(xgb, 'predict_proba'):
198
+ px = float(xgb.predict_proba(X_xgb)[0, 1])
199
+ else:
200
+ px = float(xgb.predict(X_xgb)[0])
201
+
202
+ if hasattr(cat, 'predict_proba'):
203
+ pc = float(cat.predict_proba(X_cat)[0, 1])
204
+ else:
205
+ pc = float(cat.predict(X_cat)[0])
206
+
207
+ pe = 0.5 * px + 0.5 * pc
208
+ out = {
209
+ 'xgb_prob': px,
210
+ 'cat_prob': pc,
211
+ 'ensemble_prob': pe,
212
+ 'ensemble_risk_percent': pe * 100.0,
213
+ }
214
+ print(json.dumps(out, indent=2))
215
+
216
+
217
+ if __name__ == "__main__":
218
+ main()