Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- import datetime
- import lpputils as lu
- import linear as li
- import numpy as np
- # import holidays
- def testna(departureDataUcna, arrivalDataUcna):
- departureData = []
- with open("./train_pred/train_pred.csv", "r") as f:
- reader = csv.reader(f, delimiter="\t")
- next(reader)
- for i in reader:
- departure = lu.parsedate(i[6])
- voznik = float(i[1]) * 1000
- # znacilke
- vikend = 1
- praznik = 0
- # pon-pet
- if departure.weekday() < 5:
- vikend = 1000000
- # nedelja ali praznik
- if departure.weekday() == 6:
- praznik = 1000000
- # prazniki
- if departure.month == 1 and (departure.day == 1 or departure.day == 2):
- praznik = 1000000
- if departure.month == 2 and departure.day == 8:
- praznik = 1000000
- if departure.month == 4 and (departure.day == 8 or departure.day == 9 or departure.day == 27):
- praznik = 1000000
- if departure.month == 5 and (departure.day == 1 or departure.day == 2 or departure.day == 31):
- praznik = 1000000
- if departure.month == 6 and departure.day == 25:
- praznik = 1000000
- if departure.month == 8 and departure.day == 15:
- praznik = 1000000
- if departure.month == 10 and departure.day == 31:
- praznik = 1000000
- if departure.month == 11 and departure.day == 1:
- praznik = 1000000
- if departure.month == 12 and (departure.day == 25 or departure.day == 26):
- praznik = 1000000
- gneca = 0
- if 17 >= departure.hour >= 7:
- gneca = departure.hour * 100000000000
- departureData.append([departure.timestamp(), gneca, vikend, praznik, voznik])
- xUcna = np.array(departureDataUcna)
- y = np.array(arrivalDataUcna)
- lr = li.LinearLearner(lambda_=1.)
- linear = lr(xUcna, y)
- xTestna = np.array(departureData)
- f = open('izhod.txt', 'w')
- napoved = []
- for i,j in zip(xTestna,departureDataUcna):
- i = datetime.datetime.fromtimestamp(linear(i))
- napoved.append(float(str(linear(j) )))
- f.write(str(i) + "\n")
- print("MAE ", np.mean([abs(m- n) for m,n in zip(arrivalDataUcna, napoved)]))
- if __name__ == "__main__":
- # departureData, arrivalData,gnecaData, vikendData, praznikData = preberiUcnePodatke()
- departureData = []
- arrivalData = []
- with open("./train_pred/train_pred.csv", "r") as f:
- reader = csv.reader(f, delimiter="\t")
- next(reader)
- for i in reader:
- departure = lu.parsedate(i[6])
- arrival = lu.parsedate(i[8])
- voznik = float(i[1]) * 1000
- vikend = 1
- praznik = 0
- # si_holidays = holidays.SI()
- # pon-pet
- if departure.weekday() < 5:
- vikend = 1000000
- # nedelja ali praznik
- if departure.weekday() == 6:
- praznik = 1000000
- # prazniki
- if departure.month == 1 and (departure.day == 1 or departure.day == 2):
- praznik = 1000000
- if departure.month == 2 and departure.day == 8:
- praznik = 1000000
- if departure.month == 4 and (departure.day == 8 or departure.day == 9 or departure.day == 27):
- praznik = 1000000
- if departure.month == 5 and (departure.day == 1 or departure.day == 2 or departure.day == 31):
- praznik = 1000000
- if departure.month == 6 and departure.day == 25:
- praznik = 1000000
- if departure.month == 8 and departure.day == 15:
- praznik = 1000000
- if departure.month == 10 and departure.day == 31:
- praznik = 1000000
- if departure.month == 11 and departure.day == 1:
- praznik = 1000000
- if departure.month == 12 and (departure.day == 25 or departure.day == 26):
- praznik = 1000000
- gneca = 0
- if 17 >= departure.hour >= 7:
- gneca = departure.hour * 100000000000
- departureData.append([departure.timestamp(), gneca, vikend, praznik, voznik])
- arrivalData.append(lu.tsdiff(arrival, departure))
- # arrivalData.append(arrival.timestamp())
- testna(departureData,arrivalData)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement