[47일차]선형 회귀와 선형 분류_정규방정식

김준석·2024년 1월 30일

선형 회귀와 선형 분류_정규방정식

선형 회귀

선형 회귀 의미와 모델 표현 식

  • 선형 회귀 모델을 사용한다는 것은
    입력 데이터 특징 사이의 독립성을 가정하고
    데이터 특징에 대한 선형 결합으로 회귀 문제를 풀겠다는 의미

  • 출력 결과(y_hat)는 예측값(실수)에 해당
  • w0은 절편(혹은 편향)에 해당함
    • 목표값의 평균이 0에 맞춰 있다면, 절편을 추가하지 않을 수 있음
    • 일반적으로 절편을 포함하는 것이 유리
  • 가중합으로 표현되는 다항식은 행렬곱(Xw)으로 간단하게 표현할 수 있음

내가 만약에 100채의 집값을 토대로 그 지역의 집값을 예측할 것 이다!

그럼
n = 100
p = 화장실 갯수, 평 수, 등 특성들의 범주.

비용 함수

목푯값과 예측값 사이의 차이를 비용이라고 한다.
계산을 통해 비용을 구하는 식이 바로 비용 함수

집값이 100 , 예측 집값이 80일 때
비용함수 : 100-80 = 20

집값이 100, 예측 집값이 120일 때
비용함수 : 100-120 =-20

이때 두 함수 값을 더해서 평균을 내야 되는데 음수와 양수가 공존하므로 상쇄가 일어난다.
그렇기 때문에 제곱을 통해 모두 양수 값으로 만든 후 다 더해서 평균으로 나눠줌.

  • 두 값 모두 실수의 범위를 갖으므로
  • 두 값 사이의 양적 차이(잔차)의 제곱 평균으로 (평균 제곱 오차, mean squared error, MSE)
  • 비용 함수(J(w))를 정의

  • 이런 비용 함수를 최소화 하는 파라미터(w)들을 찾아야 함

• 선형 회귀는 잔차의 제곱값이 갖을 수 있는 최소의 파라미터를 찾는 작업이므로
• 최소제곱법(Ordinary Least squares, OLS)이라고도 함

최적화 방법론

최적화란 특정 문제에서 최적의 해를 찾는 과정을 의미함
• ʻ최적ʼ이란 보통 특정 함수의 최소값(min) 혹은 최대값(max) 찾는 것을 가리킴

  • 앞서 살펴본 선형 회귀 목적도
    비용 함수를 최소화하는 파라미터를 찾는 것이므로 최적화 방법론으로 해를 구할 수 있음
  • 선형 회귀를 위한 최적화 방법은 정규 방정식 풀이와 경사 하강법이 존재
    • 정규 방정식
      • 파라미터 값을 직접 계산
      • 최소 값을 찾기 위해 도함수가 0이 되는 점을 계산
  • 경사 하강법
    • 비용 함수가 작아지는 방향을 찾아 점진적으로 파라미터를 조정하는 방법

정규 방정식, Normal Equation

특정 식이 최소가 되는 지점을 찾는 것은
• 식의 기울기(미분값)가 0이 되는 위치를 찾는 것과 동치

  • 따라서, 앞선 비용 함수(J(w))의 도함수를 구하고 그것이 0이 되는 파라미터(w)를 구해야 함
    • 과정에서 아래 식을 구할 수 있고 이를 정규 방정식이라고 함

  • 이때, XtX의 역행렬이 존재한다면, w의 유일한 해를 직접 구할 수 있다.

  • 시간 복잡도 : O(p^3)
    p=특징
    - XtX의 역행렬을 계산이 필요
    - 일반적으로 n>>p인 경우(입력 데이터 >> 특성의 수)에 유용하다.

실습

아래와 같이 생긴 데이터가 있다고 해보자.

정규 방정식으로 선형 회귀 문제를 풀어보자

정규 방정식의 식은 아래와 같다.
w = (X^T @ X)-1@ X^T @y / @는 행렬간의 곱셈을 의미!

이를 함수로 만들어 보면

def calc_OLS(X, y):
	#OLS 수식 적용 / @는 행렬간의 곱셈을 의미
	w_ols = np.linalg.inv(X.T @ X) @ X.T @ Y
	return w_ols
w_ols = calc_OLS(X, y)

np.linalg.inv 넘파이 안에 있는 선형대수 패키지.

실제 정답과 예측값이 흡사하게 예측된 모습을 볼 수 있다.

이를 실제 선과 예측선을 그래프로 그려보자면

예측을 아주 잘한 형태로 만들어진 것을 볼 수 있다.

0개의 댓글