insurance / app.py
raharjo's picture
Rename insurance.py to app.py
681ef63 verified
import streamlit as st
import joblib
import numpy as np
# Load the trained model and encoders
model = joblib.load('rf_insurance_model.pkl')
label_encoders = joblib.load('label_encoders.pkl')
# Streamlit UI
st.title("Insurance Charges Prediction")
# Input fields for all features
age = st.number_input('Age', min_value=18, max_value=100, value=25)
sex = st.selectbox('Sex', options=['male', 'female'])
bmi = st.number_input('BMI', min_value=10.0, max_value=50.0, value=25.0)
children = st.number_input('Number of Children', min_value=0, max_value=10, value=0)
smoker = st.selectbox('Smoker', options=['yes', 'no'])
region = st.selectbox('Region', options=['southwest', 'southeast', 'northwest', 'northeast'])
# Preprocess the inputs
sex_encoded = label_encoders['sex'].transform([sex])[0]
smoker_encoded = label_encoders['smoker'].transform([smoker])[0]
region_encoded = label_encoders['region'].transform([region])[0]
# Create feature array
features = np.array([[age, sex_encoded, bmi, children, smoker_encoded, region_encoded]])
# Predict and display result
if st.button('Predict Charges'):
prediction = model.predict(features)[0]
st.write(f"Predicted Insurance Charges: ${prediction:.2f}")