placementstream / app.py
harshiv's picture
Create app.py
64a481a
raw
history blame
2.75 kB
import streamlit as st
import pickle
import pandas as pd
# Load the trained models
rf_fullstk = pickle.load(open('rf_hacathon_fullstk.pkl', 'rb'))
rf_prodengg = pickle.load(open('rf_hacathon_prodengg.pkl', 'rb'))
rf_mkt = pickle.load(open('rf_hacathon_mkt.pkl', 'rb'))
# Define the function for prediction
def predict_placement(degree_p, internship, DSA, java, management, leadership, communication, sales, model):
data = pd.DataFrame({
'degree_p': degree_p,
'internship': internship,
'DSA': DSA,
'java': java,
'management': management,
'leadership': leadership,
'communication': communication,
'sales': sales
}, index=[0])
prediction = model.predict(data)[0]
probability = model.predict_proba(data)[0][1]
return prediction, probability
# Create the Streamlit app
def main():
st.title("Placement Prediction App")
st.sidebar.title("Options")
options = ["Full Stack Engineer", "Marketing", "Production Engineer"]
job_role = st.sidebar.selectbox("Select Job Role", options)
degree_p = st.slider("Degree Percentage", 0, 100, 50)
internship = st.radio("Internship", ["Yes", "No"])
DSA = st.radio("DSA Knowledge", [0, 1])
java = st.radio("Java Knowledge", [0, 1])
if job_role == "Full Stack Engineer":
management = st.slider("Management Skills", 0, 5, 0)
leadership = st.slider("Leadership Skills", 0, 5, 0)
communication = st.slider("Communication Skills", 0, 5, 0)
sales = st.slider("Sales Skills", 0, 5, 0)
prediction, probability = predict_placement(degree_p, internship, DSA, java, management, leadership, communication, sales, rf_fullstk)
elif job_role == "Marketing":
management = st.slider("Management Skills", 0, 5, 0)
leadership = st.slider("Leadership Skills", 0, 5, 0)
DSA = st.slider("DSA Knowledge", 0, 5, 0)
java = st.slider("Java Knowledge", 0, 5, 0)
prediction, probability = predict_placement(degree_p, internship, DSA, java, management, leadership, communication, sales, rf_mkt)
elif job_role == "Production Engineer":
communication = st.slider("Communication Skills", 0, 5, 0)
sales = st.slider("Sales Skills", 0, 5, 0)
management = st.slider("Management Skills", 0, 5, 0)
leadership = st.slider("Leadership Skills", 0, 5, 0)
prediction, probability = predict_placement(degree_p, internship, DSA, java, management, leadership, communication, sales, rf_prodengg)
if prediction == 1:
st.success("Placed")
st.success(f"You will be placed with a probability of {probability:.2f}")
else:
st.warning("Not Placed")
if __name__ == '__main__':
main()