이것은 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은 어떻습니까? (나는 이것에 대해 아무런 단서도 가지고 있지 않다)
당신이 말해주는대로 지구를 구로 남겨 두는 것이 좋습니다. 거리 함수를 지역으로 변경하면 결과가 더 걱정됩니다. 위의 내용을 잘랐다면 LngLatDistanceFunction을 설정하는 것과 관련하여 결과가 약간 놀랍습니다. DBSCAN을 실행할 때 [반환 된 클러스터는 반복되는 지점 집합입니다] (https://ladybug.no-ip.org/files/clusters_lonlat.png). [These] (https://ladybug.no-ip.org/files/clusters_manhattan.png)는 비 지리 알고리즘 (ManhattanDistanceFunction)을 선택하여 반환되는 클러스터입니다. 왜 이것이 일이 될지도 모르는 어떤 아이디어? – doublebyte
필자의 입력 데이터는 숫자 벡터 (lon, lat)의 관계이며 [ELKI의 문서] (http://elki.dbs.ifi.lmu.de/wiki/HowTo/GeoMining)에 따르면 geo _Relation> vectors = db.getRelation (TypeUtil.NUMBER_VECTOR_FIELD); _ –
doublebyte
다른 [질문] (http://stackoverflow.com/questions/23684070/using-a-geo-)에서 내 의견을 변형하기로 결정했습니다. distance-function-on-elki) – doublebyte