modelTesting / app.py
verma007's picture
Upload 3 files
77b89ba verified
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}')