λ°μν
μ΄λ²μλ Linear Regression (μ ννκ·)μ λ°νμ¬ μμλ³΄κ² μ΅λλ€.
Linear Regression (μ ννκ·)
μ ν νκ·(Linear Regression)λ λ¨Έμ λ¬λμμ λ리 μ¬μ©λλ νκ· λΆμ κΈ°λ² μ€ νλλ‘,
λ 립 λ³μμ μ’ μ λ³μ κ°μ κ΄κ³λ₯Ό μ ν λ°©μ μμΌλ‘ ννν©λλ€.
- μ΄ λ°©λ²μ μ£Όμ΄μ§ λ°μ΄ν°λ₯Ό μ΄μ©ν΄ κ°μ₯ μ λ§λ μ§μ μ μ°Ύλ κ²μ΄ λͺ©νμ λλ€.
- μ ν νκ·λ λͺ¨λΈμ΄ λΉκ΅μ κ°λ¨νκ³ ν΄μμ΄ μ©μ΄νλ€λ μ₯μ μ΄ μμ΅λλ€.
νκ· λ°©μ μ
μ ν νκ· λͺ¨λΈμ λ€μκ³Ό κ°μ ννμ λ°©μ μμ μ¬μ©ν©λλ€.
Y = β0 β +β1βX + Ο΅
- : μ’ μ λ³μ (μμΈ‘νλ €λ κ°)
- X: λ 립 λ³μ (μ€λͺ λ³μ)
- β0: μ νΈ (Intercept)
- β1: κΈ°μΈκΈ° (Slope)
- Ο΅: μ€μ°¨ ν (Error Term, λͺ¨λΈμ μμΈ‘κ³Ό μ€μ κ° κ°μ μ°¨μ΄)
- λͺ¨λΈμ λͺ©νλ μ£Όμ΄μ§ λ°μ΄ν°μ κ°μ₯ μ λ§λ β0(μ νΈ)μ β1(κΈ°μΈκΈ°) λ₯Ό μ°Ύλ κ²μ λλ€
- μ¦, λ 립 λ³μ Xμ μ’ μ λ³μ Y κ°μ κ΄κ³λ₯Ό κ°μ₯ μ μ€λͺ νλ μ ν λ°©μ μμ μ°Ύλ κ²μ΄ λͺ©μ μ λλ€.
μμ°¨ μ κ³±ν© μ΅μν (Ordinary Least Squares, OLS)
μ΅μ μ μ§μ μ μ°ΎκΈ° μν΄, OLS λ°©λ²μ μ¬μ©ν©λλ€.
- μ΄ λ°©λ²μ μμ°¨μ μ κ³±ν©μ μ΅μννλ λ‘ ν©λλ€. λ₯Ό μ°Ύλ κ²μ λͺ©ν
- μμ°¨(Residual)λ μ€μ κ°κ³Ό μμΈ‘ κ°μ μ°¨μ΄λ₯Ό μλ―Ένλ©°, μ΄λ₯Ό μ κ³±ν ν ν©μ°ν κ²μ΄ μμ°¨ μ κ³±ν©(RSS)μ λλ€.
- μμ°¨ μ κ³±ν© RSSλ μλμ κ°μ΄ μ μλ©λλ€.
- : λ°μ΄ν° ν¬μΈνΈμ μ΄ κ°μ
- yi: iλ²μ§Έ λ°μ΄ν° ν¬μΈνΈμ μ€μ κ°
- xi: iλ²μ§Έ λ°μ΄ν° ν¬μΈνΈμ λ 립 λ³μ κ°
- : νκ· λͺ¨λΈμ μ νΈ (Intercept)
- : νκ· λͺ¨λΈμ κΈ°μΈκΈ° (Slope)
- β0 + β1xi + : iλ²μ§Έ λ°μ΄ν° ν¬μΈνΈμ λν μμΈ‘ κ°
OLSλ μ΄ μμ°¨ μ κ³±ν© RSSλ₯Ό μ΅μννλ μ λλ€. μ μ°Ύλ λ°©λ²
λ¨μ μ ν νκ· (Simple Linear Regression)
λ¨μ μ ν νκ·λ νλμ λ 립 λ³μμ νλμ μ’ μ λ³μ κ°μ κ΄κ³λ₯Ό λͺ¨λΈλ§ν©λλ€.
- μλ₯Ό λ€μ΄, μ£Όνμ ν¬κΈ°(λ 립 λ³μ)μ μ£Όνμ κ°κ²©(μ’ μ λ³μ) κ°μ κ΄κ³λ₯Ό λΆμνλ κ²μ λλ€.
- μ΄ κ²½μ°, νκ· λ°©μ μμ λ€μκ³Ό κ°μ ννμ λλ€.
y = β0 + β1x
- μ: μ£Όν ν¬κΈ° xμ λ°λ₯Έ μ£Όν κ°κ²© yλ₯Ό λͺ¨λΈλ§ νλ κ²μ λλ€.
λ€μ€ μ ν νκ· (Multiple Linear Regression)
λ€μ€ μ ν νκ·λ μ¬λ¬ κ°μ λ 립 λ³μλ₯Ό μ¬μ©νμ¬ μ’ μ λ³μλ₯Ό μμΈ‘ν©λλ€.
- μ΄ κ²½μ°, μ¬λ¬ λ 립 λ³μκ° μ’ μ λ³μμ λ―ΈμΉλ μν₯μ λμμ κ³ λ €ν μ μμ΅λλ€. νκ· λ°©μ μμ λ€μκ³Ό κ°μ΄ ννλ©λλ€.
y = β0 + β1x1 + β2x2 + β― + βkxk
- x1,x2,…,xk: μ¬λ¬ λ 립 λ³μλ€
- β1,β2,…,βk: κ° λ 립 λ³μμ λν κ³μλ€
- μ: μ£Όν κ°κ²©(y)μ μμΈ‘ν λ, μ£Όν ν¬κΈ°(x1), λ°© κ°μ(x2), μμΉ(x3) λ±μ μ¬λ¬ λ 립 λ³μλ₯Ό κ³ λ €ν μ μμ΅λλ€.
λͺ¨λΈ μ ν©μ± νκ°
R-μ κ³± (R-squared)
R-μ κ³±μ λͺ¨λΈμ΄ λ°μ΄ν°λ₯Ό μΌλ§λ μ μ€λͺ νλμ§λ₯Ό λνλ΄λ μ§νμ λλ€.
- 0κ³Ό 1 μ¬μ΄μ κ°μ κ°μ§λ©°, 1μ κ°κΉμΈμλ‘ λͺ¨λΈμ΄ λ°μ΄ν°λ₯Ό μ μ€λͺ νλ€λ μλ―Έμ λλ€.
- R-μ κ³±μ λ€μκ³Ό κ°μ΄ κ³μ°λ©λλ€.
- μ¬κΈ°μ
- : μ€μ κ°
- y^i: μμΈ‘ κ°
- yΛ: μ€μ κ°μ νκ·
- n: λ°μ΄ν° ν¬μΈνΈμ μ΄ κ°μ
- μ΄ μμμμ λΆμ λΆλΆμ μμ°¨ μ κ³±ν©(Residual Sum of Squares, RSS)μ΄κ³ , λΆλͺ¨ λΆλΆμ μ΄ μ κ³±ν©(Total Sum of Squares, TSS)μ λλ€.
- R-μ κ³±μ RSSμ TSSμ λΉμ¨μ ν΅ν΄ λͺ¨λΈμ μ±λ₯μ νκ°ν©λλ€.
- R^2 κ°μ΄ 1μ κ°κΉμΈμλ‘ λͺ¨λΈμ΄ μ€μ λ°μ΄ν°λ₯Ό μ μ€λͺ νλ€λ κ²μ μλ―Έν©λλ€.
Example Code (Linear Regression & mse, r^2)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# λ°μ΄ν° μμ±
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
# λ°μ΄ν° λΆν
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print(f"len(X_train): {len(X_train)}")
# len(X_train): 80
# λͺ¨λΈ νμ΅
lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)
# μμΈ‘
y_pred = lin_reg.predict(X_test)
# νκ°
mse = mean_squared_error(y_test, y_pred) # νκ· μ κ³±μ€μ°¨
r2 = r2_score(y_test, y_pred) # κ²°μ κ³μ
print(f'Mean Squared Error: {mse}')
print(f'R^2 Score: {r2}')
# Mean Squared Error: 0.9177532469714291
# R^2 Score: 0.6521157503858556
# μκ°ν
plt.scatter(X_test, y_test, color='black', label='Actual Data')
plt.plot(X_test, y_pred, color='blue', linewidth=3, label='Predicted Line')
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression')
plt.legend()
plt.show()
μμ°¨ λΆμ (Residual Analysis)
μμ°¨λ μ€μ κ°κ³Ό μμΈ‘ κ°μ μ°¨μ΄λ₯Ό λνλ΄λ©°, μμ°¨ λΆμμ ν΅ν΄ λͺ¨λΈμ μ ν©μ±μ νκ°ν μ μμ΅λλ€.
- μμ°¨κ° λ¬΄μμλ‘ λΆν¬νλ€λ©΄, λͺ¨λΈμ΄ λ°μ΄ν°λ₯Ό μ μ ν©μν¨λ€λ μ νΈμ λλ€.
- μμ°¨ λΆμμμ μ£Όλ‘ μ¬μ©λλ λꡬλ μμ°¨ νλ‘―(Residual Plot)μΌλ‘, μμΈ‘ κ°μ λν μμ°¨λ₯Ό κ·Έλνλ‘ ννν©λλ€.
- μ΄ νλ‘―μμ μμ°¨κ° μΌμ ν ν¨ν΄ μμ΄ λ¬΄μμλ‘ λΆν¬νλ©΄ λͺ¨λΈμ΄ μ ν©ν κ²μΌλ‘ λ³Ό μ μμ΅λλ€.
- μμ°¨ λΆμκ³Ό R-μ κ³± λ±μ μ§νλ λͺ¨λΈμ μ±λ₯κ³Ό μ ν©μ±μ νκ°νλ μ€μν λꡬμ λλ€.
- μ΄ κ³Όμ μμ λͺ¨λΈμ΄ λ°μ΄ν°λ₯Ό μ§λμΉκ² 볡μ‘νκ² μ€λͺ νλ €λ κ³Όμ ν©(overfitting)μ΄ μΌμ΄λμ§ μλλ‘ μ£Όμν΄μΌ ν©λλ€.
λ°μν
'π Machine Learning' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ML] Supervised Learning (μ§λνμ΅) (0) | 2024.08.06 |
---|---|
[ML] Modelμ νμ΅κ³Ό νκ° (0) | 2024.08.02 |
[ML] Naive Bayes (λμ΄λΈ λ² μ΄μ¦) (0) | 2024.08.01 |
[ML] Supervised Learning (μ§λνμ΅) (0) | 2024.07.31 |
[ML] Machine Learning (λ¨Έμ λ¬λ) Intro (0) | 2024.07.28 |