GitsSaikat commited on
Commit
0238ee4
ยท
unverified ยท
1 Parent(s): f001bff

Add files via upload

Browse files
Files changed (3) hide show
  1. Survey Final.csv +370 -0
  2. logo.png +0 -0
  3. safetyapp.py +158 -0
Survey Final.csv ADDED
@@ -0,0 +1,370 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Overcrowding,Preference,Daytime Safety,Nighttime Safety,Taxi DSafety,Taxi NSafety,Reporting,Background Check,Percieved Safety
2
+ 1,1,4,2,4,2,4,5,Uncomfortable
3
+ 1,2,3,1,4,3,4,5,Unsafe
4
+ 1,1,4,5,4,4,1,4,Safe
5
+ 1,2,4,3,5,4,2,4,Comfortable
6
+ 2,2,3,1,4,3,4,4,Unsafe
7
+ 1,1,4,3,4,3,5,4,Uncomfortable
8
+ 1,1,4,5,5,3,4,5,Comfortable
9
+ 2,1,4,2,5,2,5,5,Uncomfortable
10
+ 1,1,3,4,4,5,3,5,Comfortable
11
+ 1,2,4,2,4,2,4,5,Uncomfortable
12
+ 1,2,4,2,1,4,3,5,Uncomfortable
13
+ 1,1,3,2,3,2,4,5,Vulnerable
14
+ 1,2,4,1,4,2,3,5,Uncomfortable
15
+ 1,3,4,2,4,2,3,5,Uncomfortable
16
+ 1,1,5,2,5,2,1,5,Uncomfortable
17
+ 1,3,3,1,5,2,4,5,Unsafe
18
+ 2,2,5,4,5,5,4,5,Safe
19
+ 1,1,5,4,5,5,2,5,Safe
20
+ 1,1,4,3,4,4,3,5,Comfortable
21
+ 2,3,4,4,3,3,3,4,Uncomfortable
22
+ 1,3,4,2,3,2,4,5,Unsafe
23
+ 2,3,4,2,4,2,4,5,Uncomfortable
24
+ 1,1,4,4,3,2,3,5,Uncomfortable
25
+ 2,3,4,3,4,3,4,5,Uncomfortable
26
+ 2,4,4,2,3,3,3,4,Unsafe
27
+ 1,1,3,2,4,4,2,5,Uncomfortable
28
+ 2,2,3,2,4,3,4,5,Unsafe
29
+ 2,1,4,3,4,3,4,5,Uncomfortable
30
+ 1,5,5,1,5,5,5,5,Comfortable
31
+ 1,1,5,3,5,3,4,4,Uncomfortable
32
+ 2,3,4,3,4,3,4,4,Uncomfortable
33
+ 2,4,4,3,4,3,3,5,Uncomfortable
34
+ 2,3,4,2,4,2,4,4,Uncomfortable
35
+ 2,3,4,2,3,3,3,3,Unsafe
36
+ 2,2,4,2,2,2,4,4,Unsafe
37
+ 1,3,4,1,3,1,4,4,Unsafe
38
+ 2,2,4,3,3,3,2,4,Unsafe
39
+ 1,3,4,3,5,3,5,5,Uncomfortable
40
+ 3,3,4,2,4,4,4,4,Comfortable
41
+ 1,2,4,1,3,1,1,5,Unsafe
42
+ 1,3,4,3,4,3,5,4,Uncomfortable
43
+ 2,3,4,3,3,3,3,4,Unsafe
44
+ 1,3,3,1,3,1,3,5,Vulnerable
45
+ 2,4,4,3,4,3,5,4,Uncomfortable
46
+ 3,5,5,2,3,3,3,3,Unsafe
47
+ 1,1,4,3,5,4,3,5,Comfortable
48
+ 2,3,4,3,4,3,2,5,Uncomfortable
49
+ 2,3,4,4,4,4,4,4,Safe
50
+ 1,2,4,1,4,2,3,5,Uncomfortable
51
+ 1,2,4,2,4,2,5,5,Uncomfortable
52
+ 2,2,3,5,1,2,4,4,Unsafe
53
+ 2,2,3,2,2,2,3,5,Vulnerable
54
+ 1,2,4,2,2,2,4,4,Unsafe
55
+ 1,3,4,3,4,3,3,4,Uncomfortable
56
+ 2,2,4,2,4,2,3,5,Uncomfortable
57
+ 2,3,4,3,4,3,2,5,Uncomfortable
58
+ 1,2,4,3,4,3,1,5,Uncomfortable
59
+ 1,3,3,3,4,4,3,4,Uncomfortable
60
+ 1,5,5,1,5,5,1,5,Comfortable
61
+ 2,1,5,5,5,5,4,4,Safe
62
+ 1,3,5,2,5,2,4,5,Uncomfortable
63
+ 3,2,5,2,4,2,4,5,Uncomfortable
64
+ 3,3,4,4,4,4,3,4,Safe
65
+ 2,5,2,2,4,4,4,5,Uncomfortable
66
+ 1,3,4,3,4,3,3,5,Uncomfortable
67
+ 1,3,3,3,3,3,3,3,Vulnerable
68
+ 2,4,2,2,3,2,3,3,Vulnerable
69
+ 2,2,4,2,4,4,2,4,Comfortable
70
+ 1,3,4,3,4,4,5,4,Comfortable
71
+ 2,4,3,3,4,3,3,4,Unsafe
72
+ 1,2,4,2,4,2,3,5,Uncomfortable
73
+ 2,2,4,2,4,4,4,5,Comfortable
74
+ 2,2,4,3,4,3,3,5,Uncomfortable
75
+ 1,1,3,2,3,3,4,5,Vulnerable
76
+ 2,3,2,3,4,3,4,5,Unsafe
77
+ 2,3,4,2,3,3,2,5,Unsafe
78
+ 1,3,4,2,4,3,3,4,Uncomfortable
79
+ 1,2,5,2,4,3,3,5,Uncomfortable
80
+ 1,5,4,3,5,5,3,5,Comfortable
81
+ 1,4,5,2,5,4,4,5,Comfortable
82
+ 1,2,4,1,2,2,5,5,Unsafe
83
+ 1,3,4,3,4,3,4,4,Uncomfortable
84
+ 1,1,4,4,4,3,2,3,Comfortable
85
+ 2,3,4,2,4,2,4,4,Uncomfortable
86
+ 1,2,5,2,5,4,1,5,Comfortable
87
+ 2,1,4,2,3,2,3,4,Unsafe
88
+ 1,4,5,4,5,3,2,5,Comfortable
89
+ 2,1,4,2,3,2,3,4,Unsafe
90
+ 1,4,3,3,2,2,2,4,Vulnerable
91
+ 1,3,5,4,4,4,5,5,Safe
92
+ 2,2,3,2,4,4,3,5,Uncomfortable
93
+ 1,4,2,2,2,2,2,4,Vulnerable
94
+ 1,2,3,1,4,4,4,5,Uncomfortable
95
+ 1,4,5,3,5,3,4,5,Uncomfortable
96
+ 1,3,4,1,4,4,3,5,Comfortable
97
+ 1,3,4,2,5,2,4,5,Uncomfortable
98
+ 2,2,3,1,4,3,2,5,Unsafe
99
+ 2,1,3,3,3,3,3,4,Vulnerable
100
+ 2,3,4,3,4,4,4,4,Comfortable
101
+ 1,3,3,3,3,3,2,4,Vulnerable
102
+ 1,2,2,1,4,3,2,4,Unsafe
103
+ 1,2,2,1,4,3,2,4,Unsafe
104
+ 1,2,4,2,4,2,2,5,Uncomfortable
105
+ 1,3,4,1,4,1,4,4,Uncomfortable
106
+ 2,4,4,3,3,2,4,5,Unsafe
107
+ 1,4,4,2,4,3,4,4,Uncomfortable
108
+ 2,3,4,2,4,2,5,5,Uncomfortable
109
+ 1,1,1,1,2,2,4,5,Vulnerable
110
+ 2,4,3,2,3,2,4,4,Vulnerable
111
+ 2,2,5,4,3,3,3,4,Uncomfortable
112
+ 1,3,4,4,4,4,3,5,Safe
113
+ 1,3,4,4,4,4,3,5,Safe
114
+ 1,3,4,4,4,4,3,5,Safe
115
+ 1,2,5,2,4,3,3,5,Uncomfortable
116
+ 1,1,4,1,4,3,5,5,Uncomfortable
117
+ 1,3,4,3,4,4,2,4,Comfortable
118
+ 2,2,4,3,4,4,3,4,Comfortable
119
+ 2,2,4,3,4,3,3,4,Uncomfortable
120
+ 1,2,4,2,4,2,3,5,Uncomfortable
121
+ 2,1,4,3,2,1,4,5,Unsafe
122
+ 1,2,5,4,5,5,4,5,Safe
123
+ 2,2,4,3,4,3,4,5,Uncomfortable
124
+ 1,4,4,4,4,4,4,4,Safe
125
+ 1,3,5,5,5,5,5,5,Safe
126
+ 1,3,5,1,5,3,3,4,Uncomfortable
127
+ 2,1,3,4,4,3,3,3,Uncomfortable
128
+ 1,2,4,1,4,3,2,5,Uncomfortable
129
+ 1,2,4,3,5,4,4,5,Comfortable
130
+ 2,3,4,3,3,3,3,5,Unsafe
131
+ 1,1,2,2,5,5,5,5,Uncomfortable
132
+ 1,2,3,1,3,3,3,5,Vulnerable
133
+ 1,3,4,2,4,4,4,5,Comfortable
134
+ 2,2,1,1,2,2,2,3,Vulnerable
135
+ 1,4,4,2,4,2,4,5,Uncomfortable
136
+ 2,5,4,4,5,4,3,4,Safe
137
+ 2,2,4,5,4,5,2,5,Safe
138
+ 1,3,3,1,3,1,3,5,Vulnerable
139
+ 1,2,4,2,4,4,3,5,Comfortable
140
+ 2,3,4,2,3,2,4,4,Unsafe
141
+ 2,3,4,3,3,2,3,5,Unsafe
142
+ 2,2,4,2,4,4,4,5,Comfortable
143
+ 2,1,4,3,4,3,4,5,Uncomfortable
144
+ 2,3,4,3,4,3,4,5,Uncomfortable
145
+ 2,3,4,3,4,3,3,5,Uncomfortable
146
+ 3,1,4,3,4,2,3,5,Uncomfortable
147
+ 2,3,4,5,5,4,4,5,Safe
148
+ 2,1,2,1,5,2,4,5,Unsafe
149
+ 1,2,3,3,4,4,2,5,Uncomfortable
150
+ 1,4,5,4,4,4,1,5,Safe
151
+ 2,4,5,4,4,5,4,5,Safe
152
+ 1,3,5,3,4,3,3,5,Uncomfortable
153
+ 2,3,5,4,4,3,4,5,Comfortable
154
+ 1,3,4,4,5,4,4,5,Safe
155
+ 1,2,3,2,4,4,3,5,Uncomfortable
156
+ 1,2,4,2,5,4,4,5,Comfortable
157
+ 2,1,4,4,5,3,3,4,Comfortable
158
+ 2,1,2,2,4,4,4,5,Uncomfortable
159
+ 2,3,4,2,4,2,4,5,Uncomfortable
160
+ 1,3,3,3,3,3,4,5,Vulnerable
161
+ 1,2,4,2,3,3,3,5,Unsafe
162
+ 1,2,2,2,3,1,5,5,Vulnerable
163
+ 3,3,4,3,4,3,2,4,Uncomfortable
164
+ 1,3,4,3,4,4,3,5,Comfortable
165
+ 2,4,5,2,5,5,3,5,Comfortable
166
+ 2,3,4,4,4,5,4,5,Safe
167
+ 1,3,4,2,3,3,4,5,Unsafe
168
+ 1,4,5,3,4,3,2,5,Uncomfortable
169
+ 1,3,4,3,5,3,5,5,Uncomfortable
170
+ 1,3,5,4,5,4,4,4,Safe
171
+ 2,4,4,3,4,3,3,4,Uncomfortable
172
+ 2,3,3,3,4,3,3,4,Unsafe
173
+ 2,3,4,2,4,1,3,5,Uncomfortable
174
+ 1,1,4,1,2,1,4,5,Unsafe
175
+ 1,4,4,2,4,4,4,4,Comfortable
176
+ 1,3,3,2,3,3,3,4,Vulnerable
177
+ 1,4,2,1,2,1,4,4,Vulnerable
178
+ 2,1,4,5,3,5,3,5,Comfortable
179
+ 3,4,3,3,3,3,3,3,Vulnerable
180
+ 2,3,3,3,3,3,3,4,Vulnerable
181
+ 2,2,3,3,3,3,3,4,Vulnerable
182
+ 3,3,4,3,4,3,3,4,Uncomfortable
183
+ 1,3,4,4,4,2,4,5,Comfortable
184
+ 2,2,5,2,4,3,3,4,Uncomfortable
185
+ 1,3,4,3,4,3,4,5,Uncomfortable
186
+ 2,3,3,3,3,3,2,4,Vulnerable
187
+ 1,2,4,2,4,2,3,4,Uncomfortable
188
+ 2,2,5,4,5,3,4,5,Comfortable
189
+ 1,3,3,5,2,5,4,3,Uncomfortable
190
+ 1,3,4,3,4,3,2,5,Uncomfortable
191
+ 2,2,4,3,4,3,2,5,Uncomfortable
192
+ 1,3,5,2,5,4,5,5,Comfortable
193
+ 3,4,4,2,4,2,4,4,Uncomfortable
194
+ 2,4,4,2,3,2,4,5,Unsafe
195
+ 2,3,4,2,4,2,4,4,Uncomfortable
196
+ 2,3,4,3,4,3,2,5,Uncomfortable
197
+ 1,3,5,2,5,2,2,5,Uncomfortable
198
+ 2,3,4,2,4,2,4,4,Uncomfortable
199
+ 1,2,4,2,4,1,2,5,Uncomfortable
200
+ 2,4,2,2,4,3,4,3,Unsafe
201
+ 2,3,4,2,4,2,4,5,Uncomfortable
202
+ 2,3,4,1,3,3,4,4,Unsafe
203
+ 2,3,4,2,4,2,4,5,Uncomfortable
204
+ 2,2,4,3,3,3,3,4,Unsafe
205
+ 2,2,4,3,4,3,3,5,Uncomfortable
206
+ 2,3,4,2,4,2,2,4,Uncomfortable
207
+ 2,3,4,3,3,4,3,3,Uncomfortable
208
+ 3,3,3,3,3,3,3,4,Vulnerable
209
+ 1,4,4,2,3,3,4,4,Unsafe
210
+ 2,3,4,4,4,4,1,5,Safe
211
+ 2,4,4,4,3,4,4,4,Comfortable
212
+ 4,2,3,3,3,3,3,5,Vulnerable
213
+ 1,4,4,3,3,3,3,3,Unsafe
214
+ 1,3,4,2,4,2,2,5,Uncomfortable
215
+ 2,3,3,3,3,3,3,3,Vulnerable
216
+ 1,3,4,3,4,3,3,4,Uncomfortable
217
+ 4,1,5,2,5,2,4,4,Uncomfortable
218
+ 2,3,4,2,3,3,3,5,Unsafe
219
+ 2,4,4,4,3,3,3,3,Uncomfortable
220
+ 2,4,3,4,3,3,4,4,Unsafe
221
+ 2,1,4,5,3,4,4,4,Comfortable
222
+ 2,4,5,4,4,4,4,4,Safe
223
+ 2,1,5,4,3,3,4,4,Uncomfortable
224
+ 3,1,5,4,3,4,5,5,Comfortable
225
+ 1,1,5,4,4,4,2,4,Safe
226
+ 1,2,3,4,3,4,3,5,Uncomfortable
227
+ 2,2,4,4,4,4,4,5,Safe
228
+ 1,1,3,3,4,5,4,5,Uncomfortable
229
+ 2,2,2,4,4,4,4,4,Comfortable
230
+ 1,4,3,3,4,3,4,4,Unsafe
231
+ 1,3,4,2,4,2,1,5,Uncomfortable
232
+ 3,3,1,3,2,2,4,5,Vulnerable
233
+ 2,2,3,4,4,5,4,5,Comfortable
234
+ 2,2,5,2,4,5,3,4,Comfortable
235
+ 1,4,3,4,2,5,3,4,Uncomfortable
236
+ 1,4,5,5,5,5,1,5,Safe
237
+ 2,4,2,4,4,4,4,5,Comfortable
238
+ 1,3,4,2,4,3,4,5,Uncomfortable
239
+ 2,2,2,2,3,3,2,4,Vulnerable
240
+ 1,2,4,2,3,3,2,5,Unsafe
241
+ 2,2,4,3,4,3,4,4,Uncomfortable
242
+ 1,2,4,3,4,3,5,5,Uncomfortable
243
+ 4,3,2,3,2,3,1,3,Vulnerable
244
+ 3,2,3,2,2,1,2,5,Vulnerable
245
+ 2,3,4,1,4,1,2,5,Uncomfortable
246
+ 1,4,4,3,4,3,2,5,Uncomfortable
247
+ 1,4,4,2,5,2,4,5,Uncomfortable
248
+ 2,1,2,3,4,2,2,4,Unsafe
249
+ 2,2,4,3,4,3,3,5,Uncomfortable
250
+ 1,2,4,1,1,1,2,4,Unsafe
251
+ 3,3,4,2,4,4,2,5,Comfortable
252
+ 1,3,4,3,5,3,3,5,Uncomfortable
253
+ 1,1,4,1,4,1,3,5,Uncomfortable
254
+ 1,3,5,4,5,4,4,4,Safe
255
+ 5,3,3,3,4,4,3,5,Uncomfortable
256
+ 3,4,3,3,3,3,3,4,Vulnerable
257
+ 1,1,5,3,4,3,2,4,Uncomfortable
258
+ 2,3,3,3,3,3,2,3,Vulnerable
259
+ 2,3,4,3,4,3,3,4,Uncomfortable
260
+ 3,1,3,3,3,3,3,4,Vulnerable
261
+ 1,4,4,3,4,2,3,5,Uncomfortable
262
+ 1,3,4,4,5,4,4,4,Safe
263
+ 1,4,3,2,4,3,2,5,Unsafe
264
+ 2,4,5,4,5,5,5,5,Safe
265
+ 2,3,4,2,4,3,2,5,Uncomfortable
266
+ 1,3,3,2,4,3,4,5,Unsafe
267
+ 1,3,4,3,4,3,4,5,Uncomfortable
268
+ 2,2,4,3,4,3,2,4,Uncomfortable
269
+ 1,2,4,4,4,4,4,5,Safe
270
+ 2,4,4,4,4,4,2,5,Safe
271
+ 2,1,5,4,4,3,2,5,Comfortable
272
+ 1,4,4,2,4,2,4,5,Uncomfortable
273
+ 1,3,4,2,4,2,4,5,Uncomfortable
274
+ 2,3,5,4,3,2,1,4,Uncomfortable
275
+ 1,1,3,1,2,2,3,5,Vulnerable
276
+ 2,4,3,3,2,2,3,5,Vulnerable
277
+ 1,3,4,3,4,3,5,5,Uncomfortable
278
+ 1,2,4,2,4,3,4,4,Uncomfortable
279
+ 4,4,4,3,4,3,5,5,Uncomfortable
280
+ 1,4,3,3,3,3,3,5,Vulnerable
281
+ 2,2,4,1,4,2,4,5,Uncomfortable
282
+ 1,2,4,3,4,3,4,4,Uncomfortable
283
+ 1,2,4,2,4,2,4,4,Uncomfortable
284
+ 2,2,4,3,4,3,4,4,Uncomfortable
285
+ 2,2,4,3,4,2,3,3,Uncomfortable
286
+ 2,3,4,3,3,3,3,4,Unsafe
287
+ 2,4,4,3,4,4,2,5,Comfortable
288
+ 2,2,2,1,4,2,3,5,Unsafe
289
+ 2,4,4,3,4,3,3,4,Uncomfortable
290
+ 5,3,5,3,3,4,4,3,Uncomfortable
291
+ 1,3,5,3,4,3,1,5,Uncomfortable
292
+ 1,2,4,3,4,2,2,5,Uncomfortable
293
+ 2,3,3,2,4,2,4,5,Unsafe
294
+ 1,2,4,4,4,4,2,4,Safe
295
+ 1,2,4,3,4,2,2,5,Uncomfortable
296
+ 1,1,5,1,1,1,2,4,Unsafe
297
+ 1,3,3,1,4,2,4,5,Unsafe
298
+ 1,2,4,1,3,1,4,5,Unsafe
299
+ 1,3,4,1,5,1,3,5,Uncomfortable
300
+ 1,3,4,2,4,2,3,5,Uncomfortable
301
+ 3,2,3,2,4,2,2,5,Unsafe
302
+ 2,1,5,3,4,3,4,3,Uncomfortable
303
+ 1,1,4,4,4,3,3,5,Comfortable
304
+ 1,1,4,3,4,3,3,5,Uncomfortable
305
+ 2,1,4,2,4,2,2,5,Uncomfortable
306
+ 1,2,4,1,4,1,4,5,Uncomfortable
307
+ 2,3,4,3,4,3,4,3,Uncomfortable
308
+ 1,2,4,2,4,2,3,5,Uncomfortable
309
+ 2,2,4,2,4,2,4,5,Uncomfortable
310
+ 2,3,4,2,4,2,4,5,Uncomfortable
311
+ 1,1,4,1,1,2,3,5,Unsafe
312
+ 3,2,3,1,4,2,4,5,Unsafe
313
+ 3,4,4,2,4,2,2,4,Uncomfortable
314
+ 1,1,4,1,4,1,4,5,Uncomfortable
315
+ 1,3,3,2,4,2,3,5,Unsafe
316
+ 2,3,4,1,4,1,4,5,Uncomfortable
317
+ 2,1,4,3,4,3,3,5,Uncomfortable
318
+ 2,2,4,3,4,3,3,5,Uncomfortable
319
+ 1,2,3,3,3,3,1,5,Vulnerable
320
+ 1,1,4,2,4,2,3,5,Uncomfortable
321
+ 1,2,3,2,3,2,4,3,Vulnerable
322
+ 1,2,3,3,4,3,4,5,Unsafe
323
+ 1,2,4,3,4,3,4,5,Uncomfortable
324
+ 1,3,3,2,4,3,3,5,Unsafe
325
+ 1,3,3,3,3,1,1,5,Vulnerable
326
+ 1,1,2,1,3,1,3,5,Vulnerable
327
+ 1,3,5,1,5,2,3,5,Uncomfortable
328
+ 1,1,3,1,3,1,3,5,Vulnerable
329
+ 1,1,4,3,3,2,3,5,Unsafe
330
+ 2,2,4,3,3,3,4,5,Unsafe
331
+ 2,3,4,3,4,3,4,5,Uncomfortable
332
+ 1,3,5,1,5,2,3,5,Uncomfortable
333
+ 1,1,4,1,5,1,3,5,Uncomfortable
334
+ 1,1,4,2,5,1,4,5,Uncomfortable
335
+ 1,3,4,3,4,3,3,4,Uncomfortable
336
+ 2,3,4,2,4,2,4,4,Uncomfortable
337
+ 1,2,3,2,4,2,2,5,Unsafe
338
+ 1,2,3,2,4,2,3,5,Unsafe
339
+ 1,3,5,2,3,3,4,5,Unsafe
340
+ 1,3,4,3,4,4,3,4,Comfortable
341
+ 1,1,4,2,2,3,4,5,Unsafe
342
+ 1,3,3,3,3,3,3,4,Vulnerable
343
+ 1,2,5,1,5,2,2,5,Uncomfortable
344
+ 1,1,5,1,4,1,4,5,Uncomfortable
345
+ 1,3,3,3,4,3,3,5,Unsafe
346
+ 2,3,4,3,4,4,2,5,Comfortable
347
+ 2,2,3,2,4,2,3,4,Unsafe
348
+ 2,3,5,3,4,3,3,4,Uncomfortable
349
+ 1,3,4,3,4,3,3,4,Uncomfortable
350
+ 1,3,4,3,4,3,3,4,Uncomfortable
351
+ 2,2,4,3,3,3,3,3,Unsafe
352
+ 2,2,4,3,4,4,1,5,Comfortable
353
+ 1,3,4,4,4,4,3,5,Safe
354
+ 1,1,4,1,4,2,4,4,Uncomfortable
355
+ 1,3,5,3,5,2,3,5,Uncomfortable
356
+ 1,3,4,3,4,3,3,4,Uncomfortable
357
+ 1,3,4,4,4,4,1,5,Safe
358
+ 2,2,4,2,4,3,4,5,Uncomfortable
359
+ 4,2,4,2,4,2,2,4,Uncomfortable
360
+ 2,4,2,2,2,2,1,5,Vulnerable
361
+ 2,2,4,4,4,4,2,4,Safe
362
+ 2,3,4,4,4,4,3,5,Safe
363
+ 1,5,4,4,1,1,5,5,Uncomfortable
364
+ 2,1,5,3,4,3,5,5,Uncomfortable
365
+ 1,1,4,2,4,4,5,5,Comfortable
366
+ 1,4,4,2,5,4,4,5,Comfortable
367
+ 2,1,4,2,3,2,3,5,Unsafe
368
+ 2,4,4,2,4,4,4,4,Comfortable
369
+ 2,3,4,3,4,4,2,4,Comfortable
370
+ 2,4,4,4,4,4,2,4,Safe
logo.png ADDED
safetyapp.py ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ import matplotlib.pyplot as plt
5
+ import seaborn as sns
6
+ from sklearn.model_selection import train_test_split
7
+ from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier, ExtraTreesClassifier, HistGradientBoostingClassifier
8
+ from sklearn.metrics import classification_report, accuracy_score, confusion_matrix
9
+ from sklearn.preprocessing import LabelEncoder
10
+ import shap
11
+
12
+ # Load Dataset
13
+ data_path = 'Survey Final.csv'
14
+ df = pd.read_csv(data_path)
15
+
16
+ # Encode Target Column
17
+ le = LabelEncoder()
18
+ df['Percieved Safety'] = le.fit_transform(df['Percieved Safety'])
19
+
20
+ # Data Splitting (Global for Use in All Sections)
21
+ test_size = 0.2 # Default test size (can be changed in data splitting section)
22
+ X = df.drop(columns=['Percieved Safety'])
23
+ y = df['Percieved Safety']
24
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size, random_state=42)
25
+
26
+ # Streamlit App
27
+ st.set_page_config(page_title="Evaluating Safety Perception on Commuting App", layout='wide')
28
+ st.title("Evaluating Safety Perception on Commuting ")
29
+
30
+ # Sidebar Navigation
31
+ selected = st.sidebar.selectbox(
32
+ "Navigation",
33
+ [
34
+ "๐Ÿ“Š Data Overview",
35
+ "๐Ÿ” Exploratory Data Analysis",
36
+ "๐Ÿค– Model Training, Evaluation & Explanations",
37
+ "๐Ÿ”ฎ Predict Percieved Safety"
38
+ ]
39
+ )
40
+
41
+ # Data Overview
42
+ if selected == "๐Ÿ“Š Data Overview":
43
+ st.header("๐Ÿ“Š Data Overview")
44
+ if st.checkbox("Show Dataset"):
45
+ st.write(df.head())
46
+ st.write(f"Dataset Shape: {df.shape}")
47
+ st.write("Data Types:")
48
+ st.write(df.dtypes)
49
+
50
+ # Exploratory Data Analysis
51
+ if selected == "๐Ÿ” Exploratory Data Analysis":
52
+ st.header("๐Ÿ” Exploratory Data Analysis")
53
+ if st.checkbox("Correlation Heatmap"):
54
+ st.write("Correlation Heatmap")
55
+ fig, ax = plt.subplots(figsize=(10, 6))
56
+ sns.heatmap(df.corr(), annot=True, cmap='coolwarm', ax=ax)
57
+ st.pyplot(fig)
58
+
59
+ if st.checkbox("Histogram"):
60
+ st.write("Histograms of Numeric Columns")
61
+ numeric_columns = df.select_dtypes(include=['int64', 'float64']).columns.tolist()
62
+ selected_column = st.selectbox("Select Column for Histogram", numeric_columns)
63
+ fig, ax = plt.subplots()
64
+ sns.histplot(df[selected_column], kde=True, ax=ax)
65
+ st.pyplot(fig)
66
+
67
+ if st.checkbox("Boxplot for Numeric Columns"):
68
+ st.write("Boxplot of Numeric Columns")
69
+ numeric_columns = df.select_dtypes(include=['int64', 'float64']).columns.tolist()
70
+ selected_column = st.selectbox("Select Column for Boxplot", numeric_columns)
71
+ fig, ax = plt.subplots()
72
+ sns.boxplot(data=df, x=selected_column, ax=ax)
73
+ st.pyplot(fig)
74
+
75
+ if st.checkbox("Pairplot of Dataset"):
76
+ st.write("Pairplot of the Dataset")
77
+ fig = sns.pairplot(df)
78
+ st.pyplot(fig)
79
+
80
+ # Model Training, Evaluation & Explanations
81
+ if selected == "๐Ÿค– Model Training, Evaluation & Explanations":
82
+ st.header("๐Ÿค– Model Training, Evaluation & Explanations")
83
+ if st.checkbox("Train, Evaluate, and Explain Models"):
84
+ # Model Training
85
+ st.write("Training Tree-Based Models")
86
+ models = {
87
+ "Random Forest": RandomForestClassifier(random_state=42),
88
+ "Gradient Boosting": GradientBoostingClassifier(random_state=42),
89
+ "Extra Trees": ExtraTreesClassifier(random_state=42),
90
+ "Histogram Gradient Boosting": HistGradientBoostingClassifier(random_state=42)
91
+ }
92
+
93
+ model_preds = {}
94
+ model_accuracies = {}
95
+ for model_name, model in models.items():
96
+ model.fit(X_train, y_train)
97
+ preds = model.predict(X_test)
98
+ accuracy = accuracy_score(y_test, preds)
99
+ model_preds[model_name] = preds
100
+ model_accuracies[model_name] = accuracy
101
+ st.write(f"{model_name} Accuracy: {accuracy:.2f}")
102
+
103
+ # Model Evaluation
104
+ selected_model = st.selectbox("Select Model for Detailed Evaluation", list(models.keys()))
105
+ selected_model_instance = models[selected_model]
106
+ selected_preds = model_preds[selected_model]
107
+ st.write("Classification Report:")
108
+ st.text(classification_report(y_test, selected_preds))
109
+ st.write("Confusion Matrix:")
110
+ st.write(confusion_matrix(y_test, selected_preds))
111
+
112
+ # Feature Importance
113
+ if st.checkbox("Show Feature Importance"):
114
+ st.write(f"Feature Importance from {selected_model} Model")
115
+ if hasattr(selected_model_instance, 'feature_importances_'):
116
+ feature_importances = selected_model_instance.feature_importances_
117
+ importance_df = pd.DataFrame({"Feature": X_train.columns, "Importance": feature_importances})
118
+ importance_df = importance_df.sort_values(by="Importance", ascending=False)
119
+ st.bar_chart(importance_df.set_index("Feature"))
120
+ else:
121
+ st.write("The selected model does not support feature importances.")
122
+
123
+ # SHAP Explanations
124
+ if st.checkbox("Explain Predictions with SHAP"):
125
+ st.write(f"SHAP Explanation for {selected_model} Model")
126
+ explainer = shap.TreeExplainer(selected_model_instance)
127
+ shap_values = explainer.shap_values(X_test)
128
+ shap.summary_plot(shap_values, X_test, plot_type="bar")
129
+ st.pyplot()
130
+
131
+ # Predict Percieved Safety
132
+ if selected == "๐Ÿ”ฎ Predict Percieved Safety":
133
+ st.header("๐Ÿ”ฎ Predict Percieved Safety")
134
+ st.write("Please provide the following information to predict Percieved Safety for transport:")
135
+
136
+ # User Input for Prediction
137
+ overcrowding = st.selectbox("How overcrowded do you think the transport is on a scale from 0 (Not overcrowded) to 4 (Very overcrowded)?", [0, 1, 2, 3, 4])
138
+ preference = st.selectbox("How much do you prefer this mode of transport on a scale from 0 (Not preferred) to 4 (Highly preferred)?", [0, 1, 2, 3, 4])
139
+ daytime_safety = st.selectbox("How safe do you feel using this transport during the daytime on a scale from 0 (Not safe) to 4 (Very safe)?", [0, 1, 2, 3, 4])
140
+ nighttime_safety = st.selectbox("How safe do you feel using this transport during the nighttime on a scale from 0 (Not safe) to 4 (Very safe)?", [0, 1, 2, 3, 4])
141
+ taxi_dsafety = st.selectbox("How safe do you feel using a taxi during the day on a scale from 0 (Not safe) to 4 (Very safe)?", [0, 1, 2, 3, 4])
142
+ taxi_nsafety = st.selectbox("How safe do you feel using a taxi during the night on a scale from 0 (Not safe) to 4 (Very safe)?", [0, 1, 2, 3, 4])
143
+ reporting = st.selectbox("How comfortable are you with reporting incidents related to this transport on a scale from 0 (Not comfortable) to 4 (Very comfortable)?", [0, 1, 2, 3, 4])
144
+ background_check = st.selectbox("How effective do you think background checks are for transport personnel on a scale from 0 (Not effective) to 4 (Very effective)?", [0, 1, 2, 3, 4])
145
+
146
+ user_data = np.array([[
147
+ overcrowding, preference, daytime_safety, nighttime_safety,
148
+ taxi_dsafety, taxi_nsafety, reporting, background_check
149
+ ]])
150
+
151
+ if st.button("Predict Percieved Safety"):
152
+ # Train the Model (Again) and Predict
153
+ model = RandomForestClassifier(random_state=42)
154
+ model.fit(X_train, y_train)
155
+ prediction = model.predict(user_data)
156
+ predicted_class = le.inverse_transform(prediction)
157
+
158
+ st.write(f"Predicted Percieved Safety Class: {predicted_class[0]}")