2017-12-28 60 views
0

다음 코드를 사용하여 DBSCAN에 대해 eps을 추정합니다. 코드가 괜찮 으면 knn distance plot을 얻었습니다. 코드는 : data 화소 위치 (행과 열)의 배열 인DBSCAN에서 거리 거리 플롯을 사용하여 eps를 추정하는 방법

ns = 4 
nbrs = NearestNeighbors(n_neighbors=ns).fit(data) 
distances, indices = nbrs.kneighbors(data) 
distanceDec = sorted(distances[:,ns-1], reverse=True) 
plt.plot(indices[:,0], distanceDec) 

. 나는 음모를 얻었지만 나는 어떻게 eps을 결정하지 못하고있다. DBSCAN 종이에 따르면,

임계 지점은

는 내가 코드에서 구현합니까 방법을 알고 해달라고 분류 K - 거리 그래프의 첫 번째 계곡에서 첫 번째 점이다. 또한 ns = 4이 내 minPts이거나 minPtseps에서 추정 할 수있는 방법이 있습니까?

답변

0

내가 알 수있는 한, 이는 인간에 의해 시각적으로으로 결정됩니다.

자동화가 작동하지 않는 것 같습니다.

또는 OPTICS를 사용할 수 있습니다.

+0

knn 플롯을 시각화하는 코드가 정확합니까? –

+0

아마도 가장 가까운 n-1 개를 찾고있을 것입니다. 코드에서 항상 0을 첫 번째 거리로 반환한다고 가정합니다. 또한, 음모에 대한 x의 선택은 나에게 이해가되지 않습니다. –

0

사용

plt.plot(list(range(1,noOfPointsYouHave+1)), distanceDec) 

당신은 팔꿈치 플롯을 얻을 수 있습니다. 커브가 급격하게 변하는 거리가 엡실론입니다.

원하는 경우 reverse = False로 설정할 수도 있습니다.