Linear regression, loss function

김대현·2024년 7월 19일

데이터의 종류와 데이터 분석

데이터 분석을 시작하기 전에, 데이터의 종류를 이해하는 것이 중요하다. 데이터는 크게 두 가지로 나눌 수 있다: '

정형 데이터와 비정형 데이터.

정형 데이터: 엑셀에서 볼 수 있는 테이블형 데이터로, 일반적으로 행과 열로 구성되어 있다. 이 데이터를 N x P 매트릭스라고도 부른다.

  • N: 데이터의 개수(행의 수)
  • P: 변수의 개수(열의 수)

비정형 데이터: 텍스트, 이미지, 오디오 등 구조화되지 않은 데이터. 이 강의에서는 주로 정형 데이터를 다룬다.


정형 데이터의 변수 종류

정형 데이터는 크게 두 가지 유형의 변수로 나뉜다:

연속형 변수(numerical variables)와 범주형 변수(categorical variables).

연속형 변수: 값들 사이에 대소 관계가 존재하며, 숫자 간의 차이가 의미가 있는 변수. 예를 들어, 나이, 키, 소득 등이 있다.

범주형 변수: 값들 사이에 대소 관계가 없으며, 서로 다른 카테고리를 나타내는 변수. 예를 들어, 성별, 옷의 종류(티셔츠, 바지) 등이 있다.


머신러닝

머신러닝은 데이터를 기반으로 모델을 학습시키는 과정으로, 크게
지도 학습(Supervised Learning)과 비지도 학습(Unsupervised Learning)으로 나뉜다.

(1) 지도 학습(Supervised Learning): 주어진 데이터와 그에 따른 정답(종속 변수, y)으로부터 모델을 학습시키는 방법. 예를 들어, 선형 회귀(Linear Regression)와 분류(Classification)가 이에 해당된다.

  • 선형 회귀(Linear Regression): 연속형 변수 예측
  • 분류(Classification): 이산형 변수 예측

(2) 비지도 학습(Unsupervised Learning): 데이터에 정답이 없이, 데이터의 구조를 학습시키는 방법. 예를 들어, 클러스터링(Clustering)과 차원 축소(Dimensionality Reduction)가 이에 해당된다.

  • 클러스터링(Clustering): 데이터 군집화
  • 차원 축소(Dimensionality Reduction): 데이터의 주요 특징 추출

좋은 알고리즘의 기준

좋은 알고리즘의 기준은 에러가 낮은 것이다. 즉, 알고리즘이 예측한 값(𝑦^)실제 값(y) 사이의 차이가 작을수록 좋은 알고리즘이라 할 수 있다.

  • 알고리즘: 인풋 데이터(x)를 입력받아, 프로세스를 거쳐 아웃풋 데이터(𝑦^)를 출력하는 것.

  • 인풋: 독립 변수(x들)

  • 아웃풋: 예측값(𝑦^)

  • 좋은 알고리즘: 예측값(𝑦^)이 실제 값(y)과 매우 근접한 경우


에러 계산

에러는 예측값과 실제값 사이의 차이를 의미하며, 에러가 낮을수록 모델의 성능이 좋다고 할 수 있다.

  • 에러 계산: Error = y - 𝑦^
  • 평균 제곱 오차(MSE): 에러의 제곱을 평균하여 계산하는 방법 :

    MSE = (1/N) * Σ(yi - 𝑦^i)^2

에러 계산 시, 왜 제곱을 사용하는지에 대한 이유는 다음과 같다:

  • 음수 에러 제거: 에러의 절대값을 사용하면 양수와 음수 에러가 상쇄되는 것을 방지할 수 있다.

  • 큰 에러 강조: 제곱을 통해 큰 에러의 영향력을 더 크게 반영할 수 있다.

예를 들어, 다음과 같은 예측값과 실제값이 있다고 가정하자:

  • 실제값(y): -2, 2
  • 예측값(𝑦^): -1, 3

에러를 계산해보면:

  • 첫 번째 데이터: 에러 = -2 - (-1) = -1
  • 두 번째 데이터: 에러 = 2 - 3 = -1

이 경우, 에러의 제곱은:

  • 첫 번째 데이터: (-1)^2 = 1
  • 두 번째 데이터: (-1)^2 = 1

에러의 합은 2가 된다. 만약 절대값을 사용한다면, 에러의 합은 여전히 2이지만, 제곱을 사용함으로써 큰 에러의 영향을 더 크게 반영할 수 있다.


모델 학습과 예측

지도 학습에서, 우리가 알고리즘을 사용해 x와 y의 관계를 학습시키면, 새로운 x 값을 입력받았을 때 y 값을 예측할 수 있다. 이때 예측된 y 값을 𝑦^라고 한다.

  • y: 실제값 (정답 데이터)
  • 𝑦^: 예측값 (모델이 예측한 값)

모델이 새로운 데이터를 학습할 때, 손실 함수를 통해 예측값과 실제값 사이의 차이를 최소화하려고 노력한다. 이를 통해 모델의 성능을 지속적으로 개선할 수 있다.


바이어스와 분산

에러를 구성하는 두 가지 주요 요소는 바이어스(Bias)분산(Variance)이다. 이 두 요소의 균형을 맞추는 것이 중요하다.

  • 바이어스(Bias): 예측값의 평균과 실제 값 사이의 차이. 높은 바이어스는 모델이 단순화되어 실제 데이터의 패턴을 잘 잡아내지 못하는 경우를 나타낸다.

  • 분산(Variance): 예측값들이 얼마나 흩어져 있는지, 즉 예측값의 변동성을 나타낸다. 높은 분산은 모델이 데이터의 노이즈까지 학습하여 새로운 데이터에 대해 불안정한 예측을 하는 경우를 나타낸다.


바이어스와 분산의 관계

모델의 복잡도와 바이어스, 분산의 관계는 다음과 같다:

  • Low Bias, Low Variance: 이상적인 상황. 예측값이 실제값에 매우 가깝고, 예측값들의 변동성도 낮다.
  • Low Bias, High Variance: 예측값의 평균은 실제값에 가깝지만, 예측값들이 크게 흩어져 있는 경우.
  • High Bias, Low Variance: 예측값들이 실제값에서 멀리 떨어져 있지만, 예측값들 간의 변동성은 낮은 경우.
  • High Bias, High Variance: 최악의 상황. 예측값들이 실제값에서 멀리 떨어져 있고, 예측값들 간의 변동성도 높은 경우.

바이어스와 분산을 고려한 에러 분석

  • 에러(Error) = 바이어스(Bias) + 분산(Variance) + 노이즈(Noise)
  • 바이어스를 낮추기 위해 모델의 복잡도를 높이고, 분산을 낮추기 위해 모델의 복잡도를 줄이는 트레이드오프를 이해해야 한다. 노이즈는 데이터의 품질에 영향을 받으므로, 데이터 클렌징을 통해 최소화해야 한다.

언더피팅과 오버피팅

  • 언더피팅(Underfitting): 모델이 데이터의 패턴을 잘 학습하지 못한 경우. 바이어스가 높고, 분산이 낮다.

  • 오버피팅(Overfitting): 모델이 데이터의 노이즈까지 학습하여 새로운 데이터에 대해 불안정한 예측을 하는 경우. 바이어스가 낮고, 분산이 높다.


선형 회귀 (Linear Regression)

선형 회귀는 두 변수 사이의 관계를 직선으로 모델링하는 방법이다. 가장 단순한 형태인 단순 선형 회귀(Simple Linear Regression)는 독립 변수가 하나(x)인 경우를 다룬다.

예시: 아버지의 키(x)가 아들의 키(y)에 어떤 영향을 미치는지 분석

  • 모델: y = β0 + β1x + ε
  • β0: y 절편, 즉 x가 0일 때 y의 값
  • β1: x가 y에 미치는 영향, 즉 x가 1 단위 증가할 때 y가 변화하는 정도
  • ε: 오차(term), 실제 값과 예측 값 사이의 차이

모델 피팅 과정

선형 회귀 모델을 피팅하는 과정은 다음과 같다:

  • 데이터 수집: 독립 변수(x)와 종속 변수(y) 데이터를 수집
  • 모델 설정: y = β0 + β1x 형태의 모델을 설정
  • 손실 함수 설정: 평균 제곱 오차(MSE)를 사용하여 모델의 예측 값과 실제 값 사이의 차이를 계산
  • 최적화: MSE를 최소화하는 β0와 β1 값을 찾음
  • 모델 평가: 새로운 데이터를 사용하여 모델의 예측 성능 평가

손실 함수와 에러 최소화

손실 함수는 모델의 예측 값과 실제 값 사이의 차이를 측정하는 함수이다. 선형 회귀에서 일반적으로 사용하는 손실 함수는 평균 제곱 오차(MSE)이다.

  • 손실 함수: MSE = (1/N) * Σ(yi - 𝑦^i)^2
  • yi: 실제 값
  • 𝑦^i: 예측 값
  • N: 데이터의 개수

선형 회귀 모델은 이 손실 함수를 최소화하는 방향으로 파라미터(β0, β1)를 조정하여 데이터를 가장 잘 설명하는 직선을 찾는다.


에러 최소화

우리는 손실 함수(Loss Function)를 최소화하는 방향으로 모델을 피팅시킨다. 이를 위해, 평균 제곱 오차(MSE)를 최소화하는 β0와 β1을 찾는 것이 목표이다.

  • 손실 함수: MSE = (1/N) * Σ(yi - 𝑦^i)^2
  • yi: 실제 값
  • 𝑦^i: 예측 값
  • N: 데이터의 개수

여기서 𝑦^i를 β0 + β1xi로 표현할 수 있다. 이때 yi는 실제 값이고, 𝑦^i는 모델이 예측한 값이다. 이를 바탕으로 에러를 최소화하는 것이 목표이다.

  • 모델: 𝑦^i = β0 + β1xi
  • β0: y 절편 (x가 0일 때 y의 값)
  • β1: 기울기 (x가 1 단위 증가할 때 y의 변화량)
    에러 최소화 과정
  • 에러 계산: yi - 𝑦^i (실제 값과 예측 값의 차이)
    손실 함수 설정: 에러의 제곱을 합산하여 최소화하는 방향으로 β0와 β1 값을 찾는다.
  • 최적화: β0와 β1 값을 조정하여 손실 함수의 값을 최소화한다.
    이 과정을 통해 우리는 데이터에 가장 잘 맞는 직선을 찾게 된다. 이때 에러는 yi와 𝑦^i의 차이이며, 이를 제곱하여 합산한 값을 최소화하는 것이 목표이다.

다중 선형 회귀 (Multiple Linear Regression)

단순 선형 회귀는 독립 변수가 하나인 경우를 다루지만, 다중 선형 회귀는 독립 변수가 여러 개인 경우를 다룬다. 예를 들어, x1과 x2 두 개의 독립 변수가 있는 경우를 생각해보자.

  • 모델: y = β0 + β1x1 + β2x2
  • β0: y 절편
  • β1: x1의 기울기
  • β2: x2의 기울기

다중 선형 회귀에서는 x1과 x2가 3차원 공간에서 평면으로 표현된다. 이 평면이 데이터 포인트들과의 에러가 최소가 되도록 피팅되는 것이 목표이다.

에러 최소화 과정

  • 모델 설정: y = β0 + β1x1 + β2x2 형태의 모델 설정
    손실 함수 설정: MSE를 사용하여 모델의 예측 값과 실제 값 사이의 차이를 계산
  • 최적화: MSE를 최소화하는 β0, β1, β2 값을 찾는다

에러와 기울기

모델의 예측 값(𝑦^i)은 다음과 같이 표현된다:

  • 예측 값: 𝑦^i = β0 + β1x1 + β2x2

실제 값(y)을 다음과 같이 분해할 수 있다:

  • 실제 값: yi = β0 + β1x1 + β2x2 + εi

여기서 εi는 실제 값과 예측 값 사이의 에러를 나타낸다. 에러를 최소화하기 위해 우리는 손실 함수의 값을 최소화하는 방향으로 β0, β1, β2를 조정한다.


에러 최소화의 이유

손실 함수로 평균 제곱 오차(MSE)를 사용하는 이유는 다음과 같다:

  • 미분 가능성: MSE는 미분 가능하기 때문에 기울기가 0인 지점을 찾을 수 있다.

  • 큰 에러 강조: 제곱을 통해 큰 에러의 영향력을 더 크게 반영할 수 있다.

절대값을 사용하는 MAE는 미분이 불가능하기 때문에 MSE를 사용하는 것이 일반적이다. MSE는 미분을 통해 에러가 최소화되는 지점을 찾기 용이하며, 이 지점에서 β0, β1, β2 값을 추정할 수 있다.


결론

데이터 분석을 진행할 때 정형 데이터와 비정형 데이터를 구분하고, 각각의 특성에 맞는 분석 기법을 적용하는 것이 중요하다.

선형 회귀와 손실 함수는 정형 데이터를 분석하는 데 유용한 도구이며, 비정형 데이터는 이미지, 텍스트, 오디오 등의 다양한 형태로 존재하며 고도의 분석 기법이 필요하다.

머신러닝의 지도 학습과 비지도 학습 개념을 이해하고, 손실 함수를 통해 모델을 평가하고 개선하는 방법을 배우는 것이 데이터 분석의 핵심이다.

이를 통해 우리는 다양한 데이터를 효과적으로 분석하고 유의미한 인사이트를 도출할 수 있다. 좋은 알고리즘은 에러가 낮은 알고리즘이며, 이를 위해 에러를 제곱하여 계산하는 방법을 사용한다.

다음 시간에는 β0와 β1, β2 계수를 추정하는 방법을 다룰 것이다. 이를 위해 우리는 미분을 통해 기울기가 0인 지점을 찾아야 한다. 이 지점이 에러가 가장 낮은 점이므로, 이를 기반으로 최적의 β 값을 추정할 수 있다.

이를 통해 우리는 선형 회귀 모델을 완성하고, 데이터에 가장 잘 맞는 직선을 찾게 된다. 다중 선형 회귀의 경우에도 동일한 방법을 적용하여 독립 변수들이 여러 개인 경우에도 모델을 피팅할 수 있다.

profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글