0

私は異常検出のためのシステムを設計しています

このようなシステムを構築するには、複数のアプローチがあります。私は、大多数のサンプルが共有する特徴を検出することによって、そのようなシステムの 1 つの側面を実装することを選択します。このような方法が不十分である可能性があることは認めますが、私の特定のユースケースでは: (1) 新しいサンプルに過去のデータの大部分が共有する特徴が含まれている (または欠けている) ことを知っていれば、迅速な決定を下すことができます。(2) 私はそのような方法がデータに提供する洞察に興味があります。

だから、ここに問題があります:

各データ ポイントに任意の数の {key:value} 特徴を含めることができる、M個のデータ ポイントを持つ大規模なデータ セットを考えてみましょう。データで観察されたすべての機能 (すべての一意のキーのセット) をグループ化し、それをモデルの機能空間として設定することで、トレーニング データセットをモデル化することにしました。既存のキーには値を設定し、含まれていない機能の値にはNoneを設定して、各サンプルを定義します。

このトレーニング データ セットを使用して、データ内でどの特徴が再発するかを判断したいと思います。そして、そのような繰り返し機能については、それらはほとんど単一の値を共有していますか.

私の質問:

簡単な解決策は、すべてをカウントすることです。N 個の特徴のそれぞれについて、値の分布を計算します。ただし、MNは潜在的に大きいため、データを表現するためのよりコンパクトな方法や、特徴の頻度について主張するためのより洗練された方法があるのではないかと思います。

既存の車輪を再発明していますか? このようなタスクを達成するためのオンライン アプローチがあれば、さらに優れたものになります。

4

1 に答える 1

0

私があなたの質問を正しく理解していれば、とにかくすべてのデータを調べる必要があるので、ハッシュを使用しないのはなぜですか? 実際には 2 つのハッシュ テーブル:

  1. 特徴値の分布のための内部ハッシュ テーブル。
  2. 機能の存在に関する外部ハッシュ テーブル。

このように、内部ハッシュ テーブルのサイズは、特徴がデータ内でどのように共通しているかを示し、実際の値はそれらが互いにどのように異なるかを示します。もう 1 つ注意すべき点は、データを 1 回だけ調べて、ハッシュ テーブルに対するすべての操作の (ほぼ) 時間の複雑さ (最初から十分なスペースを割り当てた場合) がO(1).

それが役に立てば幸い

于 2016-08-31T09:07:47.007 に答える