私はページ上の関心領域を見つけるためのPythonプログラムを書いています。興味のあるすべての値のページ上の位置は私に与えられますが、いくつかの値(通常は1つまたは2つだけ)は他から離れており、これらを削除したいと思います。データセットは100データポイント未満の巨大ではありませんが、何度もこれを行う必要があります。2次元データの異常値を取り除くアプローチ
私は第1象限の2つの軸(xとy)にデカルト座標系を持っているので、正の値だけです。
私のデータポイントは、この座標系上に描かれたボックスを表します。これは、タプル内の2つの座標ペアのセットとして保存されています。すべての直線が直線であるため、ボックスは2つの座標ペアで描画できます。例:(8,2,15,10)は、インデックス(x、y)=(8,2)、(8,10)、(15,10)、(15,2)のボックスを描画します。
私はこのセットの外れ値を削除しようとしていますが、良い方法を見つけようとするのは苦労しています。私は、IQRを見つけ、これらの基準を満たすすべてのポイントを削除することによって、外れ値の除去について考えている:
Q1 - 1.5 * IQRや
Q3 + 1.5 * IQR
は、ここでの問題は、私はということです値は座標だけではなく、もしあなたがそうするならば、どのようにして計算するのか苦労しています。しかし、それらは重なり合っているので、ヒストグラムにもうまく収まりません。
最初に、ボックス全体の値全体にポイントを追加すると思っていました。この場合、サンプルボックスは56ポイントを作成します。あたかもこの解決策がかなり悪いようです。誰にも代替ソリューションがありますか?
あなたが分離フォレストを見たことがありますか?あなたはscikit-learnをチェックすることができます:http://scikit-learn.org/stable/modules/outlier_detection.html – Y0da
@ Y0daこの特定の方法ではありませんが、以前は他の機械学習アプローチを見てきました。データは、私が好きだったので、トレーニングセットなどを分離して作成するのが容易ではないので、MLを含まないソリューションを考え出すことができれば好ましいでしょう。 – Victoria
MLを必要としない場合は、自分でしきい値を修正する必要があります。だから、ノルムを使うことができます。 'scipy.spatial.distance.cdist'を参照してください。https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.cdist.html – Y0da