| |
| import joblib |
| import gradio as gr |
| import pandas as pd |
|
|
| charges_predictor = joblib.load("model.joblib") |
|
|
|
|
| age_input = gr.Number(label="Age", value=25) |
| bmi_input = gr.Number(label="BMI", value=25) |
| children_input = gr.Number(label="Children", value=0) |
|
|
| sex_input = gr.Dropdown( |
| ["male","female"], |
| value="male", |
| label="Sex" |
| ) |
|
|
| smoker_input = gr.Dropdown( |
| ["yes","no"], |
| value="no", |
| label="Smoker" |
| ) |
|
|
| region_input = gr.Dropdown( |
| ["southeast","southwest","northeast","northwest"], |
| value="southeast", |
| label="Region" |
| ) |
|
|
|
|
| model_output = gr.Textbox(label="Predicted Insurance Cost") |
|
|
|
|
| def predict_charges(age,bmi,children,sex,smoker,region): |
|
|
| sample = { |
| "age": age, |
| "bmi": bmi, |
| "children": children, |
| "sex": sex, |
| "smoker": smoker, |
| "region": region |
| } |
|
|
| data_point = pd.DataFrame([sample]) |
|
|
| prediction = charges_predictor.predict(data_point) |
|
|
| return f"${prediction[0]:,.2f}" |
|
|
|
|
| demo = gr.Interface( |
| fn=predict_charges, |
| inputs=[ |
| age_input, |
| bmi_input, |
| children_input, |
| sex_input, |
| smoker_input, |
| region_input |
| ], |
| outputs=model_output, |
| title="Insurance Charge Prediction", |
| description="Predict insurance medical charges based on user information" |
| ) |
|
|
| demo.launch() |