๋ชฉํ
- ๋ฐ์ดํฐ์ฌ์ด์ธ์ค์ ์ ํ๋์
- ๋ฒกํฐ์ ๋ํ ๊ธฐ๋ณธ ๊ณ์ฐ
- ๋งคํธ๋ฆญ์ค์ ๋ํ ๊ธฐ๋ณธ ๊ณ์ฐ
- ๋จ์ํ๋ ฌ๊ฐ์ ํน๋ณํ ๋งคํธ๋ฆญ์ค๋ฅผ ์ดํดํ๊ณ , ํ๋ ฌ์(determinant)๋ ์ญํ๋ ฌ(inverse)๋ฅผ ๊ณ์ฐ
- Numpy๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ ํ๋์ ๊ณ์ฐ
๊ฐ์
์์ ๋ด์ฉ์ linear regression์ผ๋ก ํ ์ ์๋ค.numpy
, pandas
, scikitlearn
๋ฑ๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ๊ณ์ฐํ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ณผ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ python์์ ํํํ๊ณ , ์ ์ฅํ๊ณ , ๊ณ์ฐํ ๊ฒ์ธ๊ฐ
Data Structure(๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๊ตฌ์กฐ)
1D(1-dimension) ๋ฒกํฐ
๋ฐ์ดํฐ์ ์์(order)๋ ์ ์ง๋์ด์ผํ๋ค.list
๊ฐ ๋ํ์ ์ด๋ฉฐ ์์๊ฐ ์๊ด์๋ ๊ฒฝ์ฐ๋ set
๊ฐ ์๋ค.
2D(2-dimension) ๋งคํธ๋ฆญ์ค
์ฐ๋ฆฌ๊ฐ ์์ฃผ ์ฐ๋ ํํ๋ pandas์ DataFrame์ด๋ค.
์ด๋ list์์ list๋ฅผ ๋ด๋ ๊ตฌ์กฐ์ด๋ค. ์นผ๋ผ ํ๋๊ฐ 1์ฐจ์ ๋ฒกํฐ์ ๊ฐ๋ค.
Matrix Calculation
Matrix multiplication
Determinant(๋งคํธ๋ฆญ์ค๋ฅผ ํ๋์ ์ซ์๋ก ํํํด๋ณด๊ฒ ๋ค! ๋๋)(์ค์)
- 2X2
- 3X3
์ค๊ฐ ํ ๋ฒกํฐ๋ฅผ ๋ค์ง๋ ๋ฒ ex) shape์ด (5,) ์๋ฐํ๋ (1,5)์ธ ๊ฒฝ์ฐ์ ๋ฒกํฐ๋ฅผ Transpose ํ๋ ๋ฒ
# ๋ณดํต dataframe์์ ์นผ๋ผ์ ๊ฐ์ ธ์ค๋ฉด series๋๊น ๊ทธ๊ฑฐ๋ก ์์
df['a'].values.reshape(-1,1) # values๋ก ๊ฐ๋ค์ ๋ํ ์ด๋ ์ด๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ๊ทธ ๋ค์ row์ ๋ค์ด๊ฐ '-1'์ ๋ค์ column ์ซ์์ ๋ง๊ฒ ์์์ ํ์ ์ฃผ๊ฒ ๋ค๋ ๋ป, ์ฆ ๋ค์ ์นผ๋ผ์ '1'๋ก ์ฃผ๋ฉด ์ธ๋ก๋ก 1์ด๋ก ์์์ ํ ๊ฐฏ์๋ฅผ ๋ง์ถฐ์ค๋ค๋ ์๋ฏธ. ์ฆ transpose ๋๋ค.
np.array([df['a']]).T # ์ด๋ ์ด๋ก ๋ง๋ค๊ณ ํ๋ฒ ๋ []๋ก ๊ฐ์ธ์ค์ผ Transpose ํจ์๊ฐ ์ ์ฉ๋๋ค.
์ค์นผ๋ผ, ๋ฒกํฐ
- ์ค์นผ๋ผ : ๋จ์ํ ๋ณ์๋ก ์ ์ฅ๋์ด์๋ ์ซ์
- ๋ฒกํฐ ํ์ด์ฌ์์๋ ์ฃผ๋ก list์ ํํ์ด๋ฉฐ, ๋ฐ์ดํฐํ๋ ์์์์ ํ๋์ ํ ํน์ ์ด๋ก ์ฌ์ฉ
- ๋งคํธ๋ฆญ์ค๋ ๋ฒกํฐ์ ๋ชจ์์ผ๋ก ๊ฐ์ฃผ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฒกํฐ๋ฅผ ์ ์ดํดํด์ผํ๋ค.์ค์นผ๋ผ(ํฌ๊ธฐ๋ฅผ ํํ)
๋ฒกํฐ(ํฌ๊ธฐ์ ๋ฐฉํฅ)
์์
\begin{align}
\vec{a} =
\begin{bmatrix}
8\
9
\end{bmatrix}
\qquad
\vec{b} =
\begin{bmatrix}
-4\
7\
1
\end{bmatrix}
\qquad
\vec{c} =
\begin{bmatrix}
5.5332
\end{bmatrix}
\qquad
\vec{d} =
\begin{bmatrix}
Pl\
x\
y\
\frac{2}{3}
\end{bmatrix}
\end{align}
์์ ๋ฒกํฐ๋ค์ ๊ฐ๊ฐ 2, 3, 1, 4์ฐจ์(๊ธธ์ด)์ ๊ฐ์ง๊ณ ์๋ค.
๋ฒกํฐ์ ํฌ๊ธฐ(Magnitude, Norm, Length)
๋ฒกํฐ์ ํฌ๊ธฐ๋ฅผ ํํ ํ ๋๋ || ๋ฅผ ์ฌ์ฉ
v = [1,2,3,4]
$$|v| = \sqrt{ 1^2 + 2^2 + 3^2 + 4^2 }$$
$$|v| =\sqrt{30}$$
๋ฒกํฐ์ ๋ด์ (Dot Product)
๋ ๋ฒกํฐ $$\vec{a}$$ ์ $$\vec{b}$$ ์ ๋ด์ ์, ๊ฐ ๊ตฌ์ฑ์์๋ฅผ ๊ณฑํ ๋ค ํฉํ ๊ฐ๊ณผ ๊ฐ์ต๋๋ค.
v = [1, 2, 3, 4]
x = [5, 6, 7, 8]
v $$\cdot$$ x = 1 * 5 + 2 * 6 + 3 * 7 + 4 * 8
= 70
- ๋ด์ ์ ๊ตํ๋ฒ์น์ด ์ ์ฉ: $$ a \cdot b = b \cdot a$$
- ๋ด์ ์ ๋ถ๋ฐฐ๋ฒ์น์ด ์ ์ฉ: $$a \cdot (b + c) = a \cdot b + a \cdot c$$
- ๋ฒกํฐ์ ๋ด์ ์ ์ํด์๋ ๋ ๋ฒกํฐ์ ๊ธธ์ด(์ฐจ์)๊ฐ ๋ฐ๋์ ๋์ผํด์ผ ํ๋ค.
๋งคํธ๋ฆญ์ค
์ฐจ์
2x2, 3x3 ๋ฑ์ ํํ(ํ์ ์ x ์ด์ ์)
Transpose(์ ์น)
ํ๊ณผ ์ด์ ๋ฐ๊พธ๋ ๊ฒ(๋ค์ง๊ธฐ)
์ ์ฌ๊ฐ ๋งคํธ๋ฆญ์ค(square matrix ;์ ๋ฐฉ ๋งคํธ๋ฆญ์ค)
ํ๊ณผ ์ด์ ์๊ฐ ๊ฐ์ ์ ์ฌ๊ฐํ ๋ชจ์ ํ๋ ฌ
Determinant
ํ๋ ฌ์์ ๋ชจ๋ ์ ์ฌ๊ฐ ๋งคํธ๋ฆญ์ค๊ฐ ๊ฐ๋ ์์ฑ์ผ๋ก, $$det(A)$$ ํน์ $$|A|$$๋ก ํ๊ธฐ
2x2 ๋งคํธ๋ฆญ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก, ํ๋ ฌ์์ ๋ค์๊ณผ ๊ฐ์ด (ad-bc) ๊ณ์ฐ ํ ์ ์์ต๋๋ค
3x3 ๋งคํธ๋ฆญ์ค์ ๊ฒฝ์ฐ,
np.linalg.det() # numpy์์ line algebra(์ ํ๋์) ์์ determinant๋ฅผ ๊ตฌํ๋ผ๋ ์๋ฏธ
Inverse
์ญํ๋ ฌ ๊ตฌํ๋ ์์ ์ ๊ฒ์ด๋ผ ๋ฏฟ๋๋ค ๋ ์์ ์
ํ๋ ฌ์์ด 0์ธ ๊ฒฝ์ฐ(determinant๊ฐ 0์ธ ๊ฒฝ์ฐ)
- ํ๋ ฌ์์ด 0์ธ ์ ์ฌ๊ฐ ๋งคํธ๋ฆญ์ค๋ "ํน์ด" (singular) ๋งคํธ๋ฆญ์ค๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํฉ๋๋ค. ์ด๋ค์ 2๊ฐ์ ํ ํน์ ์ด์ด ์ ํ์ ๊ด๊ณ๋ฅผ (M[,i]= M[,j] * N) ์ด๋ฃจ๊ณ ์์๋ ๋ฐ์ํฉ๋๋ค. -> ์ฆ, ํํ๋ง ๋ค๋ฅด์ง ๊ฐ์ ์ ๋ณด๋ฅผ ๊ฐ๋ ๋ก์ฐ๋ ์นผ๋ผ์ด ์๋ค๋ ๋ป
- ์ด๋ฅผ ํํํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์, ๋งคํธ๋ฆญ์ค์ ํ๊ณผ ์ด์ด ์ ํ์ ์์กด ๊ด๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ ๋งคํธ๋ฆญ์ค์ ํ๋ ฌ์์ 0์ด๋ค. ๋ผ๊ณ ํํ ํ ์ ์์ต๋๋ค.
np.array([[1,2],
[3,6]])
์์ ๊ฐ์ ๊ฒฝ์ฐ ํ๊ณผ ์ด์ ๋ฐ๋ผ ๊ฒฐ๊ตญ ๋ฒกํฐ๊ฐ ๋ฐฐ์๋ ๊ฒ์ผ๋ก ์๋ก ์ ํ ์์กด. ๋ฐ๋ผ์ det ๊ฐ์ด 0์ด ๋๋ค.
Numpy๋ฅผ ์ด์ฉํ ์ ํ๋์
ํ์ด์ฌ์ list์ Numpy์ array ์ฐจ์ด
2๊ฐ list ๋ํ๊ธฐ
a = [1, 2, 3]
b = [4, 5, 6]
a + b
[1, 2, 3, 4, 5, 6]
2๊ฐ array ๋ํ๊ธฐ
import numpy as np
a_np = np.array(a)
b_np = np.array(b)
a_np + b_np
array([5, 7, 9])
array์ ๋ด์
(a_np * b_np).sum() # a ์ b ๋ฒกํฐ์ ๋ด์ ๊ณ์ฐ
np.dot(a_np, b_np) # ์ด๋ฏธ dotํจ์๋ก ๋ด์ ๊ธฐ๋ฅ์ด ์๋ค. ์์ ๊ฒฐ๊ตญ ๊ฐ์ ๊ฐ
1D array VS 2D array(๊ฐ์ธ์ ์ผ๋ก ์์ฃผ ์ค์ํ ๊ฐ๋ ์ด๋ผ ์๊ฐ)
a_np = np.array([1,2,3])
array([1, 2, 3])
a_np.shape
(3,)
a_np.T.shape # Transpose ์ดํ์๋ ๊ตฌ๋ถ ๋์ง ์์
(3,) # Transpose๊ฐ ์๋จ
ํ๊ณผ ์ด์ ๋ช ํํ ๊ตฌ๋ถ์ ์ํด์๋ 2D array๋ฅผ ์ฌ์ฉํด์ผํ๋ค!!!
c = np.array([[1,2,3]])
c.shape
(1, 3) # ์ฆ, ํ๋ฒ๋ []๋ฅผ ํด์ค์ผ ์ด์ ์ ๋ฐฑํฐํํ์๋ค๋ฉด ์ด์ ๋งคํธ๋ฆญ์ค ๊ผด์ด ๋๋ ๊ฒ
d = np.array([[4],
[5],
[6]])
d.shape
(3,1)
'๐ฟ Data > ๋ถํธ์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL]13.High Dimensional Data (0) | 2021.12.05 |
---|---|
[TIL]12.Linear Algebra + (0) | 2021.12.03 |
[TIL]10.์คํ๋ฆฐํธ ์ฑ๋ฆฐ์ง (0) | 2021.12.01 |
[TIL]9.Bayesian Inference (0) | 2021.11.29 |
[TIL]4.Basic Derivative (0) | 2021.11.27 |