Spaces:
Sleeping
Sleeping
File size: 2,454 Bytes
d18945e 385e9fd 6de8f08 d18945e 6de8f08 385e9fd a539ace 385e9fd |
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
import joblib
import streamlit as st
import numpy as np
# Load the trained model
model = joblib.load("src/student_performance_model (2).h5")
def predict_marks(Hours_studied, Previous_Score, Extracurriculum_Activivities, Sleep_Hours, Sample_Question):
"Predict the student marks based on the input data"
input_data = np.array([[Hours_studied, Previous_Score, Extracurriculum_Activivities, Sleep_Hours, Sample_Question]])
prediction = model.predict(input_data)
prediction = round(float(prediction), 2)
# Ensure the prediction does not exceed 100
if prediction > 100:
prediction = 100
return prediction
def main():
# Sidebar Welcome Note with Emojis
st.title("๐ Student Marks Predictor ๐")
# Input data
name = st.text_input("๐ค Enter your name")
Hours_studied = st.number_input("๐ Hours you studied", min_value=0.0, max_value=20.0, value=0.0)
Previous_Score = st.number_input("๐ Previous exam score", min_value=0, max_value=100, value=0)
Extracurriculum_Activivities = st.number_input("๐ญ Extracurricular activities done", min_value=0, max_value=10, value=0)
Sleep_Hours = st.number_input("๐ด Hours you slept", min_value=0.0, max_value=12.0, value=0.0)
Sample_Question = st.number_input("โ๏ธ Sample questions practiced", min_value=0, max_value=50, value=0)
# Sidebar interaction
st.sidebar.title(f" # Hey {name}")
st.sidebar.title(f"๐Welcome to your Marks Predictor! ๐")
st.sidebar.write("""
Hey there! Ready to see what your future marks might be? ๐
Remember, I'm here to help you succeed! ๐ช
""")
st.sidebar.markdown("---")
# Predict button
if st.button("๐ฎ Predict Your Marks"):
prediction = predict_marks(Hours_studied, Previous_Score, Extracurriculum_Activivities, Sleep_Hours, Sample_Question)
# Display the predictions
if prediction >= 90:
st.balloons()
st.success(f"๐ **{name}, amazing!** You're on track to score {prediction} marks! Keep up the excellent work! ๐ช")
elif prediction >= 35:
st.warning(f"โ ๏ธ **{name}, not bad!** You're likely to pass with {prediction} marks, but there's room to aim higher! ๐")
else:
st.error(f"๐จ **{name}, oh no!** You might score below 35 marks. Consider putting in some more effort! ๐")
if __name__ == "__main__":
main() |