import streamlit as st import pickle import pandas as pd import numpy as np # Load the trained model model = pickle.load(open('model.sav', 'rb')) # Set page config and style st.set_page_config(page_title='Student Placement Prediction', page_icon=':mortar_board:') st.markdown( """ """, unsafe_allow_html=True ) st.title('Student Placement Prediction') st.markdown('
', unsafe_allow_html=True) st.sidebar.header('Student Data') # Function to get user input def get_user_input(): gender = st.sidebar.selectbox('Gender', ['Male', 'Female']) ssc_p = st.sidebar.slider('SSC Percentage', 0.0, 100.0, 67.0) ssc_b = st.sidebar.selectbox('SSC Board', ['Central', 'Others']) hsc_p = st.sidebar.slider('HSC Percentage', 0.0, 100.0, 91.0) hsc_b = st.sidebar.selectbox('HSC Board', ['Central', 'Others']) hsc_s = st.sidebar.selectbox('HSC Stream', ['Science', 'Commerce', 'Arts']) degree_p = st.sidebar.slider('Degree Percentage', 0.0, 100.0, 58.0) degree_t = st.sidebar.selectbox('Degree Field', ['Sci&Tech', 'Comm&Mgmt', 'Others']) workex = st.sidebar.selectbox('Work Experience', ['No', 'Yes']) etest_p = st.sidebar.slider('Employability Test Percentage', 0.0, 100.0, 55.0) specialisation = st.sidebar.selectbox('MBA Specialization', ['Mkt&HR', 'Mkt&Fin']) mba_p = st.sidebar.slider('MBA Percentage', 0.0, 100.0, 58.8) user_data = { 'gender': 0 if gender == 'Male' else 1, 'ssc_p': ssc_p, 'ssc_b': 0 if ssc_b == 'Central' else 1, 'hsc_p': hsc_p, 'hsc_b': 0 if hsc_b == 'Central' else 1, 'hsc_s': 0 if hsc_s == 'Science' else 1 if hsc_s == 'Commerce' else 2, 'degree_p': degree_p, 'degree_t': 0 if degree_t == 'Sci&Tech' else 1 if degree_t == 'Comm&Mgmt' else 2, 'workex': 0 if workex == 'No' else 1, 'etest_p': etest_p, 'specialisation': 0 if specialisation == 'Mkt&HR' else 1, 'mba_p': mba_p } user_data_df = pd.DataFrame(user_data, index=[0]) return user_data_df user_data_df = get_user_input() st.markdown('
Student Data
', unsafe_allow_html=True) st.write(user_data_df) if st.button('Predict'): prediction = model.predict(user_data_df) placement = "Placed" if prediction[0] == 1 else "Not Placed" prediction_text = f"Placement Prediction: {placement}" if placement == "Placed" else f"Placement Prediction: {placement}" st.markdown(f"
{prediction_text}
", unsafe_allow_html=True) st.markdown('
', unsafe_allow_html=True)