Commit 6190c846 authored by RACODE977's avatar RACODE977

add component_1 backend

parent 4a8e924a
import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller
from pmdarima import auto_arima
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_squared_error
from math import sqrt
import warnings
warnings.filterwarnings("ignore")
df = pd.read_csv('data.csv', index_col='Date', parse_dates=True)
df = df.dropna()
print('Shape of data', df.shape)
print(df.head())
def adf_test(dataset):
dftest = adfuller(dataset, autolag='AIC')
print("1. ADF : ", dftest[0])
print("2. P-Value : ", dftest[1])
print("3. Num Of Lags : ", dftest[2])
print("4. Num Of Observations Used For ADF Regression and Critical Values Calculation :", dftest[3])
print("5. Critical Values :")
for key, val in dftest[4].items():
print("\t", key, ": ", val)
adf_test(df['waiting_time'])
stepwise_fit = auto_arima(df['waiting_time'], suppress_warnings=True)
print(stepwise_fit.summary())
print(df.shape)
train = df.iloc[:-30]
test = df.iloc[-30:]
print(train.shape, test.shape)
print(test.iloc[0], test.iloc[-1])
model = ARIMA(train['waiting_time'], order=(1, 0, 0))
model = model.fit()
model.summary()
start = len(train)
end = len(train) + len(test) - 1
pred = model.predict(start=start, end=end, typ='levels').rename('ARIMA predictions')
# pred.index=index_future_dates
pred.plot(legend=True)
test['waiting_time'].plot(legend=True)
rmse = sqrt(mean_squared_error(pred, test['waiting_time']))
print(rmse)
model2 = ARIMA(df['waiting_time'], order=(1, 0, 0))
model2 = model2.fit()
df.tail()
model2.save('waiting_time.pkl')
Date,waiting_time
2020.06.01,60
2020.06.02,80
2020.06.03,50
2020.06.04,70
2020.06.05,80
2020.06.06,53
2020.06.07,16
2020.06.08,18
2020.06.09,58
2020.06.10,81
2020.06.11,1
2020.06.12,40
2020.06.13,15
2020.06.14,7
2020.06.15,76
2020.06.16,98
2020.06.17,73
2020.06.18,37
2020.06.19,79
2020.06.20,73
2020.06.21,66
2020.06.22,30
2020.06.23,9
2020.06.24,32
2020.06.25,96
2020.06.26,16
2020.06.27,100
2020.06.28,100
2020.06.29,24
2020.06.30,52
2020.07.01,75
2020.07.02,76
2020.07.03,57
2020.07.04,96
2020.07.05,54
2020.07.06,45
2020.07.07,10
2020.07.08,32
2020.07.09,12
2020.07.10,32
2020.07.11,31
2020.07.12,67
2020.07.13,54
2020.07.14,58
2020.07.15,38
2020.07.16,6
2020.07.17,37
2020.07.18,20
2020.07.19,85
2020.07.20,60
2020.07.21,41
2020.07.22,87
2020.07.23,62
2020.07.24,3
2020.07.25,100
2020.07.26,45
2020.07.27,32
2020.07.28,9
2020.07.29,95
2020.07.30,8
2020.07.31,71
2020.08.01,80
2020.08.02,98
2020.08.03,76
2020.08.04,62
2020.08.05,47
2020.08.06,50
2020.08.07,44
2020.08.08,94
2020.08.09,9
2020.08.10,54
2020.08.11,64
2020.08.12,41
2020.08.13,98
2020.08.14,67
2020.08.15,92
2020.08.16,93
2020.08.17,50
2020.08.18,57
2020.08.19,41
2020.08.20,99
2020.08.21,17
2020.08.22,21
2020.08.23,30
2020.08.24,87
2020.08.25,47
2020.08.26,77
2020.08.27,95
2020.08.28,98
2020.08.29,44
2020.08.30,26
2020.08.31,31
2020.09.01,97
2020.09.02,57
2020.09.03,25
2020.09.04,93
2020.09.05,33
2020.09.06,93
2020.09.07,37
2020.09.08,24
2020.09.09,56
2020.09.10,29
2020.09.11,8
2020.09.12,99
2020.09.13,23
2020.09.14,79
2020.09.15,58
2020.09.16,61
2020.09.17,34
2020.09.18,40
2020.09.19,14
2020.09.20,73
2020.09.21,11
2020.09.22,21
2020.09.23,78
2020.09.24,14
2020.09.25,16
2020.09.26,31
2020.09.27,83
2020.09.28,94
2020.09.29,70
2020.09.30,32
2020.10.01,73
2020.10.02,49
2020.10.03,67
2020.10.04,61
2020.10.05,75
2020.10.06,64
2020.10.07,76
2020.10.08,86
2020.10.09,32
2020.10.10,43
2020.10.11,71
2020.10.12,19
2020.10.13,85
2020.10.14,39
2020.10.15,30
2020.10.16,16
2020.10.17,85
2020.10.18,60
2020.10.19,55
2020.10.20,37
2020.10.21,48
2020.10.22,99
2020.10.23,19
2020.10.24,61
2020.10.25,73
2020.10.26,97
2020.10.27,88
2020.10.28,57
2020.10.29,74
2020.10.30,98
2020.10.31,16
2020.11.01,7
2020.11.02,65
2020.11.03,72
2020.11.04,47
2020.11.05,43
2020.11.06,30
2020.11.07,6
2020.11.08,75
2020.11.09,71
2020.11.10,39
2020.11.11,79
2020.11.12,26
2020.11.13,71
2020.11.14,52
2020.11.15,73
2020.11.16,100
2020.11.17,30
2020.11.18,70
2020.11.19,88
2020.11.20,28
2020.11.21,48
2020.11.22,65
2020.11.23,23
2020.11.24,26
2020.11.25,87
2020.11.26,63
2020.11.27,59
2020.11.28,95
2020.11.29,81
2020.11.30,5
2020.12.01,38
2020.12.02,63
2020.12.03,62
2020.12.04,61
2020.12.05,85
2020.12.06,97
2020.12.07,82
2020.12.08,99
2020.12.09,89
2020.12.10,35
2020.12.11,80
2020.12.12,38
2020.12.13,48
2020.12.14,38
2020.12.15,59
2020.12.16,21
2020.12.17,78
2020.12.18,15
2020.12.19,87
2020.12.20,36
2020.12.21,67
2020.12.22,1
2020.12.23,41
2020.12.24,7
2020.12.25,58
2020.12.26,49
2020.12.27,35
2020.12.28,62
2020.12.29,95
2020.12.30,46
2020.12.31,27
2021.01.01,95
2021.01.02,99
2021.01.03,33
2021.01.04,77
2021.01.05,30
2021.01.06,64
2021.01.07,28
2021.01.08,99
2021.01.09,88
2021.01.10,44
2021.01.11,77
2021.01.12,66
2021.01.13,59
2021.01.14,82
2021.01.15,97
2021.01.16,37
2021.01.17,100
2021.01.18,77
2021.01.19,23
2021.01.20,35
2021.01.21,98
2021.01.22,5
2021.01.23,8
2021.01.24,28
2021.01.25,17
2021.01.26,100
2021.01.27,20
2021.01.28,85
2021.01.29,64
2021.01.30,48
2021.01.31,12
2021.02.01,16
2021.02.02,42
2021.02.03,59
2021.02.04,76
2021.02.05,9
2021.02.06,39
2021.02.07,59
2021.02.08,77
2021.02.09,28
2021.02.10,44
2021.02.11,42
2021.02.12,54
2021.02.13,24
2021.02.14,12
2021.02.15,48
2021.02.16,72
2021.02.17,77
2021.02.18,26
2021.02.19,7
2021.02.20,81
2021.02.21,13
2021.02.22,14
2021.02.23,49
2021.02.24,66
2021.02.25,60
2021.02.26,36
2021.02.27,92
2021.02.28,53
2021.03.01,34
2021.03.02,81
2021.03.03,36
2021.03.04,86
2021.03.05,8
2021.03.06,13
2021.03.07,90
2021.03.08,65
2021.03.09,0
2021.03.10,47
2021.03.11,28
2021.03.12,88
2021.03.13,82
2021.03.14,52
2021.03.15,90
2021.03.16,69
2021.03.17,43
2021.03.18,20
2021.03.19,17
2021.03.20,0
2021.03.21,31
2021.03.22,13
2021.03.23,66
2021.03.24,54
2021.03.25,57
2021.03.26,38
2021.03.27,49
2021.03.28,60
2021.03.29,98
2021.03.30,68
2021.03.31,40
2021.04.01,48
2021.04.02,35
2021.04.03,90
2021.04.04,78
2021.04.05,80
2021.04.06,66
2021.04.07,61
2021.04.08,48
2021.04.09,97
2021.04.10,64
2021.04.11,26
2021.04.12,58
2021.04.13,33
2021.04.14,88
2021.04.15,41
2021.04.16,90
2021.04.17,4
2021.04.18,43
2021.04.19,35
2021.04.20,72
2021.04.21,51
2021.04.22,95
2021.04.23,75
2021.04.24,63
2021.04.25,35
2021.04.26,87
2021.04.27,55
2021.04.28,26
2021.04.29,84
2021.04.30,83
2021.05.01,15
2021.05.02,51
2021.05.03,60
2021.05.04,30
2021.05.05,18
2021.05.06,6
2021.05.07,46
2021.05.08,71
2021.05.09,63
2021.05.10,78
2021.05.11,52
2021.05.12,54
2021.05.13,58
2021.05.14,21
2021.05.15,1
2021.05.16,2
2021.05.17,23
2021.05.18,23
2021.05.19,43
2021.05.20,86
2021.05.21,30
2021.05.22,92
2021.05.23,53
2021.05.24,78
2021.05.25,81
2021.05.26,76
2021.05.27,44
2021.05.28,53
2021.05.29,83
2021.05.30,54
2021.05.31,27
2021.06.01,59
2021.06.02,51
2021.06.03,15
2021.06.04,97
2021.06.05,9
2021.06.06,26
2021.06.07,29
2021.06.08,48
2021.06.09,45
2021.06.10,75
2021.06.11,18
2021.06.12,21
2021.06.13,94
2021.06.14,94
2021.06.15,89
2021.06.16,23
2021.06.17,71
2021.06.18,32
2021.06.19,29
2021.06.20,63
2021.06.21,42
2021.06.22,96
2021.06.23,36
2021.06.24,99
2021.06.25,77
2021.06.26,47
2021.06.27,18
2021.06.28,99
2021.06.29,44
2021.06.30,46
\ No newline at end of file
import cv2
import json
import torch
import os
import random
model = torch.hub.load('ultralytics/yolov5', 'custom', path='component_1/best.pt')
def get_number_of_space():
# cap = cv2.VideoCapture(0) # from webcam
# ret, frame = cap.read()
# if ret:
# img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
sample_imgs = os.listdir('component_1/sample_data')
img = cv2.imread('component_1/sample_data/' + str(random.choice(sample_imgs)))
result = model(img)
json_string = result.pandas().xyxy[0].to_json(orient='records')
json_obj = json.loads(json_string)
status = []
for i in json_obj:
x = int(i["xmin"])
y = int(i["ymin"])
w = int(i["xmax"])
h = int(i["ymax"])
name = i["name"]
if name == 'empty':
status.append(0)
else:
status.append(1)
return status
# print(get_number_of_space())
from statsmodels.tsa.arima.model import ARIMAResults
import pandas as pd
from datetime import datetime, timedelta
model = ARIMAResults.load('component_1/waiting_time.pkl')
def get_waiting_time():
no_of_days = 1
df = pd.read_csv('component_1/data.csv', index_col='Date', parse_dates=True)
df = df.dropna()
today = datetime.now()
n_days = today + timedelta(days=no_of_days)
index_future_dates = pd.date_range(start=today.strftime("%Y.%m.%d"), end=n_days.strftime("%Y.%m.%d"))
# print(index_future_dates)
pred = model.predict(start=len(df), end=len(df) + no_of_days,
typ='levels').rename('ARIMA Predictions')
# print(comp_pred)
pred.index = index_future_dates
output_value = []
for x in range(len(pred)):
output_value.append(round(pred[x], 2))
return output_value[0]
# print(get_waiting_time())
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment