import streamlit as st import pandas as pd import joblib model = joblib.load("src/spaceship_rf_model.pkl") model_columns = joblib.load("src/model_columns.pkl") st.set_page_config(page_title="Spaceship Titanic Classification", layout="centered") st.title("Spaceship Titanic Classification") st.write( "Bu uygulama, yolcu bilgilerine göre kişinin başka bir boyuta taşınıp taşınmadığını tahmin eder." ) st.sidebar.header("Yolcu Bilgileri") home_planet = st.sidebar.selectbox("HomePlanet", ["Earth", "Europa", "Mars"]) cryo_sleep = st.sidebar.selectbox("CryoSleep", [False, True]) destination = st.sidebar.selectbox( "Destination", ["TRAPPIST-1e", "55 Cancri e", "PSO J318.5-22"] ) age = st.sidebar.slider("Age", 0, 80, 28) vip = st.sidebar.selectbox("VIP", [False, True]) room_service = st.sidebar.number_input("RoomService", min_value=0.0, value=0.0) food_court = st.sidebar.number_input("FoodCourt", min_value=0.0, value=0.0) shopping_mall = st.sidebar.number_input("ShoppingMall", min_value=0.0, value=0.0) spa = st.sidebar.number_input("Spa", min_value=0.0, value=0.0) vr_deck = st.sidebar.number_input("VRDeck", min_value=0.0, value=0.0) group_size = st.sidebar.slider("GroupSize", 1, 8, 1) deck = st.sidebar.selectbox("Deck", ["A", "B", "C", "D", "E", "F", "G", "T"]) cabin_num = st.sidebar.number_input("CabinNum", min_value=0.0, value=500.0) side = st.sidebar.selectbox("Side", ["P", "S"]) total_spend = room_service + food_court + shopping_mall + spa + vr_deck input_data = pd.DataFrame({ "HomePlanet": [home_planet], "CryoSleep": [cryo_sleep], "Destination": [destination], "Age": [age], "VIP": [vip], "RoomService": [room_service], "FoodCourt": [food_court], "ShoppingMall": [shopping_mall], "Spa": [spa], "VRDeck": [vr_deck], "GroupSize": [group_size], "Deck": [deck], "CabinNum": [cabin_num], "Side": [side], "TotalSpend": [total_spend] }) input_encoded = pd.get_dummies(input_data, drop_first=True) input_encoded = input_encoded.reindex( columns=model_columns, fill_value=0 ) if st.button("Tahmin Et"): prediction = model.predict(input_encoded)[0] if prediction == True: st.success("Tahmin: Yolcu başka bir boyuta taşınmış olabilir.") else: st.warning("Tahmin: Yolcu başka bir boyuta taşınmamış olabilir.") st.subheader("Girilen Veriler") st.dataframe(input_data)