[ML] Regression
Bayesian Classifier가 분류 문제를 담당했다면 Regression은 예측을 담당한다. (둘 다 Supervised Learning)
즉, 결과가 이산적인지 연속적인지의 차이다.
Linear Regression
입력 변수 x와 출력 변수 y사이의 선형 관계를 찾아낸다.

$$
Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_d X_d
$$
다변량 선형 회귀로 입력차원이 d인 경우로 d개의 독립변수와 d개의 기울기를 가진다.
$$
\hat{Y} = \hat{\beta}_0 + \hat{\beta}_1 X_1 + \hat{\beta}_2 X_2 + \cdots + \hat{\beta}_d X_d
$$
실제 데이터가 주어지면 각 변수의 기울기에 대한 실제 값을 구할 수 없다. (모집단 전체를 알 수 없다)
그러니 주어진 데이터로 기울기를 추정해야 한다.
$$
Y = \hat{Y} + e \quad \Rightarrow \quad e = Y - \hat{Y} \\
\text{실제값은 예측값과 잔차의 합이며 잔차는 실제에서 예측을 뺀 값이다}
$$
$$
RSS = \sum_{i=1}^{n} e_i^2 \\
\text{잔차 제곱합이며 최소화해야 하는 대상이다}
$$
$$
\min RSS = \min \sum_{i=1}^{n} e_i^2
= \min \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
= \min \sum_{i=1}^{n} (y_i - \hat{\beta}_0 - \hat{\beta}_1 x_i)^2 \\
\text{RSS를 최소화하는 것이 회귀 계수를 찾는 목표이다}
$$
$$
\hat{\beta} = (X^T X)^{-1} X^T y \\
\text{행렬 형태의 해 공식이며 OLS 해이다}
$$
$$
y = X\beta, \quad \hat{y} = X\hat{\beta} \\
\text{실제값 y는 모수 벡터와 곱으로 표현되며 예측값은 추정치로 표현된다}
$$
$$
e = y - \hat{y} = y - X\hat{\beta} \\
\text{잔차는 실제값에서 예측값을 뺀 값이다}
$$
$$
e^2 = \|y - X\hat{\beta}\|^2 \\
\text{잔차 제곱합을 벡터 노름 형태로 표현한다}
$$
$$
\frac{\partial}{\partial \beta} \|y - X\hat{\beta}\|^2
= -X^T y + X^T X \hat{\beta} = 0 \\
\text{목적함수를 미분하여 0으로 두면 정규방정식을 얻는다}
$$
$$
\therefore \;\; \hat{\beta} = (X^T X)^{-1} X^T y \\
\text{따라서 최소제곱법 해를 구할 수 있다}
$$
$$
Q = \sum (y_i - \hat{y}_i)^2 = \sum (y_i - \beta_0 - \beta_1 x_i)^2 \\
\text{단순 선형회귀 목적함수이며 잔차 제곱합이다}
$$
$$
\frac{\partial Q}{\partial \beta_0}
= -2 \sum (y_i - \beta_0 - \beta_1 x_i) = 0 \\
\text{절편에 대해 미분 후 0으로 둔다}
$$
$$
\hat{\beta}_0 = \bar{y} - \hat{\beta}_1 \bar{x} \\
\text{절편 공식이다}
$$
$$
\frac{\partial Q}{\partial \beta_1}
= -2 \sum (y_i - \beta_0 - \beta_1 x_i) x_i = 0 \\
\text{기울기에 대해 미분 후 0으로 둔다}
$$
$$
\hat{\beta}_1
= \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2} \\
\text{기울기의 닫힌 해 공식이다}
$$
$$
\hat{x} = \frac{a^T b}{a^T a} \\
\text{n이 1일 때 투영 해석이며 b를 a 방향으로 정사영한 값이다}
$$
$$
A^T (b - A\hat{x}) = 0 \\
\text{잔차가 A의 열공간에 수직임을 의미한다}
$$
$$
A^T A \hat{x} = A^T b \\
\text{정규방정식이며 최소제곱 해의 조건이다}
$$
$$
\hat{x} = (A^T A)^{-1} A^T b \\
\text{최소제곱 해 공식이다}
$$
$$
e = b - Ax \\
\text{오차 벡터 정의이다}
$$
$$
\text{If } e = 0 \;\;\Rightarrow\;\; Ax = b \text{ has solution.} \\
\text{잔차가 0이면 정확한 해가 존재한다}
$$
$$
\text{If } e \neq 0 \;\;\Rightarrow\;\; \min \|e\|^2 \;\;\Rightarrow\;\; A^T A \hat{x} = A^T b \\
\text{잔차가 0이 아니면 오차를 최소화하는 근사 해를 찾는다}
$$
이번에는 결과값이 클래스가 하니라 수치 값이다.
Linear Regression은 X가 input Y가 output
univariate 에서는 입력인 X가 하나고 multivariate 에서는 입력인 X가 여러 개이다. 둘 다 결과는 하나로 같다.
multivariate 에서는 여러 입력을 사용하니, 각 입력에 대한 가중치를 잘 설정해 줘야 한다.
입력 변수가 많을수록 차원이 커지기에 학습에 필요한 파라미터도 많아진다.
가중치를 추정할 때는 최소제곱법(RSS)를 사용.
단순하고 직관적이지만 선형 관계만 다룰 수 있고, 의미 없는 변수에 취약하다.
모델 평가에는 SST SSR SSE 등 여러 지표를 다룬다.
모델이 얼마나 잘 설명하는가를 나타내는 지표를 의미함.
모델의 overfitting을 방지하기 위해 Ridge와 Lasso 방식을 활용해 Regularization을 수행한다. - norm penalty
'Computer Science > Machine Learning' 카테고리의 다른 글
| [ML] Nearest Neighbor Method (0) | 2025.10.18 |
|---|---|
| [ML] Logistic Regression (0) | 2025.10.17 |
| [ML] Bayesian Classifier (0) | 2025.09.22 |
| Pytorch Lightning (0) | 2022.03.26 |
| Pytorch / Tensorflow - 차원 (0) | 2022.03.18 |
댓글
이 글 공유하기
다른 글
-
[ML] Nearest Neighbor Method
[ML] Nearest Neighbor Method
2025.10.18 -
[ML] Logistic Regression
[ML] Logistic Regression
2025.10.17 -
[ML] Bayesian Classifier
[ML] Bayesian Classifier
2025.09.22 -
Pytorch Lightning
Pytorch Lightning
2022.03.26