DBSCAN クラスタリングを行っていますが、緯度経度とは別に、クラスター結果で確認したい列がもう 1 つあります。たとえば、データは次のようになります。
28.6029445 77.3443552 1
28.6029511 77.3443573 2
28.6029436 77.3443458 3
28.6029011 77.3443032 4
28.6028967 77.3443042 5
28.6029087 77.3442829 6
28.6029132 77.3442797 7
minigui でparser.labelindices
2 に設定してタスクを実行すると、出力は次のようになります。
# Cluster: Cluster 0
ID=63222 28.6031295 77.3407848 441
ID=63225 28.603134 77.3407744 444
ID=63220 28.6031566667 77.3407816667 439
ID=63226 28.6030819 77.3407605 445
ID=63221 28.6032 77.3407616667 440
ID=63228 28.603085 77.34071 447
ID=63215 28.60318 77.3408583333 434
ID=63229 28.6030751 77.3407096 448
そのため、 として渡した 3 列目にまだ接続されていlabel
ます。緯度と経度だけを渡してクラスタリングの結果を確認しましたが、まったく同じです。したがって、列を「ラベル」として渡すことで、クラスターの結果で緯度が長い列を取得できます。
これをJavaコードで使用したい
// Setup parameters:
ListParameterization params = new ListParameterization();
params.addParameter(
FileBasedDatabaseConnection.Parameterizer.INPUT_ID,
fileLocation);
params.addParameter(
NumberVectorLabelParser.Parameterizer.LABEL_INDICES_ID,
2);
params.addParameter(AbstractDatabase.Parameterizer.INDEX_ID,
RStarTreeFactory.class);
しかし、これはNullPointerException
. MiniGui ではdbc.parser
デフォルトNumberVectorLabelParser
です。したがって、これはうまくいくはずです。私は何が欠けていますか?