Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions q01_load_data/build.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# %load q01_load_data/build.py
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split

"write your solution here"

'write your solution here'
def q01_load_data(path):
df=pd.read_csv(path)
#df['Month'] = pd.to_datetime(df['Month'])
#df.index = df['Month']
#df = df[['Sales']]
df.reset_index ( drop=True, inplace=True)
return df



9 changes: 9 additions & 0 deletions q02_data_splitter/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q02_data_splitter/build.py
import pandas as pd
import numpy as np
import datetime
Expand All @@ -7,3 +8,11 @@
from greyatomlib.time_series_101_project.q01_load_data.build import q01_load_data

'''Write your solution here'''
def q02_data_splitter(path):
tss=q01_load_data(path)
tss['Month']=pd.to_datetime(tss['Month'])
X_train = tss[tss['Month'] <datetime.datetime(1971, 10, 1, 0, 0, 0)]
X_valid = tss[tss['Month'] >=datetime.datetime(1971, 10, 1, 0, 0, 0)]
return X_train, X_valid


Binary file added q02_data_splitter/tests/test_sol.pkl
Binary file not shown.
Binary file added q02_data_splitter/tests/user_sol.pkl
Binary file not shown.
18 changes: 16 additions & 2 deletions q03_stacked_point_plot/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q03_stacked_point_plot/build.py
import pandas as pd
import numpy as np
#import sys
Expand All @@ -8,5 +9,18 @@
plt.switch_backend('agg')
import seaborn as sns

#"write your solution here"

#'write your solution here'

def q03_stacked_point_plot(path,x_column_name='month',y_column_name='Sales',hue='year',order_of_the_axis=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug','Sep', 'Oct', 'Nov', 'Dec']):
X_train,X_valid=q02_data_splitter(path)
X_train['year'] = X_train['Month'].dt.year
X_train['month'] = X_train['Month'].dt.strftime('%b')
plt.figure(figsize=(16, 7))
sns.pointplot(x=x_column_name, y=y_column_name, hue=hue, data=X_train, x_order=order_of_the_axis)
plt.xlabel('month')
plt.ylabel('Sales')
plt.title('Stacked point chart')
plt.legend(loc='upper right')



Binary file added q03_stacked_point_plot/tests/test_sol.pkl
Binary file not shown.
Binary file added q03_stacked_point_plot/tests/user_sol.pkl
Binary file not shown.
13 changes: 12 additions & 1 deletion q04_boxplot/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q04_boxplot/build.py
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
Expand All @@ -9,6 +10,16 @@
# sys.path.append('./')
from greyatomlib.time_series_101_project.q02_data_splitter.build import q02_data_splitter

"write your solution here"
'write your solution here'
def q04_boxplot(path,x='month',y='Sales',kind='box',order_of_the_axis=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug','Sep', 'Oct', 'Nov', 'Dec'],size=8):
X_train,X_valid=q02_data_splitter(path)
X_train['year']=X_train['Month'].dt.year
X_train[x]=X_train['Month'].dt.strftime('%b')

plt.figure(figsize=(16, 7))
sns.factorplot(x=x, y=y, data=X_train, kind=kind, order=order_of_the_axis, size=size, aspect=float(16/7))
plt.xlabel('month')
plt.ylabel('Sales')
plt.title('Boxplot using factorplot in seaborn')


Binary file added q04_boxplot/tests/test_sol.pkl
Binary file not shown.
Binary file added q04_boxplot/tests/user_sol.pkl
Binary file not shown.
17 changes: 16 additions & 1 deletion q05_sarima_model/build.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
# %load q05_sarima_model/build.py
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
import seaborn as sns
import matplotlib.pyplot as plt
# import sys
# sys.path.append('./')
path='data/perrin-freres-monthly-champagne.csv'
from greyatomlib.time_series_101_project.q02_data_splitter.build import q02_data_splitter
train, validation = q02_data_splitter(path)
import datetime


"write your solution here"
'write your solution here'
def q05_sarima_model(path):
train, validation = q02_data_splitter(path)
train.index=train['Month']
train=train[['Sales']]
train.index.name=None

validation.index=validation['Month']
validation=validation[['Sales']]
validation.index.name=None
return train, validation




Binary file added q05_sarima_model/tests/test_sol.pkl
Binary file not shown.
Binary file added q05_sarima_model/tests/user_sol.pkl
Binary file not shown.
19 changes: 18 additions & 1 deletion q06_sarima_predictor/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q06_sarima_predictor/build.py
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
Expand All @@ -9,8 +10,24 @@
from sklearn.metrics import mean_squared_error
#import sys
#sys.path.append('./')
path='data/perrin-freres-monthly-champagne.csv'
from greyatomlib.time_series_101_project.q05_sarima_model.build import q05_sarima_model
tss, tss_valid = q05_sarima_model(path)

"write your solution here"
'write your solution here'
def q06_sarima_predictor(path):
tss, tss_valid = q05_sarima_model(path)
mod = sarimax.SARIMAX(tss.Sales, trend='n', order=(1,1,1), seasonal_order=(1,1,1,12))
results = mod.fit(disp=-1)

## Forecasting
pred = pd.DataFrame(results.forecast(len(tss_valid)))
pred.index = tss_valid.index


## Measuring error.
measure = math.pow(mean_squared_error(tss_valid.values, pred.values), 0.5)
return pred,measure



Binary file added q06_sarima_predictor/tests/test_sol.pkl
Binary file not shown.
Binary file added q06_sarima_predictor/tests/user_sol.pkl
Binary file not shown.
Binary file added test_sol.pkl
Binary file not shown.
Binary file added user_sol.pkl
Binary file not shown.