머신러닝 알고리즘 선형 회귀에 대해 정리해 보자 !
선형 회귀는 단순하면서도 유용하고,
특히 다른 많은 알고리즘의 기반이 되기 때문에 완벽하게 이해하는 것이 중요하기에 관련된 개념들도 함께 정리해 보자.
선형 회귀 (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) .
속성 하나하나가 다 독립적인 상황에서는 이런 변수들 사이의 관계를 최종 예측 결과에 반영하지 못한다.
이때, 속성들을 서로 곱해서 차항을 높여주면 속성들 사이에 있을 수 있는 복잡한 관계들을 프로그램에 학습시킬 수 있다.
'DB > ML' 카테고리의 다른 글
[머신러닝] 로지스틱 회귀 (Logistic Regression) (0) | 2023.12.21 |
---|---|
[머신러닝] 범죄율(CRIM)로 집값 예측하기 (0) | 2023.12.20 |
Kaggle(캐글) 타이타닉 생존자 예측하기 (1) (0) | 2023.12.19 |
댓글