Estimate f(x): neighborhood, nearest neighbor averaging, curse of dimensionality
포스트 난이도: HOO_Senior
# Estimate f
Statistical machine learning(SML)에서 f(function)는 데이터를 분석하는 데 있어서 중요하다. f를 어떻게 설정하느냐에 따라서 결과가 완전히 달라질 수 있기 때문이다. 그렇다 보니 f를 어떻게 설정하는지가 데이터 분석에 있어서 중요한 요소이고 데이터 분석가 또는 데이터사이언티스트의 능력을 보여준다. 하지만 아무리 능력이 좋은 데이터사이언티스트라고 할지라도 데이터를 보자마자 f를 만들어낼 수는 없다. f를 구성하는 데 있어서도 데이터를 기반으로 해서 알아내야 한다. SML에 있어서는 데이터의 상관관계를 보고 f를 구조화하고 만들어낸다. 이것이 바로 예측 모델 f인 셈이다. 만들어진 f를 기반으로 특정 데이터에 대한 분석 결과를 산출해 낼 수 있고 이것이 바로 예측 모델을 기반으로 나온 예측값인 것이다.
# Neighborhood of x
f라는 예측 모델을 가지고 있음에도 특정 상황이나 특정 구역에 있는 데이터를 분석하는데 또 다른 어려움이 발생할 수 있다. 바로 데이터 양이 부족한 경우이다. 정말 친절하게도 특정 구역의 데이터 양이 충분하면 예측 값을 산출해 내는데 어려움이 없다. 하지만 SML은 현실 데이터를 가져다 분석하기 때문에 데이터가 항상 일정하지 않고 개발자가 원하는 대로 위치해주지 않는다. 이러한 경우 f를 가지고 있음에도 데이터 분석을 할 수가 없다. 이때 우리는 Neighborhood of x를 활용한다. Neighborhood of x는 새로운 개념이 아니라 기존 알고리즘에서도 이미 사용하고 있는 방식이다. 글쓴이의 또 다른 포스트에서 살펴본 적이 있는 내용이다.
https://whoishoo.tistory.com/193
neighborhood of x는 쉽게 말해서 주변에 있는 데이터인 x값들을 활용한다는 것이다. 결과 산출에 있어서 충분한 데이터가 부족하면 근접 데이터를 활용하여 분석하여 결과를 산출해낸다. 결국 Clset pair of points들을 활용한다는 것은 EV(Expected values)에 평균 거리값을 추가한다는 걸 의미하기에 아래와 같은 계산식이 된다.
여기서 N(x)는 Neighborhood of x들의 값을 의미한다. 결국 이러한 경우에는 EV만을 사용할 수 없기 때문에 아래와 같이 EV만을 사용할 수 없음을 나타내기도 한다.
그리고 위의 EV는 Mean-squared prediction error(MSE)를 고려했지만 식에서는 생략되어 줄여서 표기된 계산식이다. 풀어서 작성하면 아래와 같이 표현이 가능하다.
# Curse of dimensionality
위에서 언급한 Nearest neighbor averaging을 보면 주변 데이터를 필요에 따라서 가져와서 사용하면 되는 것처럼 보인다. 만약에 4라는 범위(p)를 지정해두었는데 부족하다고 싶으면 10이나 20으로 늘려서 데이터를 분석하면 되는 거처럼 보이지만 사실 그러면 안 된다. 왜냐하면 p 값이 넓어질수록 분석되어 산출된 결과가 엉망이 되기 때문이다. 우리는 이것을 p가 커짐으로써 결과가 lousy 해졌다고 하며, curse of dimensionality 때문에 이러한 결과가 발생한다. Curse of dimensionality를 이해하기 위해서는 ML 또는 SML의 프로세스 방식에 대해서 이해해야 한다. 우리가 머신러닝을 많이 사용하려고 하고 자주 언급하는 이유는 데이터 분석이 고차원에서 이루어질 수 있다는 점이다. x의 값이 많아질수록 데이터를 분석하는데 차원의 수가 증가한다. 여러 차원에서 데이터를 분석한다는 건 다양한 조건을 비교 분석하여 최적의 값을 찾아낼 수도 있지만 공간이 넓어진다는 문제점을 가지고 있다. 차원 수가 많아진다는 것은 공간이 늘어난다는 것이고 Nearest neighborhood of x가 더 이상 Nearest 하지 않다는 것이다. 예를 들어 2 dimensional에서는 Nearest neighborhood of x가 정말 Nearest 하지만 이것을 그 이상의 dimensional에서는 더이성 Nearest 하지가 않게 된다는 것이다.
그래서 우리는 이러한 Curse of dimensionality를 이해하고 NNA(Nearest neighbor averaging)을 사용할 때 유의해야 한다. 우선은 reasonable fraction을 Neighborhood of x를 설정할때 고려해야 한다. 고차원으로 데이터 분석이 이루어질 때 해당 X가 local averaging 범위에 포함이 되는지, 아니면 더 이상 local averaging에 포함이 되지 않는지에 대해서 파악하여 사용해야 한다는 것이다.
댓글