Sourudra's picture
Create app.py
290648a verified
import gradio as gr
import pandas as pd
import pickle
# Load the trained model
with open('catboost_model.pkl', 'rb') as model_file:
regressor = pickle.load(model_file)
# Define the prediction function
def predict_insurance_cost(age, sex, bmi, children, smoker, region):
# Create a DataFrame from the input data
input_data = pd.DataFrame(
[[age, sex, bmi, children, smoker, region]],
columns=['age', 'sex', 'bmi', 'children', 'smoker', 'region']
)
# Make prediction
prediction = regressor.predict(input_data)
return f'The insurance cost is USD {prediction[0]:.2f}'
# Set up the Gradio interface
inputs = [
gr.Slider(minimum=18, maximum=100,step=1, value=31, label="Age"),
gr.Radio(choices=['Female', 'Male']),
gr.Slider(minimum=10.0, maximum=50.0, step=0.1, value=25.74, label="BMI"),
gr.Slider(minimum=0, maximum=10, value=0,step=1, label="Children"),
gr.Radio(choices=['NO', 'Yes']),
gr.Dropdown(choices=['Southwest', 'Southeast', 'Northwest', 'Northeast'], label="Region (Southwest, Southeast, Northwest, Northeast)")
]
output = gr.Textbox(label="Predicted Insurance Cost")
# Create the Gradio interface
gr.Interface(fn=predict_insurance_cost, inputs=inputs, outputs=output, title="Medical Insurance Cost Predictor", description="Predict the insurance cost based on various parameters.").launch()