DB/ML

[머신러닝] 선형 회귀(Linear Regression)

콩다영 2023. 12. 20.
728x90

머신러닝 알고리즘 선형 회귀에 대해 정리해 보자 !

 

선형 회귀는 단순하면서도 유용하고,

특히 다른 많은 알고리즘의 기반이 되기 때문에 완벽하게 이해하는 것이 중요하기에 관련된 개념들도 함께 정리해 보자.

 

 

 

선형 회귀 (Linear Regression)

: 알려진 다른 관련 데이터 값을 사용하여 알 수 없는 데이터의 값을 예측하는 데이터 분석 기법.

: 선형회귀는 머신러닝에서 '지도 학습(회귀/분류) 알고리즘' 연속적인 값을 예측하는 회귀에 해당한다.

선형 회귀 방정식

- 목표 변수 (target variable / output variable) : 맞추려고 하는 값

- 입력 변수 (input variable / feature) : 맞추는 데 사용하는 값 , '특징/속성'

 

 

쉽게 말하자면 위 그래프에서 데이터를 가장 잘 대변해 주는 선을 찾아내는 것이라고 말할 수 있다.

통계학에서는 '최적선( line of best fit )'이라고 표현한다.

 

이 최적선을 이용해서 새로운 입력 변수에 대한 새로운 목표 변수를 예측할 수 있다.

최적선을 찾아내기 위해 다양한 함수를 시도하는데, 이때 시도하는 함수를 '가설함수(hypothesis function)' 라고 부른다.

 

 

◎ 가설 함수 평가법

- 평균 제곱 오차 (MSE, mean squared error)

  : 오차의 제곱을 더하는 이유는 , 양수로 통일하기 위해 / 더 큰 오차 부각하기 위해

평균 제곱 오차 일반화 수학식

 ( h : 가설함수,  x : input,  y : output )

 → 평균 제곱 오차가 작을수록 가설 함수가 데이터에 잘 맞는다.

 

 

  손실 함수(Loss Function)

: 가설함수의 성능을 평가하는 함수

 → 손실 함수가 작을수록 가설 함수가 데이터에 잘 맞는다.

 

 

 

  경사 하강법 ( Gradient Descent )

: 경사를 하강시키며 (m에 수렴시키며) 적합한 a를 찾는 과정.

: m과 같은 a(기울기)를 찾았을 때, 오차가 최소화된다는 개념.

 

 


 

가설함수 → 수학적으로 모델링한다. 

 

위 방법대로 데이터를 이용해서 '모델'을 개선시키는 것을 모델을 학습시킨다고 표현.

모델을 평가하기 전에 학습 데이터(training set), 평가 데이터(test set) 두 가지로 학습과 평가를 위한 데이터를 나눈다.

 

학습 데이터를 가지고 데이터에 가장 잘 맞는 최적선을 구하고, 이 최적선을 평가 데이터와 놓고 평가를 한다.

이렇게 하면 학습에 사용된 데이터와 평가에 사용된 데이터가 따로여서 좀 더 신빙성 있는 모델을 평가할 수 있게 된다 !

 

 

scikit-learn 라이브러리를 사용하여 선형 회귀 구현이 가능하다. 줄여서 sklearn이라고 작성한다.

sklearn 라이브러리 안에 다양한 많은 것들이 있으니 다양한 예제로 사용하여 익숙해지면 도움이 될 것이다.

from sklearn import datasets

 

 

 

 

추가적으로,

목표변수를 예측하기 위한 입력변수의 속성이 한 개가 아니라 여러 개일 수도 있다.

이럴 때 응용할 수 있는 것이 다중 선형 회귀, 다항 회귀가 있다.

 

여러 개의 입력 변수를 사용해서 목표 변수를 예측하는 다중 선형 회귀 (Multiple Linear Regression).

복잡한 다중 선형 회귀 가설함수는 선형대수학 벡터를 사용하여 간결하게 표현할 수 있다.

 

속성 사이의 복잡한 관계를 해결해 줄 수 있는 다항 회귀 (Polynomial Regression) .

속성 하나하나가 다 독립적인 상황에서는 이런 변수들 사이의 관계를 최종 예측 결과에 반영하지 못한다.

이때, 속성들을 서로 곱해서 차항을 높여주면 속성들 사이에 있을 수 있는 복잡한 관계들을 프로그램에 학습시킬 수 있다.

 

728x90
반응형

댓글