기저함수와 다항회귀 기초개념

2019-03-22

.

그림, 실습코드 등 학습자료 출처 : https://datascienceschool.net

# 기저함수와 다항회귀

  • 비선형데이터가 있을때 어떻게 처리할 것인가에 대한 것이다. 비선형데이터는 선형모형으로는 회귀분석이 어렵다. 비선형회귀분석을 하게되면 우리가 알고 있는 선형회귀분석 이론들이 다 안맞게 된다.

  • 그렇다면 선형회귀분석 이론으로 비선형분석을 할 수 없을까해서 나온 아이디어가 비선형을 하긴하는데 y는 f(x)자체를 비선형으로 하지말고 x를 뭔가 비선형함수에 통과시켜서 새로운 파이를 만들자. 그리고 이 파이를 이용해서 선형회귀를 하자는 것이다. 다시말해 직접 선형조합하지 않고 기저함수를 통해 변환한 값을 새로운 독립 변수로 가정하고 선형 회귀 모형을 적용한 것과 같다.

아래와 같이 일반적인 선형회귀모형은 다음과 같다면

\[\ y_i = \sum_{i=1}^{D} w_i x_i = w^T x\]

다음과 같이 비선형함수에 통과시켜 새로운 파이를 만들자는 것이다.

\[\ y_i = \sum_{j=1}^{M} w_j \phi_j(x) = w^T \phi(x)\]

여기서 쓰이는 파이라는 비선형 함수를 Basis Function이라고 부른다. 그러면 비선형성을 잡을 수 있으면서 최종적으로 선형모형인 형태를 띄게 된다. 그래서 우리가 알고 있는 선형모형에서 쓸 수 있는 테크닉을 모두 쓸 수 있으면서 동시에 비선형 데이터도 잡아낼 수 있다는 것이다.

  • 예를 들어 D차원, D종류의 x를 사용했는데 얘의 벡터 전체를 받아서 스칼라값(=숫자하나)을 뽑아내는 파이를 산출한다는 것이다. 여기서 파이의 중요한 점은 위의 비선형함수 수식과 같이 수식에서 들어간 x는 x벡터 전체를 말한다. 다시말해 벡터가 들어가서 스칼라가 나오는 것이다.

  • 위의 비선형함수식에서 차수(위의 식에서 파이제이)는 그러면 어떻게 정하는 것인가. 우리가 파이를 상상해 내는 만큼 변수가 존재하는 것이다. 예를 들어서 x제곱을 써야지, 로그를 써야지, exp를 써야지 이런식으로 우리가 생각해 내는 만큼 새로운 독립변수가 되는 것이다. 그런데 이렇게 생각해 내는것이 너무나도 많아서 사람이 직접하기에는 한계가 있다.

  • 또는 어려운점이 우리가 파이를 열심히 생각해 냈는데 비슷한 역할을 함수가 또 있거나, 데이터를 커버하는데 헛점이 있을 수도 있다. 그래서 수학자들이 생각해낸 것이 Basis Function이다. 어떤 함수들을 체계를 가지고 함수의 sequence를 제한하여 사용하게 하면 이 sequence대로 함수를 사용하면 수학자들이 제한해준대로 예를들어 1번함수, 2번함수, 3번함수 그냥 갖다가 쓰기만 하면된다. 이 함수들을 최대한 많이 갖다쓰면 갖다 쓸 수록 내가 놓치는 비선형성이 없다는 것이 수학적으로 증명이 되어있다.

  • Basis Function는 여러가지가 존재하는데 그중에서 가장 간단한 것이 polynominal basis이다. \(\ 1, x, x^2, \ldots, x^M\) 이런식으로 가는 함수를 말한다. 그러면 이와같은 polynominal basis를 쓴다는 것은 무슨의미냐면 처음에는 x라는 데이터 하나만 존재했다고 가정하면 이 x를 선형회귀방정식에 넣고 선형회귀를 할때는 마치 M개의 데이터를 조사한것처럼 가짜데이터를 집어 넣는것이다. 어떤식이냐 하나는 제곱해서 하나는 세제곱해서 하나는 네제곱해서… 이런식으로 하게되면 제곱하는 비선형성 세제곱하는 비선형성 이런 것들을 polynominal basis가 새로운 독립변수로써 역할을 해주며 비선형성들을 캐치해주게 된다.

  • 그래서 y와 x간의 관계를 다음과 같이 표현할 수 있다.

\[\ y = w_0 + w_1x + w_2x^2 + \ldots + w_M x^M\]
  • 과최적화

1) 개요 : 모형을 특정 샘플 데이터에 대해 과도하게 최적화하는 것

2) 언제 잘 발생하는가

2-1) 독립변수의 갯수가 너무 많아질때

-> 사람이 컨트롤 할 수 있을 수라면 독립변수 하나하나를 따지고 들어가보면 된다.

또는 VIF를 가지고 tryial error를 해보면된다. 그렇지 않고 사람이 컨트롤 할 수 없을 정도로 독립변수가 많아지면 정규화를 해주면 된다.

2-2) 독립 변수 데이터 갯수에 비해 모형 모수의 수가 과도하게 클때

2-3)독립 변수 데이터가 서로 독립이 아닐때. 이러한 상황에서는 같은 조건에 대해 답이 복수개 존재할 수 있기 때문이다.

3) 과최적화가 문제가 되는 이유

3-1) train에 사용되지 않은 새로운 독립 변수 값을 입력하면 오차가 커진다.(cross-validation 오차)

3-2) 샘플이 조금만 변화해도 가중치 계수의 값이 크게 달라진다. (추정의 부정확함)