回答編集履歴

1

2次元配列バージョンを追記

2020/06/30 17:34

投稿

yymmt
yymmt

スコア1615

test CHANGED
@@ -13,3 +13,61 @@
13
13
  ```
14
14
 
15
15
  としてループを作って`y0`の部分を`y`に変換すれば良いです。
16
+
17
+
18
+
19
+ [追記]
20
+
21
+ 一気に、と言うのはループではなく、と言う事でしたらyを2次元配列にして良いと思います。気をつけるのはmean_squared_errorでしょうか。ループと同じ出力を得るには個別に計算する必要があります。
22
+
23
+ ```python
24
+
25
+ y = data.iloc[:38, 23:30]
26
+
27
+
28
+
29
+ N = len(x)
30
+
31
+ N_train = round(len(x) * 0.8)
32
+
33
+ N_test = N - N_train
34
+
35
+
36
+
37
+ x_train, y_train = x[:N_train], y[:N_train]
38
+
39
+ x_test, y_test = x[N_train:], y[N_train:]
40
+
41
+
42
+
43
+ POLY = PolynomialFeatures(degree=2, include_bias=False)
44
+
45
+ x_train_pol = POLY.fit_transform(x_train)
46
+
47
+ x_test_pol = POLY.transform(x_test)
48
+
49
+ sc = StandardScaler() # 特徴料の標準化を行う
50
+
51
+ x_train_std = sc.fit_transform(x_train_pol)
52
+
53
+ x_test_std = sc.transform(x_test_pol)
54
+
55
+
56
+
57
+ model = LinearRegression()
58
+
59
+ model.fit(x_train_std, y_train)
60
+
61
+ y_train_pred = model.predict(x_train_std)
62
+
63
+ y_test_pred = model.predict(x_test_std)
64
+
65
+
66
+
67
+ for i in range(7):
68
+
69
+ print(mean_squared_error(y_train.iloc[:, i], y_train_pred[:, i]))
70
+
71
+ print(mean_squared_error(y_test.iloc[:, i], y_test_pred[:, i]))
72
+
73
+ ```