Обнаружить выброс в наборе данных, используя скользящие окна в Python - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь построить скользящие окна, чтобы обнаружить выбросы в моих данных (используя окно 5).Я хотел бы указать выбросы как значения, превышающие 3 стандартных отклонения.Кто-нибудь может подсказать, как мне поступить?

Ниже приведена небольшая часть моего набора данных:

Location            Height          Length       Width    
1                    150             95           18
2                    148             122          102
3                    162             127          16
4                    155             146          32
5                    230             112          96
6                    154             108          30
7                    160             127          22
8                    148             390          36
9                    159             142          28
10                   422             155          30

1 Ответ

0 голосов
/ 30 мая 2018

Сначала найдите среднее и стандартное значение:

>>> df.mean()
Height    188.8
Length    152.4
Width      41.0
dtype: float64
>>> df.std()
Height    85.442378
Length    85.454601
Width     31.230327
dtype: float64

Затем вы можете использовать условные выборки (обратите внимание, здесь я использовал квадратный корень df.std только потому, что здесь показаны некоторые результаты, это, вероятно,не то, что вы хотите, просто удалите np.sqrt часть):

>>> df[df > df.mean() + 3*np.sqrt(df.std())]
       Height  Length  Width
Index
1         NaN     NaN    NaN
2         NaN     NaN  102.0
3         NaN     NaN    NaN
4         NaN     NaN    NaN
5       230.0     NaN   96.0
6         NaN     NaN    NaN
7         NaN     NaN    NaN
8         NaN   390.0    NaN
9         NaN     NaN    NaN
10      422.0     NaN    NaN

>>> df[df < df.mean() - 3*np.sqrt(df.std())]
       Height  Length  Width
Index
1       150.0    95.0   18.0
2       148.0   122.0    NaN
3         NaN     NaN   16.0
4       155.0     NaN    NaN
5         NaN   112.0    NaN
6       154.0   108.0    NaN
7       160.0     NaN   22.0
8       148.0     NaN    NaN
9       159.0     NaN    NaN
10        NaN     NaN    NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...