Guest User

Untitled

a guest
Nov 20th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. X = np.array(pd.read_csv('my_X_table1-1c.csv',header=None).values)
  2. y = np.array(pd.read_csv('my_y_table1-1c.csv',header=None).values.ravel())
  3.  
  4. ln=X.shape
  5.  
  6. names = ["x%s" % i for i in range(1,ln[1]+1)]
  7.  
  8. # split data into train and test sets
  9. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  10.  
  11.  
  12. def Lassocv(alpha):
  13. return cross_val_score(Lasso(alpha=float(alpha), random_state=42),
  14. X_train, y_train, scoring='neg_mean_absolute_error', cv=5).mean()
  15.  
  16. if __name__ == "__main__":
  17.  
  18. LassoBO = BayesianOptimization(Lassocv, {'alpha': (0, 8)})
  19. LassoBO.maximize(init_points=2, n_iter = 30)
  20. print('Final Results')
  21. print('Lasso: %f' % LassoBO.res['max']['max_val'])
  22. alpha=LassoBO.res['max']['max_params']['alpha']
  23.  
  24. lasso = Lasso(alpha=alpha)
  25. lasso.fit(X_train, y_train)
  26. print('train Score:', lasso.score(X_train, y_train))
  27. print('test Score:', lasso.score(X_test, y_test))
  28. print('train MSE:', mean_squared_error(y_train, lasso.predict(X_train)))
  29. print('test MSE:', mean_squared_error(y_test, lasso.predict(X_test)))
  30. print('train MAE:', mean_absolute_error(y_train, lasso.predict(X_train)))
  31. print('test MAE:', mean_absolute_error(y_test, lasso.predict(X_test)))
  32.  
  33. print("Features sorted by their score:")
  34.  
  35. # A helper method for pretty-printing linear models
  36. def pretty_print_linear(coefs, names=None, sort=False):
  37. if names == None:
  38. names = ["X%s" % x for x in range(len(coefs))]
  39. lst = zip(coefs, names)
  40. if sort:
  41. lst = sorted(lst, key=lambda x: -np.abs(x[0]))
  42. return " + ".join("%s * %s" % (round(coef, 3), name)
  43. for coef, name in lst)
  44.  
  45.  
  46. print("Lasso model:", pretty_print_linear(lasso.coef_,names=names,sort=True))
  47.  
  48. Final Results
  49. Lasso: -0.786422
  50. train Score: 0.476819501615
  51. test Score: 0.459836314561
  52. train MSE: 1.10511096023
  53. test MSE: 1.02388727356
  54. train MAE: 0.681164633717
  55. test MAE: 0.663119930613
  56. Features sorted by their score:
  57. Lasso model: 0.001 * x25 + 0.0 * x54 + 0.0 * x48 + -0.0 * x17 + 0.0 * x31 + 0.0 * x12 + -0.0 * x15 + -0.0 * x34 + 0.0 * x1 + 0.0 * x2 + -0.0 * x3 + -0.0 * x4 + 0.0 * x5 + 0.0 * x6 + 0.0 * x7 + 0.0 * x8 + 0.0 * x9 + 0.0 * x10 + 0.0 * x11 + 0.0 * x13 + -0.0 * x14 + 0.0 * x16 + 0.0 * x18 + -0.0 * x19 + 0.0 * x20 + -0.0 * x21 + 0.0 * x22 + 0.0 * x23 + -0.0 * x24 + -0.0 * x26 + 0.0 * x27 + -0.0 * x28 + -0.0 * x29 + 0.0 * x30 + 0.0 * x32 + 0.0 * x33 + 0.0 * x35 + 0.0 * x36 + -0.0 * x37 + 0.0 * x38 + 0.0 * x39 + -0.0 * x40 + -0.0 * x41 + -0.0 * x42 + 0.0 * x43 + 0.0 * x44 + 0.0 * x45 + 0.0 * x46 + -0.0 * x47 + -0.0 * x49 + -0.0 * x50 + -0.0 * x51 + 0.0 * x52 + 0.0 * x53 + 0.0 * x55 + 0.0 * x56 + 0.0 * x57 + 0.0 * x58 + 0.0 * x59 + 0.0 * x60
  58.  
  59. scaler = StandardScaler()
  60. scaler.fit(X_train)
  61. X_train = scaler.transform(X_train)
  62. X_test = scaler.transform(X_test)
  63.  
  64. Lasso(alpha=float(alpha), normalize=True, random_state=42)
Add Comment
Please, Sign In to add comment