3

次の要件を満たす機械学習アルゴリズムが必要です。

  • トレーニング データは一連の特徴ベクトルであり、すべてが同じ「正」のクラスに属しています (負のデータ サンプルを生成できないため)。
  • テスト データは、陽性クラスに属する場合と属さない場合があるいくつかの特徴ベクトルです。
  • 予測は、陽性サンプルからの「距離」を示す連続値である必要があります (つまり、0 はテスト サンプルが明らかに陽性クラスに属することを意味し、1 は明らかに陰性であることを意味しますが、0.3 はやや陽性であることを意味します)。

例: 特徴ベクトルが 2D 特徴ベクトルであるとしましょう。

正のトレーニング データ:

  • (0, 1), (0, 2), (0, 3)

テストデータ:

  • (0, 10) は異常であるべきですが、明確なものではありません
  • (1, 0) は異常であるはずですが、(0, 10) よりも「ランク」が高くなります
  • (1, 10) は異常である必要があり、異常の「ランク」はさらに高くなります
4

1 に答える 1

2

あなたが説明した問題は、通常、外れ値、異常、または新規性の検出と呼ばれます。この問題に適用できる多くの手法があります。目新しさの検出手法に関する優れた調査がここにあります。この記事では、テクニックの完全な分類とそれぞれの簡単な説明を提供しますが、手始めに、標準的なテクニックのいくつかをリストします。

  • K-nearest neighbors - 通常のデータ サンプルは他の通常のデータ サンプルに近く、新しいサンプルは通常の点から遠く離れていると仮定する単純な距離ベースの方法。KNNの Python 実装は、ScikitLearn にあります。
  • 混合モデル(ガウス混合モデルなど) - データの生成確率密度関数をモデル化する確率モデル。たとえば、ガウス分布の混合を使用します。正規データ サンプルのセットが与えられた場合、目標は確率分布のパラメーターを見つけて、サンプルを最もよく説明することです。次に、新しいサンプルの確率を使用して、それが分布に属しているか外れ値であるかを判断します。ScikitLearn はガウス混合モデルを実装し、期待値最大化アルゴリズムを使用してそれらを学習します。
  • ワンクラス サポート ベクター マシン (SVM) -通常のサンプルと未知の新しいサンプルを分離する境界を見つけようとする標準のSVM 分類器の拡張 (従来のアプローチでは、境界は通常のサンプル間のマージンを最大化することによって検出されます)。サンプルと空間の原点、いわゆる「特徴空間」に投影されます)。ScikitLearn には、簡単に使用できるワンクラス SVMの実装と、良いがあります。その例のプロットを添付して、1 クラス SVM が通常のデータ サンプルの「周辺」で見つけた境界を説明します。 ここに画像の説明を入力
于 2016-06-12T23:03:58.060 に答える