2
異常検出:使用するアルゴリズムは?
コンテキスト:私は、臨床データを分析して、タイプミスの可能性がある妥当ではないデータを除外するシステムを開発しています。 これまでに行ったこと: 妥当性を定量化するために、これまでの私の試みは、データを正規化し、セットD(=トレーニングセット)の既知のデータポイントまでの距離に基づいてポイントpの妥当性値を計算することでした: plausibility(p)=∑q∈DGauss(distance(p,q))plausibility(p)=∑q∈DGauss(distance(p,q))\text{plausibility}(p)=\sum_{q\in D}\text{Gauss}(\text{distance}(p,q)) その定量化により、妥当なデータと妥当でないデータを区別するしきい値を選択できます。私はpython / numpyを使用しています。 私の問題: このアルゴリズムは、独立した次元を検出できません。理想的には、レコードについて知っていることなら何でもアルゴリズムに入れて、次元Xがレコードの妥当性に影響を及ぼさないことをそれ自体で見つけることができます。 このアルゴリズムは、ブール値や選択入力などの離散値には実際には機能しません。それらは連続値にマッピングできますが、選択1が選択3よりも選択2に近いというのは直観に反しています。 質問: このタスクにはどのようなアルゴリズムを検討する必要がありますか?最近傍に基づく、クラスタリングに基づく、および統計的アプローチを含む多くのオプションがあるようです。また、この複雑さの異常検出に関する論文を見つけるのも困難です。 アドバイスは大歓迎です。 [編集]例: データが人の身長、人の体重、タイムスタンプで構成されているとしましょう。つまり、3Dデータです。体重と身長は相関していますが、タイムスタンプは完全に独立しています。ユークリッド距離を考慮する場合、交差検証データのほとんどに適合するように小さなしきい値を選択する必要があります。タイムスタンプは他のディメンションとまったく相関しないため、レコードが妥当であるかどうかを判断することは重要ではないため、アルゴリズムはタイムスタンプディメンションを無視するのが理想的です。どんなタイムスタンプももっともらしいです。 一方、タイムスタンプが重要な例を構成することができます。たとえば、フィーチャXの値Yは、特定の日付より前ではなく特定の日付より後に測定された場合に妥当である可能性があります。