Advertisement
Guest User

snipet

a guest
Apr 24th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. from sklearn import metrics
  2.  
  3. np_test_x = np.arange(24)
  4. np_test_y = dataset_T[5].values
  5. print("hours\n", np_test_x)
  6. print("traffic\n", np_test_y)
  7.  
  8. np_pred_y = np.polyval(poly_6, np_test_x)
  9. print("predicted traffic\n", np_pred_y)
  10. r_square = metrics.r2_score(np_test_y, np_pred_y)
  11. print("R^2={}".format(r_square))
  12.  
  13.  
  14. # 2차원 이상의 비선형 변수를 PolynomialFeatures 함수를 통해 선형으로 분해하여 LinearRegesssion 을 사용하는 방법
  15.  
  16. from sklearn.preprocessing import PolynomialFeatures
  17. from sklearn.linear_model import LinearRegression
  18. import numpy as np
  19. import matplotlib.pyplot as plt
  20.  
  21. # 시간 변수: 0 ~ 23
  22. np_data_hours = np.tile([int(hour) for hour in dataset.columns], dataset.values.shape[0]).reshape(-1, 1)
  23. # 낮밤 변수: 0 (0~11), 1(12~23)
  24. np_data_days = np.tile([int(int(hour) < 12) for hour in dataset.columns], dataset.values.shape[0]).reshape(-1, 1)
  25.  
  26. np_data_xs = np.concatenate((np_data_hours, np_data_days), axis = 1)
  27. np_data_ys = dataset.values.reshape(-1, 1)
  28. print(np_data_xs.shape)
  29. print(np_data_ys.shape)
  30.  
  31. # train 과 test 나눔
  32. idx = 120
  33. np_train_xs = np_data_xs[:idx]
  34. np_train_ys = np_data_ys[:idx]
  35. np_test_xs = np_data_xs[idx:]
  36. np_test_ys = np_data_ys[idx:]
  37. print(np_train_xs.shape)
  38. print(np_train_ys.shape)
  39. print(np_test_xs.shape)
  40. print(np_test_ys.shape)
  41.  
  42. np_test_xlabels = np_test_xs[:, 0]
  43.  
  44. # x feature transform
  45. poly = PolynomialFeatures(degree=6)
  46. np_train_xs = poly.fit_transform(np_train_xs)
  47.  
  48. # 학습
  49. model = LinearRegression(fit_intercept=False)
  50. model.fit(np_train_xs, np_train_ys)
  51.  
  52. # 예측
  53. np_test_xs = poly.transform(np_test_xs)
  54. np_pred_ys = model.predict(np_test_xs)
  55.  
  56. # 평가
  57. plt.xticks(range(0, np_test_xlabels.shape[0]), np_test_xlabels)
  58. plt.plot(np_pred_ys, c='r')
  59. plt.plot(np_test_ys, c='b')
  60. plt.show()
  61.  
  62. R_square = model.score(np_test_xs, np_test_ys)
  63. print("R^2: {}".format(R_square))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement