2017-03-03 24 views
0

sklearn.mixture.BayesianGaussianMixture를 사용하여 궤도 집합에 맞춰 봅니다.sklearn BayesianGaussianMixture 둘 이상의 데이터 요소를 기반으로하는 클러스터 할당

각 궤적은 데이터 포인트의 세트로 구성된다. t_i i 번째 탄도 (x_ik, y_ik)이다

t_i = {x_i1, y_i1, x_i2, y_i2, ... , x_iN, y_iN}, 

궤적의 k 번째 지점이다. 예를 들어, x_ik은 시간 단계 k에서 로봇의 상태를 나타낼 수 있고, y_ik는 로봇이 취한 동작을 나타낼 수 있습니다. 각 GP 구성 요소는 x_ik -> y_ik의 매핑이됩니다. 그것은 sklearn을 사용하여 GP를 배우는 데있어 상당히 표준입니다.

그러나 Dirichlet Process를 사용하여 이전에 가우시안 혼합 모델을 배우려면을 새로 추가 할 때 을 결정해야합니다.

BayesianGaussianMixture 클래스는 단일 데이터 요소를 기반으로 클러스터 할당을 수행하는 인터페이스 만 제공합니다. 즉, 새 데이터 요소가 새 클러스터에 속하는지 여부입니다.

관심있는 내용은 다음과 같습니다. 각 궤도에 많은 데이터 요소가 포함될 수있는 궤도 집합을 제공하십시오. 궤적을 기반으로 클러스터 할당을 수행 할 수있는 방법이 있습니까? 즉, 새로운 궤적이 주어지면 그것이 새로운 클러스터에 속하는지 아닌지를 결정한다.

답변

0

다음 접근 방식을 사용합니다.

처음에 연속 좌표를 일련의 불연속 값으로 변환 해보십시오. 예를 들어지도를 셀로 나누고 각 점 (x_i, y_i)에 셀을 기반으로 레이블을 지정할 수 있습니다. 이 경우, 각 궤도 라벨

traj_1: cell_id_0 -> cell_id_1 -> ... -> cell_id_n 
traj_2: cell_id_3 -> cell_id_6 -> ... -> cell_id_m 
... 

지금은에서 기능의 고정 세트로 (아마도 다른 길이의) 각각의 궤도를 나타내는 bag-of-words 또는 word2vec 같은 것을 사용하는 것이 가능하고, 또는 연속이되고 다른 말로, singe point 고차원 공간에서. 더 간단한 방법이있을 수도 있지만, 나는 그것을 모르고 있습니다.

+0

@MinChen 적어도 이론적 인 측면에서는별로 중요하지 않다고 생각합니다. 실질적으로 각 데이터 요소에 개별 레이블을 할당하는 절차가 복잡해집니다. 나는 여기에 어떤 충고도 줄 수 없다. 문제 자체에 뛰어 들어야한다. – CaptainTrunky

+0

감사합니다. 쉬운 방법이없는 것 같습니다. –