タグ付けされた質問 「clustering」

クラスター分析またはクラスター化は、同じグループ(クラスターと呼ばれる)内のオブジェクトが他のグループ(クラスター)内のオブジェクトよりも(何らかの意味で)互いに類似するようにオブジェクトのセットをグループ化するタスクです。これは、探索的データマイニングの主要なタスクであり、統計データ分析の一般的な手法であり、機械学習、パターン認識、画像分析、情報検索などの多くの分野で使用されています。

2
マトリックス内の「クラスター」または「グループ」の識別
個別の要素が入力されたマトリックスがあり、それらを(Rを使用して)そのままのグループにクラスター化する必要があります。したがって、たとえば、次のマトリックスを見てください。 [A B B C A] [A A B A A] [A B B C C] [A A A A A] Aには2つの個別のクラスター、Cには2つの個別のクラスター、Bには1つのクラスターがあります。 私が探している出力は、理想的には次のような一意のIDを各クラスターに割り当てます。 [1 2 2 3 4] [1 1 2 4 4] [1 2 2 5 5] [1 1 1 1 1] 今、私は最近傍を繰り返しチェックするだけで再帰的にこれを行うコードを書きましたが、行列が大きくなると(つまり、100x100)すぐにオーバーフローします。 これを行うことができるRの組み込み関数はありますか?ラスターと画像処理を調べましたが、うまくいきませんでした。私はそれがそこにあるに違いないと確信しています。
7 r  clustering 

1
視覚的な言葉のバッグ
私がやろうとしていること: 一部の画像をローカルおよびグローバル機能を使用して分類しようとしています。 これまでに行ったこと: 各画像のシフト記述子を抽出しました。これをk平均の入力として使用して、すべての画像のすべての機能から語彙を作成しています。ここから、画像のふるい分け機能をk平均法の予測メソッドに渡してクラスターのラベルを取得することで、各画像のクラスターからヒストグラムを作成します。ここから、各ビンのラベルの数をカウントしてヒストグラムを作成します。これでnxm行列ができました。nは画像の数、mは各画像のクラスター(特徴/単語)の数です。 このマトリックスを分類器に送り、画像の分類を取得します。 一言で言えば、ステップ: 各画像にnx128行列を与えるシフト機能記述子を抽出します すべての機能記述子を1つの大きなリストにスタックします これらの機能すべてをkmeansアルゴリズム設定k = 100に適合させます。 すべての画像について、そのシフト機能を使用して、同じトレーニング済みkmeansモデルを使用してクラスターのラベルを予測します ビンの数としてkを使用してクラスターからヒストグラムを作成し、モデルの各ラベルのビンに1を追加します。(画像にシフトからの10個の特徴がある場合、10個のラベルが与えられ、これらの10個のラベルはkの範囲にあるため、各ラベルについて、ヒストグラムの対応するビンに追加します)。 これでnxk行列ができました。nは画像の数、kはクラスターの数です。 次に、ヒストグラムを分類子にフィードし、テストデータを予測するように依頼します。 問題: Bag of Visual Wordsを正しく実行していますか? これが私のコードです: def extract_features(df): IF = imageFeatures() global_features = [] sift_features = [] labels = [] for i, (index, sample) in enumerate(df.iterrows()): image = cv2.imread(sample["location"]) image = cv2.resize(image, shape) hist = …


6
高次元バイナリスパースデータのクラスタリングアルゴリズム
以下のような10,000遺伝子のデータセットがあります person gene1 gene2 ... gene10000 ethnic 1 0 1 1 asian 2 1 0 1 European 各行は、人がDNAに遺伝子を持っているかどうかを意味します。上記のデータに基づいて、さまざまな民族グループを分類しようとしています。しかし、最初にいくつかのクラスタリングアルゴリズムを使用して、さまざまな民族グループのクラスターがどのように見えるかを視覚化したいと思います。このクラスタリングアルゴリズムを使用してグループを分類することはありません。適切な個別のクラスターや重複するクラスターなどがある場合、それがどのように見えるかを視覚化するためだけに使用されます。 このタイプのデータセットには、いくつかのクラスタリングアルゴリズムをお勧めします。また、次元は10000です。これはクラスタリングの問題になるのでしょうか?最初にいくつかの次元削減アルゴリズムを使用する必要がありますか?もしそうなら、あなたの推奨事項を教えてください。前もって感謝します。

1
非数値データに基づいて重複IDを集約するためのアルゴリズム?
私は人の大規模なデータセット(2Mエントリ)を持っていますが、多くの人がわずかに(または大幅に)異なる識別情報を持つデータベースに複数のエントリを持っています。たとえば、J。DoeとJohn Doeがいる場合や、電子メールアドレスが付随するJohn Doeと電子メールアドレスが付随しないJohn Doeがある場合があります。 私はさまざまなクラスタリングアルゴリズムを調べてきましたが、次のようなルールに基づいてエントリを集約するということは、私がやっていることに適していないようです。 名前の1つがすべて大文字で書かれているかどうかに基づいて、姓名を推測します メールアドレスが一致する場合は「J. Doe」と「J. Doe」を集計する 「J.」で始まる姓と名「Doe」が他にない場合は、「J。Doe」を「John Doe」に集約します。 データセットが小さい場合、これはいくつかの単純なルールだけで比較的簡単なタスクになりますが、エントリの数が多いと、集約タスクが非常に遅くなり、ロジックがかなり複雑になります。私の現在の解決策(データベース内の全文検索機能を使用して類似のエントリを検索し、それらの結果に基づいてハッシュを追加し、次にハッシュとあいまいさの種類の組み合わせに基づいて集計する)は機能しますが、実行しようとするたびにそれを更新するだけで、誰かがすでに解決したような問題だと叫ぶだけです。しかし、私は解決策を見つけることができませんでした。 このようなルールに基づいて、私がやりたいことを行うアルゴリズムはありますか?または役立つかもしれない特定のパッケージまたはソフトウェア?それとも私はこの問題に完全に間違っているのですか? ありがとう! (ただし、IDを誤って集計する方法はさまざまにあることを承知している(たとえば、J。DoeはJohn DoeまたはJames Doeを意味する可能性がある)ので、物事を集計しようとすることに対する警告は必要ありません。)



1
機能を抽出し、監視ツールからのアラートメールを適切なカテゴリに分類する方法
私の会社は多くのクライアントにマネージドサービスを提供しています。お客様は通常、次の監視ツールを使用してサーバー/ウェブアプリを監視します。 OpsView ナギオス Pingdom カスタムシェルスクリプト 問題が見つかると、Opsチームにアラートメールが送信され、問題を修正するためのアクションが行われます。 何千ものサーバーを管理しているため、運用チームの受信トレイは常に電子メールアラートで溢れています。カスケード効果がある単一の問題でも、20〜30通の電子メールをトリガーできます。 今、私がやりたいのは、サーバーのIPアドレス、問題のタイプ、問題の重大度などのアラート電子メールから重要な機能を抽出し、電子メールを適切なカテゴリに分類できるシステムを実装することです。CPU-Load-Customer1-Server2, MySQL-Replication-Customer2-DBServer3その後、運用チームが問題をより迅速に修正できるように、各カテゴリに対して事前に定義された一連のデバッグ手順を用意します。また、機能エクストラクタは、問題の入力データをチームに提供します。 これまでのところ、教師付き学習手法、つまりラベル付きトレーニングデータ(クラスターデータ)でNaiveBayesClassifierをトレーニングし、新しい未確認のメールを適切なクラスター/カテゴリに分類できました。電子メールは特定のテンプレートに基づいているため、分類子の精度は非常に高くなります。ただし、カスタムスクリプトからアラートメールを受信することもあるので、テンプレートに従っていない可能性があります。そこで、教師あり学習ではなく、教師なし学習を試したいと思います。KMeansクラスタリングを調べています。しかし、やはり問題は、事前にクラスターの数がわからないことです。では、この使用例に最適なアルゴリズムはどれですか?現在、分類にはPythonのTextBlobライブラリを使用しています。 また、アラートメールから機能を抽出するために、NLTK(http://www.nltk.org/book/ch07.html)ライブラリを調べています。試してみましたが、適切な英語のパラグラフ/テキストでうまく機能するようですが、アラートメールの場合は、多くの不要な機能が抽出されました。同じための既存のソリューションはすでにありますか?そうでない場合、同じものを実装するための最良の方法は何ですか?どのライブラリ、どのアルゴリズムですか? PS:私はデータサイエンティストではありません。 メールの例: PROBLEM: CRITICAL - Customer1_PROD - Customer1_PROD_SLAVE_DB_01 - CPU Load Avg Service: CPU Load Avg Host: Customer1_PROD_SLAVE_DB_01 Alias: Customer1_PROD_SLAVE_DB_01 Address: 10.10.0.100 Host Group Hierarchy: Opsview > Customer1 - BIG C > Customer1_PROD State: CRITICAL Date & Time: Sat …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.