これは、緯度経度座標でユークリッド距離を使用すると正しい結果が得られないとコメントした前の質問からのフォローアップです。ELKIが地理データを有効にするというドキュメントを読みました、つまり int その距離関数で、さまざまなクラスタリング アルゴリズムに存在します。ELKI のユーザー インターフェイスには、デフォルトの距離関数 (ユークリッド) をより適したものに置き換えるオプションがあることがわかります。また、その場合、データがどのように投影されるかを ELKI に伝える必要があるため、データムを提供する必要があることもわかります。UI での私のオプションは、(x,y) 座標を使用しているため "geo.LngLatDistanceFunction" を使用し、データは epsg:4326 にあるため "WGS84SpheroidEarthModel" を使用することです。それに応じてJavaでアルゴリズムをパラメータ化しようとしていますが、その方法がわかりません:次のようにパラメータを初期化すると:
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 はどうですか? (私はこれについて手がかりがありません)