File size: 2,219 Bytes
154b7a1
1d799b9
4892bb0
1d799b9
e6b2bd9
1d799b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e6b2bd9
1d799b9
 
4892bb0
 
1d799b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4892bb0
 
1d799b9
 
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
60
61
62
63
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()