1

これは、緯度経度座標でユークリッド距離を使用すると正しい結果が得られないとコメントした前の質問からのフォローアップです。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 はどうですか? (私はこれについて手がかりがありません)

4

1 に答える 1

2

デフォルトの地球モデルは です SphericalVincentyEarthModel。これはおそらく少し高速です (ただし、球体ではなく球状の地球を想定しています)。ただし、メートル単位の精度が必要でない限り、これは大きな違いはありません。この回答によると、最大誤差は距離の 0.3% である必要があります。

地球モデル パラメータを設定するにはEarthModel.MODEL_ID、オプション ID として使用します。( のパラメータ化によって参照されるようにLngLatDistanceFunction)。適切なオプション ID を見つけようとするときは、常にパラメータライザーを確認してください。すべてのオプション ID をゆっくりとパラメータライザーに移動しています。

于 2014-05-14T17:49:10.230 に答える