問題タブ [dbscan]
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.
python - DBSCANのパラメータeps、python
ポイントのセットがあります。それらのジオメトリ (SRID: 4326) はデータベースに保存されます。このポイントを DBSCAN でクラスター化することを目的としたコードが提供されました。パラメータは次のように設定されています: eps=1000, min_points=1.
1000 メートル未満のクラスターを取得します。私は、距離が 1000 メートル未満の 2 つのポイントが同じクラスターに属すると考えていました。イプシロンは本当にメートルですか?
コードは次のとおりです。
目的は、それを実行する別の方法を見つけることではなく、実際に eps の価値を理解することです。距離で表すもの。Min_sample が 1 に設定されているのは、実際に 1 サンプルのサイズのクラスターを持つことを受け入れるためです。
cluster-analysis - OPTICSxi クラスタリングの結果の解釈
都市のユーザー生成データなど、密度が変化する領域でクラスターを検出することに興味があり、そのためにOPTICSアルゴリズムを採用しました。
DBSCANとは異なり、OPTICS アルゴリズムは厳密なクラスター パーティションを生成しませんが、データベースの順序付けを拡張します。クラスター パーティションを生成するために、OPTICSxi を使用します。これは、OPTICS の出力に基づいて分類を生成する別のアルゴリズムです。OPTICS の出力からクラスター パーティションを抽出できるライブラリはほとんどなく、ELKIの OPTICSxi 実装はその 1 つです。
DBSCAN の結果をどのように解釈するかは、私には非常に明確です (ただし、「意味のある」グローバル パラメータを設定するのはそれほど簡単ではありません)。DBSCAN は、面積あたりのポイント数 (minpts/epsilon) で表される密度によって特徴付けられるクラスターの「プロトタイプ」を検出します。OPTICSxi の結果は、解釈が少し難しいようです。
OPTICSxi の出力で時々検出する現象が 2 つありますが、説明できません。1 つは、マップの一部をリンクする「スパイク」クラスターの出現です。それらは非常に少数のポイントで構成されているように見え、アルゴリズムがそれらを同じクラスターにグループ化する方法を理解していないため、説明できません。それらは本当に密度変化の「回廊」を表しているのでしょうか? 基礎となるデータを見ると、そのようには見えません。これらの「スパイク」は、次の画像で確認できます。
私が説明できないもう 1 つの現象は、同じ階層レベルの「重複する」クラスターが存在する場合があるという事実です。OPTICSxi は、データベース (樹形図など) の OPTICS 順序付けに基づいており、そのダイアグラムには繰り返しポイントはありません。
これは階層的クラスタリングであるため、下位レベルのクラスターには上位レベルのクラスターが含まれていると見なし、凸包を構築するときにその考えが適用されます。ただし、同じ階層レベルで他のクラスターと交差するクラスターを持つことの正当性はわかりません。これは、実際には、いくつかのポイントが二重のクラスター「メンバーシップ」を持つことを意味します。以下の画像では、同じ階層レベル (0) を持ついくつかの交差するクラスターを見ることができます。
最後に、私があなたに残しておきたい最も重要な考え/質問は、OPTICSxi クラスタリング分類で何が見られると予想されるかということです。この問題は、OPTICSxi をパラメータ化するタスクと密接に関連しています。
特定のクラスター問題に対して OPTICSxi を実行した研究はほとんど見られないため、最適なクラスター分類が何であるかを見つけるのに苦労しています。つまり、意味のある/有用な結果を提供し、DBSCAN クラスタリングに何らかの価値を追加できるものです。その質問に答えるために、さまざまなパラメーターの組み合わせで OPTICSxi を何度も実行し、以下で説明する 3 つを選択しました。
この実行では、大きな値のイプシロン (2Km) を使用しました。この値の意味は、大きなクラスター (最大 2Km) を受け入れることです。アルゴリズムはクラスターを「マージ」するため、非常に大きなクラスターになり、ほぼ確実に密度が低くなります。私はこの出力が好きです。なぜなら、それは分類の階層構造を明らかにするからです。また、実際には、OPTICS の宣伝されている「強み」である、異なるパラメーターの組み合わせ (異なる密度) を使用して DBSCAN をいくつか実行したことを思い出させます。前に述べたように、クラスターが小さいほど、階層スケールのレベルが高くなり、密度が高くなります。
この実行では、「コントラスト」パラメーターが前回の実行と同じであっても、多数のクラスターが見られます。これは主に、少数の minpts を選択したためです。これにより、少数のポイントを持つクラスターを受け入れることが確立されました。この場合のイプシロンは短いため、これらの大きなクラスターがマップの大部分を占めることはありません。この出力は、前の出力ほど興味深いものではないと思います。主な理由は、階層構造を持っていても、同じレベルに多くのクラスターがあり、それらの多くが交差しているためです。解釈的には先ほどと似た全体的な「形」が見えますが、実際には「ノイズ」として見逃されやすい小さなクラスターがたくさん散らばっています。
この実行では、minpts が大きいことを除いて、前の実行と同様のパラメーターの選択があります。その結果、検出されるクラスターが少なくなり、重なりが少なくなるだけでなく、ほとんど同じレベルになります。
DBSCAN に価値を付加する観点から、最初のパラメーターの組み合わせを選択します。これは、データの階層図を提供し、どの領域がより密度が高いかを明確に明らかにするためです。パラメータの最後の組み合わせである私見は、調査地域全体で同様のクラスターを見つけているため、密度のグローバル分布のアイデアを提供できません。私は他の意見を読むことに興味があります。
performance - R*-Tree を使用した ELKI DBSCAN
ELKI ライブラリを使用して DBSCAN クラスタリング テスト アプリケーションを実装しようとしています。私のデータセットは 6 次元で、約 100.000 個のオブジェクトで構成されています。
コード内で R*-Tree ELKI 最適化を使用しようとしましたが、コードをベンチマークすると、まだ O(n^2) で動作しているようです。
これは、アプリケーション内で使用するコードです。
上記のコードを実行すると、次の結果が得られます。
時間は、dbscan.run(db) の周りで単純な System.currentTimeMillis() を使用してベンチマークされます。時間の列を見ると、n^2 のような傾向であり、nlog(n) のような傾向ではないことがわかりますが、R*-Tree 最適化で ELKI DBSCAN を使用するために何が欠けているのか理解できません。
助けや提案をありがとう。
cluster-analysis - Rapidminer および scikit-learn の DBSCAN アルゴリズム
Python で公称データをクラスタリングするクラスタリング アルゴリズムを見つけようとしています。そのために、RapidMiner で DBSCAN アルゴリズムを試してみましたが、公称データで動作しました。しかし、scikit-learn が提供する DBSCAN アルゴリズムで同じデータセットを試すと、関数が文字列を float に変換できないというエラーが発生しました。
Rapidminer と scikit-learn の DBSCAN は異なりますか?どうすればその問題を解決できますか? また、公称データで機能する別のクラスタリング アルゴリズムを教えていただければ、それは素晴らしいでしょうか?
design-patterns - 別の変数 DBSCAN に関連して一連の変数を変換する方法を見つける
DBSCANアルゴリズムの値を使用して機能させるために、一連の変数を別の変数に関連して変換する方法/方法を探しています。
私の一連の変数は「関心」と呼ばれ、1 つのデータに 14 の関心のうち少なくとも 3 つを含めることができます。私のデータには多くのユニークな興味のあるセットがあるようで、それを数値に変換しようとすると、「興味」内のパターンが破壊され、クラスター自体が破壊されます。
データ (関心) を、関心内のパターンが破壊されない数値形式に変換するにはどうすればよいですか?
cluster-analysis - DBSCAN 入力の説明
DBSCANアルゴリズムは正確に何を入力として受け取りますか?
weka
コード化されたアルゴリズム内とアルゴリズム内で出力が異なるのはなぜですか?
コード化されたアルゴリズムでは、2 つの入力しか必要としませweka
んが、3 つの入力が必要になる場合があります。
誰かがアルゴリズムを理解するのを手伝ってくれますか?
python - Python: 3 次元空間での DBSCAN
私はあまり運がなくても、3次元点のDBSCANの実装を探し回っています。これを処理するライブラリを知っている人、またはこれを行った経験がある人はいますか? DBSCAN アルゴリズムは、e 値を半径メトリックにし、ポイント間の距離をユークリッド分離で測定することにより、3 次元を処理できると想定しています。誰かがこれを実装しようとしていて、それを共有したい場合は、感謝します.