mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/cief-dashboard.git
synced 2026-08-21 13:34:06 +00:00
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
from mlxtend.regressor import LinearRegression
|
|
from app import *
|
|
|
|
# read df
|
|
df=pd.read_csv('data/warehouse2.csv',parse_dates=['Date'])
|
|
|
|
# filter 1 month
|
|
start_date=df.loc[:,"Date"].max()-pd.Timedelta(30, unit='D')
|
|
df=df.loc[df.loc[:,'Date'] >= start_date]
|
|
|
|
train_xy=df.loc[:,['Date','Daily CBM']]
|
|
train_xy=train_xy.drop_duplicates()
|
|
train_xy["Date ordinal"]=train_xy.loc[:,"Date"].apply(pd.Timestamp.toordinal)
|
|
train_xy["Type"]='current'
|
|
train_x=np.expand_dims(np.array(train_xy.loc[:,'Date ordinal']),axis=-1)
|
|
train_y=np.array(train_xy.loc[:,'Daily CBM'])
|
|
|
|
predict_x=[]
|
|
for i in range(30):
|
|
predict_x.append(train_xy.loc[:,"Date"].max()+pd.Timedelta(1+i, unit='D'))
|
|
|
|
predict_xy=pd.DataFrame(predict_x, columns=['Date'])
|
|
predict_xy["Date ordinal"]=predict_xy.loc[:,"Date"].apply(pd.Timestamp.toordinal)
|
|
predict_x=np.expand_dims(np.array(predict_xy.loc[:,'Date ordinal']),axis=-1)
|
|
|
|
model = LinearRegression()
|
|
model.fit(train_x, train_y)
|
|
|
|
predict_xy['Daily CBM']=model.predict(predict_x)
|
|
predict_xy["Type"]='predict'
|
|
|
|
plot_df=pd.concat([train_xy,predict_xy])
|
|
plot_df.sort_values(by=['Date'],inplace=True)
|
|
|
|
fig = px.line(plot_df, x="Date", y="Daily CBM", color='Type', title='CBM prediction')
|
|
|
|
layout = html.Div([
|
|
html.Div([
|
|
html.Div(id='circos-output'),
|
|
html.Div(dcc.Graph(id='line-chart',figure=fig),className="six columns")
|
|
],className="row")
|
|
])
|
|
|