piyusharma commited on
Commit
2855f37
Β·
verified Β·
1 Parent(s): 0aec5d5

Upload 11 files

Browse files
Campus_Selection.csv ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ sl_no,gender,ssc_p,ssc_b,hsc_p,hsc_b,hsc_s,degree_p,degree_t,workex,etest_p,specialisation,mba_p,status
2
+ 1,M,67.0,Others,91.0,Others,Commerce,58.0,Sci&Tech,No,55.0,Mkt&HR,58.8,Placed
3
+ 2,M,79.33,Central,78.33,Others,Science,77.48,Sci&Tech,Yes,86.5,Mkt&Fin,66.28,Placed
4
+ 3,M,65.0,Central,68.0,Central,Arts,64.0,Comm&Mgmt,No,75.0,Mkt&Fin,57.8,Placed
5
+ 4,M,56.0,Central,52.0,Central,Science,52.0,Sci&Tech,No,66.0,Mkt&HR,59.43,Not Placed
6
+ 5,M,85.8,Central,73.6,Central,Commerce,73.3,Comm&Mgmt,No,96.8,Mkt&Fin,55.5,Placed
7
+ 6,M,55.0,Others,49.8,Others,Science,67.25,Sci&Tech,Yes,55.0,Mkt&Fin,51.58,Not Placed
8
+ 7,F,46.0,Others,49.2,Others,Commerce,79.0,Comm&Mgmt,No,74.28,Mkt&Fin,53.29,Not Placed
9
+ 8,M,82.0,Central,64.0,Central,Science,66.0,Sci&Tech,Yes,67.0,Mkt&Fin,62.14,Placed
10
+ 9,M,73.0,Central,79.0,Central,Commerce,72.0,Comm&Mgmt,No,91.34,Mkt&Fin,61.29,Placed
11
+ 10,M,58.0,Central,70.0,Central,Commerce,61.0,Comm&Mgmt,No,54.0,Mkt&Fin,52.21,Not Placed
12
+ 11,M,58.0,Central,61.0,Central,Commerce,60.0,Comm&Mgmt,Yes,62.0,Mkt&HR,60.85,Placed
13
+ 12,M,69.6,Central,68.4,Central,Commerce,78.3,Comm&Mgmt,Yes,60.0,Mkt&Fin,63.7,Placed
14
+ 13,F,47.0,Central,55.0,Others,Science,65.0,Comm&Mgmt,No,62.0,Mkt&HR,65.04,Not Placed
15
+ 14,F,77.0,Central,87.0,Central,Commerce,59.0,Comm&Mgmt,No,68.0,Mkt&Fin,68.63,Placed
16
+ 15,M,62.0,Central,47.0,Central,Commerce,50.0,Comm&Mgmt,No,76.0,Mkt&HR,54.96,Not Placed
17
+ 16,F,65.0,Central,75.0,Central,Commerce,69.0,Comm&Mgmt,Yes,72.0,Mkt&Fin,64.66,Placed
18
+ 17,M,63.0,Central,66.2,Central,Commerce,65.6,Comm&Mgmt,Yes,60.0,Mkt&Fin,62.54,Placed
19
+ 18,F,55.0,Central,67.0,Central,Commerce,64.0,Comm&Mgmt,No,60.0,Mkt&Fin,67.28,Not Placed
20
+ 19,F,63.0,Central,66.0,Central,Commerce,64.0,Comm&Mgmt,No,68.0,Mkt&HR,64.08,Not Placed
21
+ 20,M,60.0,Others,67.0,Others,Arts,70.0,Comm&Mgmt,Yes,50.48,Mkt&Fin,77.89,Placed
22
+ 21,M,62.0,Others,65.0,Others,Commerce,66.0,Comm&Mgmt,No,50.0,Mkt&HR,56.7,Placed
23
+ 22,F,79.0,Others,76.0,Others,Commerce,85.0,Comm&Mgmt,No,95.0,Mkt&Fin,69.06,Placed
24
+ 23,F,69.8,Others,60.8,Others,Science,72.23,Sci&Tech,No,55.53,Mkt&HR,68.81,Placed
25
+ 24,F,77.4,Others,60.0,Others,Science,64.74,Sci&Tech,Yes,92.0,Mkt&Fin,63.62,Placed
26
+ 25,M,76.5,Others,97.7,Others,Science,78.86,Sci&Tech,No,97.4,Mkt&Fin,74.01,Placed
27
+ 26,F,52.58,Others,54.6,Central,Commerce,50.2,Comm&Mgmt,Yes,76.0,Mkt&Fin,65.33,Not Placed
28
+ 27,M,71.0,Others,79.0,Others,Commerce,66.0,Comm&Mgmt,Yes,94.0,Mkt&Fin,57.55,Placed
29
+ 28,M,63.0,Others,67.0,Others,Commerce,66.0,Comm&Mgmt,No,68.0,Mkt&HR,57.69,Placed
30
+ 29,M,76.76,Others,76.5,Others,Commerce,67.5,Comm&Mgmt,Yes,73.35,Mkt&Fin,64.15,Placed
31
+ 30,M,62.0,Central,67.0,Central,Commerce,58.0,Comm&Mgmt,No,77.0,Mkt&Fin,51.29,Not Placed
32
+ 31,F,64.0,Central,73.5,Central,Commerce,73.0,Comm&Mgmt,No,52.0,Mkt&HR,56.7,Placed
33
+ 32,F,67.0,Central,53.0,Central,Science,65.0,Sci&Tech,No,64.0,Mkt&HR,58.32,Not Placed
34
+ 33,F,61.0,Central,81.0,Central,Commerce,66.4,Comm&Mgmt,No,50.89,Mkt&HR,62.21,Placed
35
+ 34,F,87.0,Others,65.0,Others,Science,81.0,Comm&Mgmt,Yes,88.0,Mkt&Fin,72.78,Placed
36
+ 35,M,62.0,Others,51.0,Others,Science,52.0,Others,No,68.44,Mkt&HR,62.77,Not Placed
37
+ 36,F,69.0,Central,78.0,Central,Commerce,72.0,Comm&Mgmt,No,71.0,Mkt&HR,62.74,Placed
38
+ 37,M,51.0,Central,44.0,Central,Commerce,57.0,Comm&Mgmt,No,64.0,Mkt&Fin,51.45,Not Placed
39
+ 38,F,79.0,Central,76.0,Central,Science,65.6,Sci&Tech,No,58.0,Mkt&HR,55.47,Placed
40
+ 39,F,73.0,Others,58.0,Others,Science,66.0,Comm&Mgmt,No,53.7,Mkt&HR,56.86,Placed
41
+ 40,M,81.0,Others,68.0,Others,Science,64.0,Sci&Tech,No,93.0,Mkt&Fin,62.56,Placed
42
+ 41,F,78.0,Central,77.0,Others,Commerce,80.0,Comm&Mgmt,No,60.0,Mkt&Fin,66.72,Placed
43
+ 42,F,74.0,Others,63.16,Others,Commerce,65.0,Comm&Mgmt,Yes,65.0,Mkt&HR,69.76,Not Placed
44
+ 43,M,49.0,Others,39.0,Central,Science,65.0,Others,No,63.0,Mkt&Fin,51.21,Not Placed
45
+ 44,M,87.0,Others,87.0,Others,Commerce,68.0,Comm&Mgmt,No,95.0,Mkt&HR,62.9,Placed
46
+ 45,F,77.0,Others,73.0,Others,Commerce,81.0,Comm&Mgmt,Yes,89.0,Mkt&Fin,69.7,Placed
47
+ 46,F,76.0,Central,64.0,Central,Science,72.0,Sci&Tech,No,58.0,Mkt&HR,66.53,Not Placed
48
+ 47,F,70.89,Others,71.98,Others,Science,65.6,Comm&Mgmt,No,68.0,Mkt&HR,71.63,Not Placed
49
+ 48,M,63.0,Central,60.0,Central,Commerce,57.0,Comm&Mgmt,Yes,78.0,Mkt&Fin,54.55,Placed
50
+ 49,M,63.0,Others,62.0,Others,Commerce,68.0,Comm&Mgmt,No,64.0,Mkt&Fin,62.46,Placed
51
+ 50,F,50.0,Others,37.0,Others,Arts,52.0,Others,No,65.0,Mkt&HR,56.11,Not Placed
52
+ 51,F,75.2,Central,73.2,Central,Science,68.4,Comm&Mgmt,No,65.0,Mkt&HR,62.98,Placed
53
+ 52,M,54.4,Central,61.12,Central,Commerce,56.2,Comm&Mgmt,No,67.0,Mkt&HR,62.65,Not Placed
54
+ 53,F,40.89,Others,45.83,Others,Commerce,53.0,Comm&Mgmt,No,71.2,Mkt&HR,65.49,Not Placed
55
+ 54,M,80.0,Others,70.0,Others,Science,72.0,Sci&Tech,No,87.0,Mkt&HR,71.04,Placed
56
+ 55,F,74.0,Central,60.0,Others,Science,69.0,Comm&Mgmt,No,78.0,Mkt&HR,65.56,Placed
57
+ 56,M,60.4,Central,66.6,Others,Science,65.0,Comm&Mgmt,No,71.0,Mkt&HR,52.71,Placed
58
+ 57,M,63.0,Others,71.4,Others,Commerce,61.4,Comm&Mgmt,No,68.0,Mkt&Fin,66.88,Placed
59
+ 58,M,68.0,Central,76.0,Central,Commerce,74.0,Comm&Mgmt,No,80.0,Mkt&Fin,63.59,Placed
60
+ 59,M,74.0,Central,62.0,Others,Science,68.0,Comm&Mgmt,No,74.0,Mkt&Fin,57.99,Placed
61
+ 60,M,52.6,Central,65.58,Others,Science,72.11,Sci&Tech,No,57.6,Mkt&Fin,56.66,Placed
62
+ 61,M,74.0,Central,70.0,Central,Science,72.0,Comm&Mgmt,Yes,60.0,Mkt&Fin,57.24,Placed
63
+ 62,M,84.2,Central,73.4,Central,Commerce,66.89,Comm&Mgmt,No,61.6,Mkt&Fin,62.48,Placed
64
+ 63,F,86.5,Others,64.2,Others,Science,67.4,Sci&Tech,No,59.0,Mkt&Fin,59.69,Placed
65
+ 64,M,61.0,Others,70.0,Others,Commerce,64.0,Comm&Mgmt,No,68.5,Mkt&HR,59.5,Not Placed
66
+ 65,M,80.0,Others,73.0,Others,Commerce,75.0,Comm&Mgmt,No,61.0,Mkt&Fin,58.78,Placed
67
+ 66,M,54.0,Others,47.0,Others,Science,57.0,Comm&Mgmt,No,89.69,Mkt&HR,57.1,Not Placed
68
+ 67,M,83.0,Others,74.0,Others,Science,66.0,Comm&Mgmt,No,68.92,Mkt&HR,58.46,Placed
69
+ 68,M,80.92,Others,78.5,Others,Commerce,67.0,Comm&Mgmt,No,68.71,Mkt&Fin,60.99,Placed
70
+ 69,F,69.7,Central,47.0,Central,Commerce,72.7,Sci&Tech,No,79.0,Mkt&HR,59.24,Not Placed
71
+ 70,M,73.0,Central,73.0,Central,Science,66.0,Sci&Tech,Yes,70.0,Mkt&Fin,68.07,Placed
72
+ 71,M,82.0,Others,61.0,Others,Science,62.0,Sci&Tech,No,89.0,Mkt&Fin,65.45,Placed
73
+ 72,M,75.0,Others,70.29,Others,Commerce,71.0,Comm&Mgmt,No,95.0,Mkt&Fin,66.94,Placed
74
+ 73,M,84.86,Others,67.0,Others,Science,78.0,Comm&Mgmt,No,95.5,Mkt&Fin,68.53,Placed
75
+ 74,M,64.6,Central,83.83,Others,Commerce,71.72,Comm&Mgmt,No,86.0,Mkt&Fin,59.75,Placed
76
+ 75,M,56.6,Central,64.8,Central,Commerce,70.2,Comm&Mgmt,No,84.27,Mkt&Fin,67.2,Placed
77
+ 76,F,59.0,Central,62.0,Others,Commerce,77.5,Comm&Mgmt,No,74.0,Mkt&HR,67.0,Not Placed
78
+ 77,F,66.5,Others,70.4,Central,Arts,71.93,Comm&Mgmt,No,61.0,Mkt&Fin,64.27,Placed
79
+ 78,M,64.0,Others,80.0,Others,Science,65.0,Sci&Tech,Yes,69.0,Mkt&Fin,57.65,Placed
80
+ 79,M,84.0,Others,90.9,Others,Science,64.5,Sci&Tech,No,86.04,Mkt&Fin,59.42,Placed
81
+ 80,F,69.0,Central,62.0,Central,Science,66.0,Sci&Tech,No,75.0,Mkt&HR,67.99,Not Placed
82
+ 81,F,69.0,Others,62.0,Others,Commerce,69.0,Comm&Mgmt,Yes,67.0,Mkt&HR,62.35,Placed
83
+ 82,M,81.7,Others,63.0,Others,Science,67.0,Comm&Mgmt,Yes,86.0,Mkt&Fin,70.2,Placed
84
+ 83,M,63.0,Central,67.0,Central,Commerce,74.0,Comm&Mgmt,No,82.0,Mkt&Fin,60.44,Not Placed
85
+ 84,M,84.0,Others,79.0,Others,Science,68.0,Sci&Tech,Yes,84.0,Mkt&Fin,66.69,Placed
86
+ 85,M,70.0,Central,63.0,Others,Science,70.0,Sci&Tech,Yes,55.0,Mkt&Fin,62.0,Placed
87
+ 86,F,83.84,Others,89.83,Others,Commerce,77.2,Comm&Mgmt,Yes,78.74,Mkt&Fin,76.18,Placed
88
+ 87,M,62.0,Others,63.0,Others,Commerce,64.0,Comm&Mgmt,No,67.0,Mkt&Fin,57.03,Placed
89
+ 88,M,59.6,Central,51.0,Central,Science,60.0,Others,No,75.0,Mkt&HR,59.08,Not Placed
90
+ 89,F,66.0,Central,62.0,Central,Commerce,73.0,Comm&Mgmt,No,58.0,Mkt&HR,64.36,Placed
91
+ 90,F,84.0,Others,75.0,Others,Science,69.0,Sci&Tech,Yes,62.0,Mkt&HR,62.36,Placed
92
+ 91,F,85.0,Others,90.0,Others,Commerce,82.0,Comm&Mgmt,No,92.0,Mkt&Fin,68.03,Placed
93
+ 92,M,52.0,Central,57.0,Central,Commerce,50.8,Comm&Mgmt,No,67.0,Mkt&HR,62.79,Not Placed
94
+ 93,F,60.23,Central,69.0,Central,Science,66.0,Comm&Mgmt,No,72.0,Mkt&Fin,59.47,Placed
95
+ 94,M,52.0,Central,62.0,Central,Commerce,54.0,Comm&Mgmt,No,72.0,Mkt&HR,55.41,Not Placed
96
+ 95,M,58.0,Central,62.0,Central,Commerce,64.0,Comm&Mgmt,No,53.88,Mkt&Fin,54.97,Placed
97
+ 96,M,73.0,Central,78.0,Others,Commerce,65.0,Comm&Mgmt,Yes,95.46,Mkt&Fin,62.16,Placed
98
+ 97,F,76.0,Central,70.0,Central,Science,76.0,Comm&Mgmt,Yes,66.0,Mkt&Fin,64.44,Placed
99
+ 98,F,70.5,Central,62.5,Others,Commerce,61.0,Comm&Mgmt,No,93.91,Mkt&Fin,69.03,Not Placed
100
+ 99,F,69.0,Central,73.0,Central,Commerce,65.0,Comm&Mgmt,No,70.0,Mkt&Fin,57.31,Placed
101
+ 100,M,54.0,Central,82.0,Others,Commerce,63.0,Sci&Tech,No,50.0,Mkt&Fin,59.47,Not Placed
102
+ 101,F,45.0,Others,57.0,Others,Commerce,58.0,Comm&Mgmt,Yes,56.39,Mkt&HR,64.95,Not Placed
103
+ 102,M,63.0,Central,72.0,Central,Commerce,68.0,Comm&Mgmt,No,78.0,Mkt&HR,60.44,Placed
104
+ 103,F,77.0,Others,61.0,Others,Commerce,68.0,Comm&Mgmt,Yes,57.5,Mkt&Fin,61.31,Placed
105
+ 104,M,73.0,Central,78.0,Central,Science,73.0,Sci&Tech,Yes,85.0,Mkt&HR,65.83,Placed
106
+ 105,M,69.0,Central,63.0,Others,Science,65.0,Comm&Mgmt,Yes,55.0,Mkt&HR,58.23,Placed
107
+ 106,M,59.0,Central,64.0,Others,Science,58.0,Sci&Tech,No,85.0,Mkt&HR,55.3,Not Placed
108
+ 107,M,61.08,Others,50.0,Others,Science,54.0,Sci&Tech,No,71.0,Mkt&Fin,65.69,Not Placed
109
+ 108,M,82.0,Others,90.0,Others,Commerce,83.0,Comm&Mgmt,No,80.0,Mkt&HR,73.52,Placed
110
+ 109,M,61.0,Central,82.0,Central,Commerce,69.0,Comm&Mgmt,No,84.0,Mkt&Fin,58.31,Placed
111
+ 110,M,52.0,Central,63.0,Others,Science,65.0,Sci&Tech,Yes,86.0,Mkt&HR,56.09,Not Placed
112
+ 111,F,69.5,Central,70.0,Central,Science,72.0,Sci&Tech,No,57.2,Mkt&HR,54.8,Placed
113
+ 112,M,51.0,Others,54.0,Others,Science,61.0,Sci&Tech,No,60.0,Mkt&HR,60.64,Not Placed
114
+ 113,M,58.0,Others,61.0,Others,Commerce,61.0,Comm&Mgmt,No,58.0,Mkt&HR,53.94,Placed
115
+ 114,F,73.96,Others,79.0,Others,Commerce,67.0,Comm&Mgmt,No,72.15,Mkt&Fin,63.08,Placed
116
+ 115,M,65.0,Central,68.0,Others,Science,69.0,Comm&Mgmt,No,53.7,Mkt&HR,55.01,Placed
117
+ 116,F,73.0,Others,63.0,Others,Science,66.0,Comm&Mgmt,No,89.0,Mkt&Fin,60.5,Placed
118
+ 117,M,68.2,Central,72.8,Central,Commerce,66.6,Comm&Mgmt,Yes,96.0,Mkt&Fin,70.85,Placed
119
+ 118,M,77.0,Others,75.0,Others,Science,73.0,Sci&Tech,No,80.0,Mkt&Fin,67.05,Placed
120
+ 119,M,76.0,Central,80.0,Central,Science,78.0,Sci&Tech,Yes,97.0,Mkt&HR,70.48,Placed
121
+ 120,M,60.8,Central,68.4,Central,Commerce,64.6,Comm&Mgmt,Yes,82.66,Mkt&Fin,64.34,Placed
122
+ 121,M,58.0,Others,40.0,Others,Science,59.0,Comm&Mgmt,No,73.0,Mkt&HR,58.81,Not Placed
123
+ 122,F,64.0,Central,67.0,Others,Science,69.6,Sci&Tech,Yes,55.67,Mkt&HR,71.49,Placed
124
+ 123,F,66.5,Central,66.8,Central,Arts,69.3,Comm&Mgmt,Yes,80.4,Mkt&Fin,71.0,Placed
125
+ 124,M,74.0,Others,59.0,Others,Commerce,73.0,Comm&Mgmt,Yes,60.0,Mkt&HR,56.7,Placed
126
+ 125,M,67.0,Central,71.0,Central,Science,64.33,Others,Yes,64.0,Mkt&HR,61.26,Placed
127
+ 126,F,84.0,Central,73.0,Central,Commerce,73.0,Comm&Mgmt,No,75.0,Mkt&Fin,73.33,Placed
128
+ 127,F,79.0,Others,61.0,Others,Science,75.5,Sci&Tech,Yes,70.0,Mkt&Fin,68.2,Placed
129
+ 128,F,72.0,Others,60.0,Others,Science,69.0,Comm&Mgmt,No,55.5,Mkt&HR,58.4,Placed
130
+ 129,M,80.4,Central,73.4,Central,Science,77.72,Sci&Tech,Yes,81.2,Mkt&HR,76.26,Placed
131
+ 130,M,76.7,Central,89.7,Others,Commerce,66.0,Comm&Mgmt,Yes,90.0,Mkt&Fin,68.55,Placed
132
+ 131,M,62.0,Central,65.0,Others,Commerce,60.0,Comm&Mgmt,No,84.0,Mkt&Fin,64.15,Not Placed
133
+ 132,F,74.9,Others,57.0,Others,Science,62.0,Others,Yes,80.0,Mkt&Fin,60.78,Placed
134
+ 133,M,67.0,Others,68.0,Others,Commerce,64.0,Comm&Mgmt,Yes,74.4,Mkt&HR,53.49,Placed
135
+ 134,M,73.0,Central,64.0,Others,Commerce,77.0,Comm&Mgmt,Yes,65.0,Mkt&HR,60.98,Placed
136
+ 135,F,77.44,Central,92.0,Others,Commerce,72.0,Comm&Mgmt,Yes,94.0,Mkt&Fin,67.13,Placed
137
+ 136,F,72.0,Central,56.0,Others,Science,69.0,Comm&Mgmt,No,55.6,Mkt&HR,65.63,Placed
138
+ 137,F,47.0,Central,59.0,Central,Arts,64.0,Comm&Mgmt,No,78.0,Mkt&Fin,61.58,Not Placed
139
+ 138,M,67.0,Others,63.0,Central,Commerce,72.0,Comm&Mgmt,No,56.0,Mkt&HR,60.41,Placed
140
+ 139,F,82.0,Others,64.0,Others,Science,73.0,Sci&Tech,Yes,96.0,Mkt&Fin,71.77,Placed
141
+ 140,M,77.0,Central,70.0,Central,Commerce,59.0,Comm&Mgmt,Yes,58.0,Mkt&Fin,54.43,Placed
142
+ 141,M,65.0,Central,64.8,Others,Commerce,69.5,Comm&Mgmt,Yes,56.0,Mkt&Fin,56.94,Placed
143
+ 142,M,66.0,Central,64.0,Central,Science,60.0,Comm&Mgmt,No,60.0,Mkt&HR,61.9,Not Placed
144
+ 143,M,85.0,Central,60.0,Others,Science,73.43,Sci&Tech,Yes,60.0,Mkt&Fin,61.29,Placed
145
+ 144,M,77.67,Others,64.89,Others,Commerce,70.67,Comm&Mgmt,No,89.0,Mkt&Fin,60.39,Placed
146
+ 145,M,52.0,Others,50.0,Others,Arts,61.0,Comm&Mgmt,No,60.0,Mkt&Fin,58.52,Not Placed
147
+ 146,M,89.4,Others,65.66,Others,Science,71.25,Sci&Tech,No,72.0,Mkt&HR,63.23,Placed
148
+ 147,M,62.0,Central,63.0,Others,Science,66.0,Comm&Mgmt,No,85.0,Mkt&HR,55.14,Placed
149
+ 148,M,70.0,Central,74.0,Central,Commerce,65.0,Comm&Mgmt,No,83.0,Mkt&Fin,62.28,Placed
150
+ 149,F,77.0,Central,86.0,Central,Arts,56.0,Others,No,57.0,Mkt&Fin,64.08,Placed
151
+ 150,M,44.0,Central,58.0,Central,Arts,55.0,Comm&Mgmt,Yes,64.25,Mkt&HR,58.54,Not Placed
152
+ 151,M,71.0,Central,58.66,Central,Science,58.0,Sci&Tech,Yes,56.0,Mkt&Fin,61.3,Placed
153
+ 152,M,65.0,Central,65.0,Central,Commerce,75.0,Comm&Mgmt,No,83.0,Mkt&Fin,58.87,Placed
154
+ 153,F,75.4,Others,60.5,Central,Science,84.0,Sci&Tech,No,98.0,Mkt&Fin,65.25,Placed
155
+ 154,M,49.0,Others,59.0,Others,Science,65.0,Sci&Tech,Yes,86.0,Mkt&Fin,62.48,Placed
156
+ 155,M,53.0,Central,63.0,Others,Science,60.0,Comm&Mgmt,Yes,70.0,Mkt&Fin,53.2,Placed
157
+ 156,M,51.57,Others,74.66,Others,Commerce,59.9,Comm&Mgmt,Yes,56.15,Mkt&HR,65.99,Not Placed
158
+ 157,M,84.2,Central,69.4,Central,Science,65.0,Sci&Tech,Yes,80.0,Mkt&HR,52.72,Placed
159
+ 158,M,66.5,Central,62.5,Central,Commerce,60.9,Comm&Mgmt,No,93.4,Mkt&Fin,55.03,Placed
160
+ 159,M,67.0,Others,63.0,Others,Science,64.0,Sci&Tech,No,60.0,Mkt&Fin,61.87,Not Placed
161
+ 160,M,52.0,Central,49.0,Others,Commerce,58.0,Comm&Mgmt,No,62.0,Mkt&HR,60.59,Not Placed
162
+ 161,M,87.0,Central,74.0,Central,Science,65.0,Sci&Tech,Yes,75.0,Mkt&HR,72.29,Placed
163
+ 162,M,55.6,Others,51.0,Others,Commerce,57.5,Comm&Mgmt,No,57.63,Mkt&HR,62.72,Not Placed
164
+ 163,M,74.2,Central,87.6,Others,Commerce,77.25,Comm&Mgmt,Yes,75.2,Mkt&Fin,66.06,Placed
165
+ 164,M,63.0,Others,67.0,Others,Science,64.0,Sci&Tech,No,75.0,Mkt&Fin,66.46,Placed
166
+ 165,F,67.16,Central,72.5,Central,Commerce,63.35,Comm&Mgmt,No,53.04,Mkt&Fin,65.52,Placed
167
+ 166,F,63.3,Central,78.33,Others,Commerce,74.0,Comm&Mgmt,No,80.0,Mkt&Fin,74.56,Not Placed
168
+ 167,M,62.0,Others,62.0,Others,Commerce,60.0,Comm&Mgmt,Yes,63.0,Mkt&HR,52.38,Placed
169
+ 168,M,67.9,Others,62.0,Others,Science,67.0,Sci&Tech,Yes,58.1,Mkt&Fin,75.71,Not Placed
170
+ 169,F,48.0,Central,51.0,Central,Commerce,58.0,Comm&Mgmt,Yes,60.0,Mkt&HR,58.79,Not Placed
171
+ 170,M,59.96,Others,42.16,Others,Science,61.26,Sci&Tech,No,54.48,Mkt&HR,65.48,Not Placed
172
+ 171,F,63.4,Others,67.2,Others,Commerce,60.0,Comm&Mgmt,No,58.06,Mkt&HR,69.28,Not Placed
173
+ 172,M,80.0,Others,80.0,Others,Commerce,72.0,Comm&Mgmt,Yes,63.79,Mkt&Fin,66.04,Placed
174
+ 173,M,73.0,Others,58.0,Others,Commerce,56.0,Comm&Mgmt,No,84.0,Mkt&HR,52.64,Placed
175
+ 174,F,52.0,Others,52.0,Others,Science,55.0,Sci&Tech,No,67.0,Mkt&HR,59.32,Not Placed
176
+ 175,M,73.24,Others,50.83,Others,Science,64.27,Sci&Tech,Yes,64.0,Mkt&Fin,66.23,Placed
177
+ 176,M,63.0,Others,62.0,Others,Science,65.0,Sci&Tech,No,87.5,Mkt&HR,60.69,Not Placed
178
+ 177,F,59.0,Central,60.0,Others,Commerce,56.0,Comm&Mgmt,No,55.0,Mkt&HR,57.9,Placed
179
+ 178,F,73.0,Central,97.0,Others,Commerce,79.0,Comm&Mgmt,Yes,89.0,Mkt&Fin,70.81,Placed
180
+ 179,M,68.0,Others,56.0,Others,Science,68.0,Sci&Tech,No,73.0,Mkt&HR,68.07,Placed
181
+ 180,F,77.8,Central,64.0,Central,Science,64.2,Sci&Tech,No,75.5,Mkt&HR,72.14,Not Placed
182
+ 181,M,65.0,Central,71.5,Others,Commerce,62.8,Comm&Mgmt,Yes,57.0,Mkt&Fin,56.6,Placed
183
+ 182,M,62.0,Central,60.33,Others,Science,64.21,Sci&Tech,No,63.0,Mkt&HR,60.02,Not Placed
184
+ 183,M,52.0,Others,65.0,Others,Arts,57.0,Others,Yes,75.0,Mkt&Fin,59.81,Not Placed
185
+ 184,M,65.0,Central,77.0,Central,Commerce,69.0,Comm&Mgmt,No,60.0,Mkt&HR,61.82,Placed
186
+ 185,F,56.28,Others,62.83,Others,Commerce,59.79,Comm&Mgmt,No,60.0,Mkt&HR,57.29,Not Placed
187
+ 186,F,88.0,Central,72.0,Central,Science,78.0,Others,No,82.0,Mkt&HR,71.43,Placed
188
+ 187,F,52.0,Central,64.0,Central,Commerce,61.0,Comm&Mgmt,No,55.0,Mkt&Fin,62.93,Not Placed
189
+ 188,M,78.5,Central,65.5,Central,Science,67.0,Sci&Tech,Yes,95.0,Mkt&Fin,64.86,Placed
190
+ 189,M,61.8,Others,47.0,Others,Commerce,54.38,Comm&Mgmt,No,57.0,Mkt&Fin,56.13,Not Placed
191
+ 190,F,54.0,Central,77.6,Others,Commerce,69.2,Comm&Mgmt,No,95.65,Mkt&Fin,66.94,Not Placed
192
+ 191,F,64.0,Others,70.2,Central,Commerce,61.0,Comm&Mgmt,No,50.0,Mkt&Fin,62.5,Not Placed
193
+ 192,M,67.0,Others,61.0,Central,Science,72.0,Comm&Mgmt,No,72.0,Mkt&Fin,61.01,Placed
194
+ 193,M,65.2,Central,61.4,Central,Commerce,64.8,Comm&Mgmt,Yes,93.4,Mkt&Fin,57.34,Placed
195
+ 194,F,60.0,Central,63.0,Central,Arts,56.0,Others,Yes,80.0,Mkt&HR,56.63,Placed
196
+ 195,M,52.0,Others,55.0,Others,Commerce,56.3,Comm&Mgmt,No,59.0,Mkt&Fin,64.74,Not Placed
197
+ 196,M,66.0,Central,76.0,Central,Commerce,72.0,Comm&Mgmt,Yes,84.0,Mkt&HR,58.95,Placed
198
+ 197,M,72.0,Others,63.0,Others,Science,77.5,Sci&Tech,Yes,78.0,Mkt&Fin,54.48,Placed
199
+ 198,F,83.96,Others,53.0,Others,Science,91.0,Sci&Tech,No,59.32,Mkt&HR,69.71,Placed
200
+ 199,F,67.0,Central,70.0,Central,Commerce,65.0,Others,No,88.0,Mkt&HR,71.96,Not Placed
201
+ 200,M,69.0,Others,65.0,Others,Commerce,57.0,Comm&Mgmt,No,73.0,Mkt&HR,55.8,Placed
202
+ 201,M,69.0,Others,60.0,Others,Commerce,65.0,Comm&Mgmt,No,87.55,Mkt&Fin,52.81,Placed
203
+ 202,M,54.2,Central,63.0,Others,Science,58.0,Comm&Mgmt,No,79.0,Mkt&HR,58.44,Not Placed
204
+ 203,M,70.0,Central,63.0,Central,Science,66.0,Sci&Tech,No,61.28,Mkt&HR,60.11,Placed
205
+ 204,M,55.68,Others,61.33,Others,Commerce,56.87,Comm&Mgmt,No,66.0,Mkt&HR,58.3,Placed
206
+ 205,F,74.0,Others,73.0,Others,Commerce,73.0,Comm&Mgmt,Yes,80.0,Mkt&Fin,67.69,Placed
207
+ 206,M,61.0,Others,62.0,Others,Commerce,65.0,Comm&Mgmt,No,62.0,Mkt&Fin,56.81,Placed
208
+ 207,M,41.0,Central,42.0,Central,Science,60.0,Comm&Mgmt,No,97.0,Mkt&Fin,53.39,Not Placed
209
+ 208,M,83.33,Central,78.0,Others,Commerce,61.0,Comm&Mgmt,Yes,88.56,Mkt&Fin,71.55,Placed
210
+ 209,F,43.0,Central,60.0,Others,Science,65.0,Comm&Mgmt,No,92.66,Mkt&HR,62.92,Not Placed
211
+ 210,M,62.0,Central,72.0,Central,Commerce,65.0,Comm&Mgmt,No,67.0,Mkt&Fin,56.49,Placed
212
+ 211,M,80.6,Others,82.0,Others,Commerce,77.6,Comm&Mgmt,No,91.0,Mkt&Fin,74.49,Placed
213
+ 212,M,58.0,Others,60.0,Others,Science,72.0,Sci&Tech,No,74.0,Mkt&Fin,53.62,Placed
214
+ 213,M,67.0,Others,67.0,Others,Commerce,73.0,Comm&Mgmt,Yes,59.0,Mkt&Fin,69.72,Placed
215
+ 214,F,74.0,Others,66.0,Others,Commerce,58.0,Comm&Mgmt,No,70.0,Mkt&HR,60.23,Placed
216
+ 215,M,62.0,Central,58.0,Others,Science,53.0,Comm&Mgmt,No,89.0,Mkt&HR,60.22,Not Placed
app.py ADDED
@@ -0,0 +1,350 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ # ==================================================
3
+ # app.py - Gradio App for Hugging Face Spaces
4
+ # Campus Placement Prediction
5
+ # ==================================================
6
+
7
+ import gradio as gr
8
+ import pandas as pd
9
+ import joblib
10
+ import numpy as np
11
+ import matplotlib.pyplot as plt # Only needed for figure type hint potentially
12
+ import seaborn as sns # Not directly used if images are pre-generated
13
+ import os
14
+ import warnings
15
+
16
+ warnings.filterwarnings('ignore')
17
+
18
+ # --- Configuration: Relative Paths for HF Spaces ---
19
+ # Ensure these files are uploaded to your HF Space repository
20
+ MODEL_FILENAME = 'placement_model_pipeline.joblib'
21
+ LABEL_ENCODER_FILENAME = 'placement_label_encoder.joblib'
22
+ FEATURES_FILENAME = 'placement_model_features.joblib'
23
+ DATA_FILE = 'Campus_Selection.csv' # Original data file
24
+ PLOT_DIR = 'plots' # Subdirectory for plots
25
+ FEATURE_IMPORTANCE_PLOT = os.path.join(PLOT_DIR, 'feature_importance.png')
26
+ PLACEMENT_PIE_CHART = os.path.join(PLOT_DIR, 'placement_distribution.png')
27
+ CORRELATION_HEATMAP = os.path.join(PLOT_DIR, 'correlation_heatmap.png')
28
+
29
+ # --- Global Variables to Hold Loaded Objects ---
30
+ pipeline = None
31
+ label_encoder = None
32
+ feature_names = None
33
+ df_original = None
34
+ df_head = pd.DataFrame() # Default empty dataframe
35
+ dataset_stats = "Dataset information not available."
36
+
37
+ # --- Load Model and Preprocessing Objects ---
38
+ print("Attempting to load model artifacts...")
39
+ try:
40
+ if os.path.exists(MODEL_FILENAME):
41
+ pipeline = joblib.load(MODEL_FILENAME)
42
+ print(f"- Loaded: {MODEL_FILENAME}")
43
+ else:
44
+ print(f"Error: Model file not found at {MODEL_FILENAME}")
45
+ # gr.Error(f"Model file '{MODEL_FILENAME}' not found. Cannot make predictions.") # Use if you want error banner on load
46
+
47
+ if os.path.exists(LABEL_ENCODER_FILENAME):
48
+ label_encoder = joblib.load(LABEL_ENCODER_FILENAME)
49
+ print(f"- Loaded: {LABEL_ENCODER_FILENAME}")
50
+ else:
51
+ print(f"Error: Label encoder file not found at {LABEL_ENCODER_FILENAME}")
52
+ # gr.Error(f"Label encoder file '{LABEL_ENCODER_FILENAME}' not found.")
53
+
54
+ if os.path.exists(FEATURES_FILENAME):
55
+ feature_names = joblib.load(FEATURES_FILENAME)
56
+ print(f"- Loaded: {FEATURES_FILENAME}")
57
+ else:
58
+ print(f"Error: Feature names file not found at {FEATURES_FILENAME}")
59
+ # gr.Error(f"Feature names file '{FEATURES_FILENAME}' not found.")
60
+
61
+ if pipeline and label_encoder and feature_names:
62
+ print("All essential model artifacts loaded successfully.")
63
+ else:
64
+ print("Warning: One or more essential model artifacts failed to load. Prediction functionality may be limited.")
65
+
66
+ except Exception as e:
67
+ print(f"Error loading model artifacts: {e}")
68
+ # Optionally raise a Gradio error to be visible in the UI on load
69
+ # gr.Error(f"Failed to load model artifacts: {e}")
70
+
71
+
72
+ # --- Load Original Data for Overview Tab ---
73
+ print("Attempting to load original dataset...")
74
+ try:
75
+ if os.path.exists(DATA_FILE):
76
+ df_original = pd.read_csv(DATA_FILE)
77
+ df_head = df_original.head(10)
78
+ dataset_stats = f"**Number of Records:** {len(df_original)}\n\n**Columns:** {len(df_original.columns)}"
79
+ print(f"- Loaded: {DATA_FILE}")
80
+ else:
81
+ print(f"Warning: Original data file '{DATA_FILE}' not found for overview tab.")
82
+ dataset_stats = f"Original dataset file '{DATA_FILE}' not found."
83
+
84
+ except Exception as e:
85
+ print(f"Error loading original dataset: {e}")
86
+ dataset_stats = f"Error loading original dataset: {e}"
87
+
88
+ # --- Check if Plot Files Exist (for warnings in UI) ---
89
+ plots_exist = {
90
+ "feature_importance": os.path.exists(FEATURE_IMPORTANCE_PLOT),
91
+ "pie_chart": os.path.exists(PLACEMENT_PIE_CHART),
92
+ "heatmap": os.path.exists(CORRELATION_HEATMAP)
93
+ }
94
+ print(f"Plot file existence check: {plots_exist}")
95
+
96
+
97
+ # --- Define Prediction Function ---
98
+ def predict_placement(*args):
99
+ """
100
+ Predicts placement status based on input features.
101
+ Returns:
102
+ - Profile Summary (Markdown)
103
+ - Prediction Result (Markdown)
104
+ - Probability Plot (Matplotlib Figure or None)
105
+ """
106
+ # Check if essential objects are loaded
107
+ if pipeline is None or label_encoder is None or feature_names is None:
108
+ message = "⚠️ **Error:** Model artifacts not loaded correctly. Cannot perform prediction."
109
+ print(message)
110
+ return (message, "", None) # Return error message and no plot
111
+
112
+ # Create a DataFrame from the inputs with correct column names
113
+ try:
114
+ input_data = pd.DataFrame([args], columns=feature_names)
115
+ except ValueError as e:
116
+ message = f"⚠️ **Error:** Input data mismatch with expected features. Details: {e}"
117
+ print(message)
118
+ return (message, "", None)
119
+
120
+ # Prepare Profile Summary String
121
+ profile_md = "### πŸ§‘β€πŸŽ“ Student Profile Summary\n" + "-"*25 + "\n"
122
+ for i, feature in enumerate(feature_names):
123
+ label = feature.replace('_p', ' %').replace('_b', ' Board').replace('_s', ' Stream').replace('_t', ' Type').replace('workex', 'Work Experience').replace('etest', 'Employability Test').replace('ssc', 'SSC').replace('hsc', 'HSC').replace('mba', 'MBA').replace('degree','Degree').replace('specialisation','Specialisation').replace('gender','Gender').replace('_',' ').title()
124
+ profile_md += f"**{label}:** {args[i]}\n"
125
+
126
+ # Convert numerical inputs (sliders/numbers) to numeric types
127
+ numerical_cols_in_features = [
128
+ 'ssc_p', 'hsc_p', 'degree_p', 'etest_p', 'mba_p'
129
+ ]
130
+ try:
131
+ for col in numerical_cols_in_features:
132
+ if col in input_data.columns:
133
+ input_data[col] = pd.to_numeric(input_data[col])
134
+ except ValueError as e:
135
+ error_msg = f"Error: Invalid numeric value provided. Details: {e}"
136
+ print(error_msg)
137
+ return (profile_md, f"⚠️ **Prediction Error:**\n{error_msg}", None)
138
+
139
+ # Make prediction probability
140
+ try:
141
+ pred_proba = pipeline.predict_proba(input_data)[0]
142
+ predicted_class_index = np.argmax(pred_proba)
143
+ predicted_status = label_encoder.inverse_transform([predicted_class_index])[0]
144
+ confidence = pred_proba[predicted_class_index]
145
+
146
+ # Format prediction result
147
+ if predicted_status == 'Placed':
148
+ result_md = f"## βœ… Prediction: PLACED\n**Confidence:** {confidence:.2%}"
149
+ else:
150
+ result_md = f"## ❌ Prediction: NOT PLACED\n**Confidence:** {confidence:.2%}"
151
+
152
+ # Create probability bar chart
153
+ fig, ax = plt.subplots(figsize=(5, 3)) # Smaller plot for UI
154
+ statuses = label_encoder.classes_
155
+ probabilities = pred_proba
156
+ colors = ['#ff9999', '#66b3ff'] # Ensure colors match labels if needed
157
+ # Ensure correct color mapping if classes aren't always ['Not Placed', 'Placed']
158
+ status_color_map = {label_encoder.classes_[0]: colors[0], label_encoder.classes_[1]: colors[1]}
159
+ bar_colors = [status_color_map[status] for status in statuses]
160
+
161
+ bars = ax.bar(statuses, probabilities, color=bar_colors)
162
+ ax.set_ylim(0, 1)
163
+ ax.set_ylabel('Probability')
164
+ ax.set_title('Placement Probability')
165
+ for bar in bars:
166
+ height = bar.get_height()
167
+ ax.text(bar.get_x() + bar.get_width()/2., height, f'{height:.2%}',
168
+ ha='center', va='bottom', fontsize=9)
169
+ plt.tight_layout()
170
+
171
+ # IMPORTANT: Close the plot to prevent it from displaying in logs or consuming memory
172
+ # We return the figure object for Gradio to render
173
+ # plt.close(fig) # DO NOT CLOSE HERE - Gradio needs the figure object
174
+
175
+ return profile_md, result_md, fig # Return figure object
176
+
177
+ except Exception as e:
178
+ error_msg = f"An error occurred during prediction: {e}"
179
+ print(f"Error during prediction: {e}")
180
+ print(f"Input data:\n{input_data.to_string()}")
181
+ print(f"Input data types:\n{input_data.dtypes}")
182
+ # Ensure plot is closed if an error occurs before returning
183
+ try: plt.close(fig)
184
+ except NameError: pass # fig might not be defined if error happened early
185
+ return (profile_md, f"⚠️ **Prediction Error:**\n{error_msg}", None)
186
+
187
+
188
+ # --- Build Gradio Interface using Blocks ---
189
+ app_title = "πŸŽ“ Campus Placement Predictor"
190
+ app_description = """
191
+ Predict student placement based on academic performance, background, work experience, and MBA specialization.
192
+ Input the details below and click 'Predict'. Explore other tabs for insights.
193
+ """
194
+
195
+ css = """
196
+ .gradio-container { font-family: 'IBM Plex Sans', sans-serif; max-width: 1200px; margin: auto; }
197
+ .gr-button { color: white; border-color: #007bff; background: #007bff; }
198
+ footer { visibility: hidden; }
199
+ .gr-label { font-weight: bold; }
200
+ h1 { text-align: center; }
201
+ """
202
+
203
+ # Define default values (can be adjusted)
204
+ default_ssc_p = 70.0
205
+ default_hsc_p = 70.0
206
+ default_degree_p = 70.0
207
+ default_etest_p = 70.0
208
+ default_mba_p = 65.0
209
+
210
+ # Start Gradio Blocks UI Definition
211
+ app_ui = gr.Blocks(theme=gr.themes.Soft(primary_hue=gr.themes.colors.blue, secondary_hue=gr.themes.colors.sky), title=app_title, css=css)
212
+
213
+ with app_ui:
214
+ gr.Markdown(f"<h1>{app_title}</h1>")
215
+ gr.Markdown(app_description)
216
+
217
+ # Define Input Components (organized)
218
+ input_components_map = {}
219
+ with gr.Row():
220
+ with gr.Column(scale=1):
221
+ gr.Markdown("**Personal & Secondary**")
222
+ input_components_map['gender'] = gr.Radio(label="Gender", choices=['M', 'F'], value='M')
223
+ input_components_map['ssc_p'] = gr.Slider(label="SSC Percentage", minimum=0.0, maximum=100.0, step=0.1, value=default_ssc_p)
224
+ input_components_map['ssc_b'] = gr.Dropdown(label="SSC Board", choices=['Central', 'Others'], value='Central')
225
+ with gr.Column(scale=1):
226
+ gr.Markdown("**Higher Secondary**")
227
+ input_components_map['hsc_p'] = gr.Slider(label="HSC Percentage", minimum=0.0, maximum=100.0, step=0.1, value=default_hsc_p)
228
+ input_components_map['hsc_b'] = gr.Dropdown(label="HSC Board", choices=['Central', 'Others'], value='Central')
229
+ input_components_map['hsc_s'] = gr.Dropdown(label="HSC Stream", choices=['Commerce', 'Science', 'Arts'], value='Commerce')
230
+ with gr.Column(scale=1):
231
+ gr.Markdown("**Degree & Experience**")
232
+ input_components_map['degree_p'] = gr.Slider(label="Degree Percentage", minimum=0.0, maximum=100.0, step=0.1, value=default_degree_p)
233
+ input_components_map['degree_t'] = gr.Dropdown(label="Degree Type", choices=['Comm&Mgmt', 'Sci&Tech', 'Others'], value='Comm&Mgmt')
234
+ input_components_map['workex'] = gr.Radio(label="Work Experience", choices=['No', 'Yes'], value='No')
235
+ with gr.Column(scale=1):
236
+ gr.Markdown("**Employability & MBA**")
237
+ input_components_map['etest_p'] = gr.Slider(label="Employability Test %", minimum=0.0, maximum=100.0, step=0.1, value=default_etest_p)
238
+ input_components_map['specialisation'] = gr.Dropdown(label="MBA Specialization", choices=['Mkt&Fin', 'Mkt&HR'], value='Mkt&Fin')
239
+ input_components_map['mba_p'] = gr.Slider(label="MBA Percentage", minimum=0.0, maximum=100.0, step=0.1, value=default_mba_p)
240
+
241
+ # --- Order Input Components based on loaded feature_names ---
242
+ ordered_input_components = []
243
+ if feature_names:
244
+ missing_features = []
245
+ for name in feature_names:
246
+ component = input_components_map.get(name)
247
+ if component:
248
+ ordered_input_components.append(component)
249
+ else:
250
+ missing_features.append(name)
251
+ print(f"Warning: UI component for feature '{name}' not defined in input_components_map.")
252
+ if missing_features:
253
+ gr.Warning(f"Missing UI components for features: {', '.join(missing_features)}. Predictions might fail.")
254
+ elif len(ordered_input_components) != len(feature_names):
255
+ gr.Warning("Mismatch between number of UI components and expected features.")
256
+ else:
257
+ # Fallback if feature_names couldn't load - order might be wrong!
258
+ ordered_input_components = list(input_components_map.values())
259
+ gr.Warning("Feature names file not loaded. Input order may be incorrect, predictions might fail.")
260
+
261
+
262
+ predict_button = gr.Button("πŸš€ Predict Placement Status")
263
+
264
+ # Define Output Components within Tabs
265
+ with gr.Tabs():
266
+ with gr.TabItem("πŸ“Š Prediction Results"):
267
+ with gr.Row():
268
+ out_profile = gr.Markdown(label="Input Summary")
269
+ with gr.Column():
270
+ out_prediction = gr.Markdown(label="Prediction")
271
+ out_plot = gr.Plot(label="Probability Distribution") # Displays the matplotlib fig
272
+
273
+ with gr.TabItem("πŸ’‘ Feature Importance"):
274
+ gr.Markdown("## Feature Importance Analysis")
275
+ gr.Markdown("Shows which factors most influence the placement prediction (based on the trained model). Higher values indicate greater influence.")
276
+ if plots_exist["feature_importance"]:
277
+ gr.Image(FEATURE_IMPORTANCE_PLOT, label="Feature Importance Plot", show_label=False)
278
+ else:
279
+ gr.Warning(f"Feature importance plot not found at '{FEATURE_IMPORTANCE_PLOT}'. Please ensure it was generated and uploaded.")
280
+ gr.Markdown("""
281
+ *Insights based on typical results for this type of problem:*
282
+ - **Academic Performance:** SSC %, HSC %, and Degree % are often strong predictors.
283
+ - **Employability Test:** Performance in standardized tests (etest_p) is usually critical.
284
+ - **Work Experience:** Can provide a significant advantage.
285
+ - **MBA Performance:** MBA % reinforces the importance of consistent academic achievement.
286
+ """)
287
+
288
+ with gr.TabItem("πŸ“ˆ Dataset Overview"):
289
+ gr.Markdown("## Dataset Overview")
290
+ gr.Markdown("A quick look at the data used to train the model.")
291
+ with gr.Row():
292
+ with gr.Column(scale=2): # Give more space to dataframe
293
+ gr.Markdown("**Data Sample**")
294
+ if df_original is not None:
295
+ gr.DataFrame(df_head, label="First 10 Rows", row_count=(10, "fixed"), wrap=True, interactive=False)
296
+ else:
297
+ gr.Warning(f"Original dataset '{DATA_FILE}' not found.")
298
+ gr.Markdown("**Basic Stats**")
299
+ gr.Markdown(dataset_stats)
300
+ with gr.Column(scale=1):
301
+ gr.Markdown("**Placement Distribution**")
302
+ if plots_exist["pie_chart"]:
303
+ gr.Image(PLACEMENT_PIE_CHART, label="Placement Distribution", show_label=False)
304
+ else:
305
+ gr.Warning(f"Placement distribution plot not found at '{PLACEMENT_PIE_CHART}'.")
306
+ gr.Markdown("**Correlation Analysis**")
307
+ if plots_exist["heatmap"]:
308
+ gr.Image(CORRELATION_HEATMAP, label="Correlation Heatmap", show_label=False)
309
+ else:
310
+ gr.Warning(f"Correlation heatmap not found at '{CORRELATION_HEATMAP}'.")
311
+
312
+ # --- Link Button Click to Function ---
313
+ predict_button.click(
314
+ fn=predict_placement,
315
+ inputs=ordered_input_components, # Use the ordered list
316
+ outputs=[out_profile, out_prediction, out_plot]
317
+ )
318
+
319
+ # --- Add Examples ---
320
+ # Ensure example values match the order and type of ordered_input_components
321
+ if feature_names: # Only add examples if we know the correct feature order
322
+ example_list = [
323
+ # M, ssc_p, ssc_b, hsc_p, hsc_b, hsc_s, degree_p, degree_t, workex, etest_p, specialisation, mba_p -> default order if no feature_names
324
+ ['M', 67.0, 'Others', 91.0, 'Others', 'Commerce', 58.0, 'Sci&Tech', 'No', 55.0, 'Mkt&HR', 58.8], # Row 1 (Placed)
325
+ ['M', 56.0, 'Central', 52.0, 'Central', 'Science', 52.0, 'Sci&Tech', 'No', 66.0, 'Mkt&HR', 59.43], # Row 4 (Not Placed)
326
+ ['F', 77.0, 'Central', 87.0, 'Central', 'Commerce', 59.0, 'Comm&Mgmt', 'No', 68.0, 'Mkt&Fin', 68.63], # Row 14 (Placed)
327
+ ['F', 52.0, 'Central', 64.0, 'Central', 'Commerce', 61.0, 'Comm&Mgmt', 'No', 55.0, 'Mkt&Fin', 62.93], # Row 187 (Not Placed)
328
+ ['M', 84.0, 'Others', 90.9, 'Others', 'Science', 64.5, 'Sci&Tech', 'No', 86.04, 'Mkt&Fin', 59.42] # Row 79 (Placed)
329
+ ]
330
+ # Remap examples based on actual feature_names order if necessary (though the default order matches here)
331
+ # This step is complex if the order differs significantly. Assuming the order defined in UI matches feature_names for simplicity now.
332
+ final_examples = example_list
333
+
334
+ gr.Examples(
335
+ examples=final_examples,
336
+ inputs=ordered_input_components,
337
+ outputs=[out_profile, out_prediction, out_plot],
338
+ fn=predict_placement,
339
+ cache_examples=False # Caching might be ok if function is pure
340
+ )
341
+
342
+ # --- Launch the App ---
343
+ # This is the standard way to launch in HF Spaces (app variable must be defined)
344
+ # app_ui.launch() # No debug=True for production on Spaces
345
+
346
+ # If running locally for testing before pushing to HF:
347
+ if __name__ == "__main__":
348
+ print("Launching Gradio app locally...")
349
+ app_ui.launch(debug=True) # Use debug=True for local testing
350
+ # app_ui.launch() # Use this for standard local deployment without debug prints
placement_label_encoder.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:293ca22841bc71424e29aa564477f7838d5ea1f99ce0a9791133d2400247b040
3
+ size 548
placement_model.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e86773278a91fee2d8c96912ae3c190954734744467d8db47c05033a4f40514d
3
+ size 991
placement_model_features.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5b0397b5ca69073900be0b3940b6241d5b0aabd8f551603d001bc80cf8527275
3
+ size 131
placement_model_pipeline.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27303df4f844fde4c773df601aef7abf7aa6b525aecaa5caa3f29cd036439a9b
3
+ size 479560
placement_preprocessor.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d2eb5a1cec93d1030a5fe043b1f3c6fda78b8a68a5e35b6f83e990a1e16174b1
3
+ size 4998
plots/correlation_heatmap.png ADDED
plots/feature_importance.png ADDED
plots/placement_distribution.png ADDED
requirements.txt.txt ADDED
File without changes