Spaces:
Sleeping
Sleeping
File size: 983 Bytes
e9c150f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# utils.py
import joblib
import pandas as pd
import streamlit as st
@st.cache_resource
def load_model(path: str):
return joblib.load(path)
def preprocess_input(data: dict) -> pd.DataFrame:
# Build a single-row DF
df = pd.DataFrame([data])
# Map Yes/No to 1/0
df['Stage_fear'] = df['Stage_fear'].map({'Yes': 1, 'No': 0})
df['Drained_after_socializing'] = df['Drained_after_socializing'].map({'Yes': 1, 'No': 0})
feature_order = [
'Time_spent_Alone',
'Stage_fear',
'Social_event_attendance',
'Going_outside',
'Friends_circle_size',
'Post_frequency'
]
# Reorder and return
return df[feature_order]
def predict_personality(model, X: pd.DataFrame):
# Make sure to pass a numpy array if your model expects that:
arr = X.values
prob = model.predict_proba(arr)[:, 1][0]
label = "Introvert" if prob > 0.5 else "Extrovert"
return label, prob
|