Download src/streamlit_app.py from handex/IntrovertsExtrovertsPrediction: direct link, hf CLI and curl.
- Browser
- Download file 2.33 kB
-
https://huggingface.co/spaces/handex/IntrovertsExtrovertsPrediction/resolve/main/src/streamlit_app.py
- Command line
-
hf download hf://spaces/handex/IntrovertsExtrovertsPrediction/src/streamlit_app.py
-
curl -L -o streamlit_app.py https://huggingface.co/spaces/handex/IntrovertsExtrovertsPrediction/resolve/main/src/streamlit_app.py
2.33 kB
| import streamlit as st | |
| import pandas as pd | |
| import numpy as np | |
| import joblib | |
| # Load the Model | |
| try: | |
| model = joblib.load('src/introvert_model.joblib') | |
| except FileNotFoundError: | |
| st.error("Model file not found.") | |
| st.stop() | |
| # Page | |
| st.set_page_config(page_title="Personality Predictor", page_icon="🧠") | |
| st.title("🧠 Introvert vs. Extrovert Predictor") | |
| st.write("This application predicts whether you are an **Introvert** or an **Extrovert** based on your social habits and preferences.") | |
| # User Inputs | |
| with st.sidebar: | |
| st.header("Please Enter Your Details") | |
| time_spent_alone = st.slider("Time Spent Alone (Hours/Day)", 0.0, 10.0, 3.5) | |
| social_event_attendance = st.slider("Social Event Attendance (Frequency 0-10)", 0, 10, 5) | |
| going_outside = st.slider("Frequency of Going Out (0-10)", 0, 10, 5) | |
| friends_circle_size = st.number_input("Friends Circle Size", min_value=0, max_value=20, value=5) | |
| post_frequency = st.slider("Social Media Post Frequency (0-10)", 0, 10, 2) | |
| stage_fear_input = st.radio("Do you have Stage Fear?", ["Yes", "No"]) | |
| drained_input = st.radio("Do you feel drained after socializing?", ["Yes", "No"]) | |
| # Feature Engineering | |
| stage_fear = 1 if stage_fear_input == "Yes" else 0 | |
| drained = 1 if drained_input == "Yes" else 0 | |
| social_to_alone_ratio = social_event_attendance / (time_spent_alone + 1) | |
| social_volume = friends_circle_size * going_outside | |
| # Create DataFrame | |
| input_data = pd.DataFrame({ | |
| 'Time_spent_Alone': [time_spent_alone], | |
| 'Stage_fear': [stage_fear], | |
| 'Social_event_attendance': [social_event_attendance], | |
| 'Going_outside': [going_outside], | |
| 'Drained_after_socializing': [drained], | |
| 'Friends_circle_size': [friends_circle_size], | |
| 'Post_frequency': [post_frequency], | |
| 'Social_to_Alone_Ratio': [social_to_alone_ratio], | |
| 'Social_Volume': [social_volume]}) | |
| # Prediction | |
| st.subheader("Prediction Result") | |
| if st.button("Analyze Personality"): | |
| prediction = model.predict(input_data)[0] | |
| if prediction == 1: | |
| st.success("Result: **INTROVERT**") | |
| st.info("You likely prefer staying in your own space and recharging your energy through solitude.") | |
| else: | |
| st.info("Result: **EXTROVERT**") | |
| st.success("You likely gain energy from social environments and enjoy engaging with the outside world.") |