[解決済み] 1次元数配列のクラスタリング
質問
このような配列があるとします。
[1,1,2,3,10,11,13,67,71]
このような配列に分割する便利な方法はありますか?
[[1,1,2,3],[10,11,13],[67,71]]
私は同じような質問を見ましたが、ほとんどの人がk-meansを使ってポイントをクラスタリングすることを提案していました。 scipy のような、私のような初心者が使うにはかなり分かりにくいものです。また、k-meansは2次元以上のクラスタリングに適していると思うのですが?N個の数値からなる配列を、数値に応じた数のパーティション/クラスタリングに分割する方法はあるのでしょうか?
厳密な範囲分割を提案する人もいますが、必ずしも期待通りの結果が得られるとは限りません。 期待される
どのように解決するのですか?
1次元の問題に多次元のクラスタリングアルゴリズムを使わない。1次元は 多く であるため、素朴に考えているよりも特別です。 ソート というのは、実際にができるので、物事がずっと簡単になるからです。
実際には、クラスタリングとは呼ばず、セグメンテーションやナチュラルブレーク最適化などと呼ばれることが多いようです。
あなたは ジェンクス ナチュラルブレイクの最適化 といった統計的手法があります。 カーネル密度推定 は、強力な統計的背景を持つ、見るのに良い方法です。密度のローカルミニマムは、データをクラスタに分割するのに適した場所であり、そうするための統計的理由があります。KDEは1次元のデータをクラスタリングするための最も健全な方法かもしれません。
KDEを使うと、1次元のデータがよりよく振舞うことが再び明らかになります。1次元では、ローカル ミニマムがありますが、2次元では、鞍点やそのような分割点があるかもしれません。これを見てください。 Wikipediaの鞍点の図解 このような点がクラスターを分割するのに適切であるかどうかは、こちらのを参照してください。
参照 この回答 を参照してください(緑のマーカーはクラスタモード、赤のマーカーはデータが切断された点、Y軸は密度の対数尤度です)。
関連
-
[解決済み] Scala:Arrayに要素を追加する最良の方法は何ですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
-
[解決済み] 数百万のピクセルを持つ2Dの非ボックス化ピクセル配列にはどのようなHaskell表現が推奨されますか?
-
[解決済み] Perl の配列を繰り返し処理する最良の方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Verilogで1次元と2次元のバイト配列を宣言して使用するには?
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] 選択ソートが安定する理由と不安定な理由
-
[解決済み] Ruby: ハッシュの配列で Enumerator を取得しようとすると nil:NilClass の未定義メソッド `[]' が発生する。
-
[解決済み] Javascript/Typescriptで配列のクローンを作成する
-
[解決済み] Bashでfindコマンドの結果を配列として保存するには?
-
[解決済み] 配列のインデックスやキーをチェックする最も簡単な方法とは?
-
[解決済み] 配列全体のダンプ:console.log と console.dir の出力は "... NUM more items "です。]
-
[解決済み] Postgresでjson配列を行に変換する方法
-
[解決済み] CoffeeScriptで、Arrayに値を追加するにはどうしたらいいですか?