2014-05-14 5 views
1

이것은 previous question의 후속 조치입니다. 여기서 위도와 긴 좌표로 유클리드 거리를 사용하면 올바른 결과가 나오지 않는다고 설명했습니다. 문서에서 ELKI enables geographic data, 즉 int의 거리 함수가 다양한 클러스터링 알고리즘에 있음을 읽었습니다. ELKI의 사용자 인터페이스에서 기본 거리 함수 (euclidian)를 더 적합한 값으로 대체 할 수있는 옵션이 있음을 알 수 있습니다. 이 경우 데이터가 어떻게 투영되는지 ELKI에 말해야하기 때문에 데이텀을 제공해야합니다. UI에서 내 옵션은 데이터가 epsg : 4326에 있으므로 "(geo.LngLatDistanceFunction")을 (x, y) 좌표를 사용하고 "WGS84SpheroidEarthModel"을 사용하기 때문에 사용하는 것입니다. 나는 자바에 따라 내 알고리즘을 변수화하는 것을 시도하고있다,하지만 난 그것을 할 방법 확실하지 않다 : 을 나는이처럼 내 매개 변수를 초기화 할 경우ELKI의 거리 함수 사용

ListParameterization params2 = new ListParameterization(); 
    params2.addParameter(de.lmu.ifi.dbs.elki.algorithm.clustering.DBSCAN.Parameterizer.MINPTS_ID, minPoints); 
params2.addParameter(de.lmu.ifi.dbs.elki.algorithm.clustering.DBSCAN.Parameterizer.EPSILON_ID, epsilon); 

는이 같은 거리의 기능을 설정할 수 있을까요?

params2.addParameter(de.lmu.ifi.dbs.elki.algorithm.DistanceBasedAlgorithm.DISTANCE_FUNCTION_ID, 
      de.lmu.ifi.dbs.elki.distance.distancefunction.geo.LngLatDistanceFunction.class); 

geo.model은 어떻습니까? (나는 이것에 대해 아무런 단서도 가지고 있지 않다)

답변

2

기본 지구 모델은 아마도 조금 더 빠르지 만 (그러나 회전 타원체 대신 구형의 지구를 가정 함) SphericalVincentyEarthModel이다. 계량기의 정밀도가 필요하지 않으면 차이가 많이 발생하지 않아야합니다. 최대 오차는 거리의 0.3 %이어야합니다 (this answer에 따라).

지구 모델 매개 변수를 설정하려면 옵션 ID로 EarthModel.MODEL_ID을 사용하십시오. (Parameterizer가 참조한대로 LngLatDistanceFunction). 적절한 옵션 ID를 찾으려고 할 때 항상 Parameterizers를 살펴보십시오 - 모든 옵션 ID를 Parameterizer로 천천히 옮깁니다.

+0

당신이 말해주는대로 지구를 구로 남겨 두는 것이 좋습니다. 거리 함수를 지역으로 변경하면 결과가 더 걱정됩니다. 위의 내용을 잘랐다면 LngLatDistanceFunction을 설정하는 것과 관련하여 결과가 약간 놀랍습니다. DBSCAN을 실행할 때 [반환 된 클러스터는 반복되는 지점 집합입니다] (https://ladybug.no-ip.org/files/clusters_lonlat.png). [These] (https://ladybug.no-ip.org/files/clusters_manhattan.png)는 비 지리 알고리즘 (ManhattanDistanceFunction)을 선택하여 반환되는 클러스터입니다. 왜 이것이 일이 될지도 모르는 어떤 아이디어? – doublebyte

+0

필자의 입력 데이터는 숫자 벡터 (lon, lat)의 관계이며 [ELKI의 문서] (http://elki.dbs.ifi.lmu.de/wiki/HowTo/GeoMining)에 따르면 geo _Relation > vectors = db.getRelation (TypeUtil.NUMBER_VECTOR_FIELD); _ – doublebyte

+0

다른 [질문] (http://stackoverflow.com/questions/23684070/using-a-geo-)에서 내 의견을 변형하기로 결정했습니다. distance-function-on-elki) – doublebyte