重複の可能性:
1D 数値配列のクラスタリング
のような数字の配列があります[1, 20, 300, 45, 5, 60, 10, 270, 3]
。近接性に基づいてこれらの数値をグループ化するための効率的なアルゴリズムは何ですか? この場合[1, 3, 5]
、 、[20, 45, 60]
、のようなものが期待できます[270, 300]
。
重複の可能性:
1D 数値配列のクラスタリング
のような数字の配列があります[1, 20, 300, 45, 5, 60, 10, 270, 3]
。近接性に基づいてこれらの数値をグループ化するための効率的なアルゴリズムは何ですか? この場合[1, 3, 5]
、 、[20, 45, 60]
、のようなものが期待できます[270, 300]
。
あなたが求めていることの最も難しい部分は、実際に近接を定義する方法です。からの出力は何だと思います[5,10,15,20]
か? と同じグループ化になり[500,1000,1500,2000]
ますか?
どう[1,2,3,5,7,8,9]
ですか?グループは 1 つか 3 つですか。(または2つ?)。
どう[1,2,3,5,7,8,9,1075,4000]
ですか?1075 と 4000 はグループ化されますか? 小さい数字のグループ化は、サンプル内の大きい数字によって変更されますか?
この質問は、機械学習の分野全体で尋ねられるものです:クラスター分析 おそらく、この関連する質問が役に立ちますか?
あなたが望むのはK-meansクラスタリング(関連する質問にリンクされていると便利です)だと思いますが、データを使用するにはデータを分割するグループの数を知る必要があります。
これは非常にやり過ぎかもしれませんが、階層的クラスタリング アルゴリズムを調べることをお勧めします。これらのアルゴリズムは値を階層にグループ化し、そこから最適な k クラスターを簡単に抽出できます。凝集型クラスタリングは、おそらくこれらのアプローチの中で実装が最も簡単であり、経験上、非常に優れたクラスターを生成する傾向があります。
お役に立てれば!