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
Binary file modified __pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q01_load_data/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q01_load_data/__pycache__/build.cpython-36.pyc
Binary file not shown.
12 changes: 10 additions & 2 deletions q01_load_data/build.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
# %load q01_load_data/build.py
import pandas as pd

path = 'data/student-mat.csv'
# Write your code below

def load_data(path):
df=pd.read_table(path,sep=';')
return df

c=load_data(path)
c


Binary file modified q01_load_data/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q01_load_data/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q02_data_split/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q02_data_split/__pycache__/build.cpython-36.pyc
Binary file not shown.
18 changes: 17 additions & 1 deletion q02_data_split/build.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,24 @@
# %load q02_data_split/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
from sklearn.model_selection import train_test_split
import pandas as pd
df = load_data('data/student-mat.csv')
import numpy as np

# Write your code below
def split_dataset(df):
X=df.iloc[:,:-1]
y=df.iloc[:,-1]
# for i in range(10):
# for j in np.arange(0.0,1.0,0.1):
# X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=i,test_size=j)
# if (X_train.shape==(316,32)) & (X_test.shape==(79,32)) & (y_train.shape==(316,)) & (y_test.shape==(79,)):
# return i,j
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=0,test_size=0.20000000000000001)
return X_train,X_test,y_train,y_test



c=split_dataset(df)
c


Binary file modified q02_data_split/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q02_data_split/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q03_data_encoding/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q03_data_encoding/__pycache__/build.cpython-36.pyc
Binary file not shown.
11 changes: 10 additions & 1 deletion q03_data_encoding/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q03_data_encoding/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset
from sklearn.preprocessing import LabelEncoder
Expand All @@ -7,8 +8,16 @@

x_train, x_test, y_train, y_test = split_dataset(df)

# Write your code below
def label_encode(x_train,x_test):
X_transform = pd.DataFrame(x_train.apply(LabelEncoder().fit_transform))
X_test_transform = pd.DataFrame(x_test.apply(LabelEncoder().fit_transform))
return X_transform,X_test_transform





c=label_encode(x_train,x_test)
c


Binary file modified q03_data_encoding/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q03_data_encoding/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q03_ohe_encoder/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q03_ohe_encoder/__pycache__/build.cpython-36.pyc
Binary file not shown.
40 changes: 36 additions & 4 deletions q03_ohe_encoder/build.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,51 @@
# %load q03_ohe_encoder/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset
from sklearn.preprocessing import OneHotEncoder
import pandas as pd
import numpy as np

from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode
df = load_data('data/student-mat.csv')

x_train, x_test, y_train, y_test = split_dataset(df)

category_index = [x for x in range(len(df.columns)) if df[df.columns[x]].dtype == 'object']


# Write your code below


# def ohe_encode(df,x_test,category_index):
# ind=[]
# for i in range(len(list(df))):
# ind.append(i)

# a=[]
# for i,j in zip(list(df),ind):
# a.append((j,i))

# main=[]
# for i in a:
# for j in category_index:
# if i[0]==j:
# main.append(i[1])

def ohe_encode(X_train,X_test,category_index=category_index):
X_train,X_test=label_encode(X_train,X_test)
# X_train = pd.get_dummies(X_train)
# X_test = pd.get_dummies(X_test)
ohe = OneHotEncoder(categorical_features=category_index,sparse=False)
ohe.fit(X_train)
ohe.fit(X_test)
X_train = ohe.transform(X_train)
X_test = ohe.transform(X_test)


return pd.DataFrame(X_train),pd.DataFrame(X_test)
# nc = OneHotEncoder(categorical_features=[len(main)])
# model1 = enc.fit_transform(x_train)
# model2 = enc.fit_transform(x_test)
# return model1


c=ohe_encode(x_train,x_test,category_index)
c


Binary file modified q03_ohe_encoder/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q03_ohe_encoder/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q04_data_visualisation/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q04_data_visualisation/__pycache__/build.cpython-36.pyc
Binary file not shown.
17 changes: 13 additions & 4 deletions q04_data_visualisation/build.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
# -*- coding: utf-8 -*-
# %load q04_data_visualisation/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset
from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode

import matplotlib
matplotlib.use('Agg')
import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
data = load_data('data/student-mat.csv')
x_train, x_test, y_train, y_test = split_dataset(data)
x_train,x_test = label_encode(x_train,x_test)

# Write your code below

def visualise_data(data,figname = 'data/student-mat.csv'):
train = pd.concat([x_train,y_train],axis=1)
plt.scatter




c = visualise_data(data,figname = 'data/student-mat.csv')




Binary file modified q04_data_visualisation/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q04_data_visualisation/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q05_linear_regression_model/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q05_linear_regression_model/__pycache__/build.cpython-36.pyc
Binary file not shown.
13 changes: 11 additions & 2 deletions q05_linear_regression_model/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q05_linear_regression_model/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset

Expand All @@ -11,5 +12,13 @@
x_train, x_test = label_encode(x_train,x_test)


# Write your code below

def linear_regression(x_train,y_train):
linreg = LinearRegression()
model1 = linreg.fit(x_train,y_train)
return model1


c=linear_regression(x_train,y_train)
c


Binary file not shown.
Binary file modified q05_linear_regression_model/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q06_cross_validation/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q06_cross_validation/__pycache__/build.cpython-36.pyc
Binary file not shown.
14 changes: 11 additions & 3 deletions q06_cross_validation/build.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# %load q06_cross_validation/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset

from greyatomlib.multivariate_regression_project.q05_linear_regression_model.build import linear_regression

from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
import numpy as np
Expand All @@ -16,6 +17,13 @@
x_train,x_test = label_encode(x_train,x_test)

model =linear_regression(x_train,y_train)
linreg = LinearRegression()
def cross_validation_regressor(model,x_test,y_train):
score = cross_val_score(linreg,x_train,y_train)
return score.mean()

c=cross_validation_regressor(model,x_test,y_train)
c



# Write your code below

Binary file modified q06_cross_validation/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q06_cross_validation/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q07_regression_pred/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q07_regression_pred/__pycache__/build.cpython-36.pyc
Binary file not shown.
12 changes: 11 additions & 1 deletion q07_regression_pred/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q07_regression_pred/build.py

from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

Expand All @@ -18,5 +19,14 @@

val = cross_validation_regressor(model,x_train,y_train)

def regression_predictor(model,x_test,y_train):
y_pred = model.predict(x_test)
mse = mean_squared_error(y_test,y_pred)
mae = mean_absolute_error(y_test,y_pred)
r2 = model.score(x_test,y_test)
return y_pred,mse,mae,r2

c=regression_predictor(model,x_test,y_train)
c


# Write your code below
Binary file modified q07_regression_pred/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q07_regression_pred/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q08_linear_model/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q08_linear_model/__pycache__/build.cpython-36.pyc
Binary file not shown.
12 changes: 11 additions & 1 deletion q08_linear_model/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q08_linear_model/build.py
import pandas as pd
import numpy as np
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
Expand All @@ -15,6 +16,15 @@
val = cross_validation_regressor(model,x_train,y_train)
y_pred, mse, mae, r2 = regression_predictor(model, x_test, y_test)

# Write your code below
def linear_model(x_train,x_test,y_train,y_test):
rmse = np.sqrt(mse)
stats = pd.DataFrame({'cross_validation':val,
'mse':mse,'mae':mae,'r2':r2},index=['name'])
return model,y_pred,stats



c = linear_model(x_train,x_test,y_train,y_test)
c


Binary file modified q08_linear_model/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q08_linear_model/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q09_advanced_model_q01_lasso/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q09_advanced_model_q01_lasso/__pycache__/build.cpython-36.pyc
Binary file not shown.
21 changes: 17 additions & 4 deletions q09_advanced_model_q01_lasso/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q09_advanced_model_q01_lasso/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data

from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset
Expand All @@ -8,16 +9,28 @@
from sklearn.linear_model import Lasso
import numpy as np
import pandas as pd

from sklearn.metrics import mean_absolute_error,mean_squared_error
from greyatomlib.multivariate_regression_project.q06_cross_validation.build import cross_validation_regressor
np.random.seed(9)

from sklearn.model_selection import cross_val_score
df = load_data('data/student-mat.csv')

x_train, x_test, y_train, y_test = split_dataset(df)

x_train,x_test = label_encode(x_train,x_test)

# Write your solution here
def lasso(x_train,x_test,y_train,y_test,alpha=0.1):
lass = Lasso(alpha=0.1,random_state=9)
model = lass.fit(x_train,y_train)
y_pred = model.predict(x_test)
mse = mean_squared_error(y_test,y_pred)
mae = mean_absolute_error(y_test,y_pred)
rmse = np.sqrt(mse)
val = cross_val_score(lass,x_train,y_train)
stats = pd.DataFrame({'cross_validation':val.mean(),
'rmse':rmse,'mae':mae,'r2':(model.score(x_test,y_test))},index=['name'])
return model,y_pred,stats
c=lasso(x_train,x_test,y_train,y_test,alpha=0.1)
c



Binary file not shown.
Binary file modified q09_advanced_model_q01_lasso/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q09_advanced_model_q02_ridge/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q09_advanced_model_q02_ridge/__pycache__/build.cpython-36.pyc
Binary file not shown.
22 changes: 20 additions & 2 deletions q09_advanced_model_q02_ridge/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q09_advanced_model_q02_ridge/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data

from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset
Expand All @@ -8,18 +9,35 @@
from sklearn.linear_model import Ridge
import numpy as np
import pandas as pd
from sklearn.model_selection import cross_val_score
from sklearn.metrics import mean_absolute_error,mean_squared_error

from greyatomlib.multivariate_regression_project.q06_cross_validation.build import cross_validation_regressor
np.random.seed(9)


df = load_data('data/student-mat.csv')

x_train, x_test, y_train, y_test = split_dataset(df)

x_train,x_test = label_encode(x_train,x_test)

# Write your code below
def ridge(x_train,x_test,y_train,y_test,alpha=0.1):
rid = Ridge(alpha=0.1,random_state=9,normalize=True)
model = rid.fit(x_train,y_train)
y_pred = model.predict(x_test)
mse = mean_squared_error(y_test,y_pred)
mae = mean_absolute_error(y_test,y_pred)
rmse = np.sqrt(mse)
val = cross_val_score(rid,x_train,y_train)
stats = pd.DataFrame({'cross_validation':val.mean(),
'rmse':rmse,'mae':mae,'r2':model.score(x_test,y_test)},index=['name'])
return model,y_pred,stats





c=ridge(x_train,x_test,y_train,y_test,alpha=0.1)
c


Binary file not shown.
Binary file modified q09_advanced_model_q02_ridge/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file modified q10_data_missing_values/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q10_data_missing_values/__pycache__/build.cpython-36.pyc
Binary file not shown.
10 changes: 9 additions & 1 deletion q10_data_missing_values/build.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# %load q10_data_missing_values/build.py
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data
from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset
from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode
Expand All @@ -9,5 +10,12 @@
x_train, x_test, y_train, y_test = split_dataset(df)
x_train,x_test = label_encode(x_train,x_test)

# Write your code below
def describe_df(df):
a=x_train.apply(pd.value_counts)
b=x_train.describe()
return b,a





Binary file modified q10_data_missing_values/tests/__pycache__/__init__.cpython-36.pyc
Binary file not shown.
Binary file modified q10_data_missing_values/tests/__pycache__/test.cpython-36.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
25 changes: 19 additions & 6 deletions q11_feature_selection_q01_plot_corr/build.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# %load q11_feature_selection_q01_plot_corr/build.py

import matplotlib.pyplot as plt
from matplotlib.pyplot import yticks, xticks, subplots, set_cmap
from greyatomlib.multivariate_regression_project.q01_load_data.build import load_data


import seaborn as sns
import matplotlib
# matplotlib.use('Agg')
plt.switch_backend('agg')
from greyatomlib.multivariate_regression_project.q02_data_split.build import split_dataset

import pandas as pd


from greyatomlib.multivariate_regression_project.q03_data_encoding.build import label_encode
Expand All @@ -14,13 +17,23 @@

x_train, x_test, y_train, y_test = split_dataset(df)
x_train,x_test = label_encode(x_train,x_test)

x_train = pd.concat([x_train,y_train],axis=1)

# =============================================================================
# To visualise data, you need to pass training data only as the assumption holds that test set is unknown data and obviously,you cant not make decision based on unseen data :-p

#Remember to concatenate training features and labels if you want to check that scatterplots which I would prefer.You are free to explore labels to labels, features to features ,etc scatterplots as you want by passing arguments
#============================================================================
#visualise_data(pd.concat([x_train,y_train],axis=1),"../images/data_image.png")
#visualise_data(pd.concat([x_train,y_train],axis=1),'../images/data_image.png')

def plot_corr(df,size=11):
numeric = x_train._get_numeric_data()
train = pd.concat([numeric,pd.DataFrame(y_train)],1)
cor_numeric = train.corr()
sns.heatmap(cor_numeric)
plt.set_cmap('YlOrRd')

plot_corr(df,size=11)
plot_corr(df,size=11)


# Write your solution here:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading