File size: 2,889 Bytes
c60057d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import streamlit as st
import numpy as np
import pandas as pd
import pickle

# Load the model and scaler
model = pickle.load(open('Obezite.pkl', 'rb'))
scaler = pickle.load(open('scaler.pkl', 'rb'))

st.title("Obesity Prediction")

# Input fields
gender = st.selectbox("Gender", ("Male", "Female"))
age = st.number_input("Age", min_value=0)
height = st.number_input("Height (m)", min_value=0.0)
weight = st.number_input("Weight (kg)", min_value=0.0)
cholesterol = st.number_input("Cholesterol Level", min_value=0)
blood_pressure = st.number_input("Blood Pressure", min_value=0)
smoking = st.selectbox("Smoking Status", ("Non-Smoker", "Smoker"))
alcohol_consumption = st.selectbox("Alcohol Consumption", ("No", "Yes"))
physical_activity = st.selectbox("Physical Activity Level", ("Low", "Moderate", "High"))
diet_quality = st.selectbox("Diet Quality", ("Poor", "Average", "Good"))
family_history_with_overweight = st.selectbox("Family History of Obesity", ("No", "Yes"))
FAVC = st.selectbox("Frequency of Eating Fatty Foods", ("No", "Yes"))
FCVC = st.number_input("Frequency of Vegetables Consumption", min_value=0)
NCP = st.number_input("Number of Main Meals", min_value=1)
CAEC = st.selectbox("Consumption of Food Between Meals", ("No", "Yes"))
CH2O = st.number_input("Water Consumption (L)", min_value=0.0)
SCC = st.number_input("Consumption of Sugar-Sweetened Beverages", min_value=0)
FAF = st.number_input("Physical Activity Level (1-5)", min_value=1, max_value=5)
TUE = st.number_input("Time Spent on Physical Activity", min_value=0)
CALC = st.selectbox("Caloric Intake", ("Low", "Moderate", "High"))
MTRANS = st.selectbox("Transportation Type", ("Walking", "Public Transport", "Private Vehicle"))

# Prepare input data for prediction
input_data = pd.DataFrame({
    'Gender': [gender],
    'Age': [age],
    'Height': [height],
    'Weight': [weight],
    'family_history_with_overweight': [1 if family_history_with_overweight == "Yes" else 0],
    'FAVC': [1 if FAVC == "Yes" else 0],
    'FCVC': [FCVC],
    'NCP': [NCP],
    'CAEC': [1 if CAEC == "Yes" else 0],
    'SMOKE': [1 if smoking == "Smoker" else 0],
    'CH2O': [CH2O],
    'SCC': [SCC],
    'FAF': [FAF],
    'TUE': [TUE],
    'CALC': [CALC],
    'MTRANS': [MTRANS],
})

# Convert categorical variables into dummy/indicator variables
input_data = pd.get_dummies(input_data, drop_first=True)

# Ensure the same features are present as in the scaler
input_data = input_data.reindex(columns=scaler.get_feature_names_out(), fill_value=0)

# Prediction button
if st.button('Predict'):
    input_scaled = scaler.transform(input_data)  # Scale the input data
    prediction = model.predict(input_scaled)  # Get the prediction
    predicted_class = np.argmax(prediction, axis=1)  # Get the predicted class
    st.write(f"Predicted class: {predicted_class[0]}")