abdullah2026's picture
Upload folder using huggingface_hub
93ea505 verified
Raw
History Blame Contribute Delete
1.7 kB
import numpy as np
FEATURE_NAMES = [
'Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness',
'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age',
'Glucose_BMI', 'Age_BMI', 'Glucose_squared', 'Insulin_BMI'
]
FIELDS = {
'pregnancies': {'min': 0, 'max': 17},
'glucose': {'min': 50, 'max': 250},
'blood_pressure': {'min': 40, 'max': 130},
'skin_thickness': {'min': 0, 'max': 100},
'insulin': {'min': 0, 'max': 900},
'bmi': {'min': 10.0, 'max': 70.0},
'diabetes_pedigree_function': {'min': 0.0, 'max': 2.5},
'age': {'min': 18, 'max': 90},
}
def validate(data):
cleaned = {}
for field, rules in FIELDS.items():
if field not in data:
return f"Missing required field: '{field}'", None
try:
val = float(data[field])
except (ValueError, TypeError):
return f"Field '{field}' must be a number", None
if val < rules['min'] or val > rules['max']:
return f"Field '{field}' must be between {rules['min']} and {rules['max']}", None
cleaned[field] = val
return None, cleaned
def build_feature_vector(cleaned):
g = cleaned['glucose']
bmi = cleaned['bmi']
age = cleaned['age']
ins = cleaned['insulin']
return np.array([[
cleaned['pregnancies'],
g,
cleaned['blood_pressure'],
cleaned['skin_thickness'],
ins,
bmi,
cleaned['diabetes_pedigree_function'],
age,
g * bmi,
age * bmi,
g ** 2,
ins * bmi,
]])