harshiv's picture
Update app.py
1d799b9
raw
history blame
2.22 kB
import gradio as gr
import joblib
import pickle
import pandas as pd
# Load the trained models
rf_fullstk = joblib.load('rf_hacathon_fullstk.pkl')
rf_prodengg = joblib.load('rf_hacathon_prodengg.pkl')
rf_mkt = joblib.load('rf_hacathon_mkt.pkl')
# Define the prediction function
def predict_placement(degree_p, internship, DSA, java, management, leadership, communication, sales):
# Create a new data frame from the input
new_data = pd.DataFrame({
'degree_p': degree_p,
'internship': internship,
'DSA': DSA,
'java': java,
'management': management,
'leadership': leadership,
'communication': communication,
'sales': sales
}, index=[0])
# Predict placement using the respective model
if management == 1 and leadership == 0:
p = rf_prodengg.predict(new_data)[0]
prob = rf_prodengg.predict_proba(new_data)[0][1]
elif DSA == 1 and java == 0:
p = rf_fullstk.predict(new_data)[0]
prob = rf_fullstk.predict_proba(new_data)[0][1]
elif communication == 0 and sales == 1:
p = rf_mkt.predict(new_data)[0]
prob = rf_mkt.predict_proba(new_data)[0][1]
else:
p = 0
prob = 0
if p == 1:
result = f'Placed\nYou will be placed with a probability of {prob:.2f}'
else:
result = 'Not Placed'
return result
# Create the Gradio interface
iface = gr.Interface(
fn=predict_placement,
inputs=[
gr.inputs.Slider(label='Degree Percentage', minimum=0, maximum=100, default=75, step=1, key='degree_p'),
gr.inputs.Checkbox(label='Internship', default=True, key='internship'),
gr.inputs.Checkbox(label='DSA', default=True, key='DSA'),
gr.inputs.Checkbox(label='Java', default=False, key='java'),
gr.inputs.Checkbox(label='Management', default=False, key='management'),
gr.inputs.Checkbox(label='Leadership', default=False, key='leadership'),
gr.inputs.Checkbox(label='Communication', default=False, key='communication'),
gr.inputs.Checkbox(label='Sales', default=False, key='sales')
],
outputs=gr.outputs.Textbox(label='Placement Prediction')
)
# Run the Gradio app
iface.launch()