Skip to content

Commit

Permalink
final version
Browse files Browse the repository at this point in the history
  • Loading branch information
Mykola Lukashchouk authored and Mykola Lukashchouk committed Mar 25, 2021
1 parent 21182bf commit cfe2b5a
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 45 deletions.
42 changes: 0 additions & 42 deletions bias_varience_composition.py

This file was deleted.

14 changes: 12 additions & 2 deletions bias_varience_decomp.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import numpy as np
import pandas as pd

def _draw_bootstrap_sample(rng, X, y, frac = 1.0):
"""
Expand Down Expand Up @@ -36,6 +37,15 @@ def bias_variance_decomp(estimator, X_train, y_train, X_test, y_test,

mean_predictions = np.mean(all_pred, axis=0)

avg_bias = np.sum((mean_predictions - y_test)**2) / y_test.size
avg_bias = np.mean((mean_predictions - y_test)**2)
avg_var = np.sum((mean_predictions - all_pred)**2) / all_pred.size
return avg_expected_loss, avg_bias, avg_var
return avg_expected_loss, avg_bias, avg_var

def bias_variance_plot(alphas, metrics, figsize):

complexity = np.log(alphas)
df = pd.DataFrame(metrics, columns=['mse', 'bias', 'varience'])
df['complexity'] = complexity
df = df.set_index('complexity')

df.plot(figsize=figsize)
26 changes: 25 additions & 1 deletion utils.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
import numpy as np
from sklearn.metrics import mean_squared_error, r2_score

def generate_poly_features(df, cols, max_degree=3):
"""
Function to add polynomial transformation (x -> x^i) for column names in cols (iterable) in df (Dataframe)
max_degree - maximum degree of polynomial features to be added
"""
df = df.copy()
for col in cols:
for degree in range(max_degree):
for degree in range(1, max_degree+1):
df[f"{col}^{degree}"] = df[col]**degree
return df

def summary_model(estimator, summary_name, X, y):

y_pred = estimator.predict(X)
r2 = r2_score(y, y_pred)
rmse = np.sqrt(mean_squared_error(y, y_pred))

print(f"The model performance for {summary_name}")
print("--------------------------------------")
print('RMSE is {}'.format(rmse))
print('R2 score is {}'.format(r2))
print("\n")





0 comments on commit cfe2b5a

Please sign in to comment.