数千のデータ インスタンスがあるシナリオがあります。データ自体は、単一の整数値として表されます。インスタンスが極端な外れ値であることを検出できるようにしたいと考えています。
たとえば、次のサンプル データを使用します。
a = 10
b = 14
c = 25
d = 467
e = 12
d
は明らかに異常であり、これに基づいて特定のアクションを実行したいと考えています。
私は、特定のドメインに関する知識を使って異常を検出したいと思いました。たとえば、有用な平均値からの距離を把握し、ヒューリスティックに基づいてそれを確認します。ただし、何らかの理論が背後にある、より一般的で堅牢な異常検出手法を調査した方がよいと思います。
私の数学の実用的な知識は限られているので、標準偏差を使用するなど、簡単な手法を見つけたいと思っています。データの単一次元の性質により、これが非常に一般的な問題になることを願っていますが、シナリオに関する詳細情報が必要な場合は、コメントを残してください。詳細をお知らせします.
編集:ある回答が別の回答よりも正しい場合に備えて、データと私が試したことに関する情報を追加すると思いました。
値はすべて正であり、ゼロではありません。値が正規分布を形成することを期待しています。この予想は、分析によるものではなく、ドメインの直感に基づいています。これが悪いことではない場合は、お知らせください。クラスタリングに関して言えば、k 値を選択する標準アルゴリズムも存在しない限り、この値を k-Means アルゴリズムに提供するのは難しいと思います。
外れ値/異常に対して私が取りたいアクションは、それをユーザーに提示し、基本的にデータセットからデータポイントを削除することを推奨することです (彼らがそれを行う方法については触れませんが、それは理にかなっています)したがって、別の関数への入力としては使用されません。
これまでのところ、限られたデータセットでスリーシグマと IQR 外れ値テストを試しました。IQR は極端ではない値にフラグを立てます。スリーシグマは、ドメインの私の直感によりよく適合するインスタンスを指摘します。
この特定のシナリオについて学ぶためのアルゴリズム、テクニック、またはリソースへのリンクに関する情報は有効であり、歓迎すべき回答です。
単純な 1 次元データに対して推奨される異常検出手法は何ですか?