問題タブ [elki]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java での地理データのクラスタリング
私の目的は、機械学習ライブラリを使用して、ポイント (緯度/経度) と (x, y) をクラスター化できるようにすることです。異なるクラスタリング アルゴリズムを簡単に切り替えることができる API を使用したいと考えています。
Java-ML http://java-ml.sourceforge.net/content/clustering-basicsの使用を開始し、チュートリアルを機能させることができましたが、地理的なポイントのインスタンスを作成する方法がわかりません。これを機能させるには拡張net.sf.javaml.core.AbstractInstanceする必要がありますか? SparseInstance' ' と ' ' の2 つのインスタンス タイプしか作成できませんDenseInstance。
その後、それElkiを使用して地理データをクラスター化した人 ELKIでDBSCANを実行していますが、GUIを使用したくないので、Javaクラスからアルゴリズムを実行したいだけです。
アドバイス/参考文献は大歓迎です。
java - Mongodb での ELKI の使用
テストケースを使用して、ELKI を Java から直接使用できることを確認できましたが、MongoDB からデータを読み取り、ELKI を使用して地理的 (経度、緯度) データをクラスター化したいと考えています。
ELKI を使用して CSV ファイルからのデータのみをクラスター化できます。de.lmu.ifi.dbs.elki.database.Database を MongoDB に接続することは可能ですか? Java デバッガーから、de.lmu.ifi.dbs.elki.database.Database に databaseconnection フィールドがあることがわかります。
各行の POJO を作成する MongoDB にクエリを実行し、ELKI を使用してこれらのオブジェクトをクラスター化したいと考えています。
MongoDB からデータを読み取って CSV ファイルに書き込み、ELKI を使用してその CSV ファイルを読み取ることは可能ですが、もっと簡単な解決策があるかどうか知りたいです。
---------調査結果_1:
ELKI から - オブジェクトの List<String> を使用してデータベースにデータを入力すると、de.lmu.ifi.dbs.elki.datasource.DatabaseConnection を実装し、特に MultiObjectsBundle のインスタンスを返す loadData() メソッドをオーバーライドする必要があることがわかりました。
したがって、POJO のリストを MultiObjectsBundle でラップする必要があると思います。今、私は MultiObjectsBundle を見ていますが、データを列に保持する必要があるようです。列のデータ型がリストであるのはなぜですか?リストではありませんか? クラスター化したいアイテムのリストだけですか?
私は少し混乱しています。ELKI は、POJO の経度と緯度を確認する必要があることをどのように認識しますか? どこで ELKI にこれを行うように指示しますか? de.lmu.ifi.dbs.elki.data.type.SimpleTypeInformation を使用していますか?
---------調査結果_2:
ArrayAdapterDatabaseConnection を使用しようとしましたが、DatabaseConnection を実装しようとしました。申し訳ありませんが、理解するには非常に簡単な言葉が必要です。
これはクラスタリングのための私のコードです:
ArrayAdapterDatabaseConnection は 2 つのクラスターを生成します。epsilon=0.008 を設定すると、epsilon の値をいじる必要がありました。dbscan はクラスターの作成を開始しました。epsilon=0.04 を設定すると、すべてのアイテムが 1 つのクラスターに含まれていました。
私も DatabaseConnection を実装しようとしました:
これらの long/lat は ID に関連付けられており、値をこの ID にリンクする必要があります。(上記のコードで) ID オフセットを使用してそれを行う唯一の方法はありますか? ExternalID 列を追加しようとしましたが、特定の NumberVector の ExternalID を取得する方法がわかりません。
また、ELKI の距離関数の使用を見た後、Elki の longLatDistanceを使用しようとしましたが、機能せず、実装する例が見つかりませんでした。
plot - Elki は Java から直接クラスタ ポイントをプロットします
Elki を使用して、Elki のクラスター結果を直接グラフにプロットすることは可能ですか? これを行うテストケースhttp://elki.dbs.ifi.lmu.de/browser/elki/elki/src/test/java#de/lmu/ifi/dbs/elkiは見当たりません。Java を使用してポイントをプロットできることはわかっていますが、Elki を使用してそれを行いたいと考えていました。
java - 大規模な地理データセットを使用して ELKI で OPTICS クラスタリングを実行する
ELKI の rstartree で OPTICSXi を使用して、約 600 万のレコードを含む地理データセット (緯度と経度)、Gowalla をクラスター化していますが、MiniGUI は常に「Java ヒープ スペース」と「エラー: メモリ不足」を示します。
ELKIのOPTICSXiを使って、11分で120万の位置情報を扱ったAnony Mousseの回答を見たことがあります。私は困惑している。ELKI がこれらのエラーを報告するのはなぜですか?
Java プラットフォームまたは ELKI で変更する必要があるパラメーターはありますか?

cluster-analysis - ELKI を使用した複数の属性のクラスタリング
ELKIフレームワークを使用して、地理座標 (経度、緯度) によって定義された一連のポイントをクラスター化します。私が使用するアルゴリズムは DBSCAN です。
ここで、ポイントの重要性 (サイズとしましょう) を重み付けする別の (数値) 属性を追加したいと思います。
理論的には、ポイントは (2D ではなく) 3 次元空間で定義され、距離は地理的距離とデータ距離の混合になります。
実際には、ELKI でこれを実行しようとしましたが、具体的な問題に足を踏み入れました。クラスタリング アルゴリズムは、入力として「データベース」を想定しています。
このデータベースは、とりわけデータベース接続を読み取る LisParametrization から作成されます。
最後に、このデータベース接続は 2D 配列からデータを読み取ります。
既存のデータ マトリックス ( double[rows][cols]) を ELKI データベースにインポートします。
私の質問は: この 2D 配列を *D 行列に置き換える方法はありますか?
たとえば、私の場合、3D 配列を使用して、2 つの地理座標と数値属性を格納したいと考えています。このようなもの:
配列[][][]
cluster-analysis - ELKI から Optics Xi に到達可能性リストを入力してクラスターを取得する方法はありますか?
Optics アルゴリズムを実行するためにデータを適切に ELKI に取り込むのに問題がありますが、Optics の R 実装を使用すると、到達可能距離のリストを簡単に取得できます。このようなファイルに書き込むことができます。(指数、距離)
1 情報
2 0.5
3 0.9 ...
極小値で区切られたクラスターを見つけたいです。ELKI ソフトウェアの Optics Xi アルゴリズムがこれを行うと思いますが、データのインポートに問題があるため、使用できません。
Optics 論文の疑似コードを使用して、Optics クラスター抽出アルゴリズムを別の言語で記述する方が簡単でしょうか? 最も基本的なことは、インデックスが互いに隣接しているときにインデックスをクラスター化するだけであり、新しい局所最小値への減少はないと思います。
ありがとう
machine-learning - ELKI OPTICS 事前計算距離マトリックス
このアルゴリズムを自分のデータセットで機能させることができないようです。そのため、データの非常に小さなサブセットを取得して機能させようとしましたが、それも機能しませんでした。
事前に計算された距離行列を ELKI に入力し、ポイントの到達可能距離リストを検索させたいのですが、すべてのポイントで到達可能距離が 0 になります。
私の ELKI の主張は次のとおりです。
実行中: -dbc DBIDRangeDatabaseConnection -idgen.start 1 -idgen.count 4 -algorithm clustering.optics.OPTICSList -algorithm.distancefunction external.FileBasedDoubleDistanceFunction -distance.matrix /Users/jperrie/Documents/testfile.txt -optics.epsilon 1.0 -optics .minpts 2 -resulthandler ResultWriter -out /Applications/elki-0.7.0/elkioutputtest
入力ファイルの代わりに DBIDRangeDatabaseConnection を使用してインデックス 1 ~ 4 を作成し、次の形式の距離行列を渡します。ここで、各行には 2 つのインデックスと距離があります。
私が間違っている場所へのポインタをいただければ幸いです。