Maaz
commited on
Upload 27 files
Browse files- .gitignore +171 -0
- README.md +130 -10
- data/diabetes.csv +769 -0
- data/preprocessed_data.csv +769 -0
- data/scaled_data.csv +0 -0
- glycemic_risk_assesment.egg-info/PKG-INFO +9 -0
- glycemic_risk_assesment.egg-info/SOURCES.txt +7 -0
- glycemic_risk_assesment.egg-info/dependency_links.txt +1 -0
- glycemic_risk_assesment.egg-info/top_level.txt +1 -0
- notebook/Diabetes_prediction_model.ipynb +0 -0
- requirements.txt +25 -0
- setup.py +11 -0
- src/__init__.py +0 -0
- src/__pycache__/__init__.cpython-311.pyc +0 -0
- src/app/app.py +101 -0
- src/models/scaler.pkl +3 -0
- src/models/svm_model.pkl +3 -0
- src/scripts/__pycache__/data_preprocessing.cpython-311.pyc +0 -0
- src/scripts/__pycache__/health_recommendations.cpython-311.pyc +0 -0
- src/scripts/__pycache__/prediction.cpython-311.pyc +0 -0
- src/scripts/data_preprocessing.py +71 -0
- src/scripts/health_recommendations.py +144 -0
- src/scripts/model_training.py +40 -0
- src/scripts/prediction.py +49 -0
- src/scripts/temp +88 -0
- src/templates/index.html +121 -0
- tests/tests.py +96 -0
.gitignore
ADDED
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Byte-compiled / optimized / DLL files
|
2 |
+
__pycache__/
|
3 |
+
*.py[cod]
|
4 |
+
*$py.class
|
5 |
+
|
6 |
+
# C extensions
|
7 |
+
*.so
|
8 |
+
|
9 |
+
# Distribution / packaging
|
10 |
+
.Python
|
11 |
+
build/
|
12 |
+
develop-eggs/
|
13 |
+
dist/
|
14 |
+
downloads/
|
15 |
+
eggs/
|
16 |
+
.eggs/
|
17 |
+
lib/
|
18 |
+
lib64/
|
19 |
+
parts/
|
20 |
+
sdist/
|
21 |
+
var/
|
22 |
+
wheels/
|
23 |
+
share/python-wheels/
|
24 |
+
*.egg-info/
|
25 |
+
.installed.cfg
|
26 |
+
*.egg
|
27 |
+
MANIFEST
|
28 |
+
|
29 |
+
# PyInstaller
|
30 |
+
# Usually these files are written by a python script from a template
|
31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
32 |
+
*.manifest
|
33 |
+
*.spec
|
34 |
+
|
35 |
+
# Installer logs
|
36 |
+
pip-log.txt
|
37 |
+
pip-delete-this-directory.txt
|
38 |
+
|
39 |
+
# Unit test / coverage reports
|
40 |
+
htmlcov/
|
41 |
+
.tox/
|
42 |
+
.nox/
|
43 |
+
.coverage
|
44 |
+
.coverage.*
|
45 |
+
.cache
|
46 |
+
nosetests.xml
|
47 |
+
coverage.xml
|
48 |
+
*.cover
|
49 |
+
*.py,cover
|
50 |
+
.hypothesis/
|
51 |
+
.pytest_cache/
|
52 |
+
cover/
|
53 |
+
|
54 |
+
# Translations
|
55 |
+
*.mo
|
56 |
+
*.pot
|
57 |
+
|
58 |
+
# Django stuff:
|
59 |
+
*.log
|
60 |
+
local_settings.py
|
61 |
+
db.sqlite3
|
62 |
+
db.sqlite3-journal
|
63 |
+
|
64 |
+
# Flask stuff:
|
65 |
+
instance/
|
66 |
+
.webassets-cache
|
67 |
+
|
68 |
+
# Scrapy stuff:
|
69 |
+
.scrapy
|
70 |
+
|
71 |
+
# Sphinx documentation
|
72 |
+
docs/_build/
|
73 |
+
|
74 |
+
# PyBuilder
|
75 |
+
.pybuilder/
|
76 |
+
target/
|
77 |
+
|
78 |
+
# Jupyter Notebook
|
79 |
+
.ipynb_checkpoints
|
80 |
+
|
81 |
+
# IPython
|
82 |
+
profile_default/
|
83 |
+
ipython_config.py
|
84 |
+
|
85 |
+
# pyenv
|
86 |
+
# For a library or package, you might want to ignore these files since the code is
|
87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
88 |
+
# .python-version
|
89 |
+
|
90 |
+
# pipenv
|
91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
94 |
+
# install all needed dependencies.
|
95 |
+
#Pipfile.lock
|
96 |
+
|
97 |
+
# UV
|
98 |
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
99 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
100 |
+
# commonly ignored for libraries.
|
101 |
+
#uv.lock
|
102 |
+
|
103 |
+
# poetry
|
104 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
105 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
106 |
+
# commonly ignored for libraries.
|
107 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
108 |
+
#poetry.lock
|
109 |
+
|
110 |
+
# pdm
|
111 |
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
112 |
+
#pdm.lock
|
113 |
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
114 |
+
# in version control.
|
115 |
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
116 |
+
.pdm.toml
|
117 |
+
.pdm-python
|
118 |
+
.pdm-build/
|
119 |
+
|
120 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
121 |
+
__pypackages__/
|
122 |
+
|
123 |
+
# Celery stuff
|
124 |
+
celerybeat-schedule
|
125 |
+
celerybeat.pid
|
126 |
+
|
127 |
+
# SageMath parsed files
|
128 |
+
*.sage.py
|
129 |
+
|
130 |
+
# Environments
|
131 |
+
.env
|
132 |
+
.venv
|
133 |
+
env/
|
134 |
+
venv/
|
135 |
+
ENV/
|
136 |
+
env.bak/
|
137 |
+
venv.bak/
|
138 |
+
|
139 |
+
# Spyder project settings
|
140 |
+
.spyderproject
|
141 |
+
.spyproject
|
142 |
+
|
143 |
+
# Rope project settings
|
144 |
+
.ropeproject
|
145 |
+
|
146 |
+
# mkdocs documentation
|
147 |
+
/site
|
148 |
+
|
149 |
+
# mypy
|
150 |
+
.mypy_cache/
|
151 |
+
.dmypy.json
|
152 |
+
dmypy.json
|
153 |
+
|
154 |
+
# Pyre type checker
|
155 |
+
.pyre/
|
156 |
+
|
157 |
+
# pytype static type analyzer
|
158 |
+
.pytype/
|
159 |
+
|
160 |
+
# Cython debug symbols
|
161 |
+
cython_debug/
|
162 |
+
|
163 |
+
# PyCharm
|
164 |
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
165 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
166 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
167 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
168 |
+
#.idea/
|
169 |
+
|
170 |
+
# PyPI configuration file
|
171 |
+
.pypirc
|
README.md
CHANGED
@@ -1,10 +1,130 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# DiabetesPred: AI-Powered Glycemic Risk Assessment System
|
2 |
+
|
3 |
+
## Overview
|
4 |
+
|
5 |
+
DiabetesPred is an advanced machine learning system designed to assess diabetes risk and provide personalized health recommendations. By analyzing key health metrics, the system delivers accurate risk predictions alongside actionable lifestyle guidance, empowering users to make informed health decisions.
|
6 |
+
|
7 |
+
## Core Capabilities
|
8 |
+
|
9 |
+
### Risk Assessment Engine
|
10 |
+
- Leverages machine learning for precise diabetes risk classification
|
11 |
+
- Processes multiple health parameters including glucose levels, blood pressure, BMI, and insulin
|
12 |
+
- Delivers confidence-scored predictions based on comprehensive health data analysis
|
13 |
+
|
14 |
+
### Smart Recommendation System
|
15 |
+
The system generates tailored health guidance across four key domains:
|
16 |
+
- Nutrition & Diet Management
|
17 |
+
- Physical Activity Planning
|
18 |
+
- Lifestyle Optimization
|
19 |
+
- Health Monitoring Protocols
|
20 |
+
|
21 |
+
### Intelligent Data Processing
|
22 |
+
- Robust data validation and anomaly detection
|
23 |
+
- Advanced feature engineering for improved prediction accuracy
|
24 |
+
- Standardized input processing for consistent results
|
25 |
+
|
26 |
+
## Technical Architecture
|
27 |
+
|
28 |
+
### Input Processing Layer
|
29 |
+
Handles critical health metrics including:
|
30 |
+
- Glucose measurements
|
31 |
+
- Blood pressure readings
|
32 |
+
- BMI calculations
|
33 |
+
- Insulin levels
|
34 |
+
- Age-related factors
|
35 |
+
- Diabetes pedigree function
|
36 |
+
- Skin thickness measurements
|
37 |
+
|
38 |
+
### ML Pipeline Components
|
39 |
+
- Data cleaning and normalization
|
40 |
+
- Feature scaling and selection
|
41 |
+
- Model training with hyperparameter optimization
|
42 |
+
- Performance evaluation using F1-score, Precision, and Recall
|
43 |
+
|
44 |
+
### Output Generation
|
45 |
+
- Clear HTML-based reporting
|
46 |
+
- Confidence-scored predictions
|
47 |
+
- Structured health recommendations
|
48 |
+
- Actionable insights presentation
|
49 |
+
|
50 |
+
## Implementation Highlights
|
51 |
+
|
52 |
+
### Data Integrity
|
53 |
+
- Comprehensive validation checks for input parameters
|
54 |
+
- Anomaly detection for unrealistic health metrics
|
55 |
+
- Error handling with informative user feedback
|
56 |
+
|
57 |
+
### Intelligence Layer
|
58 |
+
- Advanced supervised learning algorithms
|
59 |
+
- Feature importance analysis
|
60 |
+
- Dynamic recommendation generation via GenAI API
|
61 |
+
|
62 |
+
### User Experience
|
63 |
+
- Clean, intuitive HTML reports
|
64 |
+
- Categorized health insights
|
65 |
+
- Clear action items and next steps
|
66 |
+
|
67 |
+
## Development Roadmap
|
68 |
+
|
69 |
+
### Immediate Pipeline
|
70 |
+
- Enhanced feature set integration
|
71 |
+
- Advanced visualization capabilities
|
72 |
+
- Mobile platform adaptation
|
73 |
+
|
74 |
+
### Future Enhancements
|
75 |
+
- Real-time monitoring capabilities
|
76 |
+
- Extended health metrics support
|
77 |
+
- AI explainability features
|
78 |
+
- Progress tracking visualization
|
79 |
+
|
80 |
+
## Technical Requirements
|
81 |
+
|
82 |
+
### System Dependencies
|
83 |
+
- Python 3.8+
|
84 |
+
- Machine Learning Framework (TensorFlow/PyTorch)
|
85 |
+
- GenAI API access
|
86 |
+
- HTML rendering capabilities
|
87 |
+
|
88 |
+
### Input Data Format
|
89 |
+
All health metrics should be provided in standard medical units:
|
90 |
+
- Glucose: mg/dL
|
91 |
+
- Blood Pressure: mmHg
|
92 |
+
- BMI: kg/m²
|
93 |
+
- Insulin: μU/mL
|
94 |
+
|
95 |
+
## Impact and Applications
|
96 |
+
|
97 |
+
### Healthcare Providers
|
98 |
+
- Rapid patient risk assessment
|
99 |
+
- Data-driven treatment planning
|
100 |
+
- Automated health recommendations
|
101 |
+
|
102 |
+
### Individual Users
|
103 |
+
- Proactive health monitoring
|
104 |
+
- Personalized lifestyle guidance
|
105 |
+
- Early risk detection
|
106 |
+
|
107 |
+
### Research Applications
|
108 |
+
- Population health analysis
|
109 |
+
- Risk factor correlation studies
|
110 |
+
- Treatment efficacy assessment
|
111 |
+
|
112 |
+
## Project Status
|
113 |
+
Current Version: 1.0.0
|
114 |
+
- Stable production release
|
115 |
+
- Validated prediction model
|
116 |
+
- Integrated recommendation system
|
117 |
+
- HTML report generation
|
118 |
+
|
119 |
+
## Contributing
|
120 |
+
We welcome contributions in the following areas:
|
121 |
+
- Model optimization
|
122 |
+
- Feature engineering
|
123 |
+
- User interface enhancement
|
124 |
+
- Documentation improvement
|
125 |
+
|
126 |
+
## License
|
127 |
+
[Insert License Information]
|
128 |
+
|
129 |
+
## Contact
|
130 |
+
[Insert Project Contact Information]
|
data/diabetes.csv
ADDED
@@ -0,0 +1,769 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome
|
2 |
+
6,148,72,35,0,33.6,0.627,50,1
|
3 |
+
1,85,66,29,0,26.6,0.351,31,0
|
4 |
+
8,183,64,0,0,23.3,0.672,32,1
|
5 |
+
1,89,66,23,94,28.1,0.167,21,0
|
6 |
+
0,137,40,35,168,43.1,2.288,33,1
|
7 |
+
5,116,74,0,0,25.6,0.201,30,0
|
8 |
+
3,78,50,32,88,31,0.248,26,1
|
9 |
+
10,115,0,0,0,35.3,0.134,29,0
|
10 |
+
2,197,70,45,543,30.5,0.158,53,1
|
11 |
+
8,125,96,0,0,0,0.232,54,1
|
12 |
+
4,110,92,0,0,37.6,0.191,30,0
|
13 |
+
10,168,74,0,0,38,0.537,34,1
|
14 |
+
10,139,80,0,0,27.1,1.441,57,0
|
15 |
+
1,189,60,23,846,30.1,0.398,59,1
|
16 |
+
5,166,72,19,175,25.8,0.587,51,1
|
17 |
+
7,100,0,0,0,30,0.484,32,1
|
18 |
+
0,118,84,47,230,45.8,0.551,31,1
|
19 |
+
7,107,74,0,0,29.6,0.254,31,1
|
20 |
+
1,103,30,38,83,43.3,0.183,33,0
|
21 |
+
1,115,70,30,96,34.6,0.529,32,1
|
22 |
+
3,126,88,41,235,39.3,0.704,27,0
|
23 |
+
8,99,84,0,0,35.4,0.388,50,0
|
24 |
+
7,196,90,0,0,39.8,0.451,41,1
|
25 |
+
9,119,80,35,0,29,0.263,29,1
|
26 |
+
11,143,94,33,146,36.6,0.254,51,1
|
27 |
+
10,125,70,26,115,31.1,0.205,41,1
|
28 |
+
7,147,76,0,0,39.4,0.257,43,1
|
29 |
+
1,97,66,15,140,23.2,0.487,22,0
|
30 |
+
13,145,82,19,110,22.2,0.245,57,0
|
31 |
+
5,117,92,0,0,34.1,0.337,38,0
|
32 |
+
5,109,75,26,0,36,0.546,60,0
|
33 |
+
3,158,76,36,245,31.6,0.851,28,1
|
34 |
+
3,88,58,11,54,24.8,0.267,22,0
|
35 |
+
6,92,92,0,0,19.9,0.188,28,0
|
36 |
+
10,122,78,31,0,27.6,0.512,45,0
|
37 |
+
4,103,60,33,192,24,0.966,33,0
|
38 |
+
11,138,76,0,0,33.2,0.42,35,0
|
39 |
+
9,102,76,37,0,32.9,0.665,46,1
|
40 |
+
2,90,68,42,0,38.2,0.503,27,1
|
41 |
+
4,111,72,47,207,37.1,1.39,56,1
|
42 |
+
3,180,64,25,70,34,0.271,26,0
|
43 |
+
7,133,84,0,0,40.2,0.696,37,0
|
44 |
+
7,106,92,18,0,22.7,0.235,48,0
|
45 |
+
9,171,110,24,240,45.4,0.721,54,1
|
46 |
+
7,159,64,0,0,27.4,0.294,40,0
|
47 |
+
0,180,66,39,0,42,1.893,25,1
|
48 |
+
1,146,56,0,0,29.7,0.564,29,0
|
49 |
+
2,71,70,27,0,28,0.586,22,0
|
50 |
+
7,103,66,32,0,39.1,0.344,31,1
|
51 |
+
7,105,0,0,0,0,0.305,24,0
|
52 |
+
1,103,80,11,82,19.4,0.491,22,0
|
53 |
+
1,101,50,15,36,24.2,0.526,26,0
|
54 |
+
5,88,66,21,23,24.4,0.342,30,0
|
55 |
+
8,176,90,34,300,33.7,0.467,58,1
|
56 |
+
7,150,66,42,342,34.7,0.718,42,0
|
57 |
+
1,73,50,10,0,23,0.248,21,0
|
58 |
+
7,187,68,39,304,37.7,0.254,41,1
|
59 |
+
0,100,88,60,110,46.8,0.962,31,0
|
60 |
+
0,146,82,0,0,40.5,1.781,44,0
|
61 |
+
0,105,64,41,142,41.5,0.173,22,0
|
62 |
+
2,84,0,0,0,0,0.304,21,0
|
63 |
+
8,133,72,0,0,32.9,0.27,39,1
|
64 |
+
5,44,62,0,0,25,0.587,36,0
|
65 |
+
2,141,58,34,128,25.4,0.699,24,0
|
66 |
+
7,114,66,0,0,32.8,0.258,42,1
|
67 |
+
5,99,74,27,0,29,0.203,32,0
|
68 |
+
0,109,88,30,0,32.5,0.855,38,1
|
69 |
+
2,109,92,0,0,42.7,0.845,54,0
|
70 |
+
1,95,66,13,38,19.6,0.334,25,0
|
71 |
+
4,146,85,27,100,28.9,0.189,27,0
|
72 |
+
2,100,66,20,90,32.9,0.867,28,1
|
73 |
+
5,139,64,35,140,28.6,0.411,26,0
|
74 |
+
13,126,90,0,0,43.4,0.583,42,1
|
75 |
+
4,129,86,20,270,35.1,0.231,23,0
|
76 |
+
1,79,75,30,0,32,0.396,22,0
|
77 |
+
1,0,48,20,0,24.7,0.14,22,0
|
78 |
+
7,62,78,0,0,32.6,0.391,41,0
|
79 |
+
5,95,72,33,0,37.7,0.37,27,0
|
80 |
+
0,131,0,0,0,43.2,0.27,26,1
|
81 |
+
2,112,66,22,0,25,0.307,24,0
|
82 |
+
3,113,44,13,0,22.4,0.14,22,0
|
83 |
+
2,74,0,0,0,0,0.102,22,0
|
84 |
+
7,83,78,26,71,29.3,0.767,36,0
|
85 |
+
0,101,65,28,0,24.6,0.237,22,0
|
86 |
+
5,137,108,0,0,48.8,0.227,37,1
|
87 |
+
2,110,74,29,125,32.4,0.698,27,0
|
88 |
+
13,106,72,54,0,36.6,0.178,45,0
|
89 |
+
2,100,68,25,71,38.5,0.324,26,0
|
90 |
+
15,136,70,32,110,37.1,0.153,43,1
|
91 |
+
1,107,68,19,0,26.5,0.165,24,0
|
92 |
+
1,80,55,0,0,19.1,0.258,21,0
|
93 |
+
4,123,80,15,176,32,0.443,34,0
|
94 |
+
7,81,78,40,48,46.7,0.261,42,0
|
95 |
+
4,134,72,0,0,23.8,0.277,60,1
|
96 |
+
2,142,82,18,64,24.7,0.761,21,0
|
97 |
+
6,144,72,27,228,33.9,0.255,40,0
|
98 |
+
2,92,62,28,0,31.6,0.13,24,0
|
99 |
+
1,71,48,18,76,20.4,0.323,22,0
|
100 |
+
6,93,50,30,64,28.7,0.356,23,0
|
101 |
+
1,122,90,51,220,49.7,0.325,31,1
|
102 |
+
1,163,72,0,0,39,1.222,33,1
|
103 |
+
1,151,60,0,0,26.1,0.179,22,0
|
104 |
+
0,125,96,0,0,22.5,0.262,21,0
|
105 |
+
1,81,72,18,40,26.6,0.283,24,0
|
106 |
+
2,85,65,0,0,39.6,0.93,27,0
|
107 |
+
1,126,56,29,152,28.7,0.801,21,0
|
108 |
+
1,96,122,0,0,22.4,0.207,27,0
|
109 |
+
4,144,58,28,140,29.5,0.287,37,0
|
110 |
+
3,83,58,31,18,34.3,0.336,25,0
|
111 |
+
0,95,85,25,36,37.4,0.247,24,1
|
112 |
+
3,171,72,33,135,33.3,0.199,24,1
|
113 |
+
8,155,62,26,495,34,0.543,46,1
|
114 |
+
1,89,76,34,37,31.2,0.192,23,0
|
115 |
+
4,76,62,0,0,34,0.391,25,0
|
116 |
+
7,160,54,32,175,30.5,0.588,39,1
|
117 |
+
4,146,92,0,0,31.2,0.539,61,1
|
118 |
+
5,124,74,0,0,34,0.22,38,1
|
119 |
+
5,78,48,0,0,33.7,0.654,25,0
|
120 |
+
4,97,60,23,0,28.2,0.443,22,0
|
121 |
+
4,99,76,15,51,23.2,0.223,21,0
|
122 |
+
0,162,76,56,100,53.2,0.759,25,1
|
123 |
+
6,111,64,39,0,34.2,0.26,24,0
|
124 |
+
2,107,74,30,100,33.6,0.404,23,0
|
125 |
+
5,132,80,0,0,26.8,0.186,69,0
|
126 |
+
0,113,76,0,0,33.3,0.278,23,1
|
127 |
+
1,88,30,42,99,55,0.496,26,1
|
128 |
+
3,120,70,30,135,42.9,0.452,30,0
|
129 |
+
1,118,58,36,94,33.3,0.261,23,0
|
130 |
+
1,117,88,24,145,34.5,0.403,40,1
|
131 |
+
0,105,84,0,0,27.9,0.741,62,1
|
132 |
+
4,173,70,14,168,29.7,0.361,33,1
|
133 |
+
9,122,56,0,0,33.3,1.114,33,1
|
134 |
+
3,170,64,37,225,34.5,0.356,30,1
|
135 |
+
8,84,74,31,0,38.3,0.457,39,0
|
136 |
+
2,96,68,13,49,21.1,0.647,26,0
|
137 |
+
2,125,60,20,140,33.8,0.088,31,0
|
138 |
+
0,100,70,26,50,30.8,0.597,21,0
|
139 |
+
0,93,60,25,92,28.7,0.532,22,0
|
140 |
+
0,129,80,0,0,31.2,0.703,29,0
|
141 |
+
5,105,72,29,325,36.9,0.159,28,0
|
142 |
+
3,128,78,0,0,21.1,0.268,55,0
|
143 |
+
5,106,82,30,0,39.5,0.286,38,0
|
144 |
+
2,108,52,26,63,32.5,0.318,22,0
|
145 |
+
10,108,66,0,0,32.4,0.272,42,1
|
146 |
+
4,154,62,31,284,32.8,0.237,23,0
|
147 |
+
0,102,75,23,0,0,0.572,21,0
|
148 |
+
9,57,80,37,0,32.8,0.096,41,0
|
149 |
+
2,106,64,35,119,30.5,1.4,34,0
|
150 |
+
5,147,78,0,0,33.7,0.218,65,0
|
151 |
+
2,90,70,17,0,27.3,0.085,22,0
|
152 |
+
1,136,74,50,204,37.4,0.399,24,0
|
153 |
+
4,114,65,0,0,21.9,0.432,37,0
|
154 |
+
9,156,86,28,155,34.3,1.189,42,1
|
155 |
+
1,153,82,42,485,40.6,0.687,23,0
|
156 |
+
8,188,78,0,0,47.9,0.137,43,1
|
157 |
+
7,152,88,44,0,50,0.337,36,1
|
158 |
+
2,99,52,15,94,24.6,0.637,21,0
|
159 |
+
1,109,56,21,135,25.2,0.833,23,0
|
160 |
+
2,88,74,19,53,29,0.229,22,0
|
161 |
+
17,163,72,41,114,40.9,0.817,47,1
|
162 |
+
4,151,90,38,0,29.7,0.294,36,0
|
163 |
+
7,102,74,40,105,37.2,0.204,45,0
|
164 |
+
0,114,80,34,285,44.2,0.167,27,0
|
165 |
+
2,100,64,23,0,29.7,0.368,21,0
|
166 |
+
0,131,88,0,0,31.6,0.743,32,1
|
167 |
+
6,104,74,18,156,29.9,0.722,41,1
|
168 |
+
3,148,66,25,0,32.5,0.256,22,0
|
169 |
+
4,120,68,0,0,29.6,0.709,34,0
|
170 |
+
4,110,66,0,0,31.9,0.471,29,0
|
171 |
+
3,111,90,12,78,28.4,0.495,29,0
|
172 |
+
6,102,82,0,0,30.8,0.18,36,1
|
173 |
+
6,134,70,23,130,35.4,0.542,29,1
|
174 |
+
2,87,0,23,0,28.9,0.773,25,0
|
175 |
+
1,79,60,42,48,43.5,0.678,23,0
|
176 |
+
2,75,64,24,55,29.7,0.37,33,0
|
177 |
+
8,179,72,42,130,32.7,0.719,36,1
|
178 |
+
6,85,78,0,0,31.2,0.382,42,0
|
179 |
+
0,129,110,46,130,67.1,0.319,26,1
|
180 |
+
5,143,78,0,0,45,0.19,47,0
|
181 |
+
5,130,82,0,0,39.1,0.956,37,1
|
182 |
+
6,87,80,0,0,23.2,0.084,32,0
|
183 |
+
0,119,64,18,92,34.9,0.725,23,0
|
184 |
+
1,0,74,20,23,27.7,0.299,21,0
|
185 |
+
5,73,60,0,0,26.8,0.268,27,0
|
186 |
+
4,141,74,0,0,27.6,0.244,40,0
|
187 |
+
7,194,68,28,0,35.9,0.745,41,1
|
188 |
+
8,181,68,36,495,30.1,0.615,60,1
|
189 |
+
1,128,98,41,58,32,1.321,33,1
|
190 |
+
8,109,76,39,114,27.9,0.64,31,1
|
191 |
+
5,139,80,35,160,31.6,0.361,25,1
|
192 |
+
3,111,62,0,0,22.6,0.142,21,0
|
193 |
+
9,123,70,44,94,33.1,0.374,40,0
|
194 |
+
7,159,66,0,0,30.4,0.383,36,1
|
195 |
+
11,135,0,0,0,52.3,0.578,40,1
|
196 |
+
8,85,55,20,0,24.4,0.136,42,0
|
197 |
+
5,158,84,41,210,39.4,0.395,29,1
|
198 |
+
1,105,58,0,0,24.3,0.187,21,0
|
199 |
+
3,107,62,13,48,22.9,0.678,23,1
|
200 |
+
4,109,64,44,99,34.8,0.905,26,1
|
201 |
+
4,148,60,27,318,30.9,0.15,29,1
|
202 |
+
0,113,80,16,0,31,0.874,21,0
|
203 |
+
1,138,82,0,0,40.1,0.236,28,0
|
204 |
+
0,108,68,20,0,27.3,0.787,32,0
|
205 |
+
2,99,70,16,44,20.4,0.235,27,0
|
206 |
+
6,103,72,32,190,37.7,0.324,55,0
|
207 |
+
5,111,72,28,0,23.9,0.407,27,0
|
208 |
+
8,196,76,29,280,37.5,0.605,57,1
|
209 |
+
5,162,104,0,0,37.7,0.151,52,1
|
210 |
+
1,96,64,27,87,33.2,0.289,21,0
|
211 |
+
7,184,84,33,0,35.5,0.355,41,1
|
212 |
+
2,81,60,22,0,27.7,0.29,25,0
|
213 |
+
0,147,85,54,0,42.8,0.375,24,0
|
214 |
+
7,179,95,31,0,34.2,0.164,60,0
|
215 |
+
0,140,65,26,130,42.6,0.431,24,1
|
216 |
+
9,112,82,32,175,34.2,0.26,36,1
|
217 |
+
12,151,70,40,271,41.8,0.742,38,1
|
218 |
+
5,109,62,41,129,35.8,0.514,25,1
|
219 |
+
6,125,68,30,120,30,0.464,32,0
|
220 |
+
5,85,74,22,0,29,1.224,32,1
|
221 |
+
5,112,66,0,0,37.8,0.261,41,1
|
222 |
+
0,177,60,29,478,34.6,1.072,21,1
|
223 |
+
2,158,90,0,0,31.6,0.805,66,1
|
224 |
+
7,119,0,0,0,25.2,0.209,37,0
|
225 |
+
7,142,60,33,190,28.8,0.687,61,0
|
226 |
+
1,100,66,15,56,23.6,0.666,26,0
|
227 |
+
1,87,78,27,32,34.6,0.101,22,0
|
228 |
+
0,101,76,0,0,35.7,0.198,26,0
|
229 |
+
3,162,52,38,0,37.2,0.652,24,1
|
230 |
+
4,197,70,39,744,36.7,2.329,31,0
|
231 |
+
0,117,80,31,53,45.2,0.089,24,0
|
232 |
+
4,142,86,0,0,44,0.645,22,1
|
233 |
+
6,134,80,37,370,46.2,0.238,46,1
|
234 |
+
1,79,80,25,37,25.4,0.583,22,0
|
235 |
+
4,122,68,0,0,35,0.394,29,0
|
236 |
+
3,74,68,28,45,29.7,0.293,23,0
|
237 |
+
4,171,72,0,0,43.6,0.479,26,1
|
238 |
+
7,181,84,21,192,35.9,0.586,51,1
|
239 |
+
0,179,90,27,0,44.1,0.686,23,1
|
240 |
+
9,164,84,21,0,30.8,0.831,32,1
|
241 |
+
0,104,76,0,0,18.4,0.582,27,0
|
242 |
+
1,91,64,24,0,29.2,0.192,21,0
|
243 |
+
4,91,70,32,88,33.1,0.446,22,0
|
244 |
+
3,139,54,0,0,25.6,0.402,22,1
|
245 |
+
6,119,50,22,176,27.1,1.318,33,1
|
246 |
+
2,146,76,35,194,38.2,0.329,29,0
|
247 |
+
9,184,85,15,0,30,1.213,49,1
|
248 |
+
10,122,68,0,0,31.2,0.258,41,0
|
249 |
+
0,165,90,33,680,52.3,0.427,23,0
|
250 |
+
9,124,70,33,402,35.4,0.282,34,0
|
251 |
+
1,111,86,19,0,30.1,0.143,23,0
|
252 |
+
9,106,52,0,0,31.2,0.38,42,0
|
253 |
+
2,129,84,0,0,28,0.284,27,0
|
254 |
+
2,90,80,14,55,24.4,0.249,24,0
|
255 |
+
0,86,68,32,0,35.8,0.238,25,0
|
256 |
+
12,92,62,7,258,27.6,0.926,44,1
|
257 |
+
1,113,64,35,0,33.6,0.543,21,1
|
258 |
+
3,111,56,39,0,30.1,0.557,30,0
|
259 |
+
2,114,68,22,0,28.7,0.092,25,0
|
260 |
+
1,193,50,16,375,25.9,0.655,24,0
|
261 |
+
11,155,76,28,150,33.3,1.353,51,1
|
262 |
+
3,191,68,15,130,30.9,0.299,34,0
|
263 |
+
3,141,0,0,0,30,0.761,27,1
|
264 |
+
4,95,70,32,0,32.1,0.612,24,0
|
265 |
+
3,142,80,15,0,32.4,0.2,63,0
|
266 |
+
4,123,62,0,0,32,0.226,35,1
|
267 |
+
5,96,74,18,67,33.6,0.997,43,0
|
268 |
+
0,138,0,0,0,36.3,0.933,25,1
|
269 |
+
2,128,64,42,0,40,1.101,24,0
|
270 |
+
0,102,52,0,0,25.1,0.078,21,0
|
271 |
+
2,146,0,0,0,27.5,0.24,28,1
|
272 |
+
10,101,86,37,0,45.6,1.136,38,1
|
273 |
+
2,108,62,32,56,25.2,0.128,21,0
|
274 |
+
3,122,78,0,0,23,0.254,40,0
|
275 |
+
1,71,78,50,45,33.2,0.422,21,0
|
276 |
+
13,106,70,0,0,34.2,0.251,52,0
|
277 |
+
2,100,70,52,57,40.5,0.677,25,0
|
278 |
+
7,106,60,24,0,26.5,0.296,29,1
|
279 |
+
0,104,64,23,116,27.8,0.454,23,0
|
280 |
+
5,114,74,0,0,24.9,0.744,57,0
|
281 |
+
2,108,62,10,278,25.3,0.881,22,0
|
282 |
+
0,146,70,0,0,37.9,0.334,28,1
|
283 |
+
10,129,76,28,122,35.9,0.28,39,0
|
284 |
+
7,133,88,15,155,32.4,0.262,37,0
|
285 |
+
7,161,86,0,0,30.4,0.165,47,1
|
286 |
+
2,108,80,0,0,27,0.259,52,1
|
287 |
+
7,136,74,26,135,26,0.647,51,0
|
288 |
+
5,155,84,44,545,38.7,0.619,34,0
|
289 |
+
1,119,86,39,220,45.6,0.808,29,1
|
290 |
+
4,96,56,17,49,20.8,0.34,26,0
|
291 |
+
5,108,72,43,75,36.1,0.263,33,0
|
292 |
+
0,78,88,29,40,36.9,0.434,21,0
|
293 |
+
0,107,62,30,74,36.6,0.757,25,1
|
294 |
+
2,128,78,37,182,43.3,1.224,31,1
|
295 |
+
1,128,48,45,194,40.5,0.613,24,1
|
296 |
+
0,161,50,0,0,21.9,0.254,65,0
|
297 |
+
6,151,62,31,120,35.5,0.692,28,0
|
298 |
+
2,146,70,38,360,28,0.337,29,1
|
299 |
+
0,126,84,29,215,30.7,0.52,24,0
|
300 |
+
14,100,78,25,184,36.6,0.412,46,1
|
301 |
+
8,112,72,0,0,23.6,0.84,58,0
|
302 |
+
0,167,0,0,0,32.3,0.839,30,1
|
303 |
+
2,144,58,33,135,31.6,0.422,25,1
|
304 |
+
5,77,82,41,42,35.8,0.156,35,0
|
305 |
+
5,115,98,0,0,52.9,0.209,28,1
|
306 |
+
3,150,76,0,0,21,0.207,37,0
|
307 |
+
2,120,76,37,105,39.7,0.215,29,0
|
308 |
+
10,161,68,23,132,25.5,0.326,47,1
|
309 |
+
0,137,68,14,148,24.8,0.143,21,0
|
310 |
+
0,128,68,19,180,30.5,1.391,25,1
|
311 |
+
2,124,68,28,205,32.9,0.875,30,1
|
312 |
+
6,80,66,30,0,26.2,0.313,41,0
|
313 |
+
0,106,70,37,148,39.4,0.605,22,0
|
314 |
+
2,155,74,17,96,26.6,0.433,27,1
|
315 |
+
3,113,50,10,85,29.5,0.626,25,0
|
316 |
+
7,109,80,31,0,35.9,1.127,43,1
|
317 |
+
2,112,68,22,94,34.1,0.315,26,0
|
318 |
+
3,99,80,11,64,19.3,0.284,30,0
|
319 |
+
3,182,74,0,0,30.5,0.345,29,1
|
320 |
+
3,115,66,39,140,38.1,0.15,28,0
|
321 |
+
6,194,78,0,0,23.5,0.129,59,1
|
322 |
+
4,129,60,12,231,27.5,0.527,31,0
|
323 |
+
3,112,74,30,0,31.6,0.197,25,1
|
324 |
+
0,124,70,20,0,27.4,0.254,36,1
|
325 |
+
13,152,90,33,29,26.8,0.731,43,1
|
326 |
+
2,112,75,32,0,35.7,0.148,21,0
|
327 |
+
1,157,72,21,168,25.6,0.123,24,0
|
328 |
+
1,122,64,32,156,35.1,0.692,30,1
|
329 |
+
10,179,70,0,0,35.1,0.2,37,0
|
330 |
+
2,102,86,36,120,45.5,0.127,23,1
|
331 |
+
6,105,70,32,68,30.8,0.122,37,0
|
332 |
+
8,118,72,19,0,23.1,1.476,46,0
|
333 |
+
2,87,58,16,52,32.7,0.166,25,0
|
334 |
+
1,180,0,0,0,43.3,0.282,41,1
|
335 |
+
12,106,80,0,0,23.6,0.137,44,0
|
336 |
+
1,95,60,18,58,23.9,0.26,22,0
|
337 |
+
0,165,76,43,255,47.9,0.259,26,0
|
338 |
+
0,117,0,0,0,33.8,0.932,44,0
|
339 |
+
5,115,76,0,0,31.2,0.343,44,1
|
340 |
+
9,152,78,34,171,34.2,0.893,33,1
|
341 |
+
7,178,84,0,0,39.9,0.331,41,1
|
342 |
+
1,130,70,13,105,25.9,0.472,22,0
|
343 |
+
1,95,74,21,73,25.9,0.673,36,0
|
344 |
+
1,0,68,35,0,32,0.389,22,0
|
345 |
+
5,122,86,0,0,34.7,0.29,33,0
|
346 |
+
8,95,72,0,0,36.8,0.485,57,0
|
347 |
+
8,126,88,36,108,38.5,0.349,49,0
|
348 |
+
1,139,46,19,83,28.7,0.654,22,0
|
349 |
+
3,116,0,0,0,23.5,0.187,23,0
|
350 |
+
3,99,62,19,74,21.8,0.279,26,0
|
351 |
+
5,0,80,32,0,41,0.346,37,1
|
352 |
+
4,92,80,0,0,42.2,0.237,29,0
|
353 |
+
4,137,84,0,0,31.2,0.252,30,0
|
354 |
+
3,61,82,28,0,34.4,0.243,46,0
|
355 |
+
1,90,62,12,43,27.2,0.58,24,0
|
356 |
+
3,90,78,0,0,42.7,0.559,21,0
|
357 |
+
9,165,88,0,0,30.4,0.302,49,1
|
358 |
+
1,125,50,40,167,33.3,0.962,28,1
|
359 |
+
13,129,0,30,0,39.9,0.569,44,1
|
360 |
+
12,88,74,40,54,35.3,0.378,48,0
|
361 |
+
1,196,76,36,249,36.5,0.875,29,1
|
362 |
+
5,189,64,33,325,31.2,0.583,29,1
|
363 |
+
5,158,70,0,0,29.8,0.207,63,0
|
364 |
+
5,103,108,37,0,39.2,0.305,65,0
|
365 |
+
4,146,78,0,0,38.5,0.52,67,1
|
366 |
+
4,147,74,25,293,34.9,0.385,30,0
|
367 |
+
5,99,54,28,83,34,0.499,30,0
|
368 |
+
6,124,72,0,0,27.6,0.368,29,1
|
369 |
+
0,101,64,17,0,21,0.252,21,0
|
370 |
+
3,81,86,16,66,27.5,0.306,22,0
|
371 |
+
1,133,102,28,140,32.8,0.234,45,1
|
372 |
+
3,173,82,48,465,38.4,2.137,25,1
|
373 |
+
0,118,64,23,89,0,1.731,21,0
|
374 |
+
0,84,64,22,66,35.8,0.545,21,0
|
375 |
+
2,105,58,40,94,34.9,0.225,25,0
|
376 |
+
2,122,52,43,158,36.2,0.816,28,0
|
377 |
+
12,140,82,43,325,39.2,0.528,58,1
|
378 |
+
0,98,82,15,84,25.2,0.299,22,0
|
379 |
+
1,87,60,37,75,37.2,0.509,22,0
|
380 |
+
4,156,75,0,0,48.3,0.238,32,1
|
381 |
+
0,93,100,39,72,43.4,1.021,35,0
|
382 |
+
1,107,72,30,82,30.8,0.821,24,0
|
383 |
+
0,105,68,22,0,20,0.236,22,0
|
384 |
+
1,109,60,8,182,25.4,0.947,21,0
|
385 |
+
1,90,62,18,59,25.1,1.268,25,0
|
386 |
+
1,125,70,24,110,24.3,0.221,25,0
|
387 |
+
1,119,54,13,50,22.3,0.205,24,0
|
388 |
+
5,116,74,29,0,32.3,0.66,35,1
|
389 |
+
8,105,100,36,0,43.3,0.239,45,1
|
390 |
+
5,144,82,26,285,32,0.452,58,1
|
391 |
+
3,100,68,23,81,31.6,0.949,28,0
|
392 |
+
1,100,66,29,196,32,0.444,42,0
|
393 |
+
5,166,76,0,0,45.7,0.34,27,1
|
394 |
+
1,131,64,14,415,23.7,0.389,21,0
|
395 |
+
4,116,72,12,87,22.1,0.463,37,0
|
396 |
+
4,158,78,0,0,32.9,0.803,31,1
|
397 |
+
2,127,58,24,275,27.7,1.6,25,0
|
398 |
+
3,96,56,34,115,24.7,0.944,39,0
|
399 |
+
0,131,66,40,0,34.3,0.196,22,1
|
400 |
+
3,82,70,0,0,21.1,0.389,25,0
|
401 |
+
3,193,70,31,0,34.9,0.241,25,1
|
402 |
+
4,95,64,0,0,32,0.161,31,1
|
403 |
+
6,137,61,0,0,24.2,0.151,55,0
|
404 |
+
5,136,84,41,88,35,0.286,35,1
|
405 |
+
9,72,78,25,0,31.6,0.28,38,0
|
406 |
+
5,168,64,0,0,32.9,0.135,41,1
|
407 |
+
2,123,48,32,165,42.1,0.52,26,0
|
408 |
+
4,115,72,0,0,28.9,0.376,46,1
|
409 |
+
0,101,62,0,0,21.9,0.336,25,0
|
410 |
+
8,197,74,0,0,25.9,1.191,39,1
|
411 |
+
1,172,68,49,579,42.4,0.702,28,1
|
412 |
+
6,102,90,39,0,35.7,0.674,28,0
|
413 |
+
1,112,72,30,176,34.4,0.528,25,0
|
414 |
+
1,143,84,23,310,42.4,1.076,22,0
|
415 |
+
1,143,74,22,61,26.2,0.256,21,0
|
416 |
+
0,138,60,35,167,34.6,0.534,21,1
|
417 |
+
3,173,84,33,474,35.7,0.258,22,1
|
418 |
+
1,97,68,21,0,27.2,1.095,22,0
|
419 |
+
4,144,82,32,0,38.5,0.554,37,1
|
420 |
+
1,83,68,0,0,18.2,0.624,27,0
|
421 |
+
3,129,64,29,115,26.4,0.219,28,1
|
422 |
+
1,119,88,41,170,45.3,0.507,26,0
|
423 |
+
2,94,68,18,76,26,0.561,21,0
|
424 |
+
0,102,64,46,78,40.6,0.496,21,0
|
425 |
+
2,115,64,22,0,30.8,0.421,21,0
|
426 |
+
8,151,78,32,210,42.9,0.516,36,1
|
427 |
+
4,184,78,39,277,37,0.264,31,1
|
428 |
+
0,94,0,0,0,0,0.256,25,0
|
429 |
+
1,181,64,30,180,34.1,0.328,38,1
|
430 |
+
0,135,94,46,145,40.6,0.284,26,0
|
431 |
+
1,95,82,25,180,35,0.233,43,1
|
432 |
+
2,99,0,0,0,22.2,0.108,23,0
|
433 |
+
3,89,74,16,85,30.4,0.551,38,0
|
434 |
+
1,80,74,11,60,30,0.527,22,0
|
435 |
+
2,139,75,0,0,25.6,0.167,29,0
|
436 |
+
1,90,68,8,0,24.5,1.138,36,0
|
437 |
+
0,141,0,0,0,42.4,0.205,29,1
|
438 |
+
12,140,85,33,0,37.4,0.244,41,0
|
439 |
+
5,147,75,0,0,29.9,0.434,28,0
|
440 |
+
1,97,70,15,0,18.2,0.147,21,0
|
441 |
+
6,107,88,0,0,36.8,0.727,31,0
|
442 |
+
0,189,104,25,0,34.3,0.435,41,1
|
443 |
+
2,83,66,23,50,32.2,0.497,22,0
|
444 |
+
4,117,64,27,120,33.2,0.23,24,0
|
445 |
+
8,108,70,0,0,30.5,0.955,33,1
|
446 |
+
4,117,62,12,0,29.7,0.38,30,1
|
447 |
+
0,180,78,63,14,59.4,2.42,25,1
|
448 |
+
1,100,72,12,70,25.3,0.658,28,0
|
449 |
+
0,95,80,45,92,36.5,0.33,26,0
|
450 |
+
0,104,64,37,64,33.6,0.51,22,1
|
451 |
+
0,120,74,18,63,30.5,0.285,26,0
|
452 |
+
1,82,64,13,95,21.2,0.415,23,0
|
453 |
+
2,134,70,0,0,28.9,0.542,23,1
|
454 |
+
0,91,68,32,210,39.9,0.381,25,0
|
455 |
+
2,119,0,0,0,19.6,0.832,72,0
|
456 |
+
2,100,54,28,105,37.8,0.498,24,0
|
457 |
+
14,175,62,30,0,33.6,0.212,38,1
|
458 |
+
1,135,54,0,0,26.7,0.687,62,0
|
459 |
+
5,86,68,28,71,30.2,0.364,24,0
|
460 |
+
10,148,84,48,237,37.6,1.001,51,1
|
461 |
+
9,134,74,33,60,25.9,0.46,81,0
|
462 |
+
9,120,72,22,56,20.8,0.733,48,0
|
463 |
+
1,71,62,0,0,21.8,0.416,26,0
|
464 |
+
8,74,70,40,49,35.3,0.705,39,0
|
465 |
+
5,88,78,30,0,27.6,0.258,37,0
|
466 |
+
10,115,98,0,0,24,1.022,34,0
|
467 |
+
0,124,56,13,105,21.8,0.452,21,0
|
468 |
+
0,74,52,10,36,27.8,0.269,22,0
|
469 |
+
0,97,64,36,100,36.8,0.6,25,0
|
470 |
+
8,120,0,0,0,30,0.183,38,1
|
471 |
+
6,154,78,41,140,46.1,0.571,27,0
|
472 |
+
1,144,82,40,0,41.3,0.607,28,0
|
473 |
+
0,137,70,38,0,33.2,0.17,22,0
|
474 |
+
0,119,66,27,0,38.8,0.259,22,0
|
475 |
+
7,136,90,0,0,29.9,0.21,50,0
|
476 |
+
4,114,64,0,0,28.9,0.126,24,0
|
477 |
+
0,137,84,27,0,27.3,0.231,59,0
|
478 |
+
2,105,80,45,191,33.7,0.711,29,1
|
479 |
+
7,114,76,17,110,23.8,0.466,31,0
|
480 |
+
8,126,74,38,75,25.9,0.162,39,0
|
481 |
+
4,132,86,31,0,28,0.419,63,0
|
482 |
+
3,158,70,30,328,35.5,0.344,35,1
|
483 |
+
0,123,88,37,0,35.2,0.197,29,0
|
484 |
+
4,85,58,22,49,27.8,0.306,28,0
|
485 |
+
0,84,82,31,125,38.2,0.233,23,0
|
486 |
+
0,145,0,0,0,44.2,0.63,31,1
|
487 |
+
0,135,68,42,250,42.3,0.365,24,1
|
488 |
+
1,139,62,41,480,40.7,0.536,21,0
|
489 |
+
0,173,78,32,265,46.5,1.159,58,0
|
490 |
+
4,99,72,17,0,25.6,0.294,28,0
|
491 |
+
8,194,80,0,0,26.1,0.551,67,0
|
492 |
+
2,83,65,28,66,36.8,0.629,24,0
|
493 |
+
2,89,90,30,0,33.5,0.292,42,0
|
494 |
+
4,99,68,38,0,32.8,0.145,33,0
|
495 |
+
4,125,70,18,122,28.9,1.144,45,1
|
496 |
+
3,80,0,0,0,0,0.174,22,0
|
497 |
+
6,166,74,0,0,26.6,0.304,66,0
|
498 |
+
5,110,68,0,0,26,0.292,30,0
|
499 |
+
2,81,72,15,76,30.1,0.547,25,0
|
500 |
+
7,195,70,33,145,25.1,0.163,55,1
|
501 |
+
6,154,74,32,193,29.3,0.839,39,0
|
502 |
+
2,117,90,19,71,25.2,0.313,21,0
|
503 |
+
3,84,72,32,0,37.2,0.267,28,0
|
504 |
+
6,0,68,41,0,39,0.727,41,1
|
505 |
+
7,94,64,25,79,33.3,0.738,41,0
|
506 |
+
3,96,78,39,0,37.3,0.238,40,0
|
507 |
+
10,75,82,0,0,33.3,0.263,38,0
|
508 |
+
0,180,90,26,90,36.5,0.314,35,1
|
509 |
+
1,130,60,23,170,28.6,0.692,21,0
|
510 |
+
2,84,50,23,76,30.4,0.968,21,0
|
511 |
+
8,120,78,0,0,25,0.409,64,0
|
512 |
+
12,84,72,31,0,29.7,0.297,46,1
|
513 |
+
0,139,62,17,210,22.1,0.207,21,0
|
514 |
+
9,91,68,0,0,24.2,0.2,58,0
|
515 |
+
2,91,62,0,0,27.3,0.525,22,0
|
516 |
+
3,99,54,19,86,25.6,0.154,24,0
|
517 |
+
3,163,70,18,105,31.6,0.268,28,1
|
518 |
+
9,145,88,34,165,30.3,0.771,53,1
|
519 |
+
7,125,86,0,0,37.6,0.304,51,0
|
520 |
+
13,76,60,0,0,32.8,0.18,41,0
|
521 |
+
6,129,90,7,326,19.6,0.582,60,0
|
522 |
+
2,68,70,32,66,25,0.187,25,0
|
523 |
+
3,124,80,33,130,33.2,0.305,26,0
|
524 |
+
6,114,0,0,0,0,0.189,26,0
|
525 |
+
9,130,70,0,0,34.2,0.652,45,1
|
526 |
+
3,125,58,0,0,31.6,0.151,24,0
|
527 |
+
3,87,60,18,0,21.8,0.444,21,0
|
528 |
+
1,97,64,19,82,18.2,0.299,21,0
|
529 |
+
3,116,74,15,105,26.3,0.107,24,0
|
530 |
+
0,117,66,31,188,30.8,0.493,22,0
|
531 |
+
0,111,65,0,0,24.6,0.66,31,0
|
532 |
+
2,122,60,18,106,29.8,0.717,22,0
|
533 |
+
0,107,76,0,0,45.3,0.686,24,0
|
534 |
+
1,86,66,52,65,41.3,0.917,29,0
|
535 |
+
6,91,0,0,0,29.8,0.501,31,0
|
536 |
+
1,77,56,30,56,33.3,1.251,24,0
|
537 |
+
4,132,0,0,0,32.9,0.302,23,1
|
538 |
+
0,105,90,0,0,29.6,0.197,46,0
|
539 |
+
0,57,60,0,0,21.7,0.735,67,0
|
540 |
+
0,127,80,37,210,36.3,0.804,23,0
|
541 |
+
3,129,92,49,155,36.4,0.968,32,1
|
542 |
+
8,100,74,40,215,39.4,0.661,43,1
|
543 |
+
3,128,72,25,190,32.4,0.549,27,1
|
544 |
+
10,90,85,32,0,34.9,0.825,56,1
|
545 |
+
4,84,90,23,56,39.5,0.159,25,0
|
546 |
+
1,88,78,29,76,32,0.365,29,0
|
547 |
+
8,186,90,35,225,34.5,0.423,37,1
|
548 |
+
5,187,76,27,207,43.6,1.034,53,1
|
549 |
+
4,131,68,21,166,33.1,0.16,28,0
|
550 |
+
1,164,82,43,67,32.8,0.341,50,0
|
551 |
+
4,189,110,31,0,28.5,0.68,37,0
|
552 |
+
1,116,70,28,0,27.4,0.204,21,0
|
553 |
+
3,84,68,30,106,31.9,0.591,25,0
|
554 |
+
6,114,88,0,0,27.8,0.247,66,0
|
555 |
+
1,88,62,24,44,29.9,0.422,23,0
|
556 |
+
1,84,64,23,115,36.9,0.471,28,0
|
557 |
+
7,124,70,33,215,25.5,0.161,37,0
|
558 |
+
1,97,70,40,0,38.1,0.218,30,0
|
559 |
+
8,110,76,0,0,27.8,0.237,58,0
|
560 |
+
11,103,68,40,0,46.2,0.126,42,0
|
561 |
+
11,85,74,0,0,30.1,0.3,35,0
|
562 |
+
6,125,76,0,0,33.8,0.121,54,1
|
563 |
+
0,198,66,32,274,41.3,0.502,28,1
|
564 |
+
1,87,68,34,77,37.6,0.401,24,0
|
565 |
+
6,99,60,19,54,26.9,0.497,32,0
|
566 |
+
0,91,80,0,0,32.4,0.601,27,0
|
567 |
+
2,95,54,14,88,26.1,0.748,22,0
|
568 |
+
1,99,72,30,18,38.6,0.412,21,0
|
569 |
+
6,92,62,32,126,32,0.085,46,0
|
570 |
+
4,154,72,29,126,31.3,0.338,37,0
|
571 |
+
0,121,66,30,165,34.3,0.203,33,1
|
572 |
+
3,78,70,0,0,32.5,0.27,39,0
|
573 |
+
2,130,96,0,0,22.6,0.268,21,0
|
574 |
+
3,111,58,31,44,29.5,0.43,22,0
|
575 |
+
2,98,60,17,120,34.7,0.198,22,0
|
576 |
+
1,143,86,30,330,30.1,0.892,23,0
|
577 |
+
1,119,44,47,63,35.5,0.28,25,0
|
578 |
+
6,108,44,20,130,24,0.813,35,0
|
579 |
+
2,118,80,0,0,42.9,0.693,21,1
|
580 |
+
10,133,68,0,0,27,0.245,36,0
|
581 |
+
2,197,70,99,0,34.7,0.575,62,1
|
582 |
+
0,151,90,46,0,42.1,0.371,21,1
|
583 |
+
6,109,60,27,0,25,0.206,27,0
|
584 |
+
12,121,78,17,0,26.5,0.259,62,0
|
585 |
+
8,100,76,0,0,38.7,0.19,42,0
|
586 |
+
8,124,76,24,600,28.7,0.687,52,1
|
587 |
+
1,93,56,11,0,22.5,0.417,22,0
|
588 |
+
8,143,66,0,0,34.9,0.129,41,1
|
589 |
+
6,103,66,0,0,24.3,0.249,29,0
|
590 |
+
3,176,86,27,156,33.3,1.154,52,1
|
591 |
+
0,73,0,0,0,21.1,0.342,25,0
|
592 |
+
11,111,84,40,0,46.8,0.925,45,1
|
593 |
+
2,112,78,50,140,39.4,0.175,24,0
|
594 |
+
3,132,80,0,0,34.4,0.402,44,1
|
595 |
+
2,82,52,22,115,28.5,1.699,25,0
|
596 |
+
6,123,72,45,230,33.6,0.733,34,0
|
597 |
+
0,188,82,14,185,32,0.682,22,1
|
598 |
+
0,67,76,0,0,45.3,0.194,46,0
|
599 |
+
1,89,24,19,25,27.8,0.559,21,0
|
600 |
+
1,173,74,0,0,36.8,0.088,38,1
|
601 |
+
1,109,38,18,120,23.1,0.407,26,0
|
602 |
+
1,108,88,19,0,27.1,0.4,24,0
|
603 |
+
6,96,0,0,0,23.7,0.19,28,0
|
604 |
+
1,124,74,36,0,27.8,0.1,30,0
|
605 |
+
7,150,78,29,126,35.2,0.692,54,1
|
606 |
+
4,183,0,0,0,28.4,0.212,36,1
|
607 |
+
1,124,60,32,0,35.8,0.514,21,0
|
608 |
+
1,181,78,42,293,40,1.258,22,1
|
609 |
+
1,92,62,25,41,19.5,0.482,25,0
|
610 |
+
0,152,82,39,272,41.5,0.27,27,0
|
611 |
+
1,111,62,13,182,24,0.138,23,0
|
612 |
+
3,106,54,21,158,30.9,0.292,24,0
|
613 |
+
3,174,58,22,194,32.9,0.593,36,1
|
614 |
+
7,168,88,42,321,38.2,0.787,40,1
|
615 |
+
6,105,80,28,0,32.5,0.878,26,0
|
616 |
+
11,138,74,26,144,36.1,0.557,50,1
|
617 |
+
3,106,72,0,0,25.8,0.207,27,0
|
618 |
+
6,117,96,0,0,28.7,0.157,30,0
|
619 |
+
2,68,62,13,15,20.1,0.257,23,0
|
620 |
+
9,112,82,24,0,28.2,1.282,50,1
|
621 |
+
0,119,0,0,0,32.4,0.141,24,1
|
622 |
+
2,112,86,42,160,38.4,0.246,28,0
|
623 |
+
2,92,76,20,0,24.2,1.698,28,0
|
624 |
+
6,183,94,0,0,40.8,1.461,45,0
|
625 |
+
0,94,70,27,115,43.5,0.347,21,0
|
626 |
+
2,108,64,0,0,30.8,0.158,21,0
|
627 |
+
4,90,88,47,54,37.7,0.362,29,0
|
628 |
+
0,125,68,0,0,24.7,0.206,21,0
|
629 |
+
0,132,78,0,0,32.4,0.393,21,0
|
630 |
+
5,128,80,0,0,34.6,0.144,45,0
|
631 |
+
4,94,65,22,0,24.7,0.148,21,0
|
632 |
+
7,114,64,0,0,27.4,0.732,34,1
|
633 |
+
0,102,78,40,90,34.5,0.238,24,0
|
634 |
+
2,111,60,0,0,26.2,0.343,23,0
|
635 |
+
1,128,82,17,183,27.5,0.115,22,0
|
636 |
+
10,92,62,0,0,25.9,0.167,31,0
|
637 |
+
13,104,72,0,0,31.2,0.465,38,1
|
638 |
+
5,104,74,0,0,28.8,0.153,48,0
|
639 |
+
2,94,76,18,66,31.6,0.649,23,0
|
640 |
+
7,97,76,32,91,40.9,0.871,32,1
|
641 |
+
1,100,74,12,46,19.5,0.149,28,0
|
642 |
+
0,102,86,17,105,29.3,0.695,27,0
|
643 |
+
4,128,70,0,0,34.3,0.303,24,0
|
644 |
+
6,147,80,0,0,29.5,0.178,50,1
|
645 |
+
4,90,0,0,0,28,0.61,31,0
|
646 |
+
3,103,72,30,152,27.6,0.73,27,0
|
647 |
+
2,157,74,35,440,39.4,0.134,30,0
|
648 |
+
1,167,74,17,144,23.4,0.447,33,1
|
649 |
+
0,179,50,36,159,37.8,0.455,22,1
|
650 |
+
11,136,84,35,130,28.3,0.26,42,1
|
651 |
+
0,107,60,25,0,26.4,0.133,23,0
|
652 |
+
1,91,54,25,100,25.2,0.234,23,0
|
653 |
+
1,117,60,23,106,33.8,0.466,27,0
|
654 |
+
5,123,74,40,77,34.1,0.269,28,0
|
655 |
+
2,120,54,0,0,26.8,0.455,27,0
|
656 |
+
1,106,70,28,135,34.2,0.142,22,0
|
657 |
+
2,155,52,27,540,38.7,0.24,25,1
|
658 |
+
2,101,58,35,90,21.8,0.155,22,0
|
659 |
+
1,120,80,48,200,38.9,1.162,41,0
|
660 |
+
11,127,106,0,0,39,0.19,51,0
|
661 |
+
3,80,82,31,70,34.2,1.292,27,1
|
662 |
+
10,162,84,0,0,27.7,0.182,54,0
|
663 |
+
1,199,76,43,0,42.9,1.394,22,1
|
664 |
+
8,167,106,46,231,37.6,0.165,43,1
|
665 |
+
9,145,80,46,130,37.9,0.637,40,1
|
666 |
+
6,115,60,39,0,33.7,0.245,40,1
|
667 |
+
1,112,80,45,132,34.8,0.217,24,0
|
668 |
+
4,145,82,18,0,32.5,0.235,70,1
|
669 |
+
10,111,70,27,0,27.5,0.141,40,1
|
670 |
+
6,98,58,33,190,34,0.43,43,0
|
671 |
+
9,154,78,30,100,30.9,0.164,45,0
|
672 |
+
6,165,68,26,168,33.6,0.631,49,0
|
673 |
+
1,99,58,10,0,25.4,0.551,21,0
|
674 |
+
10,68,106,23,49,35.5,0.285,47,0
|
675 |
+
3,123,100,35,240,57.3,0.88,22,0
|
676 |
+
8,91,82,0,0,35.6,0.587,68,0
|
677 |
+
6,195,70,0,0,30.9,0.328,31,1
|
678 |
+
9,156,86,0,0,24.8,0.23,53,1
|
679 |
+
0,93,60,0,0,35.3,0.263,25,0
|
680 |
+
3,121,52,0,0,36,0.127,25,1
|
681 |
+
2,101,58,17,265,24.2,0.614,23,0
|
682 |
+
2,56,56,28,45,24.2,0.332,22,0
|
683 |
+
0,162,76,36,0,49.6,0.364,26,1
|
684 |
+
0,95,64,39,105,44.6,0.366,22,0
|
685 |
+
4,125,80,0,0,32.3,0.536,27,1
|
686 |
+
5,136,82,0,0,0,0.64,69,0
|
687 |
+
2,129,74,26,205,33.2,0.591,25,0
|
688 |
+
3,130,64,0,0,23.1,0.314,22,0
|
689 |
+
1,107,50,19,0,28.3,0.181,29,0
|
690 |
+
1,140,74,26,180,24.1,0.828,23,0
|
691 |
+
1,144,82,46,180,46.1,0.335,46,1
|
692 |
+
8,107,80,0,0,24.6,0.856,34,0
|
693 |
+
13,158,114,0,0,42.3,0.257,44,1
|
694 |
+
2,121,70,32,95,39.1,0.886,23,0
|
695 |
+
7,129,68,49,125,38.5,0.439,43,1
|
696 |
+
2,90,60,0,0,23.5,0.191,25,0
|
697 |
+
7,142,90,24,480,30.4,0.128,43,1
|
698 |
+
3,169,74,19,125,29.9,0.268,31,1
|
699 |
+
0,99,0,0,0,25,0.253,22,0
|
700 |
+
4,127,88,11,155,34.5,0.598,28,0
|
701 |
+
4,118,70,0,0,44.5,0.904,26,0
|
702 |
+
2,122,76,27,200,35.9,0.483,26,0
|
703 |
+
6,125,78,31,0,27.6,0.565,49,1
|
704 |
+
1,168,88,29,0,35,0.905,52,1
|
705 |
+
2,129,0,0,0,38.5,0.304,41,0
|
706 |
+
4,110,76,20,100,28.4,0.118,27,0
|
707 |
+
6,80,80,36,0,39.8,0.177,28,0
|
708 |
+
10,115,0,0,0,0,0.261,30,1
|
709 |
+
2,127,46,21,335,34.4,0.176,22,0
|
710 |
+
9,164,78,0,0,32.8,0.148,45,1
|
711 |
+
2,93,64,32,160,38,0.674,23,1
|
712 |
+
3,158,64,13,387,31.2,0.295,24,0
|
713 |
+
5,126,78,27,22,29.6,0.439,40,0
|
714 |
+
10,129,62,36,0,41.2,0.441,38,1
|
715 |
+
0,134,58,20,291,26.4,0.352,21,0
|
716 |
+
3,102,74,0,0,29.5,0.121,32,0
|
717 |
+
7,187,50,33,392,33.9,0.826,34,1
|
718 |
+
3,173,78,39,185,33.8,0.97,31,1
|
719 |
+
10,94,72,18,0,23.1,0.595,56,0
|
720 |
+
1,108,60,46,178,35.5,0.415,24,0
|
721 |
+
5,97,76,27,0,35.6,0.378,52,1
|
722 |
+
4,83,86,19,0,29.3,0.317,34,0
|
723 |
+
1,114,66,36,200,38.1,0.289,21,0
|
724 |
+
1,149,68,29,127,29.3,0.349,42,1
|
725 |
+
5,117,86,30,105,39.1,0.251,42,0
|
726 |
+
1,111,94,0,0,32.8,0.265,45,0
|
727 |
+
4,112,78,40,0,39.4,0.236,38,0
|
728 |
+
1,116,78,29,180,36.1,0.496,25,0
|
729 |
+
0,141,84,26,0,32.4,0.433,22,0
|
730 |
+
2,175,88,0,0,22.9,0.326,22,0
|
731 |
+
2,92,52,0,0,30.1,0.141,22,0
|
732 |
+
3,130,78,23,79,28.4,0.323,34,1
|
733 |
+
8,120,86,0,0,28.4,0.259,22,1
|
734 |
+
2,174,88,37,120,44.5,0.646,24,1
|
735 |
+
2,106,56,27,165,29,0.426,22,0
|
736 |
+
2,105,75,0,0,23.3,0.56,53,0
|
737 |
+
4,95,60,32,0,35.4,0.284,28,0
|
738 |
+
0,126,86,27,120,27.4,0.515,21,0
|
739 |
+
8,65,72,23,0,32,0.6,42,0
|
740 |
+
2,99,60,17,160,36.6,0.453,21,0
|
741 |
+
1,102,74,0,0,39.5,0.293,42,1
|
742 |
+
11,120,80,37,150,42.3,0.785,48,1
|
743 |
+
3,102,44,20,94,30.8,0.4,26,0
|
744 |
+
1,109,58,18,116,28.5,0.219,22,0
|
745 |
+
9,140,94,0,0,32.7,0.734,45,1
|
746 |
+
13,153,88,37,140,40.6,1.174,39,0
|
747 |
+
12,100,84,33,105,30,0.488,46,0
|
748 |
+
1,147,94,41,0,49.3,0.358,27,1
|
749 |
+
1,81,74,41,57,46.3,1.096,32,0
|
750 |
+
3,187,70,22,200,36.4,0.408,36,1
|
751 |
+
6,162,62,0,0,24.3,0.178,50,1
|
752 |
+
4,136,70,0,0,31.2,1.182,22,1
|
753 |
+
1,121,78,39,74,39,0.261,28,0
|
754 |
+
3,108,62,24,0,26,0.223,25,0
|
755 |
+
0,181,88,44,510,43.3,0.222,26,1
|
756 |
+
8,154,78,32,0,32.4,0.443,45,1
|
757 |
+
1,128,88,39,110,36.5,1.057,37,1
|
758 |
+
7,137,90,41,0,32,0.391,39,0
|
759 |
+
0,123,72,0,0,36.3,0.258,52,1
|
760 |
+
1,106,76,0,0,37.5,0.197,26,0
|
761 |
+
6,190,92,0,0,35.5,0.278,66,1
|
762 |
+
2,88,58,26,16,28.4,0.766,22,0
|
763 |
+
9,170,74,31,0,44,0.403,43,1
|
764 |
+
9,89,62,0,0,22.5,0.142,33,0
|
765 |
+
10,101,76,48,180,32.9,0.171,63,0
|
766 |
+
2,122,70,27,0,36.8,0.34,27,0
|
767 |
+
5,121,72,23,112,26.2,0.245,30,0
|
768 |
+
1,126,60,0,0,30.1,0.349,47,1
|
769 |
+
1,93,70,31,0,30.4,0.315,23,0
|
data/preprocessed_data.csv
ADDED
@@ -0,0 +1,769 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome
|
2 |
+
6,148.0,72.0,35.0,155.5482233502538,33.6,0.627,50,1
|
3 |
+
1,85.0,66.0,29.0,155.5482233502538,26.6,0.351,31,0
|
4 |
+
8,183.0,64.0,29.153419593345657,155.5482233502538,23.3,0.672,32,1
|
5 |
+
1,89.0,66.0,23.0,94.0,28.1,0.167,21,0
|
6 |
+
0,137.0,40.0,35.0,168.0,43.1,2.288,33,1
|
7 |
+
5,116.0,74.0,29.153419593345657,155.5482233502538,25.6,0.201,30,0
|
8 |
+
3,78.0,50.0,32.0,88.0,31.0,0.248,26,1
|
9 |
+
10,115.0,72.40518417462484,29.153419593345657,155.5482233502538,35.3,0.134,29,0
|
10 |
+
2,197.0,70.0,45.0,543.0,30.5,0.158,53,1
|
11 |
+
8,125.0,96.0,29.153419593345657,155.5482233502538,32.457463672391015,0.232,54,1
|
12 |
+
4,110.0,92.0,29.153419593345657,155.5482233502538,37.6,0.191,30,0
|
13 |
+
10,168.0,74.0,29.153419593345657,155.5482233502538,38.0,0.537,34,1
|
14 |
+
10,139.0,80.0,29.153419593345657,155.5482233502538,27.1,1.441,57,0
|
15 |
+
1,189.0,60.0,23.0,846.0,30.1,0.398,59,1
|
16 |
+
5,166.0,72.0,19.0,175.0,25.8,0.587,51,1
|
17 |
+
7,100.0,72.40518417462484,29.153419593345657,155.5482233502538,30.0,0.484,32,1
|
18 |
+
0,118.0,84.0,47.0,230.0,45.8,0.551,31,1
|
19 |
+
7,107.0,74.0,29.153419593345657,155.5482233502538,29.6,0.254,31,1
|
20 |
+
1,103.0,30.0,38.0,83.0,43.3,0.183,33,0
|
21 |
+
1,115.0,70.0,30.0,96.0,34.6,0.529,32,1
|
22 |
+
3,126.0,88.0,41.0,235.0,39.3,0.704,27,0
|
23 |
+
8,99.0,84.0,29.153419593345657,155.5482233502538,35.4,0.388,50,0
|
24 |
+
7,196.0,90.0,29.153419593345657,155.5482233502538,39.8,0.451,41,1
|
25 |
+
9,119.0,80.0,35.0,155.5482233502538,29.0,0.263,29,1
|
26 |
+
11,143.0,94.0,33.0,146.0,36.6,0.254,51,1
|
27 |
+
10,125.0,70.0,26.0,115.0,31.1,0.205,41,1
|
28 |
+
7,147.0,76.0,29.153419593345657,155.5482233502538,39.4,0.257,43,1
|
29 |
+
1,97.0,66.0,15.0,140.0,23.2,0.487,22,0
|
30 |
+
13,145.0,82.0,19.0,110.0,22.2,0.245,57,0
|
31 |
+
5,117.0,92.0,29.153419593345657,155.5482233502538,34.1,0.337,38,0
|
32 |
+
5,109.0,75.0,26.0,155.5482233502538,36.0,0.546,60,0
|
33 |
+
3,158.0,76.0,36.0,245.0,31.6,0.851,28,1
|
34 |
+
3,88.0,58.0,11.0,54.0,24.8,0.267,22,0
|
35 |
+
6,92.0,92.0,29.153419593345657,155.5482233502538,19.9,0.188,28,0
|
36 |
+
10,122.0,78.0,31.0,155.5482233502538,27.6,0.512,45,0
|
37 |
+
4,103.0,60.0,33.0,192.0,24.0,0.966,33,0
|
38 |
+
11,138.0,76.0,29.153419593345657,155.5482233502538,33.2,0.42,35,0
|
39 |
+
9,102.0,76.0,37.0,155.5482233502538,32.9,0.665,46,1
|
40 |
+
2,90.0,68.0,42.0,155.5482233502538,38.2,0.503,27,1
|
41 |
+
4,111.0,72.0,47.0,207.0,37.1,1.39,56,1
|
42 |
+
3,180.0,64.0,25.0,70.0,34.0,0.271,26,0
|
43 |
+
7,133.0,84.0,29.153419593345657,155.5482233502538,40.2,0.696,37,0
|
44 |
+
7,106.0,92.0,18.0,155.5482233502538,22.7,0.235,48,0
|
45 |
+
9,171.0,110.0,24.0,240.0,45.4,0.721,54,1
|
46 |
+
7,159.0,64.0,29.153419593345657,155.5482233502538,27.4,0.294,40,0
|
47 |
+
0,180.0,66.0,39.0,155.5482233502538,42.0,1.893,25,1
|
48 |
+
1,146.0,56.0,29.153419593345657,155.5482233502538,29.7,0.564,29,0
|
49 |
+
2,71.0,70.0,27.0,155.5482233502538,28.0,0.586,22,0
|
50 |
+
7,103.0,66.0,32.0,155.5482233502538,39.1,0.344,31,1
|
51 |
+
7,105.0,72.40518417462484,29.153419593345657,155.5482233502538,32.457463672391015,0.305,24,0
|
52 |
+
1,103.0,80.0,11.0,82.0,19.4,0.491,22,0
|
53 |
+
1,101.0,50.0,15.0,36.0,24.2,0.526,26,0
|
54 |
+
5,88.0,66.0,21.0,23.0,24.4,0.342,30,0
|
55 |
+
8,176.0,90.0,34.0,300.0,33.7,0.467,58,1
|
56 |
+
7,150.0,66.0,42.0,342.0,34.7,0.718,42,0
|
57 |
+
1,73.0,50.0,10.0,155.5482233502538,23.0,0.248,21,0
|
58 |
+
7,187.0,68.0,39.0,304.0,37.7,0.254,41,1
|
59 |
+
0,100.0,88.0,60.0,110.0,46.8,0.962,31,0
|
60 |
+
0,146.0,82.0,29.153419593345657,155.5482233502538,40.5,1.781,44,0
|
61 |
+
0,105.0,64.0,41.0,142.0,41.5,0.173,22,0
|
62 |
+
2,84.0,72.40518417462484,29.153419593345657,155.5482233502538,32.457463672391015,0.304,21,0
|
63 |
+
8,133.0,72.0,29.153419593345657,155.5482233502538,32.9,0.27,39,1
|
64 |
+
5,44.0,62.0,29.153419593345657,155.5482233502538,25.0,0.587,36,0
|
65 |
+
2,141.0,58.0,34.0,128.0,25.4,0.699,24,0
|
66 |
+
7,114.0,66.0,29.153419593345657,155.5482233502538,32.8,0.258,42,1
|
67 |
+
5,99.0,74.0,27.0,155.5482233502538,29.0,0.203,32,0
|
68 |
+
0,109.0,88.0,30.0,155.5482233502538,32.5,0.855,38,1
|
69 |
+
2,109.0,92.0,29.153419593345657,155.5482233502538,42.7,0.845,54,0
|
70 |
+
1,95.0,66.0,13.0,38.0,19.6,0.334,25,0
|
71 |
+
4,146.0,85.0,27.0,100.0,28.9,0.189,27,0
|
72 |
+
2,100.0,66.0,20.0,90.0,32.9,0.867,28,1
|
73 |
+
5,139.0,64.0,35.0,140.0,28.6,0.411,26,0
|
74 |
+
13,126.0,90.0,29.153419593345657,155.5482233502538,43.4,0.583,42,1
|
75 |
+
4,129.0,86.0,20.0,270.0,35.1,0.231,23,0
|
76 |
+
1,79.0,75.0,30.0,155.5482233502538,32.0,0.396,22,0
|
77 |
+
1,121.6867627785059,48.0,20.0,155.5482233502538,24.7,0.14,22,0
|
78 |
+
7,62.0,78.0,29.153419593345657,155.5482233502538,32.6,0.391,41,0
|
79 |
+
5,95.0,72.0,33.0,155.5482233502538,37.7,0.37,27,0
|
80 |
+
0,131.0,72.40518417462484,29.153419593345657,155.5482233502538,43.2,0.27,26,1
|
81 |
+
2,112.0,66.0,22.0,155.5482233502538,25.0,0.307,24,0
|
82 |
+
3,113.0,44.0,13.0,155.5482233502538,22.4,0.14,22,0
|
83 |
+
2,74.0,72.40518417462484,29.153419593345657,155.5482233502538,32.457463672391015,0.102,22,0
|
84 |
+
7,83.0,78.0,26.0,71.0,29.3,0.767,36,0
|
85 |
+
0,101.0,65.0,28.0,155.5482233502538,24.6,0.237,22,0
|
86 |
+
5,137.0,108.0,29.153419593345657,155.5482233502538,48.8,0.227,37,1
|
87 |
+
2,110.0,74.0,29.0,125.0,32.4,0.698,27,0
|
88 |
+
13,106.0,72.0,54.0,155.5482233502538,36.6,0.178,45,0
|
89 |
+
2,100.0,68.0,25.0,71.0,38.5,0.324,26,0
|
90 |
+
15,136.0,70.0,32.0,110.0,37.1,0.153,43,1
|
91 |
+
1,107.0,68.0,19.0,155.5482233502538,26.5,0.165,24,0
|
92 |
+
1,80.0,55.0,29.153419593345657,155.5482233502538,19.1,0.258,21,0
|
93 |
+
4,123.0,80.0,15.0,176.0,32.0,0.443,34,0
|
94 |
+
7,81.0,78.0,40.0,48.0,46.7,0.261,42,0
|
95 |
+
4,134.0,72.0,29.153419593345657,155.5482233502538,23.8,0.277,60,1
|
96 |
+
2,142.0,82.0,18.0,64.0,24.7,0.761,21,0
|
97 |
+
6,144.0,72.0,27.0,228.0,33.9,0.255,40,0
|
98 |
+
2,92.0,62.0,28.0,155.5482233502538,31.6,0.13,24,0
|
99 |
+
1,71.0,48.0,18.0,76.0,20.4,0.323,22,0
|
100 |
+
6,93.0,50.0,30.0,64.0,28.7,0.356,23,0
|
101 |
+
1,122.0,90.0,51.0,220.0,49.7,0.325,31,1
|
102 |
+
1,163.0,72.0,29.153419593345657,155.5482233502538,39.0,1.222,33,1
|
103 |
+
1,151.0,60.0,29.153419593345657,155.5482233502538,26.1,0.179,22,0
|
104 |
+
0,125.0,96.0,29.153419593345657,155.5482233502538,22.5,0.262,21,0
|
105 |
+
1,81.0,72.0,18.0,40.0,26.6,0.283,24,0
|
106 |
+
2,85.0,65.0,29.153419593345657,155.5482233502538,39.6,0.93,27,0
|
107 |
+
1,126.0,56.0,29.0,152.0,28.7,0.801,21,0
|
108 |
+
1,96.0,122.0,29.153419593345657,155.5482233502538,22.4,0.207,27,0
|
109 |
+
4,144.0,58.0,28.0,140.0,29.5,0.287,37,0
|
110 |
+
3,83.0,58.0,31.0,18.0,34.3,0.336,25,0
|
111 |
+
0,95.0,85.0,25.0,36.0,37.4,0.247,24,1
|
112 |
+
3,171.0,72.0,33.0,135.0,33.3,0.199,24,1
|
113 |
+
8,155.0,62.0,26.0,495.0,34.0,0.543,46,1
|
114 |
+
1,89.0,76.0,34.0,37.0,31.2,0.192,23,0
|
115 |
+
4,76.0,62.0,29.153419593345657,155.5482233502538,34.0,0.391,25,0
|
116 |
+
7,160.0,54.0,32.0,175.0,30.5,0.588,39,1
|
117 |
+
4,146.0,92.0,29.153419593345657,155.5482233502538,31.2,0.539,61,1
|
118 |
+
5,124.0,74.0,29.153419593345657,155.5482233502538,34.0,0.22,38,1
|
119 |
+
5,78.0,48.0,29.153419593345657,155.5482233502538,33.7,0.654,25,0
|
120 |
+
4,97.0,60.0,23.0,155.5482233502538,28.2,0.443,22,0
|
121 |
+
4,99.0,76.0,15.0,51.0,23.2,0.223,21,0
|
122 |
+
0,162.0,76.0,56.0,100.0,53.2,0.759,25,1
|
123 |
+
6,111.0,64.0,39.0,155.5482233502538,34.2,0.26,24,0
|
124 |
+
2,107.0,74.0,30.0,100.0,33.6,0.404,23,0
|
125 |
+
5,132.0,80.0,29.153419593345657,155.5482233502538,26.8,0.186,69,0
|
126 |
+
0,113.0,76.0,29.153419593345657,155.5482233502538,33.3,0.278,23,1
|
127 |
+
1,88.0,30.0,42.0,99.0,55.0,0.496,26,1
|
128 |
+
3,120.0,70.0,30.0,135.0,42.9,0.452,30,0
|
129 |
+
1,118.0,58.0,36.0,94.0,33.3,0.261,23,0
|
130 |
+
1,117.0,88.0,24.0,145.0,34.5,0.403,40,1
|
131 |
+
0,105.0,84.0,29.153419593345657,155.5482233502538,27.9,0.741,62,1
|
132 |
+
4,173.0,70.0,14.0,168.0,29.7,0.361,33,1
|
133 |
+
9,122.0,56.0,29.153419593345657,155.5482233502538,33.3,1.114,33,1
|
134 |
+
3,170.0,64.0,37.0,225.0,34.5,0.356,30,1
|
135 |
+
8,84.0,74.0,31.0,155.5482233502538,38.3,0.457,39,0
|
136 |
+
2,96.0,68.0,13.0,49.0,21.1,0.647,26,0
|
137 |
+
2,125.0,60.0,20.0,140.0,33.8,0.088,31,0
|
138 |
+
0,100.0,70.0,26.0,50.0,30.8,0.597,21,0
|
139 |
+
0,93.0,60.0,25.0,92.0,28.7,0.532,22,0
|
140 |
+
0,129.0,80.0,29.153419593345657,155.5482233502538,31.2,0.703,29,0
|
141 |
+
5,105.0,72.0,29.0,325.0,36.9,0.159,28,0
|
142 |
+
3,128.0,78.0,29.153419593345657,155.5482233502538,21.1,0.268,55,0
|
143 |
+
5,106.0,82.0,30.0,155.5482233502538,39.5,0.286,38,0
|
144 |
+
2,108.0,52.0,26.0,63.0,32.5,0.318,22,0
|
145 |
+
10,108.0,66.0,29.153419593345657,155.5482233502538,32.4,0.272,42,1
|
146 |
+
4,154.0,62.0,31.0,284.0,32.8,0.237,23,0
|
147 |
+
0,102.0,75.0,23.0,155.5482233502538,32.457463672391015,0.572,21,0
|
148 |
+
9,57.0,80.0,37.0,155.5482233502538,32.8,0.096,41,0
|
149 |
+
2,106.0,64.0,35.0,119.0,30.5,1.4,34,0
|
150 |
+
5,147.0,78.0,29.153419593345657,155.5482233502538,33.7,0.218,65,0
|
151 |
+
2,90.0,70.0,17.0,155.5482233502538,27.3,0.085,22,0
|
152 |
+
1,136.0,74.0,50.0,204.0,37.4,0.399,24,0
|
153 |
+
4,114.0,65.0,29.153419593345657,155.5482233502538,21.9,0.432,37,0
|
154 |
+
9,156.0,86.0,28.0,155.0,34.3,1.189,42,1
|
155 |
+
1,153.0,82.0,42.0,485.0,40.6,0.687,23,0
|
156 |
+
8,188.0,78.0,29.153419593345657,155.5482233502538,47.9,0.137,43,1
|
157 |
+
7,152.0,88.0,44.0,155.5482233502538,50.0,0.337,36,1
|
158 |
+
2,99.0,52.0,15.0,94.0,24.6,0.637,21,0
|
159 |
+
1,109.0,56.0,21.0,135.0,25.2,0.833,23,0
|
160 |
+
2,88.0,74.0,19.0,53.0,29.0,0.229,22,0
|
161 |
+
17,163.0,72.0,41.0,114.0,40.9,0.817,47,1
|
162 |
+
4,151.0,90.0,38.0,155.5482233502538,29.7,0.294,36,0
|
163 |
+
7,102.0,74.0,40.0,105.0,37.2,0.204,45,0
|
164 |
+
0,114.0,80.0,34.0,285.0,44.2,0.167,27,0
|
165 |
+
2,100.0,64.0,23.0,155.5482233502538,29.7,0.368,21,0
|
166 |
+
0,131.0,88.0,29.153419593345657,155.5482233502538,31.6,0.743,32,1
|
167 |
+
6,104.0,74.0,18.0,156.0,29.9,0.722,41,1
|
168 |
+
3,148.0,66.0,25.0,155.5482233502538,32.5,0.256,22,0
|
169 |
+
4,120.0,68.0,29.153419593345657,155.5482233502538,29.6,0.709,34,0
|
170 |
+
4,110.0,66.0,29.153419593345657,155.5482233502538,31.9,0.471,29,0
|
171 |
+
3,111.0,90.0,12.0,78.0,28.4,0.495,29,0
|
172 |
+
6,102.0,82.0,29.153419593345657,155.5482233502538,30.8,0.18,36,1
|
173 |
+
6,134.0,70.0,23.0,130.0,35.4,0.542,29,1
|
174 |
+
2,87.0,72.40518417462484,23.0,155.5482233502538,28.9,0.773,25,0
|
175 |
+
1,79.0,60.0,42.0,48.0,43.5,0.678,23,0
|
176 |
+
2,75.0,64.0,24.0,55.0,29.7,0.37,33,0
|
177 |
+
8,179.0,72.0,42.0,130.0,32.7,0.719,36,1
|
178 |
+
6,85.0,78.0,29.153419593345657,155.5482233502538,31.2,0.382,42,0
|
179 |
+
0,129.0,110.0,46.0,130.0,67.1,0.319,26,1
|
180 |
+
5,143.0,78.0,29.153419593345657,155.5482233502538,45.0,0.19,47,0
|
181 |
+
5,130.0,82.0,29.153419593345657,155.5482233502538,39.1,0.956,37,1
|
182 |
+
6,87.0,80.0,29.153419593345657,155.5482233502538,23.2,0.084,32,0
|
183 |
+
0,119.0,64.0,18.0,92.0,34.9,0.725,23,0
|
184 |
+
1,121.6867627785059,74.0,20.0,23.0,27.7,0.299,21,0
|
185 |
+
5,73.0,60.0,29.153419593345657,155.5482233502538,26.8,0.268,27,0
|
186 |
+
4,141.0,74.0,29.153419593345657,155.5482233502538,27.6,0.244,40,0
|
187 |
+
7,194.0,68.0,28.0,155.5482233502538,35.9,0.745,41,1
|
188 |
+
8,181.0,68.0,36.0,495.0,30.1,0.615,60,1
|
189 |
+
1,128.0,98.0,41.0,58.0,32.0,1.321,33,1
|
190 |
+
8,109.0,76.0,39.0,114.0,27.9,0.64,31,1
|
191 |
+
5,139.0,80.0,35.0,160.0,31.6,0.361,25,1
|
192 |
+
3,111.0,62.0,29.153419593345657,155.5482233502538,22.6,0.142,21,0
|
193 |
+
9,123.0,70.0,44.0,94.0,33.1,0.374,40,0
|
194 |
+
7,159.0,66.0,29.153419593345657,155.5482233502538,30.4,0.383,36,1
|
195 |
+
11,135.0,72.40518417462484,29.153419593345657,155.5482233502538,52.3,0.578,40,1
|
196 |
+
8,85.0,55.0,20.0,155.5482233502538,24.4,0.136,42,0
|
197 |
+
5,158.0,84.0,41.0,210.0,39.4,0.395,29,1
|
198 |
+
1,105.0,58.0,29.153419593345657,155.5482233502538,24.3,0.187,21,0
|
199 |
+
3,107.0,62.0,13.0,48.0,22.9,0.678,23,1
|
200 |
+
4,109.0,64.0,44.0,99.0,34.8,0.905,26,1
|
201 |
+
4,148.0,60.0,27.0,318.0,30.9,0.15,29,1
|
202 |
+
0,113.0,80.0,16.0,155.5482233502538,31.0,0.874,21,0
|
203 |
+
1,138.0,82.0,29.153419593345657,155.5482233502538,40.1,0.236,28,0
|
204 |
+
0,108.0,68.0,20.0,155.5482233502538,27.3,0.787,32,0
|
205 |
+
2,99.0,70.0,16.0,44.0,20.4,0.235,27,0
|
206 |
+
6,103.0,72.0,32.0,190.0,37.7,0.324,55,0
|
207 |
+
5,111.0,72.0,28.0,155.5482233502538,23.9,0.407,27,0
|
208 |
+
8,196.0,76.0,29.0,280.0,37.5,0.605,57,1
|
209 |
+
5,162.0,104.0,29.153419593345657,155.5482233502538,37.7,0.151,52,1
|
210 |
+
1,96.0,64.0,27.0,87.0,33.2,0.289,21,0
|
211 |
+
7,184.0,84.0,33.0,155.5482233502538,35.5,0.355,41,1
|
212 |
+
2,81.0,60.0,22.0,155.5482233502538,27.7,0.29,25,0
|
213 |
+
0,147.0,85.0,54.0,155.5482233502538,42.8,0.375,24,0
|
214 |
+
7,179.0,95.0,31.0,155.5482233502538,34.2,0.164,60,0
|
215 |
+
0,140.0,65.0,26.0,130.0,42.6,0.431,24,1
|
216 |
+
9,112.0,82.0,32.0,175.0,34.2,0.26,36,1
|
217 |
+
12,151.0,70.0,40.0,271.0,41.8,0.742,38,1
|
218 |
+
5,109.0,62.0,41.0,129.0,35.8,0.514,25,1
|
219 |
+
6,125.0,68.0,30.0,120.0,30.0,0.464,32,0
|
220 |
+
5,85.0,74.0,22.0,155.5482233502538,29.0,1.224,32,1
|
221 |
+
5,112.0,66.0,29.153419593345657,155.5482233502538,37.8,0.261,41,1
|
222 |
+
0,177.0,60.0,29.0,478.0,34.6,1.072,21,1
|
223 |
+
2,158.0,90.0,29.153419593345657,155.5482233502538,31.6,0.805,66,1
|
224 |
+
7,119.0,72.40518417462484,29.153419593345657,155.5482233502538,25.2,0.209,37,0
|
225 |
+
7,142.0,60.0,33.0,190.0,28.8,0.687,61,0
|
226 |
+
1,100.0,66.0,15.0,56.0,23.6,0.666,26,0
|
227 |
+
1,87.0,78.0,27.0,32.0,34.6,0.101,22,0
|
228 |
+
0,101.0,76.0,29.153419593345657,155.5482233502538,35.7,0.198,26,0
|
229 |
+
3,162.0,52.0,38.0,155.5482233502538,37.2,0.652,24,1
|
230 |
+
4,197.0,70.0,39.0,744.0,36.7,2.329,31,0
|
231 |
+
0,117.0,80.0,31.0,53.0,45.2,0.089,24,0
|
232 |
+
4,142.0,86.0,29.153419593345657,155.5482233502538,44.0,0.645,22,1
|
233 |
+
6,134.0,80.0,37.0,370.0,46.2,0.238,46,1
|
234 |
+
1,79.0,80.0,25.0,37.0,25.4,0.583,22,0
|
235 |
+
4,122.0,68.0,29.153419593345657,155.5482233502538,35.0,0.394,29,0
|
236 |
+
3,74.0,68.0,28.0,45.0,29.7,0.293,23,0
|
237 |
+
4,171.0,72.0,29.153419593345657,155.5482233502538,43.6,0.479,26,1
|
238 |
+
7,181.0,84.0,21.0,192.0,35.9,0.586,51,1
|
239 |
+
0,179.0,90.0,27.0,155.5482233502538,44.1,0.686,23,1
|
240 |
+
9,164.0,84.0,21.0,155.5482233502538,30.8,0.831,32,1
|
241 |
+
0,104.0,76.0,29.153419593345657,155.5482233502538,18.4,0.582,27,0
|
242 |
+
1,91.0,64.0,24.0,155.5482233502538,29.2,0.192,21,0
|
243 |
+
4,91.0,70.0,32.0,88.0,33.1,0.446,22,0
|
244 |
+
3,139.0,54.0,29.153419593345657,155.5482233502538,25.6,0.402,22,1
|
245 |
+
6,119.0,50.0,22.0,176.0,27.1,1.318,33,1
|
246 |
+
2,146.0,76.0,35.0,194.0,38.2,0.329,29,0
|
247 |
+
9,184.0,85.0,15.0,155.5482233502538,30.0,1.213,49,1
|
248 |
+
10,122.0,68.0,29.153419593345657,155.5482233502538,31.2,0.258,41,0
|
249 |
+
0,165.0,90.0,33.0,680.0,52.3,0.427,23,0
|
250 |
+
9,124.0,70.0,33.0,402.0,35.4,0.282,34,0
|
251 |
+
1,111.0,86.0,19.0,155.5482233502538,30.1,0.143,23,0
|
252 |
+
9,106.0,52.0,29.153419593345657,155.5482233502538,31.2,0.38,42,0
|
253 |
+
2,129.0,84.0,29.153419593345657,155.5482233502538,28.0,0.284,27,0
|
254 |
+
2,90.0,80.0,14.0,55.0,24.4,0.249,24,0
|
255 |
+
0,86.0,68.0,32.0,155.5482233502538,35.8,0.238,25,0
|
256 |
+
12,92.0,62.0,7.0,258.0,27.6,0.926,44,1
|
257 |
+
1,113.0,64.0,35.0,155.5482233502538,33.6,0.543,21,1
|
258 |
+
3,111.0,56.0,39.0,155.5482233502538,30.1,0.557,30,0
|
259 |
+
2,114.0,68.0,22.0,155.5482233502538,28.7,0.092,25,0
|
260 |
+
1,193.0,50.0,16.0,375.0,25.9,0.655,24,0
|
261 |
+
11,155.0,76.0,28.0,150.0,33.3,1.353,51,1
|
262 |
+
3,191.0,68.0,15.0,130.0,30.9,0.299,34,0
|
263 |
+
3,141.0,72.40518417462484,29.153419593345657,155.5482233502538,30.0,0.761,27,1
|
264 |
+
4,95.0,70.0,32.0,155.5482233502538,32.1,0.612,24,0
|
265 |
+
3,142.0,80.0,15.0,155.5482233502538,32.4,0.2,63,0
|
266 |
+
4,123.0,62.0,29.153419593345657,155.5482233502538,32.0,0.226,35,1
|
267 |
+
5,96.0,74.0,18.0,67.0,33.6,0.997,43,0
|
268 |
+
0,138.0,72.40518417462484,29.153419593345657,155.5482233502538,36.3,0.933,25,1
|
269 |
+
2,128.0,64.0,42.0,155.5482233502538,40.0,1.101,24,0
|
270 |
+
0,102.0,52.0,29.153419593345657,155.5482233502538,25.1,0.078,21,0
|
271 |
+
2,146.0,72.40518417462484,29.153419593345657,155.5482233502538,27.5,0.24,28,1
|
272 |
+
10,101.0,86.0,37.0,155.5482233502538,45.6,1.136,38,1
|
273 |
+
2,108.0,62.0,32.0,56.0,25.2,0.128,21,0
|
274 |
+
3,122.0,78.0,29.153419593345657,155.5482233502538,23.0,0.254,40,0
|
275 |
+
1,71.0,78.0,50.0,45.0,33.2,0.422,21,0
|
276 |
+
13,106.0,70.0,29.153419593345657,155.5482233502538,34.2,0.251,52,0
|
277 |
+
2,100.0,70.0,52.0,57.0,40.5,0.677,25,0
|
278 |
+
7,106.0,60.0,24.0,155.5482233502538,26.5,0.296,29,1
|
279 |
+
0,104.0,64.0,23.0,116.0,27.8,0.454,23,0
|
280 |
+
5,114.0,74.0,29.153419593345657,155.5482233502538,24.9,0.744,57,0
|
281 |
+
2,108.0,62.0,10.0,278.0,25.3,0.881,22,0
|
282 |
+
0,146.0,70.0,29.153419593345657,155.5482233502538,37.9,0.334,28,1
|
283 |
+
10,129.0,76.0,28.0,122.0,35.9,0.28,39,0
|
284 |
+
7,133.0,88.0,15.0,155.0,32.4,0.262,37,0
|
285 |
+
7,161.0,86.0,29.153419593345657,155.5482233502538,30.4,0.165,47,1
|
286 |
+
2,108.0,80.0,29.153419593345657,155.5482233502538,27.0,0.259,52,1
|
287 |
+
7,136.0,74.0,26.0,135.0,26.0,0.647,51,0
|
288 |
+
5,155.0,84.0,44.0,545.0,38.7,0.619,34,0
|
289 |
+
1,119.0,86.0,39.0,220.0,45.6,0.808,29,1
|
290 |
+
4,96.0,56.0,17.0,49.0,20.8,0.34,26,0
|
291 |
+
5,108.0,72.0,43.0,75.0,36.1,0.263,33,0
|
292 |
+
0,78.0,88.0,29.0,40.0,36.9,0.434,21,0
|
293 |
+
0,107.0,62.0,30.0,74.0,36.6,0.757,25,1
|
294 |
+
2,128.0,78.0,37.0,182.0,43.3,1.224,31,1
|
295 |
+
1,128.0,48.0,45.0,194.0,40.5,0.613,24,1
|
296 |
+
0,161.0,50.0,29.153419593345657,155.5482233502538,21.9,0.254,65,0
|
297 |
+
6,151.0,62.0,31.0,120.0,35.5,0.692,28,0
|
298 |
+
2,146.0,70.0,38.0,360.0,28.0,0.337,29,1
|
299 |
+
0,126.0,84.0,29.0,215.0,30.7,0.52,24,0
|
300 |
+
14,100.0,78.0,25.0,184.0,36.6,0.412,46,1
|
301 |
+
8,112.0,72.0,29.153419593345657,155.5482233502538,23.6,0.84,58,0
|
302 |
+
0,167.0,72.40518417462484,29.153419593345657,155.5482233502538,32.3,0.839,30,1
|
303 |
+
2,144.0,58.0,33.0,135.0,31.6,0.422,25,1
|
304 |
+
5,77.0,82.0,41.0,42.0,35.8,0.156,35,0
|
305 |
+
5,115.0,98.0,29.153419593345657,155.5482233502538,52.9,0.209,28,1
|
306 |
+
3,150.0,76.0,29.153419593345657,155.5482233502538,21.0,0.207,37,0
|
307 |
+
2,120.0,76.0,37.0,105.0,39.7,0.215,29,0
|
308 |
+
10,161.0,68.0,23.0,132.0,25.5,0.326,47,1
|
309 |
+
0,137.0,68.0,14.0,148.0,24.8,0.143,21,0
|
310 |
+
0,128.0,68.0,19.0,180.0,30.5,1.391,25,1
|
311 |
+
2,124.0,68.0,28.0,205.0,32.9,0.875,30,1
|
312 |
+
6,80.0,66.0,30.0,155.5482233502538,26.2,0.313,41,0
|
313 |
+
0,106.0,70.0,37.0,148.0,39.4,0.605,22,0
|
314 |
+
2,155.0,74.0,17.0,96.0,26.6,0.433,27,1
|
315 |
+
3,113.0,50.0,10.0,85.0,29.5,0.626,25,0
|
316 |
+
7,109.0,80.0,31.0,155.5482233502538,35.9,1.127,43,1
|
317 |
+
2,112.0,68.0,22.0,94.0,34.1,0.315,26,0
|
318 |
+
3,99.0,80.0,11.0,64.0,19.3,0.284,30,0
|
319 |
+
3,182.0,74.0,29.153419593345657,155.5482233502538,30.5,0.345,29,1
|
320 |
+
3,115.0,66.0,39.0,140.0,38.1,0.15,28,0
|
321 |
+
6,194.0,78.0,29.153419593345657,155.5482233502538,23.5,0.129,59,1
|
322 |
+
4,129.0,60.0,12.0,231.0,27.5,0.527,31,0
|
323 |
+
3,112.0,74.0,30.0,155.5482233502538,31.6,0.197,25,1
|
324 |
+
0,124.0,70.0,20.0,155.5482233502538,27.4,0.254,36,1
|
325 |
+
13,152.0,90.0,33.0,29.0,26.8,0.731,43,1
|
326 |
+
2,112.0,75.0,32.0,155.5482233502538,35.7,0.148,21,0
|
327 |
+
1,157.0,72.0,21.0,168.0,25.6,0.123,24,0
|
328 |
+
1,122.0,64.0,32.0,156.0,35.1,0.692,30,1
|
329 |
+
10,179.0,70.0,29.153419593345657,155.5482233502538,35.1,0.2,37,0
|
330 |
+
2,102.0,86.0,36.0,120.0,45.5,0.127,23,1
|
331 |
+
6,105.0,70.0,32.0,68.0,30.8,0.122,37,0
|
332 |
+
8,118.0,72.0,19.0,155.5482233502538,23.1,1.476,46,0
|
333 |
+
2,87.0,58.0,16.0,52.0,32.7,0.166,25,0
|
334 |
+
1,180.0,72.40518417462484,29.153419593345657,155.5482233502538,43.3,0.282,41,1
|
335 |
+
12,106.0,80.0,29.153419593345657,155.5482233502538,23.6,0.137,44,0
|
336 |
+
1,95.0,60.0,18.0,58.0,23.9,0.26,22,0
|
337 |
+
0,165.0,76.0,43.0,255.0,47.9,0.259,26,0
|
338 |
+
0,117.0,72.40518417462484,29.153419593345657,155.5482233502538,33.8,0.932,44,0
|
339 |
+
5,115.0,76.0,29.153419593345657,155.5482233502538,31.2,0.343,44,1
|
340 |
+
9,152.0,78.0,34.0,171.0,34.2,0.893,33,1
|
341 |
+
7,178.0,84.0,29.153419593345657,155.5482233502538,39.9,0.331,41,1
|
342 |
+
1,130.0,70.0,13.0,105.0,25.9,0.472,22,0
|
343 |
+
1,95.0,74.0,21.0,73.0,25.9,0.673,36,0
|
344 |
+
1,121.6867627785059,68.0,35.0,155.5482233502538,32.0,0.389,22,0
|
345 |
+
5,122.0,86.0,29.153419593345657,155.5482233502538,34.7,0.29,33,0
|
346 |
+
8,95.0,72.0,29.153419593345657,155.5482233502538,36.8,0.485,57,0
|
347 |
+
8,126.0,88.0,36.0,108.0,38.5,0.349,49,0
|
348 |
+
1,139.0,46.0,19.0,83.0,28.7,0.654,22,0
|
349 |
+
3,116.0,72.40518417462484,29.153419593345657,155.5482233502538,23.5,0.187,23,0
|
350 |
+
3,99.0,62.0,19.0,74.0,21.8,0.279,26,0
|
351 |
+
5,121.6867627785059,80.0,32.0,155.5482233502538,41.0,0.346,37,1
|
352 |
+
4,92.0,80.0,29.153419593345657,155.5482233502538,42.2,0.237,29,0
|
353 |
+
4,137.0,84.0,29.153419593345657,155.5482233502538,31.2,0.252,30,0
|
354 |
+
3,61.0,82.0,28.0,155.5482233502538,34.4,0.243,46,0
|
355 |
+
1,90.0,62.0,12.0,43.0,27.2,0.58,24,0
|
356 |
+
3,90.0,78.0,29.153419593345657,155.5482233502538,42.7,0.559,21,0
|
357 |
+
9,165.0,88.0,29.153419593345657,155.5482233502538,30.4,0.302,49,1
|
358 |
+
1,125.0,50.0,40.0,167.0,33.3,0.962,28,1
|
359 |
+
13,129.0,72.40518417462484,30.0,155.5482233502538,39.9,0.569,44,1
|
360 |
+
12,88.0,74.0,40.0,54.0,35.3,0.378,48,0
|
361 |
+
1,196.0,76.0,36.0,249.0,36.5,0.875,29,1
|
362 |
+
5,189.0,64.0,33.0,325.0,31.2,0.583,29,1
|
363 |
+
5,158.0,70.0,29.153419593345657,155.5482233502538,29.8,0.207,63,0
|
364 |
+
5,103.0,108.0,37.0,155.5482233502538,39.2,0.305,65,0
|
365 |
+
4,146.0,78.0,29.153419593345657,155.5482233502538,38.5,0.52,67,1
|
366 |
+
4,147.0,74.0,25.0,293.0,34.9,0.385,30,0
|
367 |
+
5,99.0,54.0,28.0,83.0,34.0,0.499,30,0
|
368 |
+
6,124.0,72.0,29.153419593345657,155.5482233502538,27.6,0.368,29,1
|
369 |
+
0,101.0,64.0,17.0,155.5482233502538,21.0,0.252,21,0
|
370 |
+
3,81.0,86.0,16.0,66.0,27.5,0.306,22,0
|
371 |
+
1,133.0,102.0,28.0,140.0,32.8,0.234,45,1
|
372 |
+
3,173.0,82.0,48.0,465.0,38.4,2.137,25,1
|
373 |
+
0,118.0,64.0,23.0,89.0,32.457463672391015,1.731,21,0
|
374 |
+
0,84.0,64.0,22.0,66.0,35.8,0.545,21,0
|
375 |
+
2,105.0,58.0,40.0,94.0,34.9,0.225,25,0
|
376 |
+
2,122.0,52.0,43.0,158.0,36.2,0.816,28,0
|
377 |
+
12,140.0,82.0,43.0,325.0,39.2,0.528,58,1
|
378 |
+
0,98.0,82.0,15.0,84.0,25.2,0.299,22,0
|
379 |
+
1,87.0,60.0,37.0,75.0,37.2,0.509,22,0
|
380 |
+
4,156.0,75.0,29.153419593345657,155.5482233502538,48.3,0.238,32,1
|
381 |
+
0,93.0,100.0,39.0,72.0,43.4,1.021,35,0
|
382 |
+
1,107.0,72.0,30.0,82.0,30.8,0.821,24,0
|
383 |
+
0,105.0,68.0,22.0,155.5482233502538,20.0,0.236,22,0
|
384 |
+
1,109.0,60.0,8.0,182.0,25.4,0.947,21,0
|
385 |
+
1,90.0,62.0,18.0,59.0,25.1,1.268,25,0
|
386 |
+
1,125.0,70.0,24.0,110.0,24.3,0.221,25,0
|
387 |
+
1,119.0,54.0,13.0,50.0,22.3,0.205,24,0
|
388 |
+
5,116.0,74.0,29.0,155.5482233502538,32.3,0.66,35,1
|
389 |
+
8,105.0,100.0,36.0,155.5482233502538,43.3,0.239,45,1
|
390 |
+
5,144.0,82.0,26.0,285.0,32.0,0.452,58,1
|
391 |
+
3,100.0,68.0,23.0,81.0,31.6,0.949,28,0
|
392 |
+
1,100.0,66.0,29.0,196.0,32.0,0.444,42,0
|
393 |
+
5,166.0,76.0,29.153419593345657,155.5482233502538,45.7,0.34,27,1
|
394 |
+
1,131.0,64.0,14.0,415.0,23.7,0.389,21,0
|
395 |
+
4,116.0,72.0,12.0,87.0,22.1,0.463,37,0
|
396 |
+
4,158.0,78.0,29.153419593345657,155.5482233502538,32.9,0.803,31,1
|
397 |
+
2,127.0,58.0,24.0,275.0,27.7,1.6,25,0
|
398 |
+
3,96.0,56.0,34.0,115.0,24.7,0.944,39,0
|
399 |
+
0,131.0,66.0,40.0,155.5482233502538,34.3,0.196,22,1
|
400 |
+
3,82.0,70.0,29.153419593345657,155.5482233502538,21.1,0.389,25,0
|
401 |
+
3,193.0,70.0,31.0,155.5482233502538,34.9,0.241,25,1
|
402 |
+
4,95.0,64.0,29.153419593345657,155.5482233502538,32.0,0.161,31,1
|
403 |
+
6,137.0,61.0,29.153419593345657,155.5482233502538,24.2,0.151,55,0
|
404 |
+
5,136.0,84.0,41.0,88.0,35.0,0.286,35,1
|
405 |
+
9,72.0,78.0,25.0,155.5482233502538,31.6,0.28,38,0
|
406 |
+
5,168.0,64.0,29.153419593345657,155.5482233502538,32.9,0.135,41,1
|
407 |
+
2,123.0,48.0,32.0,165.0,42.1,0.52,26,0
|
408 |
+
4,115.0,72.0,29.153419593345657,155.5482233502538,28.9,0.376,46,1
|
409 |
+
0,101.0,62.0,29.153419593345657,155.5482233502538,21.9,0.336,25,0
|
410 |
+
8,197.0,74.0,29.153419593345657,155.5482233502538,25.9,1.191,39,1
|
411 |
+
1,172.0,68.0,49.0,579.0,42.4,0.702,28,1
|
412 |
+
6,102.0,90.0,39.0,155.5482233502538,35.7,0.674,28,0
|
413 |
+
1,112.0,72.0,30.0,176.0,34.4,0.528,25,0
|
414 |
+
1,143.0,84.0,23.0,310.0,42.4,1.076,22,0
|
415 |
+
1,143.0,74.0,22.0,61.0,26.2,0.256,21,0
|
416 |
+
0,138.0,60.0,35.0,167.0,34.6,0.534,21,1
|
417 |
+
3,173.0,84.0,33.0,474.0,35.7,0.258,22,1
|
418 |
+
1,97.0,68.0,21.0,155.5482233502538,27.2,1.095,22,0
|
419 |
+
4,144.0,82.0,32.0,155.5482233502538,38.5,0.554,37,1
|
420 |
+
1,83.0,68.0,29.153419593345657,155.5482233502538,18.2,0.624,27,0
|
421 |
+
3,129.0,64.0,29.0,115.0,26.4,0.219,28,1
|
422 |
+
1,119.0,88.0,41.0,170.0,45.3,0.507,26,0
|
423 |
+
2,94.0,68.0,18.0,76.0,26.0,0.561,21,0
|
424 |
+
0,102.0,64.0,46.0,78.0,40.6,0.496,21,0
|
425 |
+
2,115.0,64.0,22.0,155.5482233502538,30.8,0.421,21,0
|
426 |
+
8,151.0,78.0,32.0,210.0,42.9,0.516,36,1
|
427 |
+
4,184.0,78.0,39.0,277.0,37.0,0.264,31,1
|
428 |
+
0,94.0,72.40518417462484,29.153419593345657,155.5482233502538,32.457463672391015,0.256,25,0
|
429 |
+
1,181.0,64.0,30.0,180.0,34.1,0.328,38,1
|
430 |
+
0,135.0,94.0,46.0,145.0,40.6,0.284,26,0
|
431 |
+
1,95.0,82.0,25.0,180.0,35.0,0.233,43,1
|
432 |
+
2,99.0,72.40518417462484,29.153419593345657,155.5482233502538,22.2,0.108,23,0
|
433 |
+
3,89.0,74.0,16.0,85.0,30.4,0.551,38,0
|
434 |
+
1,80.0,74.0,11.0,60.0,30.0,0.527,22,0
|
435 |
+
2,139.0,75.0,29.153419593345657,155.5482233502538,25.6,0.167,29,0
|
436 |
+
1,90.0,68.0,8.0,155.5482233502538,24.5,1.138,36,0
|
437 |
+
0,141.0,72.40518417462484,29.153419593345657,155.5482233502538,42.4,0.205,29,1
|
438 |
+
12,140.0,85.0,33.0,155.5482233502538,37.4,0.244,41,0
|
439 |
+
5,147.0,75.0,29.153419593345657,155.5482233502538,29.9,0.434,28,0
|
440 |
+
1,97.0,70.0,15.0,155.5482233502538,18.2,0.147,21,0
|
441 |
+
6,107.0,88.0,29.153419593345657,155.5482233502538,36.8,0.727,31,0
|
442 |
+
0,189.0,104.0,25.0,155.5482233502538,34.3,0.435,41,1
|
443 |
+
2,83.0,66.0,23.0,50.0,32.2,0.497,22,0
|
444 |
+
4,117.0,64.0,27.0,120.0,33.2,0.23,24,0
|
445 |
+
8,108.0,70.0,29.153419593345657,155.5482233502538,30.5,0.955,33,1
|
446 |
+
4,117.0,62.0,12.0,155.5482233502538,29.7,0.38,30,1
|
447 |
+
0,180.0,78.0,63.0,14.0,59.4,2.42,25,1
|
448 |
+
1,100.0,72.0,12.0,70.0,25.3,0.658,28,0
|
449 |
+
0,95.0,80.0,45.0,92.0,36.5,0.33,26,0
|
450 |
+
0,104.0,64.0,37.0,64.0,33.6,0.51,22,1
|
451 |
+
0,120.0,74.0,18.0,63.0,30.5,0.285,26,0
|
452 |
+
1,82.0,64.0,13.0,95.0,21.2,0.415,23,0
|
453 |
+
2,134.0,70.0,29.153419593345657,155.5482233502538,28.9,0.542,23,1
|
454 |
+
0,91.0,68.0,32.0,210.0,39.9,0.381,25,0
|
455 |
+
2,119.0,72.40518417462484,29.153419593345657,155.5482233502538,19.6,0.832,72,0
|
456 |
+
2,100.0,54.0,28.0,105.0,37.8,0.498,24,0
|
457 |
+
14,175.0,62.0,30.0,155.5482233502538,33.6,0.212,38,1
|
458 |
+
1,135.0,54.0,29.153419593345657,155.5482233502538,26.7,0.687,62,0
|
459 |
+
5,86.0,68.0,28.0,71.0,30.2,0.364,24,0
|
460 |
+
10,148.0,84.0,48.0,237.0,37.6,1.001,51,1
|
461 |
+
9,134.0,74.0,33.0,60.0,25.9,0.46,81,0
|
462 |
+
9,120.0,72.0,22.0,56.0,20.8,0.733,48,0
|
463 |
+
1,71.0,62.0,29.153419593345657,155.5482233502538,21.8,0.416,26,0
|
464 |
+
8,74.0,70.0,40.0,49.0,35.3,0.705,39,0
|
465 |
+
5,88.0,78.0,30.0,155.5482233502538,27.6,0.258,37,0
|
466 |
+
10,115.0,98.0,29.153419593345657,155.5482233502538,24.0,1.022,34,0
|
467 |
+
0,124.0,56.0,13.0,105.0,21.8,0.452,21,0
|
468 |
+
0,74.0,52.0,10.0,36.0,27.8,0.269,22,0
|
469 |
+
0,97.0,64.0,36.0,100.0,36.8,0.6,25,0
|
470 |
+
8,120.0,72.40518417462484,29.153419593345657,155.5482233502538,30.0,0.183,38,1
|
471 |
+
6,154.0,78.0,41.0,140.0,46.1,0.571,27,0
|
472 |
+
1,144.0,82.0,40.0,155.5482233502538,41.3,0.607,28,0
|
473 |
+
0,137.0,70.0,38.0,155.5482233502538,33.2,0.17,22,0
|
474 |
+
0,119.0,66.0,27.0,155.5482233502538,38.8,0.259,22,0
|
475 |
+
7,136.0,90.0,29.153419593345657,155.5482233502538,29.9,0.21,50,0
|
476 |
+
4,114.0,64.0,29.153419593345657,155.5482233502538,28.9,0.126,24,0
|
477 |
+
0,137.0,84.0,27.0,155.5482233502538,27.3,0.231,59,0
|
478 |
+
2,105.0,80.0,45.0,191.0,33.7,0.711,29,1
|
479 |
+
7,114.0,76.0,17.0,110.0,23.8,0.466,31,0
|
480 |
+
8,126.0,74.0,38.0,75.0,25.9,0.162,39,0
|
481 |
+
4,132.0,86.0,31.0,155.5482233502538,28.0,0.419,63,0
|
482 |
+
3,158.0,70.0,30.0,328.0,35.5,0.344,35,1
|
483 |
+
0,123.0,88.0,37.0,155.5482233502538,35.2,0.197,29,0
|
484 |
+
4,85.0,58.0,22.0,49.0,27.8,0.306,28,0
|
485 |
+
0,84.0,82.0,31.0,125.0,38.2,0.233,23,0
|
486 |
+
0,145.0,72.40518417462484,29.153419593345657,155.5482233502538,44.2,0.63,31,1
|
487 |
+
0,135.0,68.0,42.0,250.0,42.3,0.365,24,1
|
488 |
+
1,139.0,62.0,41.0,480.0,40.7,0.536,21,0
|
489 |
+
0,173.0,78.0,32.0,265.0,46.5,1.159,58,0
|
490 |
+
4,99.0,72.0,17.0,155.5482233502538,25.6,0.294,28,0
|
491 |
+
8,194.0,80.0,29.153419593345657,155.5482233502538,26.1,0.551,67,0
|
492 |
+
2,83.0,65.0,28.0,66.0,36.8,0.629,24,0
|
493 |
+
2,89.0,90.0,30.0,155.5482233502538,33.5,0.292,42,0
|
494 |
+
4,99.0,68.0,38.0,155.5482233502538,32.8,0.145,33,0
|
495 |
+
4,125.0,70.0,18.0,122.0,28.9,1.144,45,1
|
496 |
+
3,80.0,72.40518417462484,29.153419593345657,155.5482233502538,32.457463672391015,0.174,22,0
|
497 |
+
6,166.0,74.0,29.153419593345657,155.5482233502538,26.6,0.304,66,0
|
498 |
+
5,110.0,68.0,29.153419593345657,155.5482233502538,26.0,0.292,30,0
|
499 |
+
2,81.0,72.0,15.0,76.0,30.1,0.547,25,0
|
500 |
+
7,195.0,70.0,33.0,145.0,25.1,0.163,55,1
|
501 |
+
6,154.0,74.0,32.0,193.0,29.3,0.839,39,0
|
502 |
+
2,117.0,90.0,19.0,71.0,25.2,0.313,21,0
|
503 |
+
3,84.0,72.0,32.0,155.5482233502538,37.2,0.267,28,0
|
504 |
+
6,121.6867627785059,68.0,41.0,155.5482233502538,39.0,0.727,41,1
|
505 |
+
7,94.0,64.0,25.0,79.0,33.3,0.738,41,0
|
506 |
+
3,96.0,78.0,39.0,155.5482233502538,37.3,0.238,40,0
|
507 |
+
10,75.0,82.0,29.153419593345657,155.5482233502538,33.3,0.263,38,0
|
508 |
+
0,180.0,90.0,26.0,90.0,36.5,0.314,35,1
|
509 |
+
1,130.0,60.0,23.0,170.0,28.6,0.692,21,0
|
510 |
+
2,84.0,50.0,23.0,76.0,30.4,0.968,21,0
|
511 |
+
8,120.0,78.0,29.153419593345657,155.5482233502538,25.0,0.409,64,0
|
512 |
+
12,84.0,72.0,31.0,155.5482233502538,29.7,0.297,46,1
|
513 |
+
0,139.0,62.0,17.0,210.0,22.1,0.207,21,0
|
514 |
+
9,91.0,68.0,29.153419593345657,155.5482233502538,24.2,0.2,58,0
|
515 |
+
2,91.0,62.0,29.153419593345657,155.5482233502538,27.3,0.525,22,0
|
516 |
+
3,99.0,54.0,19.0,86.0,25.6,0.154,24,0
|
517 |
+
3,163.0,70.0,18.0,105.0,31.6,0.268,28,1
|
518 |
+
9,145.0,88.0,34.0,165.0,30.3,0.771,53,1
|
519 |
+
7,125.0,86.0,29.153419593345657,155.5482233502538,37.6,0.304,51,0
|
520 |
+
13,76.0,60.0,29.153419593345657,155.5482233502538,32.8,0.18,41,0
|
521 |
+
6,129.0,90.0,7.0,326.0,19.6,0.582,60,0
|
522 |
+
2,68.0,70.0,32.0,66.0,25.0,0.187,25,0
|
523 |
+
3,124.0,80.0,33.0,130.0,33.2,0.305,26,0
|
524 |
+
6,114.0,72.40518417462484,29.153419593345657,155.5482233502538,32.457463672391015,0.189,26,0
|
525 |
+
9,130.0,70.0,29.153419593345657,155.5482233502538,34.2,0.652,45,1
|
526 |
+
3,125.0,58.0,29.153419593345657,155.5482233502538,31.6,0.151,24,0
|
527 |
+
3,87.0,60.0,18.0,155.5482233502538,21.8,0.444,21,0
|
528 |
+
1,97.0,64.0,19.0,82.0,18.2,0.299,21,0
|
529 |
+
3,116.0,74.0,15.0,105.0,26.3,0.107,24,0
|
530 |
+
0,117.0,66.0,31.0,188.0,30.8,0.493,22,0
|
531 |
+
0,111.0,65.0,29.153419593345657,155.5482233502538,24.6,0.66,31,0
|
532 |
+
2,122.0,60.0,18.0,106.0,29.8,0.717,22,0
|
533 |
+
0,107.0,76.0,29.153419593345657,155.5482233502538,45.3,0.686,24,0
|
534 |
+
1,86.0,66.0,52.0,65.0,41.3,0.917,29,0
|
535 |
+
6,91.0,72.40518417462484,29.153419593345657,155.5482233502538,29.8,0.501,31,0
|
536 |
+
1,77.0,56.0,30.0,56.0,33.3,1.251,24,0
|
537 |
+
4,132.0,72.40518417462484,29.153419593345657,155.5482233502538,32.9,0.302,23,1
|
538 |
+
0,105.0,90.0,29.153419593345657,155.5482233502538,29.6,0.197,46,0
|
539 |
+
0,57.0,60.0,29.153419593345657,155.5482233502538,21.7,0.735,67,0
|
540 |
+
0,127.0,80.0,37.0,210.0,36.3,0.804,23,0
|
541 |
+
3,129.0,92.0,49.0,155.0,36.4,0.968,32,1
|
542 |
+
8,100.0,74.0,40.0,215.0,39.4,0.661,43,1
|
543 |
+
3,128.0,72.0,25.0,190.0,32.4,0.549,27,1
|
544 |
+
10,90.0,85.0,32.0,155.5482233502538,34.9,0.825,56,1
|
545 |
+
4,84.0,90.0,23.0,56.0,39.5,0.159,25,0
|
546 |
+
1,88.0,78.0,29.0,76.0,32.0,0.365,29,0
|
547 |
+
8,186.0,90.0,35.0,225.0,34.5,0.423,37,1
|
548 |
+
5,187.0,76.0,27.0,207.0,43.6,1.034,53,1
|
549 |
+
4,131.0,68.0,21.0,166.0,33.1,0.16,28,0
|
550 |
+
1,164.0,82.0,43.0,67.0,32.8,0.341,50,0
|
551 |
+
4,189.0,110.0,31.0,155.5482233502538,28.5,0.68,37,0
|
552 |
+
1,116.0,70.0,28.0,155.5482233502538,27.4,0.204,21,0
|
553 |
+
3,84.0,68.0,30.0,106.0,31.9,0.591,25,0
|
554 |
+
6,114.0,88.0,29.153419593345657,155.5482233502538,27.8,0.247,66,0
|
555 |
+
1,88.0,62.0,24.0,44.0,29.9,0.422,23,0
|
556 |
+
1,84.0,64.0,23.0,115.0,36.9,0.471,28,0
|
557 |
+
7,124.0,70.0,33.0,215.0,25.5,0.161,37,0
|
558 |
+
1,97.0,70.0,40.0,155.5482233502538,38.1,0.218,30,0
|
559 |
+
8,110.0,76.0,29.153419593345657,155.5482233502538,27.8,0.237,58,0
|
560 |
+
11,103.0,68.0,40.0,155.5482233502538,46.2,0.126,42,0
|
561 |
+
11,85.0,74.0,29.153419593345657,155.5482233502538,30.1,0.3,35,0
|
562 |
+
6,125.0,76.0,29.153419593345657,155.5482233502538,33.8,0.121,54,1
|
563 |
+
0,198.0,66.0,32.0,274.0,41.3,0.502,28,1
|
564 |
+
1,87.0,68.0,34.0,77.0,37.6,0.401,24,0
|
565 |
+
6,99.0,60.0,19.0,54.0,26.9,0.497,32,0
|
566 |
+
0,91.0,80.0,29.153419593345657,155.5482233502538,32.4,0.601,27,0
|
567 |
+
2,95.0,54.0,14.0,88.0,26.1,0.748,22,0
|
568 |
+
1,99.0,72.0,30.0,18.0,38.6,0.412,21,0
|
569 |
+
6,92.0,62.0,32.0,126.0,32.0,0.085,46,0
|
570 |
+
4,154.0,72.0,29.0,126.0,31.3,0.338,37,0
|
571 |
+
0,121.0,66.0,30.0,165.0,34.3,0.203,33,1
|
572 |
+
3,78.0,70.0,29.153419593345657,155.5482233502538,32.5,0.27,39,0
|
573 |
+
2,130.0,96.0,29.153419593345657,155.5482233502538,22.6,0.268,21,0
|
574 |
+
3,111.0,58.0,31.0,44.0,29.5,0.43,22,0
|
575 |
+
2,98.0,60.0,17.0,120.0,34.7,0.198,22,0
|
576 |
+
1,143.0,86.0,30.0,330.0,30.1,0.892,23,0
|
577 |
+
1,119.0,44.0,47.0,63.0,35.5,0.28,25,0
|
578 |
+
6,108.0,44.0,20.0,130.0,24.0,0.813,35,0
|
579 |
+
2,118.0,80.0,29.153419593345657,155.5482233502538,42.9,0.693,21,1
|
580 |
+
10,133.0,68.0,29.153419593345657,155.5482233502538,27.0,0.245,36,0
|
581 |
+
2,197.0,70.0,99.0,155.5482233502538,34.7,0.575,62,1
|
582 |
+
0,151.0,90.0,46.0,155.5482233502538,42.1,0.371,21,1
|
583 |
+
6,109.0,60.0,27.0,155.5482233502538,25.0,0.206,27,0
|
584 |
+
12,121.0,78.0,17.0,155.5482233502538,26.5,0.259,62,0
|
585 |
+
8,100.0,76.0,29.153419593345657,155.5482233502538,38.7,0.19,42,0
|
586 |
+
8,124.0,76.0,24.0,600.0,28.7,0.687,52,1
|
587 |
+
1,93.0,56.0,11.0,155.5482233502538,22.5,0.417,22,0
|
588 |
+
8,143.0,66.0,29.153419593345657,155.5482233502538,34.9,0.129,41,1
|
589 |
+
6,103.0,66.0,29.153419593345657,155.5482233502538,24.3,0.249,29,0
|
590 |
+
3,176.0,86.0,27.0,156.0,33.3,1.154,52,1
|
591 |
+
0,73.0,72.40518417462484,29.153419593345657,155.5482233502538,21.1,0.342,25,0
|
592 |
+
11,111.0,84.0,40.0,155.5482233502538,46.8,0.925,45,1
|
593 |
+
2,112.0,78.0,50.0,140.0,39.4,0.175,24,0
|
594 |
+
3,132.0,80.0,29.153419593345657,155.5482233502538,34.4,0.402,44,1
|
595 |
+
2,82.0,52.0,22.0,115.0,28.5,1.699,25,0
|
596 |
+
6,123.0,72.0,45.0,230.0,33.6,0.733,34,0
|
597 |
+
0,188.0,82.0,14.0,185.0,32.0,0.682,22,1
|
598 |
+
0,67.0,76.0,29.153419593345657,155.5482233502538,45.3,0.194,46,0
|
599 |
+
1,89.0,24.0,19.0,25.0,27.8,0.559,21,0
|
600 |
+
1,173.0,74.0,29.153419593345657,155.5482233502538,36.8,0.088,38,1
|
601 |
+
1,109.0,38.0,18.0,120.0,23.1,0.407,26,0
|
602 |
+
1,108.0,88.0,19.0,155.5482233502538,27.1,0.4,24,0
|
603 |
+
6,96.0,72.40518417462484,29.153419593345657,155.5482233502538,23.7,0.19,28,0
|
604 |
+
1,124.0,74.0,36.0,155.5482233502538,27.8,0.1,30,0
|
605 |
+
7,150.0,78.0,29.0,126.0,35.2,0.692,54,1
|
606 |
+
4,183.0,72.40518417462484,29.153419593345657,155.5482233502538,28.4,0.212,36,1
|
607 |
+
1,124.0,60.0,32.0,155.5482233502538,35.8,0.514,21,0
|
608 |
+
1,181.0,78.0,42.0,293.0,40.0,1.258,22,1
|
609 |
+
1,92.0,62.0,25.0,41.0,19.5,0.482,25,0
|
610 |
+
0,152.0,82.0,39.0,272.0,41.5,0.27,27,0
|
611 |
+
1,111.0,62.0,13.0,182.0,24.0,0.138,23,0
|
612 |
+
3,106.0,54.0,21.0,158.0,30.9,0.292,24,0
|
613 |
+
3,174.0,58.0,22.0,194.0,32.9,0.593,36,1
|
614 |
+
7,168.0,88.0,42.0,321.0,38.2,0.787,40,1
|
615 |
+
6,105.0,80.0,28.0,155.5482233502538,32.5,0.878,26,0
|
616 |
+
11,138.0,74.0,26.0,144.0,36.1,0.557,50,1
|
617 |
+
3,106.0,72.0,29.153419593345657,155.5482233502538,25.8,0.207,27,0
|
618 |
+
6,117.0,96.0,29.153419593345657,155.5482233502538,28.7,0.157,30,0
|
619 |
+
2,68.0,62.0,13.0,15.0,20.1,0.257,23,0
|
620 |
+
9,112.0,82.0,24.0,155.5482233502538,28.2,1.282,50,1
|
621 |
+
0,119.0,72.40518417462484,29.153419593345657,155.5482233502538,32.4,0.141,24,1
|
622 |
+
2,112.0,86.0,42.0,160.0,38.4,0.246,28,0
|
623 |
+
2,92.0,76.0,20.0,155.5482233502538,24.2,1.698,28,0
|
624 |
+
6,183.0,94.0,29.153419593345657,155.5482233502538,40.8,1.461,45,0
|
625 |
+
0,94.0,70.0,27.0,115.0,43.5,0.347,21,0
|
626 |
+
2,108.0,64.0,29.153419593345657,155.5482233502538,30.8,0.158,21,0
|
627 |
+
4,90.0,88.0,47.0,54.0,37.7,0.362,29,0
|
628 |
+
0,125.0,68.0,29.153419593345657,155.5482233502538,24.7,0.206,21,0
|
629 |
+
0,132.0,78.0,29.153419593345657,155.5482233502538,32.4,0.393,21,0
|
630 |
+
5,128.0,80.0,29.153419593345657,155.5482233502538,34.6,0.144,45,0
|
631 |
+
4,94.0,65.0,22.0,155.5482233502538,24.7,0.148,21,0
|
632 |
+
7,114.0,64.0,29.153419593345657,155.5482233502538,27.4,0.732,34,1
|
633 |
+
0,102.0,78.0,40.0,90.0,34.5,0.238,24,0
|
634 |
+
2,111.0,60.0,29.153419593345657,155.5482233502538,26.2,0.343,23,0
|
635 |
+
1,128.0,82.0,17.0,183.0,27.5,0.115,22,0
|
636 |
+
10,92.0,62.0,29.153419593345657,155.5482233502538,25.9,0.167,31,0
|
637 |
+
13,104.0,72.0,29.153419593345657,155.5482233502538,31.2,0.465,38,1
|
638 |
+
5,104.0,74.0,29.153419593345657,155.5482233502538,28.8,0.153,48,0
|
639 |
+
2,94.0,76.0,18.0,66.0,31.6,0.649,23,0
|
640 |
+
7,97.0,76.0,32.0,91.0,40.9,0.871,32,1
|
641 |
+
1,100.0,74.0,12.0,46.0,19.5,0.149,28,0
|
642 |
+
0,102.0,86.0,17.0,105.0,29.3,0.695,27,0
|
643 |
+
4,128.0,70.0,29.153419593345657,155.5482233502538,34.3,0.303,24,0
|
644 |
+
6,147.0,80.0,29.153419593345657,155.5482233502538,29.5,0.178,50,1
|
645 |
+
4,90.0,72.40518417462484,29.153419593345657,155.5482233502538,28.0,0.61,31,0
|
646 |
+
3,103.0,72.0,30.0,152.0,27.6,0.73,27,0
|
647 |
+
2,157.0,74.0,35.0,440.0,39.4,0.134,30,0
|
648 |
+
1,167.0,74.0,17.0,144.0,23.4,0.447,33,1
|
649 |
+
0,179.0,50.0,36.0,159.0,37.8,0.455,22,1
|
650 |
+
11,136.0,84.0,35.0,130.0,28.3,0.26,42,1
|
651 |
+
0,107.0,60.0,25.0,155.5482233502538,26.4,0.133,23,0
|
652 |
+
1,91.0,54.0,25.0,100.0,25.2,0.234,23,0
|
653 |
+
1,117.0,60.0,23.0,106.0,33.8,0.466,27,0
|
654 |
+
5,123.0,74.0,40.0,77.0,34.1,0.269,28,0
|
655 |
+
2,120.0,54.0,29.153419593345657,155.5482233502538,26.8,0.455,27,0
|
656 |
+
1,106.0,70.0,28.0,135.0,34.2,0.142,22,0
|
657 |
+
2,155.0,52.0,27.0,540.0,38.7,0.24,25,1
|
658 |
+
2,101.0,58.0,35.0,90.0,21.8,0.155,22,0
|
659 |
+
1,120.0,80.0,48.0,200.0,38.9,1.162,41,0
|
660 |
+
11,127.0,106.0,29.153419593345657,155.5482233502538,39.0,0.19,51,0
|
661 |
+
3,80.0,82.0,31.0,70.0,34.2,1.292,27,1
|
662 |
+
10,162.0,84.0,29.153419593345657,155.5482233502538,27.7,0.182,54,0
|
663 |
+
1,199.0,76.0,43.0,155.5482233502538,42.9,1.394,22,1
|
664 |
+
8,167.0,106.0,46.0,231.0,37.6,0.165,43,1
|
665 |
+
9,145.0,80.0,46.0,130.0,37.9,0.637,40,1
|
666 |
+
6,115.0,60.0,39.0,155.5482233502538,33.7,0.245,40,1
|
667 |
+
1,112.0,80.0,45.0,132.0,34.8,0.217,24,0
|
668 |
+
4,145.0,82.0,18.0,155.5482233502538,32.5,0.235,70,1
|
669 |
+
10,111.0,70.0,27.0,155.5482233502538,27.5,0.141,40,1
|
670 |
+
6,98.0,58.0,33.0,190.0,34.0,0.43,43,0
|
671 |
+
9,154.0,78.0,30.0,100.0,30.9,0.164,45,0
|
672 |
+
6,165.0,68.0,26.0,168.0,33.6,0.631,49,0
|
673 |
+
1,99.0,58.0,10.0,155.5482233502538,25.4,0.551,21,0
|
674 |
+
10,68.0,106.0,23.0,49.0,35.5,0.285,47,0
|
675 |
+
3,123.0,100.0,35.0,240.0,57.3,0.88,22,0
|
676 |
+
8,91.0,82.0,29.153419593345657,155.5482233502538,35.6,0.587,68,0
|
677 |
+
6,195.0,70.0,29.153419593345657,155.5482233502538,30.9,0.328,31,1
|
678 |
+
9,156.0,86.0,29.153419593345657,155.5482233502538,24.8,0.23,53,1
|
679 |
+
0,93.0,60.0,29.153419593345657,155.5482233502538,35.3,0.263,25,0
|
680 |
+
3,121.0,52.0,29.153419593345657,155.5482233502538,36.0,0.127,25,1
|
681 |
+
2,101.0,58.0,17.0,265.0,24.2,0.614,23,0
|
682 |
+
2,56.0,56.0,28.0,45.0,24.2,0.332,22,0
|
683 |
+
0,162.0,76.0,36.0,155.5482233502538,49.6,0.364,26,1
|
684 |
+
0,95.0,64.0,39.0,105.0,44.6,0.366,22,0
|
685 |
+
4,125.0,80.0,29.153419593345657,155.5482233502538,32.3,0.536,27,1
|
686 |
+
5,136.0,82.0,29.153419593345657,155.5482233502538,32.457463672391015,0.64,69,0
|
687 |
+
2,129.0,74.0,26.0,205.0,33.2,0.591,25,0
|
688 |
+
3,130.0,64.0,29.153419593345657,155.5482233502538,23.1,0.314,22,0
|
689 |
+
1,107.0,50.0,19.0,155.5482233502538,28.3,0.181,29,0
|
690 |
+
1,140.0,74.0,26.0,180.0,24.1,0.828,23,0
|
691 |
+
1,144.0,82.0,46.0,180.0,46.1,0.335,46,1
|
692 |
+
8,107.0,80.0,29.153419593345657,155.5482233502538,24.6,0.856,34,0
|
693 |
+
13,158.0,114.0,29.153419593345657,155.5482233502538,42.3,0.257,44,1
|
694 |
+
2,121.0,70.0,32.0,95.0,39.1,0.886,23,0
|
695 |
+
7,129.0,68.0,49.0,125.0,38.5,0.439,43,1
|
696 |
+
2,90.0,60.0,29.153419593345657,155.5482233502538,23.5,0.191,25,0
|
697 |
+
7,142.0,90.0,24.0,480.0,30.4,0.128,43,1
|
698 |
+
3,169.0,74.0,19.0,125.0,29.9,0.268,31,1
|
699 |
+
0,99.0,72.40518417462484,29.153419593345657,155.5482233502538,25.0,0.253,22,0
|
700 |
+
4,127.0,88.0,11.0,155.0,34.5,0.598,28,0
|
701 |
+
4,118.0,70.0,29.153419593345657,155.5482233502538,44.5,0.904,26,0
|
702 |
+
2,122.0,76.0,27.0,200.0,35.9,0.483,26,0
|
703 |
+
6,125.0,78.0,31.0,155.5482233502538,27.6,0.565,49,1
|
704 |
+
1,168.0,88.0,29.0,155.5482233502538,35.0,0.905,52,1
|
705 |
+
2,129.0,72.40518417462484,29.153419593345657,155.5482233502538,38.5,0.304,41,0
|
706 |
+
4,110.0,76.0,20.0,100.0,28.4,0.118,27,0
|
707 |
+
6,80.0,80.0,36.0,155.5482233502538,39.8,0.177,28,0
|
708 |
+
10,115.0,72.40518417462484,29.153419593345657,155.5482233502538,32.457463672391015,0.261,30,1
|
709 |
+
2,127.0,46.0,21.0,335.0,34.4,0.176,22,0
|
710 |
+
9,164.0,78.0,29.153419593345657,155.5482233502538,32.8,0.148,45,1
|
711 |
+
2,93.0,64.0,32.0,160.0,38.0,0.674,23,1
|
712 |
+
3,158.0,64.0,13.0,387.0,31.2,0.295,24,0
|
713 |
+
5,126.0,78.0,27.0,22.0,29.6,0.439,40,0
|
714 |
+
10,129.0,62.0,36.0,155.5482233502538,41.2,0.441,38,1
|
715 |
+
0,134.0,58.0,20.0,291.0,26.4,0.352,21,0
|
716 |
+
3,102.0,74.0,29.153419593345657,155.5482233502538,29.5,0.121,32,0
|
717 |
+
7,187.0,50.0,33.0,392.0,33.9,0.826,34,1
|
718 |
+
3,173.0,78.0,39.0,185.0,33.8,0.97,31,1
|
719 |
+
10,94.0,72.0,18.0,155.5482233502538,23.1,0.595,56,0
|
720 |
+
1,108.0,60.0,46.0,178.0,35.5,0.415,24,0
|
721 |
+
5,97.0,76.0,27.0,155.5482233502538,35.6,0.378,52,1
|
722 |
+
4,83.0,86.0,19.0,155.5482233502538,29.3,0.317,34,0
|
723 |
+
1,114.0,66.0,36.0,200.0,38.1,0.289,21,0
|
724 |
+
1,149.0,68.0,29.0,127.0,29.3,0.349,42,1
|
725 |
+
5,117.0,86.0,30.0,105.0,39.1,0.251,42,0
|
726 |
+
1,111.0,94.0,29.153419593345657,155.5482233502538,32.8,0.265,45,0
|
727 |
+
4,112.0,78.0,40.0,155.5482233502538,39.4,0.236,38,0
|
728 |
+
1,116.0,78.0,29.0,180.0,36.1,0.496,25,0
|
729 |
+
0,141.0,84.0,26.0,155.5482233502538,32.4,0.433,22,0
|
730 |
+
2,175.0,88.0,29.153419593345657,155.5482233502538,22.9,0.326,22,0
|
731 |
+
2,92.0,52.0,29.153419593345657,155.5482233502538,30.1,0.141,22,0
|
732 |
+
3,130.0,78.0,23.0,79.0,28.4,0.323,34,1
|
733 |
+
8,120.0,86.0,29.153419593345657,155.5482233502538,28.4,0.259,22,1
|
734 |
+
2,174.0,88.0,37.0,120.0,44.5,0.646,24,1
|
735 |
+
2,106.0,56.0,27.0,165.0,29.0,0.426,22,0
|
736 |
+
2,105.0,75.0,29.153419593345657,155.5482233502538,23.3,0.56,53,0
|
737 |
+
4,95.0,60.0,32.0,155.5482233502538,35.4,0.284,28,0
|
738 |
+
0,126.0,86.0,27.0,120.0,27.4,0.515,21,0
|
739 |
+
8,65.0,72.0,23.0,155.5482233502538,32.0,0.6,42,0
|
740 |
+
2,99.0,60.0,17.0,160.0,36.6,0.453,21,0
|
741 |
+
1,102.0,74.0,29.153419593345657,155.5482233502538,39.5,0.293,42,1
|
742 |
+
11,120.0,80.0,37.0,150.0,42.3,0.785,48,1
|
743 |
+
3,102.0,44.0,20.0,94.0,30.8,0.4,26,0
|
744 |
+
1,109.0,58.0,18.0,116.0,28.5,0.219,22,0
|
745 |
+
9,140.0,94.0,29.153419593345657,155.5482233502538,32.7,0.734,45,1
|
746 |
+
13,153.0,88.0,37.0,140.0,40.6,1.174,39,0
|
747 |
+
12,100.0,84.0,33.0,105.0,30.0,0.488,46,0
|
748 |
+
1,147.0,94.0,41.0,155.5482233502538,49.3,0.358,27,1
|
749 |
+
1,81.0,74.0,41.0,57.0,46.3,1.096,32,0
|
750 |
+
3,187.0,70.0,22.0,200.0,36.4,0.408,36,1
|
751 |
+
6,162.0,62.0,29.153419593345657,155.5482233502538,24.3,0.178,50,1
|
752 |
+
4,136.0,70.0,29.153419593345657,155.5482233502538,31.2,1.182,22,1
|
753 |
+
1,121.0,78.0,39.0,74.0,39.0,0.261,28,0
|
754 |
+
3,108.0,62.0,24.0,155.5482233502538,26.0,0.223,25,0
|
755 |
+
0,181.0,88.0,44.0,510.0,43.3,0.222,26,1
|
756 |
+
8,154.0,78.0,32.0,155.5482233502538,32.4,0.443,45,1
|
757 |
+
1,128.0,88.0,39.0,110.0,36.5,1.057,37,1
|
758 |
+
7,137.0,90.0,41.0,155.5482233502538,32.0,0.391,39,0
|
759 |
+
0,123.0,72.0,29.153419593345657,155.5482233502538,36.3,0.258,52,1
|
760 |
+
1,106.0,76.0,29.153419593345657,155.5482233502538,37.5,0.197,26,0
|
761 |
+
6,190.0,92.0,29.153419593345657,155.5482233502538,35.5,0.278,66,1
|
762 |
+
2,88.0,58.0,26.0,16.0,28.4,0.766,22,0
|
763 |
+
9,170.0,74.0,31.0,155.5482233502538,44.0,0.403,43,1
|
764 |
+
9,89.0,62.0,29.153419593345657,155.5482233502538,22.5,0.142,33,0
|
765 |
+
10,101.0,76.0,48.0,180.0,32.9,0.171,63,0
|
766 |
+
2,122.0,70.0,27.0,155.5482233502538,36.8,0.34,27,0
|
767 |
+
5,121.0,72.0,23.0,112.0,26.2,0.245,30,0
|
768 |
+
1,126.0,60.0,29.153419593345657,155.5482233502538,30.1,0.349,47,1
|
769 |
+
1,93.0,70.0,31.0,155.5482233502538,30.4,0.315,23,0
|
data/scaled_data.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
glycemic_risk_assesment.egg-info/PKG-INFO
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Metadata-Version: 2.2
|
2 |
+
Name: glycemic-risk-assesment
|
3 |
+
Version: 0.1.0
|
4 |
+
Summary: glycemic risk assesment personal assistant
|
5 |
+
Author: shaik maazuddin
|
6 |
+
Author-email: [email protected]
|
7 |
+
Dynamic: author
|
8 |
+
Dynamic: author-email
|
9 |
+
Dynamic: summary
|
glycemic_risk_assesment.egg-info/SOURCES.txt
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
setup.py
|
2 |
+
glycemic_risk_assesment.egg-info/PKG-INFO
|
3 |
+
glycemic_risk_assesment.egg-info/SOURCES.txt
|
4 |
+
glycemic_risk_assesment.egg-info/dependency_links.txt
|
5 |
+
glycemic_risk_assesment.egg-info/top_level.txt
|
6 |
+
src/__init__.py
|
7 |
+
tests/tests.py
|
glycemic_risk_assesment.egg-info/dependency_links.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
|
glycemic_risk_assesment.egg-info/top_level.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
src
|
notebook/Diabetes_prediction_model.ipynb
ADDED
The diff for this file is too large to render.
See raw diff
|
|
requirements.txt
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Core packages
|
2 |
+
pandas==2.1.1
|
3 |
+
numpy==1.23.5
|
4 |
+
scikit-learn==1.3.0
|
5 |
+
flask==3.0.0
|
6 |
+
|
7 |
+
scipy==1.11.3
|
8 |
+
joblib==1.3.2
|
9 |
+
# Visualization
|
10 |
+
plotly==5.15.0
|
11 |
+
seaborn==0.12.2
|
12 |
+
matplotlib==3.8.0
|
13 |
+
# Dev and Utilities
|
14 |
+
ipython==8.12.0
|
15 |
+
jupyterlab==4.0.6
|
16 |
+
pytest==7.4.2
|
17 |
+
black==23.9.1
|
18 |
+
flake8==6.1.0
|
19 |
+
# Serialization
|
20 |
+
pickle-mixin==1.0.2
|
21 |
+
# Web App Utilities
|
22 |
+
gunicorn==21.2.0
|
23 |
+
# Environment Management
|
24 |
+
python-dotenv==1.0.0
|
25 |
+
openai==0.27.0
|
setup.py
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from setuptools import setup, find_packages
|
2 |
+
|
3 |
+
setup(
|
4 |
+
name="glycemic risk assesment",
|
5 |
+
version="0.1.0",
|
6 |
+
description="glycemic risk assesment personal assistant",
|
7 |
+
author="shaik maazuddin",
|
8 |
+
author_email="[email protected]",
|
9 |
+
packages=find_packages(), # Automatically discover all packages and sub-packages
|
10 |
+
|
11 |
+
)
|
src/__init__.py
ADDED
File without changes
|
src/__pycache__/__init__.cpython-311.pyc
ADDED
Binary file (164 Bytes). View file
|
|
src/app/app.py
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from flask import Flask, request, render_template
|
2 |
+
from src.scripts.prediction import PredictionModel
|
3 |
+
from src.scripts.health_recommendations import HealthRecommendations
|
4 |
+
|
5 |
+
app = Flask(__name__, template_folder='../templates')
|
6 |
+
|
7 |
+
# Define paths for model and scaler based on your directory structure
|
8 |
+
MODEL_PATH = "src/models/svm_model.pkl"
|
9 |
+
SCALER_PATH = "src/models/scaler.pkl"
|
10 |
+
|
11 |
+
# Define feature columns
|
12 |
+
FEATURE_COLUMNS = [
|
13 |
+
'Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness',
|
14 |
+
'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age'
|
15 |
+
]
|
16 |
+
|
17 |
+
# Initialize components
|
18 |
+
try:
|
19 |
+
predictor = PredictionModel(MODEL_PATH, SCALER_PATH)
|
20 |
+
health_advisor = HealthRecommendations()
|
21 |
+
except Exception as e:
|
22 |
+
print(f"Error initializing components: {e}")
|
23 |
+
raise
|
24 |
+
|
25 |
+
|
26 |
+
@app.route('/', methods=['GET', 'POST'])
|
27 |
+
def home():
|
28 |
+
# For GET requests, render an empty form
|
29 |
+
if request.method == 'GET':
|
30 |
+
return render_template('index.html')
|
31 |
+
|
32 |
+
# For POST requests, handle the form submission
|
33 |
+
elif request.method == 'POST':
|
34 |
+
try:
|
35 |
+
# Collect form data
|
36 |
+
features = []
|
37 |
+
form_data = {}
|
38 |
+
|
39 |
+
for field in FEATURE_COLUMNS:
|
40 |
+
value = request.form.get(field)
|
41 |
+
if not value:
|
42 |
+
raise ValueError(f"Missing required field: {field}")
|
43 |
+
features.append(float(value))
|
44 |
+
form_data[field] = value
|
45 |
+
|
46 |
+
# Generate prediction
|
47 |
+
prediction_result = predictor.predict(features, FEATURE_COLUMNS)
|
48 |
+
if not prediction_result:
|
49 |
+
raise ValueError("Failed to generate prediction")
|
50 |
+
|
51 |
+
# Format prediction for health recommendations
|
52 |
+
health_prediction = {
|
53 |
+
'is_diabetic': bool(prediction_result['prediction']),
|
54 |
+
'probability': prediction_result['probability']
|
55 |
+
}
|
56 |
+
|
57 |
+
# Get health recommendations from Gemini API
|
58 |
+
recommendations = health_advisor.get_recommendations(
|
59 |
+
patient_data={
|
60 |
+
'Glucose': form_data['Glucose'],
|
61 |
+
'BloodPressure': form_data['BloodPressure'],
|
62 |
+
'BMI': form_data['BMI'],
|
63 |
+
'Age': form_data['Age']
|
64 |
+
},
|
65 |
+
prediction=health_prediction
|
66 |
+
)
|
67 |
+
|
68 |
+
# Prepare result message
|
69 |
+
if health_prediction['is_diabetic']:
|
70 |
+
result = f"Based on the analysis, this person is likely diabetic (Confidence: {health_prediction['probability']*100:.1f}%)"
|
71 |
+
else:
|
72 |
+
result = f"Based on the analysis, this person is not likely diabetic (Confidence: {(1-health_prediction['probability'])*100:.1f}%)"
|
73 |
+
|
74 |
+
# Render the page with results
|
75 |
+
return render_template(
|
76 |
+
'index.html',
|
77 |
+
result=result,
|
78 |
+
suggestions=recommendations,
|
79 |
+
input_data=form_data
|
80 |
+
)
|
81 |
+
|
82 |
+
except ValueError as ve:
|
83 |
+
# Handle missing or invalid data
|
84 |
+
return render_template('index.html', error=str(ve))
|
85 |
+
except Exception as e:
|
86 |
+
print(f"Error in prediction or recommendation generation: {e}")
|
87 |
+
return render_template('index.html', error="An unexpected error occurred during prediction.")
|
88 |
+
|
89 |
+
|
90 |
+
@app.errorhandler(404)
|
91 |
+
def not_found_error(error):
|
92 |
+
return render_template('index.html', error="Page not found"), 404
|
93 |
+
|
94 |
+
|
95 |
+
@app.errorhandler(500)
|
96 |
+
def internal_error(error):
|
97 |
+
return render_template('index.html', error="Internal server error occurred."), 500
|
98 |
+
|
99 |
+
|
100 |
+
if __name__ == '__main__':
|
101 |
+
app.run(debug=True)
|
src/models/scaler.pkl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:bd4df18aec5c934e98f9b0d7f4b7877b8cd8893ec29fb2d23612641d06952146
|
3 |
+
size 833
|
src/models/svm_model.pkl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:cf0a4ec01a7fd6a82a2e883e491d8d7cd7a67c0e5b081dbb94cd6f55fec43295
|
3 |
+
size 27930
|
src/scripts/__pycache__/data_preprocessing.cpython-311.pyc
ADDED
Binary file (2.59 kB). View file
|
|
src/scripts/__pycache__/health_recommendations.cpython-311.pyc
ADDED
Binary file (7.26 kB). View file
|
|
src/scripts/__pycache__/prediction.cpython-311.pyc
ADDED
Binary file (2.91 kB). View file
|
|
src/scripts/data_preprocessing.py
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import numpy as np
|
3 |
+
from sklearn.preprocessing import StandardScaler
|
4 |
+
import os
|
5 |
+
import pickle
|
6 |
+
|
7 |
+
class DataPreprocessor:
|
8 |
+
def __init__(self):
|
9 |
+
self.scaler = StandardScaler()
|
10 |
+
|
11 |
+
def load_data(self, filepath):
|
12 |
+
"""Load and return the dataset"""
|
13 |
+
if not os.path.exists(filepath):
|
14 |
+
raise FileNotFoundError(f"The file at {filepath} does not exist.")
|
15 |
+
df = pd.read_csv(filepath)
|
16 |
+
print("Data loaded successfully.")
|
17 |
+
return df
|
18 |
+
|
19 |
+
def preprocess_data(self, df):
|
20 |
+
"""Preprocess the data by handling missing values"""
|
21 |
+
# Handle missing values (zeros)
|
22 |
+
features_to_process = ['Glucose', 'BloodPressure', 'SkinThickness', 'BMI', 'Insulin']
|
23 |
+
for feature in features_to_process:
|
24 |
+
mean_value = df[feature].replace(0, np.nan).mean()
|
25 |
+
df[feature] = df[feature].replace(0, mean_value)
|
26 |
+
|
27 |
+
print("Missing values handled.")
|
28 |
+
return df
|
29 |
+
|
30 |
+
def split_data(self, df):
|
31 |
+
"""Split data into features and target"""
|
32 |
+
features = df.drop('Outcome', axis=1)
|
33 |
+
target = df['Outcome']
|
34 |
+
return features, target
|
35 |
+
|
36 |
+
def scale_features(self, features, is_training=False):
|
37 |
+
"""Scale features using StandardScaler"""
|
38 |
+
if is_training:
|
39 |
+
scaled_features = self.scaler.fit_transform(features)
|
40 |
+
# Save the scaler for future use
|
41 |
+
model_dir = "src/models"
|
42 |
+
os.makedirs(model_dir, exist_ok=True)
|
43 |
+
# Save the scaler as a pickle file
|
44 |
+
with open(f"{model_dir}/scaler.pkl", 'wb') as f:
|
45 |
+
pickle.dump(self.scaler, f)
|
46 |
+
# Save the scaled data as a CSV file
|
47 |
+
scaled_df = pd.DataFrame(scaled_features, columns=features.columns)
|
48 |
+
scaled_df['Outcome'] = df['Outcome'] # Add the Outcome column back
|
49 |
+
scaled_csv_path = "data/scaled_data.csv"
|
50 |
+
scaled_df.to_csv(scaled_csv_path, index=False)
|
51 |
+
print("Scaled data saved as csv file.")
|
52 |
+
else:
|
53 |
+
scaled_features = self.scaler.transform(features)
|
54 |
+
|
55 |
+
return scaled_features
|
56 |
+
|
57 |
+
|
58 |
+
if __name__ == "__main__":
|
59 |
+
preprocessor = DataPreprocessor()
|
60 |
+
|
61 |
+
# Load and preprocess data
|
62 |
+
df = preprocessor.load_data("data/preprocessed_data.csv")
|
63 |
+
df = preprocessor.preprocess_data(df)
|
64 |
+
|
65 |
+
# Split data into features and target
|
66 |
+
features, target = preprocessor.split_data(df)
|
67 |
+
|
68 |
+
# Scale features (Training phase)
|
69 |
+
scaled_features = preprocessor.scale_features(features, is_training=True)
|
70 |
+
|
71 |
+
print("Data preprocessing completed.")
|
src/scripts/health_recommendations.py
ADDED
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Dict, List
|
2 |
+
import os
|
3 |
+
import google.generativeai as genai
|
4 |
+
import re
|
5 |
+
|
6 |
+
class HealthRecommendations:
|
7 |
+
def __init__(self):
|
8 |
+
# Configure Google GenAI
|
9 |
+
api_key = os.getenv('AIzaSyAdCzdbvGIWIDfVdZre1n-10SIBf9bgcVk') # Fetch from environment variable
|
10 |
+
genai.configure(api_key='AIzaSyAdCzdbvGIWIDfVdZre1n-10SIBf9bgcVk')
|
11 |
+
|
12 |
+
def get_recommendations(self, patient_data: Dict, prediction: Dict) -> Dict[str, List[str]]:
|
13 |
+
"""Generate personalized health recommendations based on patient data and prediction"""
|
14 |
+
|
15 |
+
# Create a prompt for the LLM
|
16 |
+
prompt = self._create_prompt(patient_data, prediction)
|
17 |
+
|
18 |
+
try:
|
19 |
+
print("Generated prompt:", prompt) # Debugging: Check the prompt
|
20 |
+
|
21 |
+
model = genai.GenerativeModel("gemini-1.5-flash")
|
22 |
+
print("Model initialized successfully") # Debugging
|
23 |
+
|
24 |
+
response = model.generate_content(
|
25 |
+
contents=[{"parts": [{"text": prompt}]}],
|
26 |
+
generation_config=genai.types.GenerationConfig(temperature=0.7, max_output_tokens=500)
|
27 |
+
)
|
28 |
+
|
29 |
+
print("Response from API:", response) # Debugging: Check the response
|
30 |
+
|
31 |
+
if response.candidates and response.candidates[0].content.parts: # Check if response and parts exist
|
32 |
+
response_text = response.candidates[0].content.parts[0].text
|
33 |
+
recommendations = self._parse_recommendations(response_text)
|
34 |
+
return recommendations
|
35 |
+
else:
|
36 |
+
print("Unexpected response format from the API.")
|
37 |
+
return self._get_fallback_recommendations(prediction['is_diabetic'])
|
38 |
+
|
39 |
+
except Exception as e:
|
40 |
+
print(f"Error generating recommendations: {e}")
|
41 |
+
return self._get_fallback_recommendations(prediction['is_diabetic'])
|
42 |
+
|
43 |
+
def _create_prompt(self, patient_data: Dict, prediction: Dict) -> str:
|
44 |
+
"""Create a prompt for the LLM based on patient data"""
|
45 |
+
risk_level = "high" if prediction['probability'] > 0.7 else "moderate" if prediction['probability'] > 0.3 else "low"
|
46 |
+
|
47 |
+
prompt = f"""
|
48 |
+
Based on the following patient data:
|
49 |
+
- Glucose Level: {patient_data['Glucose']}
|
50 |
+
- Blood Pressure: {patient_data['BloodPressure']}
|
51 |
+
- BMI: {patient_data['BMI']}
|
52 |
+
- Age: {patient_data['Age']}
|
53 |
+
- Diabetes Risk Level: {risk_level}
|
54 |
+
|
55 |
+
Please provide specific recommendations in the following categories:
|
56 |
+
1. Diet and Nutrition
|
57 |
+
2. Physical Activity
|
58 |
+
3. Lifestyle Changes
|
59 |
+
4. Monitoring and Prevention
|
60 |
+
|
61 |
+
Make the recommendations specific to this patient's condition and risk level.
|
62 |
+
"""
|
63 |
+
return prompt
|
64 |
+
|
65 |
+
def _parse_recommendations(self, response: str) -> Dict[str, List[str]]:
|
66 |
+
"""Parse the LLM response into structured recommendations and remove all asterisks."""
|
67 |
+
|
68 |
+
# Categories we expect in the response
|
69 |
+
categories = ['Diet and Nutrition', 'Physical Activity', 'Lifestyle Changes', 'Monitoring and Prevention']
|
70 |
+
recommendations = {category: [] for category in categories}
|
71 |
+
|
72 |
+
# Assuming the text is extracted from the API response
|
73 |
+
api_response_text = response # This would be the text from the API, adjust based on the actual response structure
|
74 |
+
|
75 |
+
# Regex patterns to match categories and extract their associated recommendations
|
76 |
+
current_category = None
|
77 |
+
lines = api_response_text.split("\n")
|
78 |
+
|
79 |
+
for line in lines:
|
80 |
+
line = line.strip()
|
81 |
+
|
82 |
+
# Check if the line is a category
|
83 |
+
if any(category in line for category in categories):
|
84 |
+
for category in categories:
|
85 |
+
if category in line:
|
86 |
+
current_category = category
|
87 |
+
break
|
88 |
+
elif line and current_category:
|
89 |
+
# Remove all asterisks from the line
|
90 |
+
cleaned_line = re.sub(r'\*+', '', line).strip() # Remove all asterisks and leading/trailing spaces
|
91 |
+
if cleaned_line: # Add only non-empty lines
|
92 |
+
recommendations[current_category].append(cleaned_line)
|
93 |
+
|
94 |
+
return recommendations
|
95 |
+
|
96 |
+
def _get_fallback_recommendations(self, is_diabetic: bool) -> Dict[str, List[str]]:
|
97 |
+
"""Provide fallback recommendations if API call fails"""
|
98 |
+
if is_diabetic:
|
99 |
+
return {
|
100 |
+
'1.Diet and Nutrition': [
|
101 |
+
'Monitor carbohydrate intake and follow a balanced diet',
|
102 |
+
'Eat plenty of vegetables and whole grains',
|
103 |
+
'Limit sugary foods and beverages'
|
104 |
+
],
|
105 |
+
'Physical Activity': [
|
106 |
+
'Aim for 150 minutes of moderate exercise per week',
|
107 |
+
'Include both aerobic and strength training exercises',
|
108 |
+
'Take regular walking breaks during the day'
|
109 |
+
],
|
110 |
+
'Lifestyle Changes': [
|
111 |
+
'Monitor blood sugar regularly',
|
112 |
+
'Maintain a healthy sleep schedule',
|
113 |
+
'Manage stress through relaxation techniques'
|
114 |
+
],
|
115 |
+
'Monitoring and Prevention': [
|
116 |
+
'Regular check-ups with healthcare provider',
|
117 |
+
'Keep track of blood sugar levels',
|
118 |
+
'Monitor blood pressure and weight.1'
|
119 |
+
]
|
120 |
+
}
|
121 |
+
else:
|
122 |
+
return {
|
123 |
+
'2.Diet and Nutrition': [
|
124 |
+
'Follow a balanced diet rich in whole foods',
|
125 |
+
'Limit processed foods and added sugars',
|
126 |
+
'Stay hydrated with water'
|
127 |
+
],
|
128 |
+
'Physical Activity': [
|
129 |
+
'Regular exercise for 30 minutes daily',
|
130 |
+
'Include variety in your workout routine',
|
131 |
+
'Stay active throughout the day'
|
132 |
+
],
|
133 |
+
'Lifestyle Changes': [
|
134 |
+
'Maintain a healthy weight',
|
135 |
+
'Get adequate sleep',
|
136 |
+
'Practice stress management'
|
137 |
+
],
|
138 |
+
'Monitoring and Prevention': [
|
139 |
+
'Regular health check-ups',
|
140 |
+
'Annual blood sugar screening',
|
141 |
+
'Monitor weight and blood pressure.2'
|
142 |
+
]
|
143 |
+
}
|
144 |
+
|
src/scripts/model_training.py
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from sklearn.model_selection import train_test_split
|
2 |
+
from sklearn.svm import SVC
|
3 |
+
import pandas as pd
|
4 |
+
import pickle
|
5 |
+
import os
|
6 |
+
|
7 |
+
class ModelTrainer:
|
8 |
+
def __init__(self):
|
9 |
+
self.model = None
|
10 |
+
|
11 |
+
def train_model(self, data_path):
|
12 |
+
"""Train the SVM model with the provided dataset"""
|
13 |
+
if not os.path.exists(data_path):
|
14 |
+
raise FileNotFoundError(f"The data file at {data_path} does not exist.")
|
15 |
+
|
16 |
+
# Load and preprocess data
|
17 |
+
df = pd.read_csv(data_path)
|
18 |
+
X = df.drop(columns=['Outcome'])
|
19 |
+
y = df['Outcome']
|
20 |
+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=56)
|
21 |
+
|
22 |
+
# Train the SVM model
|
23 |
+
print("Training the SVM model...")
|
24 |
+
self.model = SVC(C=1, kernel='linear', probability=True)
|
25 |
+
self.model.fit(X_train, y_train)
|
26 |
+
print("Model training completed.")
|
27 |
+
|
28 |
+
# Save the model
|
29 |
+
model_dir = "src/models"
|
30 |
+
os.makedirs(model_dir, exist_ok=True)
|
31 |
+
with open(f"{model_dir}/svm_model.pkl", 'wb') as f:
|
32 |
+
pickle.dump(self.model, f)
|
33 |
+
print("Model saved successfully.")
|
34 |
+
|
35 |
+
#def load_model(self):
|
36 |
+
|
37 |
+
if __name__ == "__main__":
|
38 |
+
trainer = ModelTrainer()
|
39 |
+
trainer.train_model("data/scaled_data.csv")
|
40 |
+
print("Model training completed.") # This line is added to the original script
|
src/scripts/prediction.py
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import pickle
|
3 |
+
|
4 |
+
class PredictionModel:
|
5 |
+
def __init__(self, model_path, scaler_path):
|
6 |
+
# Load the trained model
|
7 |
+
with open(model_path, 'rb') as model_file:
|
8 |
+
self.model = pickle.load(model_file)
|
9 |
+
|
10 |
+
# Load the scaler
|
11 |
+
with open(scaler_path, 'rb') as scaler_file:
|
12 |
+
self.scaler = pickle.load(scaler_file)
|
13 |
+
|
14 |
+
def predict(self, features, feature_columns):
|
15 |
+
try:
|
16 |
+
# Convert features to DataFrame with proper column names
|
17 |
+
features_df = pd.DataFrame([features], columns=feature_columns)
|
18 |
+
# Scale features using the scaler
|
19 |
+
scaled_features = self.scaler.transform(features_df) # Make sure features_df has the correct column names
|
20 |
+
scaled_features = pd.DataFrame(scaled_features, columns=feature_columns)
|
21 |
+
|
22 |
+
# Make predictions
|
23 |
+
prediction = self.model.predict(scaled_features)
|
24 |
+
probability = self.model.predict_proba(scaled_features)[0][1]
|
25 |
+
|
26 |
+
return {
|
27 |
+
"prediction": int(prediction[0]),
|
28 |
+
"probability": probability
|
29 |
+
}
|
30 |
+
except Exception as e:
|
31 |
+
print(f"Error during prediction: {e}")
|
32 |
+
return None
|
33 |
+
|
34 |
+
# Example usage
|
35 |
+
if __name__ == "__main__":
|
36 |
+
model_path = "src/models/svm_model.pkl" # Path to the trained model
|
37 |
+
scaler_path = "src/models/scaler.pkl" # Path to the saved scaler
|
38 |
+
|
39 |
+
# Example input features (they should match the training data structure)
|
40 |
+
feature_columns = ['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness',
|
41 |
+
'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age']
|
42 |
+
|
43 |
+
input_features = [6,148.0,72.0,35.0,155.5482233502538,33.6,0.627,50] # Replace with actual input
|
44 |
+
|
45 |
+
predictor = PredictionModel(model_path, scaler_path)
|
46 |
+
result = predictor.predict(input_features, feature_columns)
|
47 |
+
|
48 |
+
if result:
|
49 |
+
print(f"Prediction: {result['prediction']}, Probability: {result['probability']}")
|
src/scripts/temp
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import sys
|
3 |
+
# Add the project root directory to sys.path
|
4 |
+
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../"))
|
5 |
+
sys.path.append(project_root)
|
6 |
+
import google.generativeai as genai
|
7 |
+
|
8 |
+
from flask import Flask, request, jsonify, render_template
|
9 |
+
from src.scripts.data_preprocessing import DataPreprocessor
|
10 |
+
from src.scripts.prediction import DiabetesPrediction
|
11 |
+
|
12 |
+
class HealthRecommendations:
|
13 |
+
def __init__(self, api_key):
|
14 |
+
# Configure Google GenAI
|
15 |
+
genai.configure(api_key=api_key)
|
16 |
+
# For this example, we'll use the gemini-pro model
|
17 |
+
self.model = genai.GenerativeModel('gemini-pro')
|
18 |
+
|
19 |
+
def get_recommendations(self, patient_data, prediction):
|
20 |
+
# Create a prompt for the model
|
21 |
+
prompt = f"""
|
22 |
+
Given the following patient data:
|
23 |
+
- Glucose level: {patient_data['Glucose']}
|
24 |
+
- Blood Pressure: {patient_data['BloodPressure']}
|
25 |
+
- BMI: {patient_data['BMI']}
|
26 |
+
- Age: {patient_data['Age']}
|
27 |
+
- Diabetes Prediction: {'Positive' if prediction == 1 else 'Negative'}
|
28 |
+
|
29 |
+
Please provide specific health recommendations for this patient considering their metrics
|
30 |
+
and diabetes risk status. Focus on diet, exercise, and lifestyle changes.
|
31 |
+
"""
|
32 |
+
|
33 |
+
# Generate response using Google GenAI
|
34 |
+
response = self.model.generate_content(prompt)
|
35 |
+
|
36 |
+
# Extract and return the recommendations
|
37 |
+
return response.text
|
38 |
+
|
39 |
+
app = Flask(__name__, template_folder='src/templates')
|
40 |
+
|
41 |
+
# Initialize components
|
42 |
+
predictor = DiabetesPrediction()
|
43 |
+
health_advisor = HealthRecommendations(api_key=os.getenv('AIzaSyBMh7bQCD1tf_9w7C04zNoJocEtHg9KLjI')) # Changed to use Google API key
|
44 |
+
|
45 |
+
@app.route('/')
|
46 |
+
def home():
|
47 |
+
return render_template('index.html')
|
48 |
+
|
49 |
+
@app.route('/predict', methods=['POST'])
|
50 |
+
def predict():
|
51 |
+
try:
|
52 |
+
# Get data from request
|
53 |
+
data = request.json
|
54 |
+
features = [
|
55 |
+
float(data['pregnancies']),
|
56 |
+
float(data['glucose']),
|
57 |
+
float(data['bloodPressure']),
|
58 |
+
float(data['skinThickness']),
|
59 |
+
float(data['insulin']),
|
60 |
+
float(data['bmi']),
|
61 |
+
float(data['diabetesPedigree']),
|
62 |
+
float(data['age'])
|
63 |
+
]
|
64 |
+
|
65 |
+
# Make prediction
|
66 |
+
prediction_result = predictor.predict(features)
|
67 |
+
|
68 |
+
# Get health recommendations
|
69 |
+
recommendations = health_advisor.get_recommendations(
|
70 |
+
patient_data={
|
71 |
+
'Glucose': data['glucose'],
|
72 |
+
'BloodPressure': data['bloodPressure'],
|
73 |
+
'BMI': data['bmi'],
|
74 |
+
'Age': data['age']
|
75 |
+
},
|
76 |
+
prediction=prediction_result
|
77 |
+
)
|
78 |
+
|
79 |
+
return jsonify({
|
80 |
+
'prediction': prediction_result,
|
81 |
+
'recommendations': recommendations
|
82 |
+
})
|
83 |
+
|
84 |
+
except Exception as e:
|
85 |
+
return jsonify({'error': str(e)}), 400
|
86 |
+
|
87 |
+
if __name__ == '__main__':
|
88 |
+
app.run(debug=True)
|
src/templates/index.html
ADDED
@@ -0,0 +1,121 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Diabetes Risk Assessment</title>
|
7 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
+
</head>
|
9 |
+
<body class="bg-gray-100 min-h-screen">
|
10 |
+
<div class="container mx-auto px-4 py-8">
|
11 |
+
<h1 class="text-3xl font-bold text-center mb-8 text-gray-800">Diabetes Risk Assessment Tool</h1>
|
12 |
+
|
13 |
+
<!-- Error Message -->
|
14 |
+
{% if error %}
|
15 |
+
<div class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded mb-4" role="alert">
|
16 |
+
<p class="font-bold">Error:</p>
|
17 |
+
<p>{{ error }}</p>
|
18 |
+
</div>
|
19 |
+
{% endif %}
|
20 |
+
|
21 |
+
<!-- Input Form -->
|
22 |
+
<div class="bg-white p-6 rounded-lg shadow-md mb-8">
|
23 |
+
<form method="POST" action="{{ url_for('home') }}" class="space-y-6">
|
24 |
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
25 |
+
<div class="space-y-4">
|
26 |
+
<div>
|
27 |
+
<label for="Pregnancies" class="block text-sm font-semibold text-gray-700 mb-1">Number of Pregnancies</label>
|
28 |
+
<input type="number" id="Pregnancies" name="Pregnancies" min="0" max="20" step="1"
|
29 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
30 |
+
value="{{ input_data.Pregnancies if input_data else '' }}" required>
|
31 |
+
</div>
|
32 |
+
<div>
|
33 |
+
<label for="Glucose" class="block text-sm font-semibold text-gray-700 mb-1">Glucose Level (mg/dL)</label>
|
34 |
+
<input type="number" id="Glucose" name="Glucose" min="0" max="500"
|
35 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
36 |
+
value="{{ input_data.Glucose if input_data else '' }}" required>
|
37 |
+
</div>
|
38 |
+
<div>
|
39 |
+
<label for="BloodPressure" class="block text-sm font-semibold text-gray-700 mb-1">Blood Pressure (mm Hg)</label>
|
40 |
+
<input type="number" id="BloodPressure" name="BloodPressure" min="0" max="300"
|
41 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
42 |
+
value="{{ input_data.BloodPressure if input_data else '' }}" required>
|
43 |
+
</div>
|
44 |
+
<div>
|
45 |
+
<label for="SkinThickness" class="block text-sm font-semibold text-gray-700 mb-1">Skin Thickness (mm)</label>
|
46 |
+
<input type="number" id="SkinThickness" name="SkinThickness" min="0" max="100"
|
47 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
48 |
+
value="{{ input_data.SkinThickness if input_data else '' }}" required>
|
49 |
+
</div>
|
50 |
+
</div>
|
51 |
+
|
52 |
+
<div class="space-y-4">
|
53 |
+
<div>
|
54 |
+
<label for="Insulin" class="block text-sm font-semibold text-gray-700 mb-1">Insulin Level (mu U/ml)</label>
|
55 |
+
<input type="number" id="Insulin" name="Insulin" min="0" max="1000"
|
56 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
57 |
+
value="{{ input_data.Insulin if input_data else '' }}" required>
|
58 |
+
</div>
|
59 |
+
<div>
|
60 |
+
<label for="BMI" class="block text-sm font-semibold text-gray-700 mb-1">BMI</label>
|
61 |
+
<input type="number" id="BMI" name="BMI" min="0" max="100" step="0.1"
|
62 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
63 |
+
value="{{ input_data.BMI if input_data else '' }}" required>
|
64 |
+
</div>
|
65 |
+
<div>
|
66 |
+
<label for="DiabetesPedigreeFunction" class="block text-sm font-semibold text-gray-700 mb-1">Diabetes Pedigree Function</label>
|
67 |
+
<input type="number" id="DiabetesPedigreeFunction" name="DiabetesPedigreeFunction" min="0" max="3" step="0.001"
|
68 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
69 |
+
value="{{ input_data.DiabetesPedigreeFunction if input_data else '' }}" required>
|
70 |
+
</div>
|
71 |
+
<div>
|
72 |
+
<label for="Age" class="block text-sm font-semibold text-gray-700 mb-1">Age</label>
|
73 |
+
<input type="number" id="Age" name="Age" min="0" max="120"
|
74 |
+
class="mt-1 block w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
|
75 |
+
value="{{ input_data.Age if input_data else '' }}" required>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
</div>
|
79 |
+
|
80 |
+
<div class="flex justify-center mt-8">
|
81 |
+
<button type="submit" class="bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-8 rounded-lg shadow-md transition duration-300 text-lg">
|
82 |
+
Get Assessment
|
83 |
+
</button>
|
84 |
+
</div>
|
85 |
+
</form>
|
86 |
+
</div>
|
87 |
+
|
88 |
+
<!-- Results Section -->
|
89 |
+
{% if result %}
|
90 |
+
<div class="bg-white p-8 rounded-lg shadow-md space-y-6">
|
91 |
+
<div class="text-center">
|
92 |
+
<h2 class="text-2xl font-bold mb-4">Assessment Result</h2>
|
93 |
+
<p class="text-lg {% if 'diabetic' in result %}text-red-600{% else %}text-green-600{% endif %} font-semibold">
|
94 |
+
{{ result }}
|
95 |
+
</p>
|
96 |
+
</div>
|
97 |
+
|
98 |
+
{% if suggestions %}
|
99 |
+
<div class="mt-8">
|
100 |
+
<h3 class="text-xl font-bold mb-4">Personalized Recommendations</h3>
|
101 |
+
<div class="space-y-4">
|
102 |
+
{% for category, tips in suggestions.items() %}
|
103 |
+
<div>
|
104 |
+
<h4 class="font-semibold">{{ category }}</h4>
|
105 |
+
<ul class="list-disc pl-6 mt-2">
|
106 |
+
{% for tip in tips %}
|
107 |
+
<li>{{ tip }}</li>
|
108 |
+
{% endfor %}
|
109 |
+
</ul>
|
110 |
+
</div>
|
111 |
+
{% endfor %}
|
112 |
+
</div>
|
113 |
+
</div>
|
114 |
+
{% else %}
|
115 |
+
<p class="text-center text-gray-600">No recommendations available at the moment.</p>
|
116 |
+
{% endif %}
|
117 |
+
</div>
|
118 |
+
{% endif %}
|
119 |
+
</div>
|
120 |
+
</body>
|
121 |
+
</html>
|
tests/tests.py
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import unittest
|
2 |
+
import numpy as np
|
3 |
+
import pandas as pd
|
4 |
+
from src.data_preprocessing import DataPreprocessor
|
5 |
+
from src.model_training import ModelTrainer
|
6 |
+
from src.prediction import DiabetesPrediction
|
7 |
+
from src.health_recommendations import HealthRecommendations
|
8 |
+
import os
|
9 |
+
import json
|
10 |
+
|
11 |
+
class TestDataPreprocessor(unittest.TestCase):
|
12 |
+
def setUp(self):
|
13 |
+
self.preprocessor = DataPreprocessor()
|
14 |
+
self.sample_data = pd.DataFrame({
|
15 |
+
'Pregnancies': [1, 2, 3],
|
16 |
+
'Glucose': [85, 0, 90],
|
17 |
+
'BloodPressure': [66, 0, 70],
|
18 |
+
'SkinThickness': [29, 0, 30],
|
19 |
+
'Insulin': [0, 0, 155],
|
20 |
+
'BMI': [26.6, 0, 30.1],
|
21 |
+
'DiabetesPedigreeFunction': [0.351, 0.427, 0.672],
|
22 |
+
'Age': [31, 22, 45],
|
23 |
+
'Outcome': [0, 1, 1]
|
24 |
+
})
|
25 |
+
|
26 |
+
def test_preprocess_data(self):
|
27 |
+
processed_df = self.preprocessor.preprocess_data(self.sample_data.copy())
|
28 |
+
# Check that there are no zeros in specific columns
|
29 |
+
for col in ['Glucose', 'BloodPressure', 'SkinThickness', 'BMI', 'Insulin']:
|
30 |
+
self.assertTrue((processed_df[col] != 0).all())
|
31 |
+
|
32 |
+
def test_scale_features(self):
|
33 |
+
processed_df = self.preprocessor.preprocess_data(self.sample_data.copy())
|
34 |
+
scaled_features = self.preprocessor.scale_features(processed_df, is_training=True)
|
35 |
+
self.assertEqual(scaled_features.shape[1], 8) # All features except Outcome
|
36 |
+
self.assertTrue(np.abs(scaled_features.mean()).mean() < 1e-10) # Centered around 0
|
37 |
+
|
38 |
+
class TestModelTrainer(unittest.TestCase):
|
39 |
+
def setUp(self):
|
40 |
+
self.trainer = ModelTrainer()
|
41 |
+
self.preprocessor = DataPreprocessor()
|
42 |
+
# Create sample data
|
43 |
+
self.X = np.random.randn(100, 8)
|
44 |
+
self.y = np.random.randint(0, 2, 100)
|
45 |
+
|
46 |
+
def test_train_model(self):
|
47 |
+
model = self.trainer.train_model(self.X, self.y)
|
48 |
+
self.assertIsNotNone(model)
|
49 |
+
# Test prediction shape
|
50 |
+
pred = model.predict(self.X[:1])
|
51 |
+
self.assertEqual(len(pred), 1)
|
52 |
+
|
53 |
+
class TestDiabetesPrediction(unittest.TestCase):
|
54 |
+
def setUp(self):
|
55 |
+
self.predictor = DiabetesPrediction()
|
56 |
+
self.sample_input = [1, 85, 66, 29, 0, 26.6, 0.351, 31]
|
57 |
+
|
58 |
+
def test_prediction_format(self):
|
59 |
+
result = self.predictor.predict(self.sample_input)
|
60 |
+
self.assertIn('is_diabetic', result)
|
61 |
+
self.assertIn('probability', result)
|
62 |
+
self.assertIsInstance(result['is_diabetic'], bool)
|
63 |
+
self.assertIsInstance(result['probability'], float)
|
64 |
+
|
65 |
+
class TestHealthRecommendations(unittest.TestCase):
|
66 |
+
def setUp(self):
|
67 |
+
# Use a dummy API key for testing
|
68 |
+
self.health_advisor = HealthRecommendations(api_key="dummy_key")
|
69 |
+
self.sample_patient_data = {
|
70 |
+
'Glucose': 85,
|
71 |
+
'BloodPressure': 66,
|
72 |
+
'BMI': 26.6,
|
73 |
+
'Age': 31
|
74 |
+
}
|
75 |
+
self.sample_prediction = {
|
76 |
+
'is_diabetic': False,
|
77 |
+
'probability': 0.3
|
78 |
+
}
|
79 |
+
|
80 |
+
def test_fallback_recommendations(self):
|
81 |
+
recommendations = self.health_advisor._get_fallback_recommendations(is_diabetic=False)
|
82 |
+
expected_categories = [
|
83 |
+
'Diet and Nutrition',
|
84 |
+
'Physical Activity',
|
85 |
+
'Lifestyle Changes',
|
86 |
+
'Monitoring and Prevention'
|
87 |
+
]
|
88 |
+
self.assertEqual(sorted(recommendations.keys()), sorted(expected_categories))
|
89 |
+
for category in expected_categories:
|
90 |
+
self.assertGreater(len(recommendations[category]), 0)
|
91 |
+
|
92 |
+
def run_tests():
|
93 |
+
unittest.main()
|
94 |
+
|
95 |
+
if __name__ == '__main__':
|
96 |
+
run_tests()
|