回答編集履歴
1
2次元配列バージョンを追記
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
|
+
```
|