問題タブ [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.

0 投票する
2 に答える
3282 参照

cluster-analysis - OPTICSクラスタリングアルゴリズムのELKI実装は、1つのクラスターのみを検出します

ELKI環境でのOPTICS実装の使用に問題があります。私はDBSCANの実装に同じデータを使用しましたが、それは魅力のように機能しました。おそらく私はパラメータで何かが欠けていますが、それを理解することはできません、すべてが正しいようです。

データは単純な300х2行列であり、それぞれに100ポイントを持つ3つのクラスターで構成されます。

DBSCANの結果:

DBSCANのクラスタリング結果

MinPts = 10、Eps = 1

光学結果:

OPTICSのクラスタリング結果

MinPts = 10

0 投票する
2 に答える
1333 参照

java - ELKI と RapidMiner での LOF 実装とは異なる結果

私は LOF の独自の実装を作成し、結果を ELKI および RapidMiner の実装と比較しようとしていますが、3 つすべてで異なる結果が得られます! その理由を突き止めようとしています。

私の参照データセットは 1 次元の 102 個の実数値で、多くの重複があります。以下に投稿してみます。

まず、RapidMiner の実装です。LOF スコアは、ELKI と私の結果とは大きく異なります。多くは無限大の LOF で戻ってきます。この実装は正しいと検証されていますか?

私の結果は ELKI に似ていますが、まったく同じ LOF 値が得られません。ELKI ソース コードのコメントをざっと見てみると、これは k 近傍の計算方法の違いによるものと思われます。

LOF 論文では、MinPts パラメーター (別の場所では k と呼ばれる) が最小数を指定します。k-近傍に含まれる点の数。ELKI の実装では、k 距離または k 個別距離内のすべてのポイントではなく、k 近傍を正確に k ポイントとして定義していると思います。ELKI が k 近傍をどのように構築するかを正確に確認できる人はいますか? また、ポイント自体を独自の近隣に含めることができるプライベート変数もありますが、デフォルトではそれを含めないようです。

検証目的で LOF スコアが添付されている公開参照データセットを知っている人はいますか?

--- 詳細は後述 ---

参考:ELKIのソースコードはこちら:

http://elki.dbs.ifi.lmu.de/browser/elki/trunk/src/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOF.java

RapidMiner のソース コードは次のとおりです。

http://code.google.com/p/rapidminer-anomalydetection/source/browse/trunk/src/de/dfki/madm/anomalydetection/evaluator/nearest_neighbor_based/LOFEvaluator.java

ここに私のテストデータセットがあります:

4.32323 5.12595 5.12595 5.12595 5.12595 5.7457 5.7457 5.7457 5.7457 5.7457 5.7457 5.97766 5.97766 6.07352 6.07352 6.12015 6.12015 6.12015 6.44797 6.44797 6.48131 6.48131 6.48131 6.48131 6.48131 6.48131 6.6333 6.6333 6.6333 6.70872 6.70872 6.70872 6.70872 6.70872 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.10361 7.10361 7.10361 7.10361 7.10361 7.10361 7.10361 7.10361 7.15651 7.15651 7.15651 7.15651 7.15651 7.15651 7.15651 7.15651 8.22598 8.22598 8.22598 8.22598 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538

たとえば、最初の数値 (4.32323) に対して次の LOF スコアを取得します。

  • RapidMiner: 無限大 (MinPts の下限/上限を 10,100 に設定)
  • ELKI: 2.6774 (k = 10、distfunction/reachdistfunction をデフォルトに設定)
  • 私の実装: 1.9531

私の実装が何をしているかについての詳細:

  1. MinPts は 10 なので、ポイントの 10 個の異なる隣接点を見つけています。したがって、4.32323 の近傍は、実際には 5.12595 から 6.77579 までの 48 ポイントです。
  2. それは私に 2.45256 の k-distinct 距離を与えます
  3. 最初のネイバーの到達可能距離を 1.58277 として計算しています
  4. サンプルの LRD を 1/(99.9103/48) として計算しています。
  5. 48 個のネイバーすべての lrd(o)/lrd(p) の合計は 93.748939 です。
  6. 1.9531 の LOF を取得するには、48 で割ります
0 投票する
2 に答える
6074 参照

java - ELKI でのクラスタリング アルゴリズムの実行

ELKI をプログラムで使用して、k-medoids クラスタリング アルゴリズムを実行する必要があります。アルゴリズムに入力したい類似度行列があります。

ELKI アルゴリズムを実行するためのコード スニペットはありますか? Database基本的に、オブジェクトとRelationオブジェクトの作成方法、カスタム距離関数の作成方法、アルゴリズム出力の読み取り方法を知る必要があります。

残念ながら、ELKI チュートリアル ( http://elki.dbs.ifi.lmu.de/wiki/Tutorial ) は GUI バージョンと新しいアルゴリズムの実装に焦点を当てており、Javadoc を見てコードを書こうとするのはイライラします。

誰かが k-medoid 用の使いやすいライブラリを知っている場合、それはおそらくこの質問に対する良い答えです。

0 投票する
1 に答える
317 参照

algorithm - ELKI COPAC の実装

公式サイト (mouse.csv) で提供されているサンプル データセットで COPAC ELKI 実装を実行しようとしましたが、NullPointerException が発生し、省略した詳細があると思います (恥ずかしい)。

例外は次のとおりです。

de.lmu.ifi.dbs.elki.distance.distanceresultlist.AbstractKNNHeap$Comp の de.lmu.ifi.dbs.elki.database.ids.integer.DoubleDistanceIntegerDBIDPair.compareByDistance (不明なソース) でタスクが失敗しました。 de.lmu.ifi.dbs.elki.distance.distanceresultlist.AbstractKNNHeap$Compare(不明なソース) の比較 (不明なソース) de.lmu.ifi.dbs.elki.utilities.datastructures.heap.TopBoundedHeap.add( de.lmu.ifi.dbs.elki.database.query.knn.LinearScanRawDoubleDistanceKNNQuery.getKNNForObjectBenchmarked(不明なソース) de.lmu.ifi.dbs.elki.database.query.knn.LinearScanRawDoubleDistanceKNNQuery.getKNNForObject(不明なソース) ) de.lmu.ifi.dbs.elki.database.query.knn.LinearScanRawDoubleDistanceKNNQuery.getKNNForDBID (未知のソース) de.lmu.ifi.dbs.elki.index.preprocessed で。localpca.KNNQueryFilteredPCAIndex.objectsForPCA (未知のソース) de.lmu.ifi.dbs.elki.index.preprocessed.localpca.KNNQueryFilteredPCAIndex.objectsForPCA (未知のソース) de.lmu.ifi.dbs.elki.index.preprocessed.localpca. de.lmu.ifi.dbs.elki.index.preprocessed.localpca.AbstractFilteredPCAIndex.getLocalProjection の AbstractFilteredPCAIndex.preprocess (不明なソース) de.lmu.ifi.dbs.elki.index.preprocessed.localpca.AbstractFilteredPCAIndex で。 getLocalProjection (未知のソース) で de.lmu.ifi.dbs.elki.algorithm.clustering.correlation.COPAC.run (未知のソース) で sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:57) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm.run (未知のソース) で de.lmu.ifi.dbs.elki で java.lang.reflect.Method.invoke(Method.java:616) で。ワークフロー.AlgorithmStep.runAlgorithms(不明なソース) [...]

これは私が使用するパラメータの設定です:

-dbc.in [パス省略]/mouse.csv

-アルゴリズム clustering.correlation.COPAC

-copac.preprocessor localpca.KNNQueryFilteredPCAIndex

-copac.partitionAlgorithm gdbscan.GeneralizedDBSCAN

-dbscan.epsilon 0.00400000

-dbscan.minpts 3

誰か情報をくれませんか?

0 投票する
1 に答える
970 参照

string - ELKI を使用した文字列データのクラスタリング

Edit Distance / Levenshtein Distance に基づいて、ELKI を使用して多数の文字列をクラスター化する必要があります。データ セットが大きすぎるため、ファイル ベースの事前計算された距離行列は避けたいと思います。どうやって

(a) ファイルから ELKI に文字列データをロードしますか (「ラベル」のみ)?

(b) ラベルにアクセスする距離関数を実装します (AbstractDBIDDistanceFunction を拡張しますが、ラベルを取得する方法は?)

いくつかのコード スニペットまたは入力ファイルの例が役立ちます。

0 投票する
1 に答える
1253 参照

cluster-analysis - ELKI で OPTICS アルゴリズムを実行する

私は通常、R ユーザーです (初心者の R ユーザーですが、コツをつかみ始めています)。しかし、私は ELKI について肯定的なことを聞​​いています。特にその速度です。この古い投稿「SQL に保存されている近くの緯度と経度の場所をグループ化する方法」に出くわしましたが、Anony-Mousse によって投稿された回答は、私がやりたいことと似ています。彼が Google ドライブで共有した KML ファイルまで、彼が行った各ステップを複製できるようにしたいと考えています。

ELKI をダウンロードし、次のようなミニ GUI を実行できます。

ここに画像の説明を入力

Anony-Mousse ができたことを行う方法について、誰かがいくつかの手順を投稿できますか?

私のデータは本質的に非常に似ています。私はcsvファイルに住所をジオコーディングしており(具体的には、各タプルはイベントであり、変数/機能/列の1つはイベントのジオコーディングされた住所です)、上記のリンクのOPによく似たクラスターを探しています.

Anony-Mousse がこの投稿を読んで助けに来てくれることを願っています。しかし、他の誰かが私を道に導くのを手伝ってくれるなら、私は感謝しています.

0 投票する
1 に答える
625 参照

cluster-analysis - ELKI DBSCAN クラスターの凸包をファイルに書き込む

データ分析に ELKI を使い始めましたが、DBSCAN を実行した後に計算されたクラスターの凸包をファイルに出力することは、一見単純なことのように思えてできません。視覚化 GUI を使用して凸包を視覚化できますが、KML ファイルを生成できません。クラスタリングの結果を (ResultWriter の結果ハンドラを使用して) フォルダーに書き込むこともできますが、KMLOutputHandler を設定してもファイルが生成されません。ログ ウィンドウにエラー メッセージが表示されません (verbose パラメータを true に設定しても)。

ELKI で KML ファイルを生成するコツはありますか? 誰でもこれを行う手順を踏むことができますか?

どんな助けでも大歓迎です。

(余談ですが、ELKI を使用して DBSCAN 結果のアルファ形状を生成することは可能ですか? もしそうなら、どのパラメーターを調整する必要がありますか?)

0 投票する
1 に答える
689 参照

data-mining - LatLngDistanceFunction で ELKI クラスタリングを使用する方法

クラスタリングのデフォルト設定、特に EuclideanDistanceFunction はうまく機能しているようです。ただし、lng/lat の形式の空間データを使用してクラスタリングを実行したいのですが、距離関数を変更すると elki がクラッシュします。

このエラーが何を意味するのか(私には)明確ではありません。クラスタリング関数が地理空間データで機能しない可能性はありますか?

これに対する簡単な回避策はありますか?必要な機能(マインドセット)を実装するのは難しいでしょうか?

0 投票する
1 に答える
465 参照

cluster-analysis - カスタム オブジェクトで ELKI を使用し、結果を理解する

プログラムで ELKI の階層的クラスタリングの SLINK 実装を使用しようとしています。

クラスター化する必要がある (自分のタイプの) オブジェクトのセットがあります。そのために、クラスタリングの前にそれらを特徴ベクトルに変換します。

これは、現在実行して結果を生成する方法です(コードはScalaにあります):

これで、結果はClusteringtype の要素を含む になりますModel。それらを出力することはできますが、特にパラメータ化できないと思われるSLINKタイプのモデルを返すため、この結果を理解する方法がわかりません。DendrogramModel

featureVectors具体的には、結果を元の要素 (以前に変数を作成した元の要素) にリンクするにはどうすればよいですか?

結果から取得するアルゴリズムの初期化と実行を通じて、ある種のカスタム モデルを作成するか、何らかの方法で元の要素へのリンクを維持する必要があると思います。ただし、これをどこから始めればよいかわかりません。

ELKI を独自のプログラムに埋め込むことはお勧めできません。ただし、他の方法で ELKI を呼び出す場合も同じようです。プログラムの実行時に、クラスター化して結果をオブジェクトにマップする必要があります。