外れ値検出の考え方の1つは、予測モデルを作成してから、ポイントが予測の範囲内にあるかどうかを確認することです。情報理論の観点から、各観測値がモデルのエントロピーをどれだけ増加させるかを確認できます。
このデータを単に数値のコレクションとして扱い、それらの生成方法について提案されたモデルがない場合は、平均を確認することもできます。数値が正常に分布していないことが確実な場合は、特定の数値が平均からどれだけ「離れている」かについて説明することはできませんが、絶対的に見ることができます。
これを適用すると、すべての数値の平均を取り、各数値を除外して、他の数値の平均を求めることができます。グローバル平均と最も異なる平均が最大の外れ値です。ここにいくつかのpythonがあります:
def avg(a):
return sum(a)/len(a)
l = [100, 50, 150, 200, 35, 60 ,50, 20, 500]
m = avg(l)
for idx in range(len(l)):
print("outlier score of {0}: {1}".format(l[idx], abs(m - avg([elem for i, elem in enumerate(l) if i!=idx]))))
>>
outlier score of 100: 4
outlier score of 50: 10
outlier score of 150: 3
outlier score of 200: 9
outlier score of 35: 12
outlier score of 60: 9
outlier score of 50: 10
outlier score of 20: 14
outlier score of 500: 46