Broccoli's House
#3-(3) 비지도 변환 : 비음수 행렬 분해(NMF) 본문
※ 이 글의 내용은 O'REILLY의 <파이썬 라이브러리를 활용한 머신러닝> 책을 기반으로 한다.
비지도 변환 : NMF(비음수 행렬 분해)
- 비음수 행렬 분해
- 간단하게 말해서 NMF와 PCA 모두 알고리즘이 생성한 일정 개수의 성분을 사용해 데이터의 특성을 분해하여 차원을 축소할 수 있지만, PCA는 최대 분산의 방향을 주성분이라 하여 성분 간의 우열이 있는 반면 NMF는 특성이 양수이기만 하면 성분의 우열이 없이 특징을 나눌 수 있는 것이다. 또한 행렬을 어떻게 나누냐에 따라서 성분의 개수 모두 변경이 가능하다.
- 행렬 W의 각 열은 데이터의 특성이 되고, 행은 '특성에 대한 적합도', 즉 특성에 대한 가중치를 나타낸다. 행렬 H의 각 행은 특성이 되고, 열은 '특성에 대한 중요도'를 나타낸다.
- PCA를 사용할 때와는 달리 NMF로 데이터를 다루려면 주어진 데이터가 양수인지 확인해야 한다. 이 말은 데이터가 원점에서 상대적으로 어디에 놓여있는 지가 NMF에서는 중요하다는 뜻이다. 따라서 원점에서 데이터로 가는 방향을 추출한 것으로 음수가 포함되지 않은 성분을 이해할 수 있다.
- 왼쪽 그래프는 성분이 둘인 NMF로, 데이터 세트의 모든 포인트를 양수로 이루어진 두 개의 성분으로 표현할 수 있다. 즉 특성의 개수만큼 성분이 많다면, 알고리즘은 데이터의 각 특성 끝에 위치한 포인트를 가리키는 방향을 선택한다. 우측의 그래프는 하나의 성분만을 사용한 것이다. 하나의 성분만을 사용한다면 NMF는 데이터를 가장 잘 표현할 수 있는 평균으로 향하는 성분을 만든다. PCA와는 반대로 성분의 개수를 줄이면 특정 방향이 제거될 뿐만 아니라 전체 성분이 완전히 바뀌어버린다.
'공부 > 머신러닝' 카테고리의 다른 글
#3-(6) 군집 알고리즘 : 병합 군집 (0) | 2018.02.04 |
---|---|
#3-(5) 군집 알고리즘 : k-평균 군집(k-means) (1) | 2018.02.04 |
#3-(2) 비지도 변환 : 주성분 분석(PCA) (0) | 2018.02.03 |
#3-(1) 비지도 학습 (0) | 2018.02.03 |
#2-(8) 지도학습 알고리즘 : 정리 (0) | 2018.02.03 |