본문 바로가기
Machine Learning

회귀란?

by rubyda 2020. 5. 26.
728x90

회귀란??


 

회귀는 여러개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링하는 기법을 의미합니다.

예를들면 아파트의 방 개수, 화장실 크기 등의 독립변수에 따라서 아파트 가격인 종속변수가 어떤 관계를 가지는지를 모델링하고 예측하는 것입니다. 

 

이를 선형 회귀식으로 표현하면 Y = W1*X1+W2*X2+W3*X2+ ... , Wn*Xn 이라고 했을떼 Y는 종속변수이고 X1, X2, Xn등은 방 개수, 화장실 크기 등을 의미합니다. 

 

W1, W2, W3, Wn은 독립변수의 영향을 미치는 회귀 계수입니다. 

 

머신런닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터를 통해서 최적의 회귀 계수를 찾는 것입니다.

 

회귀계수는 다음과 같이 나누어 집니다.

독립변수 개수

회귀 계수의 결합

1개: 단일 회귀

선형: 선형 회귀

여러 개: 다중 회귀

비선형: 비선형 회귀

지도학습은 분류와 회귀로 나누어집니다. 두개의 가장 큰 차이점은 분류는 예측값이 이산형 클래스 값이고 회귀는 연속형 숫자 값이라는 것입니다. 

 

회귀 중에서는 선형 회귀가 가장 많이 사용이 됩니다. 선형 회귀는 실제 값과 예측 밧의 차이를 최소화하는 직선형 회귀선을 최적화하는 방식입니다. 

 

선형 회귀 모델은 규제 방벙에 따라서 다시 또 유형이 나누어집니다. 규제는 선형 회귀의 과적합 문제를 해결하기 위한 방법을 말합니다. 대표적인 예시는 다음과 같습니다.

 

  • 일반 선형 회귀: 예측값과 실제값의 RSS를 최소화할 수 있도록 회귀 계수를 최적화(규제를 적용하지 않은 모델)

  • 릿지(Ridge): 릿지 회귀는 선형 회귀에 L2 규제를 추가한 회귀 모델.

  • 라쏘(Lasso): 라쏘 회귀는 선형 회귀에 L1 규제를 적용.

  • 엘라스틱넷(ElasticNet): L2, L1 규제를 결합한 모델. 주로 피처가 많은 데이터에 적용을 합니다.

  • 로지스틱 회귀(Logistic Regression): 일반적으로 이진 분류뿐만이 아닌 희소 영역의 분류, 텍스트 분류와 같은 영역에서 뛰어난 예측 성능을 나타냅니다.

 

단순 선형 회귀


단순 선형 회귀는 독립변수도 1개, 종속변수도 1개인 선형 회귀입니다. 

 

 

예시로 주택 가격이 주택의 평수로만 결정이 된다고 해봅시다. 그렇다면 다음과 같이 주택 가격은 평수에 대해서 선형의 관계로 표현할 수 있습니다.

 

예측값 Y' = W0+W1*X로 계산할 수 있습니다. 독립변수가 1개인 단순 선형 회귀에서는 기울기 W1과 절편 W0을 회귀 계수로 합니다. 그리고 회귀 모델을 이런 Y' = W0+W1*X와 같은 1차 함수로 모델링을 하면 실제 주택 가격은 이러한 1차 함수 값에서 실제 값만큼의 오류 값을 뺀(또는 더한) 값입니다.

 

이러한 실제 값과 회귀 모델의 차이에 따른 오류 값을 잔차라고 합니다. 최적의 회귀는 이 잔차합이 최소가 되도록 하는 것입니다.

 

 

 

오류 값은 +, - 가 될 수 있습니다. 그렇기 때문에 전체 데이터의 오류의 합을 구하기 위해서는 단순히 더하면 안됩니다. 그래서 계산을 할때 절댓값을 취해서 더하거나(Mean Absolute Error), 오류 값의 제곱을 구해서 더하기(RSS)를 사용합니다. 보통 미분의 계산을 편리하게 하기 위해서 RSS를 사용합니다. 

 

회귀에서 RSS는 비용(Cost)를 의미합니다. 머신러닝 회귀 알고리즘에서는 데이터를 계속 학습하면서 이 함수가 반환하는 값을 지속해서 감소시키면서 최종적으로는 더 이상 감소하지 않는 최소의 오류 값을 구하는 것입니다. 이 비용 함수는 손실 함수(loss function)이라고도 합니다.

 

 

경사 하강법(Gradient Descent)


경사 하강법은 점진적으로 반복적인 계산을 통해서 W 파라미터 값을 업데이트 해가면서 오류 값이 최소가 되는 W 파라미터를 구하는 방식입니다. 

 

경사 하강법은 반복적으로 비용 함수의 반환 값, 다시말해 예측값과 실제값의 차이가 작아지는 방향성을 가지고 W 파라미터를 지속해서 보정해 나갑니다. 예를 들어 최초의 오류 값이 100이라고 하면 두번째 오류값은 90, 세번째는 80과 같은 방향으로 지속해서 나아가는 것입니다. 그리고 오류 값이 더이상 작아지지 않으면 그 오류 값응ㄹ 최소 비용으로 판단하고 그때의 W 값을 최적 파라미터로 반환하게 됩니다.

 

 

Reference


파이썬 머신러닝 완벽가이드

 

'Machine Learning' 카테고리의 다른 글

규제 선형 모델  (0) 2020.05.27
LinearRegression 실습( 주택 가격 예측)  (0) 2020.05.27
ML 평가 지표  (0) 2020.05.09
의사결정 나무 실습  (0) 2020.05.07
K-NN 알고리즘  (0) 2020.05.05