• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

eps에 대해서 질문있습니다.

21.01.14 16:09 작성 조회수 207

0

선생님 안녕하세요?

강의 잘듣고 있고 항상 답변 잘해주셔서 감사합니다 :)

혹시 입실론(eps)을 하이퍼 파라미터라고 생각하고 이를 최적으로 튜닝하는 방법은 없을까요?

답변해주시면 감사하겠습니다.

답변 1

답변을 작성해보세요.

4

안녕하십니까,

epsilon과 min points을 튜닝하는게 만만치는 않습니다. 먼저 GridSearch와 같이 값을 변화 시키면서 최적값을 찾는 방법이 있습니다. 하지만 이걸 여쭤보신건 아닌것 같습니다.

epsilon 튜닝은 보통 K Distance plot(KNN Distance plot)을 이용해서 감을 잡는 방법이 있습니다( 이 방법이 정확한지는 논란이 있습니다만)

1. K Nearest Neighbor를 각 point별로 수행하여 각 point별로 K개 내에 있는 가장 가까운 거리를 계산합니다. 이때 거리는 0~1 사이 값으로 정규화 합니다. 

2. 개별 point별로 계산된 k distance값을 기반으로 다시 이들 개별 point들을 k distance값별로 오름차순 정렬을 합니다. 즉 가장 작은 k distance값을 가진 point를 첫번째 위치로 놓고,  순차적으로 큰 k distance값을 가진 point들을 두번째, 세번째 위치로 놓습니다.

예를 들어 첫번째 포인트가 0.05, 두번째 포인트가 0.01, 세번째 포인트가 0.07 이라면 이들의 순서를 이동해서 첫번째 위치에 두번째 포인트를, 두번째 위치에 첫번째 포인트, 세번째 위치에 세번째 포인트를 놓는 형식으로 정렬시킵니다.

3. 그런 다음 이렇게 정렬된 point 집합들을 plot을 scatter plot형식으로 x축을 개별 데이터 포인트의 인덱스(그러니까 첫번째, 두번째, 세번째.), 그리고 y축을 K distance로 표시해서 그리면 자연스럽게 왼쪽으로 오른쪽으로 가면서 우상향 하는 그래프가 만들어집니다. 이때 k distance가 급격히 커지는, 즉 너무 포인트간의 거리가 커지는 영역(즉 포인트들이 몰려있지 않는 영역) 이전 까지가 주로 포인트들이 몰려 있는 것입니다. 그러니가 k plot으로 그렸을 때 갑자기 우상향 그래프가 위로 올라가지 전까지의 지점까지를 골라서 epsilon으로 선택합니다. 

이게 설명으로만 하기에 이해가 부족하실 수 있어서, 아래 링크도 참조하시면 좋을 것 같습니다.

https://medium.com/@mohantysandip/a-step-by-step-approach-to-solve-dbscan-algorithms-by-tuning-its-hyper-parameters-93e693a91289