다항회귀 (Polynomial Regression)
지난 글에서는 선형회귀 (Linear regression)에 대해 알아보고 실습까지 진행해보았다.
이번 시간에는 다항회귀와 다중선형회귀가 무엇인지와 이 둘의 차이에 대해 알아보도록 하자.
(그 전에, 선형회귀에 대해 잘 모르겠다면 이전 글을 참고하는 것을 추천한다.)
[인공지능] 선형회귀에 대해 알아보자(이론) : itstory1592.tistory.com/4
[인공지능] 선형회귀(Linear regression)를 이용하여 생선의 무게를 예측해보자 : itstory1592.tistory.com/5
다항회귀(Polynomial Regression)란,
데이터를 표현함에 있어 선형이 아닌 곡선으로 나타나는 경우에 사용하는 회귀이다.
단순히 비례관계로 표현된다면 너무나도 편하겠지만, 수많은 데이터를 표현할 때 그렇지 않은 경우가 더 많기 때문이다.
이러한 경우에 선택할 수 있는 회귀법이 바로 다항회귀라는 것이다.
다항회귀에서의 항은 차수(degree)를 뜻하는데 말 그대로 차수가 많다는 것을 의미한다.
(여기서 차수는 방정식에서 변수가 몇 제곱인지를 표현할 때 사용하는 차수와 동일하다.)
차수(degree)를 높였을 때의 장점은 모델(model)이 기존의 모델보다 더 적은 오차를 만들어낸다는 점이다.
(엄밀히 말하자면, 지난 시간에 생선 데이터를 표현한 그래프는 직선보다 2차방정식의 곡선과 더 유사하다고 볼 수 있다.)
그렇다면, 다항회귀는 어떻게 표현할 수 있을까?
머신러닝에서는 결과값(target)을 구하기 위한 입력 데이터를 특징(feature)이라고 표현한다.
이 전에 생선의 무게를 예측하기 위해 사용한 데이터는 생선의 길이였다.
생선의 길이는 우리가 입력 값으로 사용을 하였는데,
이는 다시 말해, 생선의 길이는 생선의 무게를 구하기 위한 하나의 특징(feature)이라고 말 할 수 있다.
우리는 이 생선의 길이라는 특징을 변형 시켜 다항으로 표현해내면 되는 것이다.
위에서 다항의 항은 차수를 의미한다고 설명하였다.
그렇다면 특징의 차수를 높여보면 되지 않을까?
이 글에서 예제는 생선의 길이가 특징(feature)이므로 이 특징을 이용하여 다항식으로 표현을 하면 된다.
방법은 매우 간단하다.
위의 식처럼, 생선의 길이에 차수를 부여하여 여러 특징을 만들어내면 된다.
차수가 1인 생선의 길이라는 단순한 특징을 제곱하여 또 다른 특징을 만들어낼 수 있게 되는 것이다.
여러분들이 누군가에게 무언가를 맞춰보라고 질문할 때, 한 가지 특징보다 여러가지 특징을 알려줬을 때 더 쉽게
정답(target)을 맞출 수 있는 것처럼 인공지능도 특징이 많으면 많을 수록 정답을 더 정확히 맞추게 된다고 생각하면 좋을 것 같다.
하지만, 너무 많은 차수를 사용한다면 오히려 과대적합(Overfitting)을 불러일으킬 수 있으니 주의하여야 한다.
이를 위해, 사이킷런(sklearn)에서는 과대적합을 막으면서 차수를 자동으로 적절히 조절할 수 있는 릿지(Ridge)와 라쏘(Lasso)라는 훌륭한 규제(regularization) 클래스를 제공한다.
여기서 규제(regularization)란, 과대적합을 막을 수 있도록 모델의 파라미터(Parameter)를 조정하는 것을 뜻한다.
('이 정도 차수면 충분해!' 라고 말해주는 느낌...)
이는 다음 시간에 진행할 실습을 통해 더 자세히 알아보겠다.
다음으로 다중 선형회귀에 대해 알아보자.
다중 선형회귀 (Multiple Linear Regression)
다중 선형회귀와 다항회귀는 이름이 비슷하여, 이 둘을 헷갈릴 수가 있는데 전혀 그럴 필요가 없다.
(多項)다항의 항은 차수이므로, 항(차수)이 많은 회귀방법이라고 이해하면 되고,
다중 선형은 명칭 그대로, (여러개의)특징이 많은 회귀방법이라고 이해하면 편하다.
지금까지는 생선의 무게를 예측하기 위해, 생선의 길이라는 특징 하나만을 사용하였다.
그러나 만약, 생선의 길이가 아닌 생선의 종류를 맞춰보라고 한다면 과연 길이 하나만으로 맞출 수 있을까?
운이 좋다면 맞출 수 있겠지만, 그 정확도는 현저히 떨어질 것이다.
이런 상황에, 우리는 모델에게 정답을 맞추는데 도움이 될만한 생선의 (독립적인) 여러 특징을 알려주면 된다.
여기서 독립적이라는 말은 말 그대로 서로의 특징에 영향을 주지 않는 요소들을 뜻한다.
생선의 길이, 너비, 껍질 색깔 등등...
다중선형회귀도 다항회귀와 마찬가지로,
모델에게 특징 1개를 알려주는 것 보다 여러개를 알려주며 타겟(target)의 특징을 구체화하며 정확도를 높일 수 있다.
(사람에게 무언가를 맞춰보라고 알려줄 때에도, 특징 1개를 알려주며 맞추라는 것 보다
여러개를 알려주고 맞춰보라고 했을 때 맞출 확률이 더 높아지는 상황과 동일하다.)
이렇게 특징이 2개 이상인 선형회귀를 다중선형회귀라고 부르며,
특징이 1개일 때는 단일선형회귀 또는 그냥 선형회귀라고 부른다.
위에서 알아본 다항회귀와 다중선형회귀를 접목하여 모델을 구축하면 기존의 단일선형회귀보다
훨씬 높은 정확도를 가진 모델을 만들어낼 수 있을 것이다.
이번 시간에는, 다항회귀와 다중선형회귀 그리고 규제에 대해 간단히 알아보았다.
다음에는 실습을 통해 배운 내용들을 더 구체화하는 시간을 가져보겠다.
이 글만으로 잘 이해가 되지 않더라도, 직접 실습을 해본다면 단순히 글을 읽는 것보다 이해하는데에 큰 도움이 될 것이다.
(이해가 다소 힘들거나, 틀린 부분이 있다면 댓글 부탁드리겠습니다! 😊)
💖댓글과 공감은 큰 힘이 됩니다!💖
'인공지능' 카테고리의 다른 글
[인공지능][개념] 로지스틱 회귀(Logistic Regression)는 무엇이며, 시그모이드(Sigmoid) 함수는 왜 사용하는 것일까? (3) | 2021.05.13 |
---|---|
[인공지능][실습] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression)를 활용하여 생선의 무게를 예측해보자 (1) | 2021.05.12 |
[인공지능][실습] 선형회귀(Linear regression)를 이용하여 생선의 무게를 예측해보자 (4) | 2021.05.10 |
[인공지능][개념] 선형회귀(Linear Regression)에 대해 알아보자 (1) | 2021.05.10 |
[인공지능] 싸지방 코딩 학습주제 정하기 (6) | 2021.05.07 |