import streamlit as st import pandas as pd import joblib # You can use pickle if you prefer # Load the model from the pickle file model_path = "model.pkl" model = joblib.load(model_path) # Create the UI st.title('BMI Prediction') # Input fields gender = st.selectbox('Gender', ['Male', 'Female']) height = st.number_input('Height (in cm)', min_value=130, max_value=200, value=130) weight = st.number_input('Weight (in kg)', min_value=30, max_value=150, value=30) # Map gender to numerical values gender_map = {'Male': 0, 'Female': 1} gender = gender_map[gender] # Dictionary to map the prediction to labels bmi_labels = { 0: "Extremely Weak", 1: "Weak", 2: "Normal", 3: "Overweight", 4: "Obesity", 5: "Extreme Obesity" } # Predict BMI Index if st.button('Predict BMI'): # Validation checks if height < 130 or height > 200: st.error('Height must be between 130 and 200 cm.') elif weight < 30 or weight > 150: st.error('Weight must be between 30 and 150 kg.') else: input_data = pd.DataFrame([[gender, height, weight]], columns=['Gender', 'Height', 'Weight']) prediction = model.predict(input_data)[0] prediction_label = bmi_labels.get(prediction, "Unknown") st.write(f'Predicted BMI Index: {prediction_label}')