|
import streamlit as st
|
|
import pickle
|
|
import pandas as pd
|
|
from sklearn.tree import DecisionTreeClassifier
|
|
|
|
import warnings
|
|
warnings.filterwarnings("ignore")
|
|
|
|
with open('TreeModel.pkl', 'rb') as f:
|
|
model = pickle.load(f)
|
|
|
|
def get_user_input():
|
|
age = st.number_input('Age', min_value=1, max_value=100, value=50)
|
|
gender = st.radio('Gender', options=['Male', 'Female'])
|
|
gender = 1 if gender == 'Male' else 0
|
|
impluse = st.number_input('Impluse', min_value=0, max_value=1000, value=50)
|
|
pressurehight = st.number_input('Pressure High', min_value=0, max_value=250, value=120)
|
|
pressurelow = st.number_input('Pressure Low', min_value=0, max_value=150, value=80)
|
|
glucose = st.number_input('Glucose', min_value=0.0, max_value=500.0, value=100.0)
|
|
kcm = st.number_input('KCM', min_value=0.0, max_value=300.0, value=10.0)
|
|
troponin = st.number_input('Troponin', min_value=0.0, max_value=10.0, value=0.1)
|
|
|
|
|
|
user_input = pd.DataFrame([[age, gender, impluse, pressurehight, pressurelow, glucose, kcm, troponin]],
|
|
columns=['age', 'gender', 'impluse', 'pressurehight', 'pressurelow', 'glucose', 'kcm', 'troponin'])
|
|
return user_input
|
|
|
|
|
|
def main():
|
|
st.title("Heart Disease Predict App❤️🩺")
|
|
st.markdown("""
|
|
This is a simple web app to predict the likelihood of heart disease (positive or negative) based on inputs.
|
|
""")
|
|
|
|
|
|
with st.expander('Enter your data'):
|
|
user_input = get_user_input()
|
|
|
|
|
|
if st.button('Submit'):
|
|
|
|
st.subheader('User Input:')
|
|
st.write(user_input)
|
|
|
|
|
|
prediction = model.predict(user_input)
|
|
|
|
|
|
if prediction[0] == 1:
|
|
st.success("Prediction: Positive (Heart Disease Likely)")
|
|
else:
|
|
st.markdown("<h3 style='color:red;'>Prediction: Negative (Heart Disease Unlikely)</h3>", unsafe_allow_html=True)
|
|
if __name__ == '__main__':
|
|
main()
|
|
|