回答編集履歴

1

追記

2020/02/08 01:55

投稿

hayataka2049
hayataka2049

スコア30935

test CHANGED
@@ -3,3 +3,69 @@
3
3
 
4
4
 
5
5
  Xは(4, 3)の行列、yは(4, 1)の行列なので、w=(X^T X)^{-1}X^T yは(3, 1)の行列になり、Xwでyを予測することができます。
6
+
7
+
8
+
9
+ # 追記
10
+
11
+ 実際に計算してみると理解が深まります。
12
+
13
+ ```python
14
+
15
+ import numpy as np
16
+
17
+
18
+
19
+ X = np.array([[1,2,3],
20
+
21
+ [1,2,5],
22
+
23
+ [1,3,4],
24
+
25
+ [1,5,9]])
26
+
27
+ y = np.array([[1],
28
+
29
+ [5],
30
+
31
+ [6],
32
+
33
+ [8]])
34
+
35
+
36
+
37
+ w = np.linalg.inv(X.T @ X) @ X.T @ y
38
+
39
+
40
+
41
+ print(repr(w))
42
+
43
+ print(repr(X @ w))
44
+
45
+
46
+
47
+ """ =>
48
+
49
+ array([[-0.14285714],
50
+
51
+ [ 0.71428571],
52
+
53
+ [ 0.57142857]])
54
+
55
+ array([[3. ],
56
+
57
+ [4.14285714],
58
+
59
+ [4.28571429],
60
+
61
+ [8.57142857]])
62
+
63
+ """
64
+
65
+
66
+
67
+ ```
68
+
69
+
70
+
71
+ 二次元配列風表現の行列として書いてみると、たとえば`[[1,2,3]]`と`[[-0.14285714],[ 0.71428571],[ 0.57142857]]`をかけると`[[3]]`が得られます。こういう感じでそれなりの予測ができる訳です。