우리는 지난 포스트에서 엔트로피를 최소화하는 정보기반 학습에 대해 살펴봤다. 이번에 살펴볼 유사도 기반 학습은 말 그대로 얼마나 닮아 있는가를 찾아내어 정보의 불확실성을 줄이는 방법이다. 가장 대표적인 사례가 KNN 분류기법이다.
잠시 복습하고 지나가자면 이 방법은 데이터의 속성을 다차원의 공간으로 투영하여 그룹화를 수행하는 것으로 보면 되는데 이때 같은 그룹으로 묶이기 위해서 유클리드 거리를 사용한다. 각 속성치들의 거리차의 제곱의 제곱근이 최소화되는 그룹을 찾는데 만약 데이터의 속성치가 2개라면 2차원 공간상에 투영한 뒤 유클리드 거리를 측정하면 되겠지만 속성이 많아질 수록 그걸 이미지화 시키기가 녹록치 않다. 특히 3차원 이상이라면 말이다. 따라서 다수의 속성정보를 가진 n차원 좌표계는 추상화할 수 밖에 없지만 임의의 속성치가 해당 좌표계의 한 점에 위치한다는 점에서는 차이가 없기에 수리적 계산은 가능하다.
간단한 사례는 지난 포스트에서 다룬 2020/11/10 - [실전머신러닝] - KNN, 나이브베이즈 분류를 이용해서 종목분석하기 를 기준으로 설명을 해보자. 우선 PBR, PER, EV, EV/EBIDTA 등의 재무비율을 속성치로 가지는 기업 데이터를 4차원의 공간상에 투영한 뒤 정답이 무엇인가를 찾아보고자 한다. 이때 BUY와 SELL이라는 정답과 가장 가까운 거리를 기준으로 이웃을 찾아낸다. 그 다음으로는 최근접한 이웃의 속성치를 다음 예측에 대한 기준값으로 사용하는 방식이다. 물론 이때 이웃의 경계선을 어떻게 설정할 것인가에 대해서는 데이터 잡음의 영향을 최소화할 수 있는 K 근접 이웃방법을 많이 사용한다. 이 때 K근접 방법에서 적절한 K의 산정 및 효과/부작용에 대해서는 지난 포스트를 참고하고 수리적 유도과정, 가중 K방법, 효율적인 메모리 탐색방법, 데이터의 정규화 방법 등은 관련서적을 참고하자.
|
유사도 기반 학습방법에서 유클리드 거리 기법이 능사는 아니다. 데이터의 종류가 1/0, 예/아니오 등의 이진 데이터라면 그에 적합한 유사도 지표가 예측력을 높이는데 기여를 할 것이다. 또한 속성치가 많을 수록 분류를 잘 할 것이라고 생각해서 무작정 늘리는 것은 좋지 않다. 지난 포스트(2020/09/09 - [인과관계분석] - 주성분분석(PCA) with R)에서 주성분 분석과 요인분석을 수행했던 이유를 곱씹어보면 중복된 속성치는 예측 결과에 불필요한 오차를 발생시킬 수 있다. 따라서 종류와 성격이 아주 다른 속성치를 잘 선택해서 분석하는 것도 예측성능에 지대한 영향을 미칠 수 있다.
잘~ 이라는 말은 상당히 애매하기는 한데 이미 KNN 방식의 K 역시 하이퍼파라메터(직관이나 경험적 통계에 기반한)인데다가 이러한 분류기법은 주어진 데이터셋에서 유사한 그룹을 찾아내는 귀납편향의 결과에서 자유로울 수 없다. 그렇기 때문에 데이터의 1차 가공(정규화, 속성의 대표성, 모집단의 분포 등)이 모델의 성능에 아주 중요한 역할을 한다고 볼 수 있다.
'텐서플로우' 카테고리의 다른 글
기계학습의 종류 - 오차기반 (0) | 2021.01.13 |
---|---|
기계학습의 종류 - 확률기반 (0) | 2021.01.10 |
기계학습의 종류 - 정보 기반 (0) | 2020.12.13 |
데이터구조 : Numpy 와 Pandas (0) | 2020.09.15 |
텐서플로우란? (0) | 2020.08.28 |
댓글