Codelog
[AIB] Vector/Matrices ๋ณธ๋ฌธ
๐ก Regression
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.DataFrame(
[[1, 3, 5, 7, 9],
[2, 8, 14, 20, 26]],
index=['mid', 'final']
).T
df['ones'] = np.ones(5)
df
output :
X = df[['ones', 'mid']].values
Y = df['final'].values.reshape(-1,1) # Transpose
# ์์ ๊ณต์ ๊ณ์ฐ
beta = np.matmul(np.linalg.inv(np.matmul(np.transpose(X), X)), np.matmul(np.transpose(X), Y))
beta
output :
cf.
np.reshape(a, b) : a x b ์ฐจ์์ ๋ฐฐ์ด๋ก ์ฌ๊ตฌ์กฐํ
- reshape(-1, b) - ํ ์์น๊ฐ -1์ธ ๊ฒฝ์ฐ
์ด ์ฐจ์์ ์ ์(b)์ ๋ฐ๋ผ์ ์์๊ฐ ๋ฐฐ์น๋ ์ ์๋๋ก ํ์ ๊ฐ์๊ฐ ๊ฐ๋ณ์ ์ผ๋ก ์ ํด์ง
- reshape(a, -1) - ์ด ์์น๊ฐ -1์ธ ๊ฒฝ์ฐ
ํ ์ฐจ์์ ์ ์(a)์ ๋ฐ๋ผ์ ์์๊ฐ ๋ฐฐ์น๋ ์ ์๋๋ก ์ด์ ๊ฐ์๊ฐ ๊ฐ๋ณ์ ์ผ๋ก ์ ํด์ง
np.matmul(x1, x2) : ๋ ๋ฐฐ์ด์ ํ๋ ฌ ๊ณฑ ์ฐ์ฐ ํจ์
np.linalg.inv(x) : ์ญํ๋ ฌ์ ๊ตฌํด์ฃผ๋ ํจ์
Visualize Linear Regression
# Beta๋ฅผ ๋ณ์๋ก ์ ์ฅ
beta_0 = beta[0,0]
beta_1 = beta[1,0]
# ๊ทธ๋ํ
plt.scatter(df['mid'], df['final'])
axex = plt.gca()
x_vals = np.array(axes.get_xlim())
y_vals = beta_0 + beta_1 * x_vals
plt.plot(x_vals, y_vals, '-', color='b')
plt.title('Grade')
plt.xlabel('Mid')
plt.ylabel('Final')
plt.show()
output :
Linear Regression with Scipy
from scipy import stats
stats.linregress([1, 3, 5, 7, 9], [2, 8, 14, 20, 26])
output :
๐ก Dimensionality Reduction : PCA, SVD
์ฌ์ด์ฆ๊ฐ ํฐ ๋ฐ์ดํฐ์ ์ ์ฌ์ด์ฆ๊ฐ ์์ ๋ถ๋ถ์ผ๋ก ๋๋๋ ์์ ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก ์๊ฐํ๋ ๋ค๋ฅธ ๋ชจ๋ธ๋ง์ ์ํด์ ์ฌ์ฉํ๋ค.
โจ CNN
'Convolving' ์ ํํฐ, ์ปค๋(์์ ๋งคํธ๋ฆญ์ค)์ ํตํด ์ด๋ฏธ์ง๋ฅผ ์ถ์ํํ์ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ ๋ถ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํํฐ๋ฅผ ํตํด์ ์์ ๋ ์ด๋ฏธ์ง๋ ํน์ํ ๋ถ๋ถ์ด ๊ฐ์กฐ๋์ด ์ด๋ฏธ์ง ๋ถ์์ ์ฌ์ฉ๋ ์ ์๋ค. (์ ํ๋์ ๊ธฐ๋ฐ)
... ์ถํ ํฌ์คํ ์์ ...
๐ก ์ค์นผ๋ผ, ๋ฒกํฐ
- ์ค์นผ๋ผ์ ๋ฒกํฐ๋ ์ ํ๋์๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ๋จ์์ด๋ค.
- ์ค์นผ๋ผ๋ ๋จ์ํ ๋ณ์๋ก ์ ์ฅ๋์ด ์๋ ์ซ์์ด๋ฉฐ, ๋ฒกํฐ ํน์ ๋งคํธ๋ฆญ์ค์ ๊ณฑํด์ง๋ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ ์ค์นผ๋ผ ๊ฐ๋งํผ ๊ณฑํด์ง ๊ฐ์ผ๋ก ๊ฒฐ์ ๋๋ค.
- ์ค์นผ๋ผ๋ ๋จ์ผ ์ซ์์ด๋ฉฐ, ์ค์์ ์ ์ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
- ๋ฒกํฐ๋ ํ์ด์ฌ์์ ์ฃผ๋ก list ํํ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ฐ์ดํฐ์ ์ ๊ตฌ์ฑํ๊ณ ์๋ ๋ฐ์ดํฐํ๋ ์์ ํ/์ด๋ก์จ ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค.
- n์ฐจ์์ ๋ฒกํฐ๋ ์ปดํฌ๋ํธ๋ผ ๋ถ๋ฆฌ๋ n๊ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ ์์๊ฐ ์๋ ๋ชจ์์ด๋ค. (์ปดํฌ๋ํธ๋ ์ค์นผ๋ผ๋ก ๊ฐ์ฃผ๋์ง ์์)
- ๋งคํธ๋ฆญ์ค๋ ๋ฒกํฐ์ ๋ชจ์์ผ๋ก ๊ฐ์ฃผ๋ ์๋ ์๋ค.
import math
import matplotlib.pyplot as plt
import numpy as np
# ์์ ๋ฒกํฐ (0 ,0) ๊ธฐ์ค
blue = [0.5, 0.5]
# ์ค์นผ๋ผ ๊ณฑ
green = np.multiply(5, blue)
red = np.multiply(math.pi, blue)
orange = np.multiply(-3.12, blue)
# scale์ด ๋ฐ๋ ๋ฒกํฐ๋ฅผ ๊ทธ๋ฆผ
plt.arrow(0, 0, red[0], red[1], head_width=0.1, head_length=0.1, color='#d63031')
plt.arrow(0, 0, green[0], green[1], head_width=0.1, head_length=0.1, color='#00b894')
plt.arrow(0, 0, blue[0], blue[1], head_width=0.1, head_length=0.1, color='#0984e3')
plt.arrow(0, 0, orange[0], orange[1], head_width=0.1, head_length=0.1, color='#e17055')
plt.xlim(-2, 3)
plt.ylim(-2, 2)
plt.title("Vector example 1")
plt.grid()
plt.show()
output :
# vector ์์
yellow = [0.4, 0.6]
red = [0.11, 0.12]
blue = [0.1, 0.7]
plt.arrow(0, 0, yellow[0], yellow[1], head_width=0.01, head_length=0.01, color='#fdcb6e')
plt.arrow(0, 0, red[0], red[1], head_width=0.01, head_length=0.01, color='#d63031')
plt.arrow(0, 0, blue[0], blue[1], head_width=0.01, head_length=0.01, color='#0984e3')
plt.title('Vector example 2')
plt.grid()
plt.show()
ouput :
๋ฒกํฐ์ ํฌ๊ธฐ (Magnitude, Norm)
๋ฒกํฐ์ ํฌ๊ธฐ์ธ Magnitude ํน์ Norm ์ ๋จ์ํ ๊ธธ์ด์ ์ง๋์ง ์๋๋ค.
๋ฒกํฐ์ ๊ธธ์ด(Length)๋ ๋ฒกํฐ์ ์ฐจ์์์ ๋์ผํ๋ค.
๋ฒกํฐ์ ๋ด์ (Dot Product)
๋ ๋ฒกํฐ์ ๋ด์ ์ ๋ฒกํฐ์ ๊ฐ ๊ตฌ์ฑ์์๋ฅผ ๊ณฑํ ๋ค ํฉํ ๊ฐ๊ณผ ๊ฐ๋ค.
- ๋ด์ ์ ๊ตํ๋ฒ์น์ด ์ ์ฉ๋๋ค. a x b = b x a
- ๋ด์ ์ ๋ถ๋ฐฐ๋ฒ์น์ด ์ ์ฉ๋๋ค. a x (b + c) = a x b + a x c
- ๋ฒกํฐ์ ๋ด์ ์ ์ํด์๋ ๋ ๋ฒกํฐ์ ๊ธธ์ด๊ฐ ๋ฐ๋์ ๋์ผํด์ผ ํ๋ค.
๐ก ๋งคํธ๋ฆญ์ค
๋งคํธ๋ฆญ์ค๋ ํ๊ณผ ์ด์ ํตํด ๋ฐฐ์น๋์ด์๋ ์ซ์๋ค์ด๋ค.
pandas๋ฅผ ํตํด ๋ง์ด ๋ค๋ค๋ ๋ฐ์ดํฐํ๋ ์๊ณผ ์ ์ฌํ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
Square Matrix (์ ์ฌ๊ฐ ๋งคํธ๋ฆญ์ค, ์ ๋ฐฉ ๋งคํธ๋ฆญ์ค)
ํ๊ณผ ์ด์ ์๊ฐ ๋์ผํ ๋งคํธ๋ฆญ์ค์ด๋ค.
๐ก Matrix Calculation
Matirx multiplication
Matrix Transpose
df
df.T # df.transpose()
Determinant
ํ๋ ฌ์์ ๋ชจ๋ ์ ์ฌ๊ฐ ๋งคํธ๋ฆญ์ค๊ฐ ๊ฐ๋ ์์ฑ์ผ๋ก det(A) ํน์ |A|๋ก ํ๊ธฐ๋๋ค.
Inverse Matirx (์ญํ๋ ฌ)
์ญํ๋ ฌ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ, ํ๋ ฌ์ ์ญ์์ ๊ฐ์ด ํํํ ์ ์๋ค.
๋งคํธ๋ฆญ์ค์ ์ญํ๋ ฌ์ ๊ณฑํ๋ฉด ๋จ์ ๋งคํธ๋ฆญ์ค๊ฐ ๋๋ค.
๋จ์ ๋งคํธ๋ฆญ์ค๋, ์ฃผ๋๊ฐ์ ์ ์์๊ฐ ๋ชจ๋ 1์ด๋ฉฐ ๋๋จธ์ง ์์๋ ๋ชจ๋ 0์ธ ์ ์ฌ๊ฐ ํ๋ ฌ์ด๋ค.
'Boot Camp > section1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AIB] High dimensional Data (0) | 2022.01.06 |
---|---|
[AIB] Intermediate Linear Algebra (0) | 2021.12.28 |
[AIB] Bayesian (0) | 2021.11.02 |
[AIB] Confidence Intervals (0) | 2021.11.02 |
Type of Error (TP, TN, FP, FN) (0) | 2021.10.10 |