Spaces:
Sleeping
Sleeping
Delete pages/predict page.py
Browse files- pages/predict page.py +0 -65
pages/predict page.py
DELETED
@@ -1,65 +0,0 @@
|
|
1 |
-
# app.py (your Streamlit file)
|
2 |
-
import streamlit as st
|
3 |
-
import numpy as np
|
4 |
-
import pickle
|
5 |
-
from sklearn.metrics import accuracy_score, f1_score, roc_auc_score
|
6 |
-
import pandas as pd
|
7 |
-
|
8 |
-
st.title("🧠 Sleep Event Prediction")
|
9 |
-
|
10 |
-
# --- Load Pickles ---
|
11 |
-
@st.cache_resource
|
12 |
-
def load_all():
|
13 |
-
with open("model.pkl", "rb") as f: model = pickle.load(f)
|
14 |
-
with open("scaler.pkl", "rb") as f: scaler = pickle.load(f)
|
15 |
-
with open("label_encoder.pkl", "rb") as f: le = pickle.load(f)
|
16 |
-
with open("X_test.pkl", "rb") as f: X_test = pickle.load(f)
|
17 |
-
with open("y_test.pkl", "rb") as f: y_test = pickle.load(f)
|
18 |
-
return model, scaler, le, X_test, y_test
|
19 |
-
|
20 |
-
model, scaler, le, X_test, y_test = load_all()
|
21 |
-
|
22 |
-
# --- Predict and Evaluate ---
|
23 |
-
y_pred = model.predict(X_test)
|
24 |
-
y_proba = model.predict_proba(X_test)
|
25 |
-
|
26 |
-
accuracy = accuracy_score(y_test, y_pred)
|
27 |
-
f1 = f1_score(y_test, y_pred, average='macro')
|
28 |
-
|
29 |
-
if y_proba.shape[1] == 2:
|
30 |
-
roc = roc_auc_score(y_test, y_proba[:, 1])
|
31 |
-
else:
|
32 |
-
roc = roc_auc_score(y_test, y_proba, multi_class='ovo', average='macro')
|
33 |
-
|
34 |
-
# --- Display Metrics ---
|
35 |
-
# st.subheader("Model Performance")
|
36 |
-
# st.metric("Accuracy", f"{accuracy:.4f}")
|
37 |
-
# st.metric("F1 Score", f"{f1:.4f}")
|
38 |
-
# st.metric("ROC AUC Score", f"{roc:.4f}")
|
39 |
-
|
40 |
-
# Create a DataFrame for metrics
|
41 |
-
import pandas as pd
|
42 |
-
|
43 |
-
st.subheader("Model Performance")
|
44 |
-
|
45 |
-
# Create a DataFrame for metrics
|
46 |
-
metrics_df = pd.DataFrame({
|
47 |
-
"Metric": ["Accuracy", "F1 Score", "ROC AUC Score"],
|
48 |
-
"Value": [f"{accuracy:.4f}", f"{f1:.4f}", f"{roc:.4f}"]
|
49 |
-
})
|
50 |
-
|
51 |
-
# Display as table
|
52 |
-
st.table(metrics_df)
|
53 |
-
|
54 |
-
|
55 |
-
# --- Predict User Input ---
|
56 |
-
st.subheader("Predict Sleep Event")
|
57 |
-
anglez = st.number_input("Enter anglez:", value=27.8800)
|
58 |
-
enmo = st.number_input("Enter enmo:", value=0.0000)
|
59 |
-
|
60 |
-
if st.button("Predict Sleep Event"):
|
61 |
-
input_data = np.array([[anglez, enmo]])
|
62 |
-
input_scaled = scaler.transform(input_data)
|
63 |
-
prediction = model.predict(input_scaled)[0]
|
64 |
-
label = le.inverse_transform([prediction])[0]
|
65 |
-
st.success(f"Predicted Event: {label}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|