Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pickle | |
| import numpy as np | |
| # Load model and scaler | |
| with open("logistic_model.pkl", "rb") as f: | |
| model = pickle.load(f) | |
| with open("scaler.pkl", "rb") as f: | |
| scaler = pickle.load(f) | |
| st.title("🚢 Titanic Survival Prediction") | |
| st.write("Enter passenger details to predict survival.") | |
| # User input fields | |
| pclass = st.selectbox("Passenger Class", [1, 2, 3]) | |
| sex = st.radio("Sex", ["Male", "Female"]) | |
| age = st.slider("Age", 1, 100, 30) | |
| fare = st.number_input("Fare", min_value=0.0, step=0.1) | |
| embarked = st.selectbox("Embarked Port", ["Cherbourg (C)", "Queenstown (Q)", "Southampton (S)"]) | |
| # Convert categorical inputs | |
| sex = 0 if sex == "Male" else 1 | |
| embarked = {"Cherbourg (C)": 0, "Queenstown (Q)": 1, "Southampton (S)": 2}[embarked] | |
| # Normalize input | |
| input_data = np.array([[pclass, sex, age, fare, embarked]]) | |
| input_data = scaler.transform(input_data) # Apply same scaling as training | |
| # Prediction | |
| if st.button("Predict"): | |
| prediction = model.predict(input_data)[0] | |
| outcome = "Survived 🟢" if prediction == 1 else "Did not survive 🔴" | |
| st.write(f"**Prediction:** {outcome}") | |