이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[ML] Regression

  • 2025.10.17 10:09
  • Computer Science/Machine Learning
반응형

 

 

 

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

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [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
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (679)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (10)
    • 💬 기록 (8)
    • 📚 공부 (6)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바