forked from adarshdec23/Airline-Prediction
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPredict.py
84 lines (65 loc) · 2.11 KB
/
Predict.py
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from sklearn.tree import DecisionTreeClassifier
from DataHandler import DataHandler
import numpy as np
from Utils import OneHotEncode
from datetime import datetime
allData = DataHandler.getAllData()[1:]
bookingDate = []
origin = []
dest = []
deptDate = []
deptTime = []
pax = []
label = []
BOOKINGDATE = 1
ORIGIN = 2
DEST = 3
DEPTDATE = 4
DEPTTIME = 5
PAX = 6
LABEL = 7
for row in allData:
bookingDate.append(row[BOOKINGDATE])
origin.append(row[ORIGIN])
dest.append(row[DEST])
deptDate.append(row[DEPTDATE])
deptTime.append(row[DEPTTIME])
pax.append(row[PAX])
label.append(row[LABEL])
def getEncodedDepartureDate(iDeptDate):
#Transform departure date to day of week - 0-6. Then again onehot encode it as is required
departureDay = []
for stringDate in deptDate:
departureDay.append(datetime.strptime(stringDate, '%Y%m%d').weekday())
return OneHotEncode().encode(departureDay)
def getEncodedDepartureTime(iDeptTime):
timeSlots = []
for oneTimeSlot in iDeptTime:
oneTimeSlot = int(oneTimeSlot)
if oneTimeSlot > 0 and oneTimeSlot < 359:
timeSlots.append("night")
elif oneTimeSlot >= 400 and oneTimeSlot <1100:
timeSlots.append("morning")
elif oneTimeSlot >= 1100 and oneTimeSlot < 1540:
timeSlots.append("noon")
elif oneTimeSlot >=1540 and oneTimeSlot < 2000:
timeSlots.append("evening")
else:
timeSlots.append("night")
return OneHotEncode().encode(timeSlots)
def getEncodedPax(iPax):
encodedPax = []
for row in iPax:
if int(row) > 1:
encodedPax.append("group")
else:
encodedPax.append("single")
return OneHotEncode().encode(encodedPax)
originEncoder = OneHotEncode()
destinationEncoder = OneHotEncode()
encodedOrigin = originEncoder.encode(origin)
encodedDestination = destinationEncoder.encode(dest)
encodedDepartureDay = getEncodedDepartureDate(deptDate)
encodedDepartureTime = getEncodedDepartureTime(deptTime)
encodedPax = getEncodedPax(pax)
# There, all done preparing data. Now for the hard part :(