|
|
import streamlit as st
|
|
|
import pandas as pd
|
|
|
import joblib
|
|
|
|
|
|
model = joblib.load('model.pkl')
|
|
|
|
|
|
st.title('🫁 Lung Cancer Diagnosis')
|
|
|
st.write("Please fill out the following information to assess the likelihood of lung cancer.")
|
|
|
|
|
|
gender = st.selectbox('Gender', [0, 1], format_func=lambda x: "Female" if x == 0 else "Male")
|
|
|
age = st.number_input('Age', max_value=120, value=0)
|
|
|
smoking = st.selectbox('Smoking', ['Yes', 'No'])
|
|
|
yellow_fingers = st.selectbox('Yellow Fingers', ['Yes', 'No'])
|
|
|
anxiety = st.selectbox('Anxiety', ['Yes', 'No'])
|
|
|
peer_pressure = st.selectbox('Peer Pressure', ['Yes', 'No'])
|
|
|
chronic_disease = st.selectbox('Chronic Disease', ['Yes', 'No'])
|
|
|
fatigue = st.selectbox('Fatigue', ['Yes', 'No'])
|
|
|
allergy = st.selectbox('Allergy', ['Yes', 'No'])
|
|
|
wheezing = st.selectbox('Wheezing', ['Yes', 'No'])
|
|
|
alcohol = st.selectbox('Alcohol Consuming', ['Yes', 'No'])
|
|
|
coughing = st.selectbox('Coughing', ['Yes', 'No'])
|
|
|
shortness_of_breath = st.selectbox('Shortness of Breath', ['Yes', 'No'])
|
|
|
swallowing_difficulty = st.selectbox('Swallowing Difficulty', ['Yes', 'No'])
|
|
|
chest_pain = st.selectbox('Chest Pain', ['Yes', 'No'])
|
|
|
|
|
|
|
|
|
def binary_encode(value):
|
|
|
return 1 if value == 'Yes' else 0
|
|
|
|
|
|
data = pd.DataFrame([[
|
|
|
gender,
|
|
|
age,
|
|
|
binary_encode(smoking),
|
|
|
binary_encode(yellow_fingers),
|
|
|
binary_encode(anxiety),
|
|
|
binary_encode(peer_pressure),
|
|
|
binary_encode(chronic_disease),
|
|
|
binary_encode(fatigue),
|
|
|
binary_encode(allergy),
|
|
|
binary_encode(wheezing),
|
|
|
binary_encode(alcohol),
|
|
|
binary_encode(coughing),
|
|
|
binary_encode(shortness_of_breath),
|
|
|
binary_encode(swallowing_difficulty),
|
|
|
binary_encode(chest_pain)
|
|
|
]], columns=[
|
|
|
'GENDER', 'AGE', 'SMOKING', 'YELLOW_FINGERS', 'ANXIETY', 'PEER_PRESSURE',
|
|
|
'CHRONIC DISEASE', 'FATIGUE', 'ALLERGY', 'WHEEZING', 'ALCOHOL CONSUMING',
|
|
|
'COUGHING', 'SHORTNESS OF BREATH', 'SWALLOWING DIFFICULTY', 'CHEST PAIN'
|
|
|
])
|
|
|
|
|
|
|
|
|
if st.button('Predict'):
|
|
|
prediction = model.predict(data)[0]
|
|
|
if prediction == 1:
|
|
|
st.error("⚠️ High risk of lung cancer. Please consult a doctor.")
|
|
|
else:
|
|
|
st.success("✅ No Lung Cancer.")
|
|
|
|