본문 바로가기
데이터과학/데이터 분석 실습

Topological Data Analysis with R, (토폴로지 데이터 분석)

by 경성현 2015. 2. 27.
국가수리과학연구소에서 병역특례로 근무하는 동안 (2011-2014) 다양한 수학자들을 만나 수 있었습니다. 그 중에서 위상수학(Topology)를 공부하신 박사님과 한 팀에서 일을 할 수 있게 되었는데, 이때 처음으로 토폴로지 데이터 분석 (Topological Data Analysis, TDA)라는 방법을 알게 되었습니다.

토폴로지 데이터 분석의 핵심은 고차원 위상공간의 매니폴드에서 얻은 포인트 클라우드 데이터를 간단하게 추상화 하여 그래프의 형태로 표현하는 것입니다. Filtration에 의해서 샘플된 데이터는 Simplicies를 구성하기 위해 사용되고, 이거한 simplicies들을 선으로 연결하여 매니폴드를 추상화 합니다. 

또한, 대수적 토폴로지(Algebraic Topology)를 이용하면 여러 매니폴드로부터 대수적으로 동일한 해석을 주는 그룹을 찾을 수 있습니다. 가령, 다양한 차원의 매니폴드에서 홀Holes 의 갯수를 알고 있다면 매니폴드의 토폴로지를 특징화 할 수 있습니다. 가령 컵과 도너츠는 홀Hole이 하나라는 점에서 토폴로지가 같다고 할 수 있습니다. 이렇게 토폴로지가 같은 특성을 갖는 것을 호몰로지 그룹이라고 하는데, 고차원 데이터에서 이러한 호몰로지 그룹의 특성을 파악 한다면 다양한 분야의 사람들이 데이터에 대해서 새로운 시각을 얻을 수 있을 것입니다.

지금까지는 대수적 위상수학의 기본에 대한 것만 설명했습니다. 위상수학이 실제 데이터 분석 분야에서 혁명적인 진보를 이를 수 있었던 것은 ‘Persistent Homology’ 때문이 아닐까? 생각해 봅니다. Persistent 호몰로지 알고리즘은 토폴로지적인 불변량을 다양한 스케일에서 볼 수 있게 해 준다. 여기에서는 특정 스케일에서의 Hole의 갯수가 중요하기 보다는 Hole의 갯수가 동일하게 유지되는 스케일의 구간이 어디인지? 가 더 중요한 질문입니다. 

바코드 형태의 그래프는 호몰로지 그룹을 계산함과 동시에 시각화가 가능합니다.바코드 그래프에서 주요한 관심은 x축 선상에서 길게 유지되는 그래프입니다. Bar의 길이가 짧은 것은 대부분 토폴로지 잡음에 해당되는 경우 입니다. Bar의 길이가 길게 유지되는 bit이 데이터의 특징을 설명해 줄 수 있는 호몰로지 그룹입니다. 다음의 코드는 R의 phom packages를 이용하여 iris data의 바코드를 그려줍니다.

install.packages("phom") # phom 설치   library(phom) # phom 설치 확인 data = as.matrix(iris[,-5]) head(data) max_dim = 0 max_f = 1 irisInt0 = pHom(data, dimension=max_dim, # maximum dimension of persistent homology computed max_filtration_value=max_f, # maximum dimension of filtration complex mode="vr", # type of filtration complex metric="euclidean") plotBarcodeDiagram(irisInt0, max_dim, max_f, title="H0 Barcode plot of Iris Data")

위에 그림으로부터 3~4개 정도로 iris 데이터를 클러스터링 할 수 있을 것으로 생각할 수 있을 것이다. Filtration value가 0에서 1로 변하는 동안 계속해서 유지 되는 클러스터가 2개이고 0-0.7 동안 유지되는 바코드는 4개 정도이기 때문이다.