import streamlit as st import pandas as pd import joblib st.title("Student Performance Prediction") st.write("This app predicts a student's math score using regression model.") model = joblib.load("src/student_performance_model.pkl") feature_columns = joblib.load("src/feature_columns.pkl") gender = st.selectbox("Gender", ["female", "male"]) race = st.selectbox("Race/Ethnicity", ["group A", "group B", "group C", "group D", "group E"]) parent_education = st.selectbox( "Parental Level of Education", [ "some high school", "high school", "some college", "associate's degree", "bachelor's degree", "master's degree" ] ) lunch = st.selectbox("Lunch", ["standard", "free/reduced"]) test_prep = st.selectbox("Test Preparation Course", ["none", "completed"]) reading_score = st.number_input("Reading Score", min_value=0, max_value=100, value=70) writing_score = st.number_input("Writing Score", min_value=0, max_value=100, value=70) input_data = pd.DataFrame({ "gender": [gender], "race/ethnicity": [race], "parental level of education": [parent_education], "lunch": [lunch], "test preparation course": [test_prep], "reading score": [reading_score], "writing score": [writing_score] }) input_data = pd.get_dummies(input_data, drop_first=True) input_data = input_data.reindex(columns=feature_columns, fill_value=0) if st.button("Predict Math Score"): prediction = model.predict(input_data) st.subheader("Predicted Math Score") st.write(round(prediction[0], 2))