import gradio as gr import joblib import numpy as np # Load assets model = joblib.load('diabetes_model.joblib') scaler = joblib.load('scaler.joblib') def predict_diabetes(pregnancies, glucose, bp, skin, insulin, bmi, dpf, age): features = np.array([[pregnancies, glucose, bp, skin, insulin, bmi, dpf, age]]) features_scaled = scaler.transform(features) prediction = model.predict(features_scaled)[0] probability = model.predict_proba(features_scaled)[0] label = 'Diabetic' if prediction == 1 else 'Non-Diabetic' conf = probability[1] if prediction == 1 else probability[0] return f'{label} ({conf:.2%})' inputs = [ gr.Number(label='Pregnancies'), gr.Number(label='Glucose'), gr.Number(label='Blood Pressure'), gr.Number(label='Skin Thickness'), gr.Number(label='Insulin'), gr.Number(label='BMI'), gr.Number(label='Diabetes Pedigree Function'), gr.Number(label='Age') ] interface = gr.Interface( fn=predict_diabetes, inputs=inputs, outputs='text', title='Diabetes Risk Predictor', description='Optimized Random Forest model for diabetes classification.' ) interface.launch()