我正在編寫一個Python程序,用於查找頁面上感興趣的區域。所有感興趣值的頁面上的位置都給了我,但有些值(通常只有一兩個)與其他值相距很遠,我想刪除這些值。數據集並不龐大,少於100個數據點,但我需要多次這樣做。消除二維數據異常值的方法
我在第一象限的兩個軸(x和y)上有一個笛卡爾座標系,所以只有正值。
我的數據點表示在此座標系上繪製的框,我已將其作爲一組兩個座標對存儲在元組中。由於所有線都是筆直的,所以可以用兩個座標對繪製一個框。例如:(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