Vrk commited on
Commit
c6818eb
·
1 Parent(s): e8574de
Files changed (1) hide show
  1. app.py +108 -0
app.py ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ import joblib
5
+ import pickle
6
+ import datetime as dt
7
+
8
+ ## loading in trained model
9
+ model = joblib.load('Models/Final_Flight_Fair_Model')
10
+ # model = pickle.load(open("FlightPrice.pkl", "rb"))
11
+
12
+ @st.cache()
13
+ def make_predictions(journey_date, journey_time, arrival_date, arrival_time, source, destination, stops, airline):
14
+ # preprocessing data before pre
15
+ # dictions
16
+ pred_input = []
17
+
18
+ stops = int(stops)
19
+ pred_input.append(stops)
20
+
21
+ # departure Date
22
+ journey_day = int(pd.to_datetime(journey_date, format="%Y-%m-%dT%H:%M").day)
23
+ pred_input.append(journey_day)
24
+
25
+ journey_month = int(pd.to_datetime(journey_date, format ="%Y-%m-%dT%H:%M").month)
26
+ pred_input.append(journey_month)
27
+
28
+ dep_min = int(journey_time.minute)
29
+ pred_input.append(dep_min)
30
+
31
+ dep_hour = int(journey_time.hour)
32
+ pred_input.append(dep_hour)
33
+
34
+ arrival_min = int(arrival_time.minute)
35
+ pred_input.append(arrival_min)
36
+
37
+ arrival_hour = int(arrival_time.hour)
38
+ pred_input.append(arrival_hour)
39
+
40
+ arrival_day = int(pd.to_datetime(arrival_date, format="%Y-%m-%dT%H:%M").day)
41
+ pred_input.append(arrival_day)
42
+
43
+ duration_min = abs(arrival_min - dep_min)
44
+ pred_input.append(duration_min)
45
+
46
+ duration_hour = abs(arrival_hour - dep_hour)
47
+ pred_input.append(duration_hour)
48
+
49
+ air_list = ['IndiGo', 'Air India', 'Jet Airways', 'SpiceJet', 'Multiple carriers', 'GoAir', 'Vistara', 'Air Asia', 'Vistara Premium economy', 'Jet Airways Business', 'Multiple carriers Premium economy', 'Trujet']
50
+ for a in air_list:
51
+ if a == airline:
52
+ pred_input.append(1)
53
+ else:
54
+ pred_input.append(0)
55
+
56
+ src_list = ['Banglore', 'Kolkata', 'Delhi', 'Chennai', 'Mumbai']
57
+ for i in src_list:
58
+ if i == source:
59
+ pred_input.append(1)
60
+ else:
61
+ pred_input.append(0)
62
+
63
+ dst_list = ['New Delhi', 'Banglore', 'Cochin', 'Kolkata', 'Delhi', 'Hyderabad']
64
+ for d in dst_list:
65
+ if d == destination:
66
+ pred_input.append(1)
67
+ else:
68
+ pred_input.append(0)
69
+
70
+ prediction = model.predict(np.array([pred_input]))
71
+
72
+ return int(prediction)
73
+
74
+
75
+ def main():
76
+
77
+ st.title('Flight Fair Proce Predictor')
78
+ st.subheader('Fill the following details to get the idea about flight fair price')
79
+
80
+ col1, col2 = st.columns([2, 1])
81
+ journey_date = col1.date_input('Journey Date')
82
+ journey_time = col2.time_input('Departure time')
83
+
84
+ col3, col4 = st.columns([2, 1])
85
+ arrival_date = col3.date_input('Arroval Date')
86
+ arrival_time = col4.time_input('Arrival time')
87
+
88
+ col5, col6 = st.columns(2)
89
+ source = col5.selectbox('Departure city',['Banglore', 'Kolkata', 'Delhi', 'Chennai', 'Mumbai'])
90
+ destination = col6.selectbox('Destination city', ['New Delhi', 'Banglore', 'Cochin', 'Kolkata', 'Delhi', 'Hyderabad'])
91
+
92
+ stops = st.selectbox('Total Stops', ['non-stop', 1, 2, 3, 4])
93
+
94
+ airline = st.selectbox('Choose Airline', ['IndiGo', 'Air India', 'Jet Airways', 'SpiceJet', 'Multiple carriers', 'GoAir', 'Vistara', 'Air Asia', 'Vistara Premium economy', 'Jet Airways Business', 'Multiple carriers Premium economy', 'Trujet'])
95
+
96
+ predict = st.button('Make Prediction',)
97
+
98
+ if stops == 'non-stop':
99
+ stops = 0
100
+
101
+ # make prediction button logic
102
+ if predict:
103
+ with st.spinner('Wait for prediction....'):
104
+ t = make_predictions(journey_date, journey_time, arrival_date, arrival_time, source, destination, stops, airline)
105
+ st.success(f'Fair Price will be around Rs.{t}')
106
+
107
+ if __name__=='__main__':
108
+ main()