3

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.labelindices2 に設定してタスクを実行すると、出力は次のようになります。

# 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です。したがって、これはうまくいくはずです。私は何が欠けていますか?

4

1 に答える 1

3

NPE を調べてみます。代わりに、より役立つエラー メッセージが返されるはずです。

ほとんどの場合、問題はこのパラメータが typeList<Integer>であることです。つまり、リストを渡す必要があります。Stringまたは、解析されるa を渡すこともできます。以下は問題なく動作するはずです。

params.addParameter(
         NumberVectorLabelParser.Parameterizer.LABEL_INDICES_ID,
         "2");

テキストライターはラベルをそのまま印刷する可能性があることに注意してください(私はこれを確認していません)。したがって、データセットが 3 次元であると見なされたことを示すものとして出力を受け取ることはできません。

デバッグ ハンドラー-resulthandler LogResultStructureResultHandler -verboseは、型出力を提供する必要があります。

java -jar elki.jar KDDCLIApplication -dbc.in dbpedia.gz \
-algorithm NullAlgorithm \
-resulthandler LogResultStructureResultHandler -verbose

次のような出力が得られるはずです。

de.lmu.ifi.dbs.elki.datasource.FileBasedDatabaseConnection.load: 1941 ms
de.lmu.ifi.dbs.elki.algorithm.NullAlgorithm.runtime: 0 ms
BasicResult: Algorithm Step (main)
 StaticArrayDatabase: Database (database)
  DBIDView: Database IDs (DBID)
  MaterializedRelation: DoubleVector,dim=2 (relation)
  MaterializedRelation: LabelList (relation)
 SettingsResult: Settings (settings)

この場合、私のデータ セットは Wikipedia からの座標とそれぞれの名前です。2 次元DoubleVectorのリレーションとLabelList、オブジェクト名を格納するリレーションがあります。

于 2014-05-28T12:23:02.950 に答える