ํ๊ท
KNN ํ๊ท๋ ๊ฐ์ฅ ๊ฐ๊น์ด k๊ฐ์ ์ด์์ ์ฐพ์ ์์ธก๊ฐ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํ์ง๋ง ๋ฉ๋ฆฌ ์๋ ์ด์๋ค์ด ์์ธก์ ์ํฅ์ ๋ฏธ์น๋ฉด ์ ํ๋๊ฐ ๋จ์ด์ง ์ ์๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ํ๊ท ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
- ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ ๋ชจ๋ธ์ด ํ์ต์ ํตํด ์๋์ผ๋ก ์กฐ์ ๋๋ ๊ฐ
- ํ์ดํผํ๋ผ๋ฏธํฐ๋ ๋ชจ๋ธ ํ์ต ์ ์ ์ฌ์ฉ์๊ฐ ์ค์ ํ๋ ๊ฐ
ํ๊ท
ํ๊ท๋ ์ฐ์์ ์ธ ํ๊น ๋ณ์์ ์ค๋ช ๋ณ์(ํน์ฑ) ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๊ธฐ๋ฒ. ์ฃผ๋ก ์์ธก ๋ฌธ์ ์์ ์ฌ์ฉ๋๋ฉฐ, ์ ํ ํ๊ท๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ๋ก, ๋ ๋ณ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ง์ (๋๋ ๊ณ ์ฐจ์์์๋ ์ดํ๋ฉด)์ผ๋ก ๋ํ๋ธ๋ค.
K-์ต๊ทผ์ ์ด์ ํ๊ท
- ํ๊ท ๋ฌธ์ ์ KNN ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ๊ฒ
- ํ๊ท๋ ์ฐ์์ ์ธ ๊ฐ์ ์์ธกํ๋ ๋ฌธ์ ๋ก, ๋ถ๋ฅ ๋ฌธ์ ์ ๋ฌ๋ฆฌ ์์ธกํ๋ ค๋ ๊ฐ์ด ์ฌ๋ฌ ํด๋์ค ์ค ํ๋๊ฐ ์๋๋ผ ์ค์ ๊ฐ
- ex) ๊ฒฝ์ ์ฑ์ฅ๋ฅ ์์ธก
- K-์ต๊ทผ์ ์ด์ ํ๊ท์์ ์์ธกํ๋ ค๋ ๊ฐ์ ์ฃผ๋ณ ๋ฐ์ดํฐ์ ํ๊ท ์ ์ฌ์ฉํ๋ค.
- ์ฆ, ์์ธกํ๋ ค๋ ์ํ์ ๋ํด ๊ฐ์ฅ ๊ฐ๊น์ด k๊ฐ์ ์ํ์ ์ฐพ๊ณ , ๊ทธ๋ค์ ํ๊น ๊ฐ์ ํ๊ท ์ ์์ธก ๊ฐ์ผ๋ก ์ฌ์ฉ
- ์๋ฆฌ
- ์์ธกํ๋ ค๋ ์ํ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด k๊ฐ์ ์ํ์ ์ฐพ๋๋ค.
- ์ด k๊ฐ์ ์ํ์ ํ๊น ๊ฐ(์์น)์ ํ๊ท ์ ๊ณ์ฐ
- ๊ณ์ฐ๋ ํ๊ท ๊ฐ์ ์์ธก ๊ฐ์ผ๋ก ์ฌ์ฉ
- KNN ํ๊ท์ KNN ๋ถ๋ฅ์ ์ฐจ์ด
- ๋ถ๋ฅ: ์์ธกํ๋ ค๋ ๊ฐ์ด ํน์ ํด๋์ค ์ค ํ๋์ผ ๋, ๊ฐ์ฅ ๊ฐ๊น์ด k๊ฐ์ ํด๋์ค ์ค ๊ฐ์ฅ ๋ง์ด ๋์ค๋ ํด๋์ค๋ฅผ ์ ํ
- ํ๊ท: ์์ธกํ๋ ค๋ ๊ฐ์ด ์ฐ์์ ์ธ ์์น์ผ ๋, ๊ฐ์ฅ ๊ฐ๊น์ด k๊ฐ์ ๊ฐ์ ํ๊ท ์ ๊ณ์ฐํ์ฌ ์์ธก
- K-์ต๊ทผ์ ์ด์ ํ๊ท์ ํ๊ฐ
- ํ๊ท ๋ฌธ์ ์์๋ ์ ํ๋ ๋์ ๊ฒฐ์ ๊ณ์(R² score)๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐ
- ๊ฒฐ์ ๊ณ์๋ ๋ชจ๋ธ์ด ์์ธกํ ๊ฐ๊ณผ ์ค์ ๊ฐ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ ์ฑ๋ฅ์ ์ธก์ ํ๋ ์งํ
- R² score๊ฐ 1์ ๊ฐ๊น์ธ์๋ก ๋ชจ๋ธ์ด ์ ์์ธกํ๊ณ ์์์ ์๋ฏธ
- KNN ํ๊ท๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ (์ฌ์ดํท๋ฐ)
- ์ฌ์ดํท๋ฐ์์ KNN ํ๊ท๋ KNeighborsRegressor ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค.
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsRegressor
from sklearn.metrics import mean_squared_error, r2_score
# ์์ ๋ฐ์ดํฐ (ํน์ฑ X, ํ๊น y)
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
y = np.array([1, 3, 5, 7, 9, 11]) # ์์ธกํ๋ ค๋ ํ๊น ๊ฐ
# ํ๋ จ์ธํธ์ ํ
์คํธ์ธํธ ๋๋๊ธฐ
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# ๋ฐ์ดํฐ ํ์คํ (StandardScaler)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# KNN ํ๊ท ๋ชจ๋ธ ์์ฑ (k=3)
knn = KNeighborsRegressor(n_neighbors=3)
# ๋ชจ๋ธ ํ๋ จ
knn.fit(X_train_scaled, y_train)
# ์์ธก
y_pred = knn.predict(X_test_scaled)
# ์ฑ๋ฅ ํ๊ฐ
mse = mean_squared_error(y_test, y_pred) # ํ๊ท ์ ๊ณฑ ์ค์ฐจ
r2 = r2_score(y_test, y_pred) # ๊ฒฐ์ ๊ณ์
print(f"์์ธก๊ฐ: {y_pred}")
print(f"ํ๊ท ์ ๊ณฑ ์ค์ฐจ(MSE): {mse}")
print(f"๊ฒฐ์ ๊ณ์(R²): {r2}")
- ๋ฐ์ดํฐ์ ์ค๋น: ์์๋ก ๊ฐ๋จํ 2์ฐจ์ ํน์ฑ(X)๊ณผ ๊ทธ์ ๋์ํ๋ ํ๊น ๊ฐ(y)์ ์ค๋น
- ํ๋ จ์ธํธ์ ํ ์คํธ์ธํธ ๋๋๊ธฐ: train_test_split()์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ๋ จ์ธํธ์ ํ ์คํธ์ธํธ๋ก ๋๋๋ค.
- ๋ฐ์ดํฐ ํ์คํ: StandardScaler๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์คํ(ํ์คํธ์ฐจ)
- KNN ํ๊ท ๋ชจ๋ธ ํ๋ จ: KNeighborsRegressor๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ท ๋ชจ๋ธ์ ํ์ต์ํด
- ์ฑ๋ฅ ํ๊ฐ: mean_squared_error()๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ท ์ ๊ณฑ ์ค์ฐจ(MSE)๋ฅผ ๊ณ์ฐํ๊ณ , r2_score()๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ์ ๊ณ์(R²)๋ฅผ ํ๊ฐ
๊ณผ๋์ ํฉ๊ณผ ๊ณผ์์ ํฉ์ ๊ณ ๋ ค -> ๋ฐ๋ผ์ ์ด์์ ์(k)๋ฅผ ์ ์ ํ๊ฒ ์ค์ ํ๋ ๊ฒ์ด ์ค์
- K๊ฐ ์ ํ
- ์์ k๊ฐ: ๋ฐ์ดํฐ์ ๊ตญ์ง์ ์ธ ํจํด์ ๋ฐ์ํ๋ฏ๋ก, ํ๋ จ์ธํธ์ ๊ณผ์ ํฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- ํฐ k๊ฐ: ์ ์ฒด ๋ฐ์ดํฐ์ ์ผ๋ฐ์ ์ธ ํจํด์ ๋ฐ์ํ๋ฏ๋ก, ๊ณผ์์ ํฉ์ ์ํ์ด ์์ ์ ์๋ค.
- K-์ต๊ทผ์ ์ด์ ํ๊ท(KNN Regression)๋ ๊ฐ์ฅ ๊ฐ๊น์ด k๊ฐ์ ์ํ์ ํ๊ท ์ ์ฌ์ฉํ์ฌ ์์ธกํ๋ ๋ฐฉ๋ฒ
- ๊ณผ๋์ ํฉ๊ณผ ๊ณผ์์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ์ ํ k๊ฐ์ ์ ํํ๋ ๊ฒ์ด ์ค์
- KNeighborsRegressor๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ KNN ํ๊ท๋ฅผ ๊ตฌํํ๊ณ , ๊ฒฐ์ ๊ณ์(R² score)๋ฅผ ํตํด ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ ์ ์๋ค.
๋จ์ ์ ํ ํ๊ท (Simple Linear Regression)
- ๋ชฉํ: ํ๋์ ํน์ฑ(์ค๋ช ๋ณ์)๊ณผ ์ฐ์์ ์ธ ํ๊น(์๋ต ๋ณ์) ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋ง
- ๋ชจ๋ธ: ์ ํ ํ๊ท ๋ชจ๋ธ์ y = w1 * x + b์ ๊ฐ์ ์ง์ ๋ฐฉ์ ์์ผ๋ก ํํ
- b: y์ถ ์ ํธ
- w1: ํน์ฑ์ ๊ฐ์ค์น
- ์ค์ฐจ(์์ฐจ): ํ๋ จ ์ํ๊ณผ ํ๊ท ์ง์ ์ฌ์ด์ ์์ง ๊ฑฐ๋ฆฌ. ์ค์ฐจ๋ ์์ฐจ๋ผ๊ณ ๋ ํ๋ฉฐ, ์ค์ฐจ๊ฐ 0์ ๊ฐ๊น์ธ์๋ก ์ข์ ๋ชจ๋ธ
- ๋ฌธ์ : ๊ฐ์ด ์์๊ฐ ๋์ฌ ์๋ ์๋ค. → ๋คํญ ํ๊ท๋ฅผ ์ฌ์ฉ
๋ค์ค ํ๊ท (Multiple Regression)
- ๋ชฉํ: ์ฌ๋ฌ ํน์ฑ์ด ์๋ ๊ฒฝ์ฐ, ์ดํ๋ฉด์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ๋ง.
- y = w1 * x1 + w2 * x2 + ... + wn * xn + b
- ์ดํ๋ฉด: ๊ณ ์ฐจ์์์๋ ์ง์ ์ด ์๋๋ผ ๋ค์ฐจ์ ๊ณต๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํ๋ ํ๋ฉด์ ์๋ฏธ, n์ฐจ์์์๋ n-1์ฐจ์์ ๊ณต๊ฐ์ด ์ดํ๋ฉด
- ์ผ๋ฐํ: ํน์ฑ์ด ํ๋์ผ ๋๋ ์ง์ , ์ฌ๋ฌ ๊ฐ์ผ ๋๋ ์ดํ๋ฉด์ผ๋ก ์ผ๋ฐํ
์๊ด๊ด๊ณ ํ๋ ฌ (Correlation Matrix)
- ์๊ด๊ด๊ณ๋ ๋ ๋ณ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ฉฐ, ํผ์ด์จ ์๊ด๊ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํํ
- ๊ฐ์ ๋ฒ์๋ -1(์์ ํ ์์ ์๊ด๊ด๊ณ)์์ 1(์์ ํ ์์ ์๊ด๊ด๊ณ) ์ฌ์ด
- 0์ ๋ ๋ณ์ ๊ฐ์ ์๊ด๊ด๊ณ๊ฐ ์์์ ์๋ฏธ
- ๊ณต๋ถ์ฐ ํ๋ ฌ๊ณผ ๊ด๋ จ: ์๊ด๊ด๊ณ ํ๋ ฌ์ ๊ณต๋ถ์ฐ ํ๋ ฌ์ ์ค์ผ์ผ ์กฐ์ ํ ๊ฒฐ๊ณผ๋ก ๋ณผ ์ ์๋ค.
์ต์ ์ ๊ณฑ๋ฒ (Ordinary Least Squares, OLS)
- ์ต์ ์ ๊ณฑ๋ฒ์ ๊ฐ์ฅ ์ ๋ง๋ ์ง์ ์ ์ฐพ๋ ๊ธฐ์ค. ํ๋ จ ์ํ์ ์์ง ๊ฑฐ๋ฆฌ(์์ฐจ)์ ์ ๊ณฑํฉ์ ์ต์ํํ๋ ์ ํ ํ๊ท ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์ ํ๋ค.
- OLS์์ ์ฌ์ฉํ ์์ค ํจ์์ ์๋ฌ๋ฆฐ์ ์์ค ํจ์(ํ๊ท ์ ๊ณฑ ์ค์ฐจ)๊ฐ ๋์ผํ๋ค๋ ์ ์์ ์๋ฌ๋ฆฐ์ OLS ํ๊ท๋ก ํด์๋ ์ ์๋ค.
ํ๊ท ๋ชจ๋ธ์์์ ์ด์์น ์ฒ๋ฆฌ - RANSAC
- RANSAC (RANdom SAmple Consensus) ์๊ณ ๋ฆฌ์ฆ์ ์ด์์น์ ๋ฏผ๊ฐํ ์ ํ ํ๊ท ๋ชจ๋ธ์์ ์์ ์ ์ธ ๋ชจ๋ธ์ ์ฐพ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ
RANSAC ์๊ณ ๋ฆฌ์ฆ ๋จ๊ณ
- ๋๋คํ๊ฒ ์ํ์ ์ ํํ์ฌ ๋ชจ๋ธ ํ์ต
- ํ๋ จ๋ ๋ชจ๋ธ์์ ๋ค๋ฅธ ํฌ์ธํธ๋ฅผ ํ ์คํธํ๊ณ , ์ฌ์ฉ์๊ฐ ์ง์ ํ ํ์ฉ ์ค์ฐจ ๋ด์ ์๋ ํฌ์ธํธ๋ฅผ ์ ์์น๋ก ์ถ๊ฐ
- ์ ์์น๋ค๋ง์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ค์ ํ์ต
- ๋ชจ๋ธ์ ํ๋ จ์ํค๊ณ ์ ์์น ๊ฐ์ ์ค์ฐจ๋ฅผ ์ถ์
- ์ฑ๋ฅ์ด ์ง์ ๋ ์๊ณ๊ฐ์ ๋๋ฌํ๊ฑฐ๋ ๋ฐ๋ณต ํ์๊ฐ ๋๋ ๋๊น์ง ๋ฐ๋ณต
์ ํ ํ๊ท ๋ชจ๋ธ ์ฑ๋ฅ ํ๊ฐ
- ์์ฐจ ๊ทธ๋ํ
- ์์ฐจ(์ค์ฐจ)๊ฐ ์์ธก๊ฐ์ ๋ํด ๋๋คํ๊ฒ ๋ถํฌํ๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ
- ๋น์ ํ์ฑ์ด๋ ์ด์์น๋ฅผ ๊ฐ์งํ๋ ๋ฐ ๋์์ด ๋๋ค.
- ์์ธก์ด ์๋ฒฝํ๋ฉด ์์ฐจ๋ 0์ด ๋๋ค.
- ์ด์์น๋ ๋ค๋ฅธ ๊ฐ๋ค๊ณผ ํฌ๊ฒ ์ฐจ์ด ๋๋ ๊ฐ์ด๋ฏ๋ก, ์์ฐจ ๊ทธ๋ํ์์ ์ด๋ฅผ ๋์ผ๋ก ์๋ณํ ์ ์๋ค.
- ํจํด์ด๋, ์์ฐจ๋ค์ด ๊ท์น์ ์ด์ง ์๊ฒ ํฉ์ด์ ธ ์์ง ์๊ณ ์ด๋ค ํํ๋ ๊ฒฝํฅ์ฑ์ ๋ณด์ด๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธ
- ์ด์์น๊ฐ ์์ผ๋ฉด ์์ฐจ์ ๋ถํฌ๊ฐ ์๊ณก๋๊ฑฐ๋, ๋ค๋ฅธ ๊ฐ๋ค๊ณผ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ด๋ฏ๋ก ์์ฐจ ๊ทธ๋ํ์ ํจํด์ด ๋ํ๋ ์ ์๋ค.
- ํ๊ท ์ ๊ณฑ ์ค์ฐจ (MSE, Mean Squared Error)
- ํ๋ จ ๋ฐ์ดํฐ์ ํ ์คํธ ๋ฐ์ดํฐ์์์ ์ค์ฐจ๋ฅผ ๋น๊ตํ๋ ์ ๋์ ์ธ ์งํ
- MSE๊ฐ ๋ฎ์์๋ก ๋ชจ๋ธ์ ์์ธก์ด ์ ํํ๋ค๋ ์๋ฏธ
- MSE๋ ์ํ ํฌ๊ธฐ n์ ๋ํด ์ ๊ทํ๋์ด ๋น๊ต๊ฐ๋ฅ
- MSE๋ ์ค์ฐจ๋ฅผ ์ ๊ณฑํ์ฌ ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ ํฐ ์ค์ฐจ์ ๋ ๋ฏผ๊ฐํ๋ค. ์ฆ, ํฐ ์ค์ฐจ๋ฅผ ๋ ๊ฐ์กฐํ๋ ํน์ฑ์ด ์๊ณ , ์ด๋ก ์ธํด ๊ณผ๋์ ํฉ์ ๋ ์ฝ๊ฒ ๊ฐ์งํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ๋ชจ๋ธ์ด ํ๋ จ ๋ฐ์ดํฐ์์ ๋๋ฌด ์ธ๋ฐํ ํจํด๊น์ง ํ์ตํด๋ฒ๋ฆฐ ๊ฒฝ์ฐ, ํ๋ จ ๋ฐ์ดํฐ์์ MSE๊ฐ ๋งค์ฐ ์์ง๋ง ํ ์คํธ ๋ฐ์ดํฐ์์ MSE๊ฐ ๊ธ๊ฒฉํ ์ปค์ง๋ ํ์์ ์ฝ๊ฒ ํ์ ํ ์ ์๋ค.
- RMSE: MSE์ ์ ๊ณฑ๊ทผ์ ์ทจํ ๊ฐ์ผ๋ก, ์ค์ฐจ์ ๋จ์๊ฐ ์๋ ๋ฐ์ดํฐ์ ๋จ์์ ์ผ์นํ๊ฒ ๋ง๋ค์ด์ค๋ค. ์ค์ฐจ์ ํฌ๊ธฐ๋ฅผ ๋ ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์๊ฒ ํด์ค๋ค.
- ํ๊ท ์ ๋ ์ค์ฐจ (MAE, Mean Absolute Error)
- MSE์ ๋ฌ๋ฆฌ ์์ธก ์ค์ฐจ์ ์ ๋๊ฐ์ ์ฌ์ฉํ์ฌ ํ๊ท ์ ๊ตฌํจ
- MAE๋ ์ค์ฐจ๊ฐ ์ผ์ ํ๊ฒ ๋ถํฌ๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ฉฐ, MSE๋ณด๋ค ์ด์์น์ ๋ ๋ฏผ๊ฐํ๋ค.
- ๋ฐ๋ฉด MAE๋ ์ค์ฐจ์ ์ ๋๊ฐ์ ๋จ์ํ ํ๊ท ๋ด๋ ๋ฐฉ์์ด๋ผ ํฐ ์ค์ฐจ์ ๋ํ ๋ฏผ๊ฐ๋๊ฐ ๋ฎ๋ค. ๋ฐ๋ผ์ ํฐ ์ค์ฐจ๊ฐ ์์ ๋ MAE๊ฐ MSE๋ณด๋ค ๋ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ ์ ์๋ค.
- ๊ฒฐ์ ๊ณ์ (R², R-squared)
- ๋ชจ๋ธ์ด ํ๊น ๋ณ์์ ๋ถ์ฐ์์ ์ผ๋ง๋ ๋ง์ ๋ถ๋ถ์ ์ค๋ช ํ๋์ง(์ฆ, ๋ฐ์ดํฐ์์ ์ผ๋ง๋ ๋ง์ ๋ณ๋์ฑ์ ์ค๋ช ํ๋์ง)๋ฅผ ์ค๋ช
- SSE (Sum of Squared Errors): ์ ๊ณฑ ์ค์ฐจํญ์ ํฉ
- SST (Total Sum of Squares): ์ ์ฒด ์ ๊ณฑํฉ
- ๊ฒฐ์ ๊ณ์ ํด์
- R² = 1: ๋ชจ๋ธ์ด ๋ฐ์ดํฐ๋ฅผ ์๋ฒฝํ ์ค๋ช
- R² = 0: ๋ชจ๋ธ์ด ๋ฐ์ดํฐ๋ฅผ ์ ํ ์ค๋ช ํ์ง ๋ชปํจ
- R² < 0: ๋ชจ๋ธ์ด ์ํ ํ๊ท ์ ๊ทธ๋๋ก ์์ธกํ๋ฉฐ, ๊ณผ์์ ํฉ๋ ๊ฒฝ์ฐ
- ๊ทธ๋ ๋ค๋ฉด ๊ฒฐ์ ๊ณ์๋ง ์ฌ์ฉํ๋๊ฒ์ด ์ ๋ฆฌํ ๊น? ์๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
- ๊ณผ๋์ ํฉ์ ํ์ธํ๋ ค๋ฉด: ํ๋ จ ๋ฐ์ดํฐ์ ๊ณผ ํ ์คํธ ๋ฐ์ดํฐ์ ์์ MSE๋ MAE๋ฅผ ๋น๊ตํ๋ ๊ฒ์ด ์ ์ฉํ๋ค. MSE๋ฅผ ํตํด ํ๋ จ ๋ฐ์ดํฐ์์ MSE๊ฐ ๋ฎ๊ณ ํ ์คํธ ๋ฐ์ดํฐ์์ MSE๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ๋ ๊ฒฝ์ฐ ๊ณผ๋์ ํฉ์ ์์ฌํ ์ ์๋ค.
- ๋น์ ํ ๋ชจ๋ธ์์๋: R²๋ ์ ํ ํ๊ท ๋ชจ๋ธ์์ ์ ์ฉํ๋ค. ์ด ๊ฒฝ์ฐ์๋ MSE๋ MAE์ ๊ฐ์ ์งํ๊ฐ ๋ ์ ํฉํ ์ ์๋ค.
๋คํญ ํ๊ท (Polynomial Regression)
- ๋ชฉํ: ๋น์ ํ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๊ธฐ ์ํด ์ง์ ์ด ์๋ ์ต์ ์ ๊ณก์ ์ ์ฐพ๋ ๋ฐฉ๋ฒ
- ์ ํ ํ๊ท์์ ๊ด๊ณ: ๋น์ ํ ๋ชจ๋ธ์ด์ง๋ง, ์ค์ ๋ก๋ ๋ณ์์ ์ ๊ณฑ ํญ ๋๋ ๊ณ ์ฐจ ํญ์ ์ถ๊ฐํ์ฌ ์ ํ ํ๊ท ๋ชจ๋ธ์ ํ์ฅ์ผ๋ก ๋ณผ ์ ์๋ค. ์ด๋, ๋ณ์์ ์ ๊ณฑ ๋ณํ์ ํฌํจํ ๋ชจ๋ธ๋ ์ ํ ํ๊ท ๋ชจ๋ธ์ ํํ๋ก ๋ณผ ์ ์๋๋ฐ, ์๋ํ๋ฉด ํ๊ท์ ๊ฐ์ค์น(w)๊ฐ ์ฌ์ ํ ์ ํ์ด๊ธฐ ๋๋ฌธ
์ฌ๊ธฐ์ "์ ํ"์ด๋, ๋ชจ๋ธ์ด ๊ฐ์ค์น(w)์ ๋ํด ์ ํ์ ์ด๋ผ๋ ๋ป.
๋ชจ๋ธ์์ ์์ธก๊ฐ์ ๊ฐ ๋ณ์์ ๋ํด ๊ฐ์ค์น๋ฅผ ๊ณฑํ ํ ๋ํ ํํ๋ก ๋์ค๊ฒ ๋๋ค.
์ฌ๊ธฐ์ x^2์ ๋น์ ํ์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง, ์ฌ์ค w_1๊ณผ w_2๋ ๊ฐ๊ฐ x์ x^2์ ๋ํด ์ ํ์ ์ด๋ค.
๋ฐ๋ผ์ ๊ฐ์ค์น๊ฐ ๊ฐ ํญ์ ๋ํด ์ ํ์ ์ด๋ฏ๋ก ๋คํญ ํ๊ท๋ ์ ํ ํ๊ท ๋ชจ๋ธ๋ก ๋ณผ ์ ์๋ค.
- ์ฅ์ : ์ง์ ์ด ์๋ ๊ณก์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ชจ๋ธ๋งํ ์ ์์ด, ๋น์ ํ ๊ด๊ณ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
- ๋จ์ : ํน์ฑ์ ๋ง์ด ์ถ๊ฐํ ์๋ก ๋ชจ๋ธ์ ๋ณต์ก๋๊ฐ ๋์์ง๊ณ ๊ณผ๋์ ํฉ์ด ๋ฐ์ํ ์ ์๋ค๋ ์
๊ฒฐ์ ํธ๋ฆฌ ํ๊ท (Decision Tree Regression)
- ๋ชฉํ: ๋ฐ์ดํฐ๋ฅผ ์์ ์์ญ์ผ๋ก ๋ถํ ํ๊ณ ๊ฐ ์์ญ ๋ด์์ ์์ธก์ ํ๋ ๋ฐฉ๋ฒ
- ์ฅ์ : ๋น์ ํ ๋ฐ์ดํฐ์์๋ ์ข์ ์ฑ๋ฅ์ ๋ณด์ด๋ฉฐ, ํน์ฑ ๋ณํ ์์ด๋ ์ ๋์ํ๊ณ , ์์์ ํน์ฑ์์๋ ์ ์๋ํ๊ณ ํด์์ด ์ง๊ด์
- ๋จ์ : ํธ๋ฆฌ๊ฐ ๋๋ฌด ์์ผ๋ฉด ๊ณผ์์ ํฉ์ด ๋ฐ์ํ๊ณ , ๋๋ฌด ๊น์ผ๋ฉด ๊ณผ๋์ ํฉ์ด ๋ฐ์ํ ์ ์๋ค. ์ ์ ํ ํธ๋ฆฌ ๊น์ด๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ค์
- ํ๊ท์์ MSE ๊ธฐ์ค: ๊ฒฐ์ ํธ๋ฆฌ ํ๊ท๋ MSE๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถํ ์ ์งํํ๋ฉฐ, ์ด๋ฅผ ๋ถ์ฐ ๊ฐ์๋ผ๊ณ ํ๋ค.
๋๋ค ํฌ๋ ์คํธ ํ๊ท (Random Forest Regression)
- ๋ชฉํ: ์ฌ๋ฌ ๊ฐ์ ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ ์์๋ธํ์ฌ ๋ ๊ฐ๋ ฅํ ์์ธก ๋ชจ๋ธ์ ๋ง๋๋ ๋ฐฉ๋ฒ
- ์ฅ์
- ๋ชจ๋ธ์ ๋ถ์ฐ์ ๋ฎ์ถ์ด ๊ณผ๋์ ํฉ์ ๋ฐฉ์ง
- ์ด์์น์ ๋ ๋ฏผ๊ฐํ๊ณ , ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ ๋ํ ๋ฏผ๊ฐ๋๊ฐ ๋ฎ๋ค.
- ํธ๋ฆฌ ๊ฐ์๋ฅผ ์ค์ ํ๋ ๊ฒ ์ธ์๋ ํ๋์ด ์ ๊ณ , ์ฑ๋ฅ์ด ๋งค์ฐ ์์ ์
- ๋จ์ผ ๊ฒฐ์ ํธ๋ฆฌ์์ ์ฐจ์ด์ : ๋๋ค ํฌ๋ ์คํธ์์๋ ๊ฐ ํธ๋ฆฌ๊ฐ ๋ฌด์์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ํ๋ จ๋๋ฉฐ, ๊ฐ๋ณ ํธ๋ฆฌ๋ค์ด MSE ๊ธฐ์ค์ผ๋ก ์ฑ์ฅ. ๋ ์ข์ ์์ธก ์ฑ๋ฅ
- ๋จ์ : ๋ชจ๋ธ ํด์์ด ์ด๋ ต๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฆ๊ฐ์ ํ๋ จ ๋ฐ ์์ธก ์๋ ๊ฐ์๋ผ๋ ๋จ์ ์กด์ฌ
์ ๋ฆฌํ๋ฉด
- ์ ํ ํ๊ท๋ ๋ฐ์ดํฐ์ ๊ด๊ณ๋ฅผ ์ง์ ์ด๋ ์ดํ๋ฉด์ผ๋ก ๋ชจ๋ธ๋งํ๋ ๊ธฐ๋ฒ์ด๋ฉฐ, ์ด๋ฅผ ํตํด ์ฐ์์ ์ธ ํ๊น ๋ณ์๋ฅผ ์์ธกํ ์ ์๋ค.
- ๋ค์ค ์ ํ ํ๊ท๋ ์ฌ๋ฌ ํน์ฑ(์ค๋ช ๋ณ์)์ ํ์ฉํ์ฌ ๊ณ ์ฐจ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ๋งํ๋ค.
- ์ต์ ์ ๊ณฑ๋ฒ์ ๊ฐ์ฅ ์ ํฉํ ์ง์ ์ ์ฐพ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก, ์์ฐจ๋ฅผ ์ต์ํ
- ์ด์์น์ ๋ฏผ๊ฐํ ์ ํ ํ๊ท์์๋ RANSAC ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์์ ํํ ์ ์๋ค.
- MSE, MAE, ๊ฒฐ์ ๊ณ์๋ ํ๊ท ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ๋ ์ค์ํ ์งํ
- ๋คํญ ํ๊ท๋ ๋น์ ํ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ์ง๋ง, ์ฌ์ ํ ์ ํ ํ๊ท์ ํ์ฅ์ผ๋ก ์ดํดํ ์ ์๋ค.
- ๊ฒฐ์ ํธ๋ฆฌ ํ๊ท๋ ๋ฐ์ดํฐ๋ฅผ ๋น์ ํ์ ์ผ๋ก ์ ๋ชจ๋ธ๋งํ ์ ์์ง๋ง, ๊ณผ์ ํฉ์ ์ฃผ์ํด์ผ ํ๋ค.
- ๋๋ค ํฌ๋ ์คํธ ํ๊ท๋ ์ฌ๋ฌ ๊ฐ์ ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ ๊ฒฐํฉํ์ฌ ์ฑ๋ฅ์ ๋์ด๊ณ , ๊ณผ์ ํฉ์ ์ค์ฌ์ฃผ๋ฉฐ ์ด์์น์ ๋ฏผ๊ฐํ์ง ์๋ค๋ ์ฅ์
ํ๊ท ๊ท์
๋ชจ๋ธ์ ๊ณผ๋์ ํฉ์ ๋ฐฉ์งํ๊ณ ์ผ๋ฐํ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ์ ํจ๋ํฐ๋ฅผ ๋ถ์ฌํ๋ ๊ธฐ๋ฒ
์ด๋ฅผ ํตํด ๋ชจ๋ธ์ ๋ณต์ก๋๋ฅผ ์ ์ดํ๊ณ , ๊ณผ์ ํฉ์ ๋ฐฉ์งํ ์ ์๋ค.
- ๋ฆฟ์ง ํ๊ท, ๋ผ์ ํ๊ท, ์๋ผ์คํฑ ๋ท
1. ๋ฆฟ์ง ํ๊ท - L2 ๊ท์
- ๊ฐ์: ๋ชจ๋ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ์ ์ ๊ณฑํฉ์ ํจ๋ํฐ๋ฅผ ์ถ๊ฐ
- ๋ชฉ์ : ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ ๊ฐ์ด ๋๋ฌด ์ปค์ง์ง ์๋๋ก ์ ํํ์ฌ ๊ณผ๋์ ํฉ์ ๋ฐฉ์ง
- ์์: ์์ค ํจ์์ λ * (Σw^2) ํํ์ ํจ๋ํฐ๊ฐ ์ถ๊ฐ๋๋ค.
- ํ๊ณ(๊ณผ๋์ ํฉ)
- ํน์ฑ ์ ํ์ด ์ด๋ ค์: ๋ฆฟ์ง ํ๊ท๋ ๋ชจ๋ ํน์ฑ์ ๊ฐ์ค์น๋ฅผ ์๊ฒ ๋ง๋ค์ง๋ง 0์ผ๋ก ๋ง๋ค์ง๋ ์๋๋ค. ์ฆ, ๋ชจ๋ ํน์ฑ์ด ๋ชจ๋ธ์ ํฌํจ๋๋ฏ๋ก ์ค์ํ์ง ์์ ํน์ฑ๊น์ง ํฌํจ๋ ์ ์๋ค.
- ๊ณผ์ ํฉ ๋ฐฉ์ง์ ์ ํจํ์ง๋ง, ๋ถํ์ํ ํน์ฑ์ ์ ๊ฑฐํ์ง ๋ชปํจ: ์ค์ํ ํน์ฑ๋ง์ ๋จ๊ธฐ๊ณ ๋๋จธ์ง๋ฅผ ์ ์ธํ๋ ๋ผ์์ ํน์ฑ๊ณผ ๋ค๋ฅด๊ฒ, ๋ฆฟ์ง๋ ๋ชจ๋ ํน์ฑ์ ํจ๋ํฐ๋ฅผ ๋ถ์ฌํ๊ณ , ํน์ฑ์ ์ ๊ฑฐํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ธ์ ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ ์ด๋ ต๋ค.
2. ๋ผ์ ํ๊ท - L1 ๊ท์
- ๊ฐ์: ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ์ ์ ๋๊ฐ ํฉ์ ํจ๋ํฐ๋ฅผ ์ถ๊ฐ
- ๋ชฉ์ : ๋ถํ์ํ ํน์ฑ์์ ๋ณ์ ๊ฐ์ค์น๋ฅผ 0์ผ๋ก ๋ง๋ค ์ ์์ด, ํฌ์ํ ๋ชจ๋ธ์ ์์ฑ
- ์์: ์์ค ํจ์์ λ * Σ|w| ํํ์ ํจ๋ํฐ๊ฐ ์ถ๊ฐ๋๋ค.
- ํน์ง: ๋ผ์๋ ๋ชจ๋ธ์ ๊ฐ์ํํ๊ณ ํน์ฑ ์ ํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. ๊ทธ๋ฌ๋, ์๊ด ๊ด๊ณ๊ฐ ํฐ ๋ณ์๋ค์ด ์์ ๊ฒฝ์ฐ ํ๋๋ง ์ ํ๋ ์ ์๋ค.
- ํ๊ณ(๊ณผ์์ ํฉ)
- ์๊ด๊ด๊ณ๊ฐ ํฐ ๋ณ์๋ค ์ค์์ ํ๋๋ง ์ ํ: ๋ผ์ ํ๊ท๋ L1 ๊ท์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ถ ํน์ฑ์ ๊ฐ์ค์น๋ฅผ 0์ผ๋ก ๋ง๋ค ์ ์๋ค. ํ์ง๋ง ํน์ฑ๋ค ๊ฐ์ ๊ฐํ ์๊ด๊ด๊ณ๊ฐ ์์ ๋, ๋ผ์๋ ๊ทธ ์ค์์ ํ๋๋ง ์ ํํ๋ ๊ฒฝํฅ์ด ์๋ค. ์ด๋ก ์ธํด ๋ชจ๋ธ์ด ๊ณผ์์ ํฉ๋ ์ ์๋ค.
- ๋ชจ๋ ํน์ฑ์ ์ ๊ฑฐํ๋ ค๊ณ ํ ์ ์์: ๋๋ฌด ๊ฐํ ๊ท์ ๋ฅผ ์ฌ์ฉํ๋ฉด, ๊ณผ๋ํ ํน์ฑ ์ ๊ฑฐ๋ก ์ธํด ์ค์ํ ์ ๋ณด๋ ์์ค๋ ์ ์๋ค. ํนํ, ์ค์ํ ๋ณ์๋ค์ด 0์ด ๋์ด ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์๋ค.
3. ์๋ผ์คํฑ ๋ท
- ๊ฐ์: ์๋ผ์คํฑ ๋ท์ L1๊ณผ L2 ๊ท์ ๋ฅผ ๊ฒฐํฉํ ๋ชจ๋ธ
- ๋ชฉ์ : ๋ผ์์ ๋ฆฟ์ง์ ์ฅ์ ์ ๊ฒฐํฉํ์ฌ, ๋ผ์์ ํฌ์์ฑ๊ณผ ๋ฆฟ์ง์ ๋ชจ๋ธ ๋ณต์ก๋ ๊ฐ์ํตํ ์ผ๋ฐํ ์ฑ๋ฅ์ ๋์์ ์ฒ๋ฆฌ
- ์์: ์์ค ํจ์์ λ1 * Σ|w| + λ2 * Σw^2 ํํ์ ํจ๋ํฐ๊ฐ ์ถ๊ฐ๋๋ค.
- ํน์ฑ ์ ํ: L1 ๊ท์ (๋ผ์) ๋๋ถ์ ๋ถํ์ํ ํน์ฑ์ 0์ผ๋ก ๋ง๋ค ์ ์๊ณ , L2 ๊ท์ (๋ฆฟ์ง) ๋๋ถ์ ๋ชจ๋ ํน์ฑ์ ์ผ์ ํ ์ํฅ์ ์ฃผ์ด ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๋ค.
'๐ฆญ AI&Big Data > ML' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น์ง๋ํ์ต (0) | 2025.03.05 |
---|---|
๊ฒฐ์ ํธ๋ฆฌ & ์์๋ธ (1) | 2025.03.05 |
๋ก์ง์คํฑ ํ๊ท (0) | 2025.03.05 |
K ์ต๊ทผ์ ์ด์ (0) | 2025.02.27 |
์ธ๊ณต์ง๋ฅ (0) | 2025.02.27 |