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
9 changes: 7 additions & 2 deletions q01_load_data/build.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# %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)
return df



8 changes: 8 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,10 @@
from greyatomlib.time_series_101_project.q01_load_data.build import q01_load_data

'''Write your solution here'''
def q02_data_splitter(path):
df = q01_load_data(path)
df['Month'] = pd.to_datetime(df.Month)
X_train = df[df['Month'] < datetime.datetime(1971,10,1,0,0,0)]
X_valid = df[df['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.
19 changes: 17 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,19 @@
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,_ = 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,4))
sns.pointplot('month','Sales',hue='Year',data=X_train,order=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
'Sep', 'Oct', 'Nov', 'Dec'])
plt.ylabel('Sales')
plt.xlabel('month')
plt.legend(loc='upper left')
plt.show()


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.
14 changes: 12 additions & 2 deletions q04_boxplot/build.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
# %load q04_boxplot/build.py
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
plt.switch_backend('agg')
import seaborn as sns
import datetime

# import sys
# 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['month']=X_train['Month'].dt.strftime('%b')
plt.figure(figsize=(16, 4))
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')


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: 15 additions & 2 deletions q05_sarima_model/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q05_sarima_model/build.py
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
Expand All @@ -6,9 +7,21 @@
# import sys
# sys.path.append('./')
from greyatomlib.time_series_101_project.q02_data_splitter.build import q02_data_splitter
path = 'data/perrin-freres-monthly-champagne.csv'
plt.switch_backend('agg')
train, validation = q02_data_splitter(path)


"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.
25 changes: 21 additions & 4 deletions q06_sarima_predictor/build.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,33 @@
# %load q06_sarima_predictor/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
plt.switch_backend('agg')
from statsmodels.tsa.statespace import sarimax
import math
from sklearn.metrics import mean_squared_error
#import sys
#sys.path.append('./')
from greyatomlib.time_series_101_project.q05_sarima_model.build import q05_sarima_model
tss, tss_valid = q05_sarima_model(path)
plt.switch_backend('agg')
path = 'data/perrin-freres-monthly-champagne.csv'

'write your solution here'
def q06_sarima_predictor(path):
tss, tss_valid = q05_sarima_model(path)

# Model
model = sarimax.SARIMAX(tss['Sales'],trend='n',order=(1,1,1),seasonal_order=(1,1,1,12))
results = model.fit(disp=-1)

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

# Evaluation metric-rmse
rmse = math.pow(mean_squared_error(tss_valid.values,y_pred.values),0.5)

return y_pred,rmse


"write your solution here"

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.