标签: outliers

检测并排除Pandas数据帧中的异常值

我有一个包含很少列的pandas数据帧.

现在我知道某些行是基于某个列值的异常值.

例如列 - 'Vol'的所有值都大约为12xx,一个值为4000(异常值).

现在我想排除那些有'Vol'列的行.因此,基本上我需要在数据框上放置一个过滤器,以便我们选择所有行,其中某列的值在与平均值相差3个标准差的范围内.

实现这一目标的优雅方式是什么?

python filtering outliers dataframe pandas

174
推荐指数
12
解决办法
19万
查看次数

如何从数据集中删除异常值

我有一些美丽与年龄的多元数据.年龄范围为20-40,间隔为2(20,22,24 ...... 40),并且对于每个数据记录,它们的年龄和美容等级为1-5.当我对这些数据进行箱形图(横跨X轴的年龄,Y轴上的美观评级)时,在每个框的胡须外面都会绘制一些异常值.

我想从数据框本身中删除这些异常值,但我不确定R如何计算其箱形图的异常值.下面是我的数据可能是什么样子的示例. 在此输入图像描述

statistics r outliers

92
推荐指数
8
解决办法
31万
查看次数

matplotlib:在绘图时忽略异常值

我正在绘制各种测试的一些数据.有时在测试中我碰巧有一个异常值(比如说0.1),而所有其他值都小三个数量级.

使用matplotlib,我会对范围进行绘图 [0, max_data_value]

我怎样才能放大我的数据而不显示异常值,这会弄乱我的情节中的x轴?

我应该简单地采用95%并且[0, 95_percentile] 在x轴上具有范围吗?

python plot matplotlib outliers percentile

29
推荐指数
4
解决办法
3万
查看次数

需要一个用于欺诈检测的数据集

我有一个欺诈检测算法,我想检查它是否适用于真实世界的数据集.

我的算法表明声明通常与否.

有没有可用的数据集?

machine-learning fraud-prevention dataset outliers

23
推荐指数
1
解决办法
3万
查看次数

如何删除R中boxplot中的异常值?

可能重复:
更改箱线图中的异常值规则

我需要使用box-plot可视化我的结果.

x<-rnorm(10000)
boxplot(x,horizontal=TRUE,axes=FALSE)
Run Code Online (Sandbox Code Playgroud)

如何在可视化过程中过滤异常值?

(1)这样我就可以在屏幕上显示完整的图像而不会出现丑陋的异常值.

http://postimage.org/image/szzbez0h1/a610666d/

(2)有没有办法显示超出一定范围的异常值? http://postimage.org/image/np28oee0b/8251d102/

问候

r outliers boxplot

23
推荐指数
1
解决办法
10万
查看次数

时间序列预测,处理已知的大订单

我有很多已知异常值的数据集(大订单)

data <- matrix(c("08Q1","08Q2","08Q3","08Q4","09Q1","09Q2","09Q3","09Q4","10Q1","10Q2","10Q3","10Q4","11Q1","11Q2","11Q3","11Q4","12Q1","12Q2","12Q3","12Q4","13Q1","13Q2","13Q3","13Q4","14Q1","14Q2","14Q3","14Q4","15Q1", 155782698, 159463653.4, 172741125.6, 204547180, 126049319.8, 138648461.5, 135678842.1, 242568446.1, 177019289.3, 200397120.6, 182516217.1, 306143365.6, 222890269.2, 239062450.2, 229124263.2, 370575384.7, 257757410.5, 256125841.6, 231879306.6, 419580274, 268211059, 276378232.1, 261739468.7, 429127062.8, 254776725.6, 329429882.8, 264012891.6, 496745973.9, 284484362.55),ncol=2,byrow=FALSE)
Run Code Online (Sandbox Code Playgroud)

这个特定系列的前11个异常值是:

outliers <- matrix(c("14Q4","14Q2","12Q1","13Q1","14Q2","11Q1","11Q4","14Q2","13Q4","14Q4","13Q1",20193525.68, 18319234.7, 12896323.62, 12718744.01, 12353002.09, 11936190.13, 11356476.28, 11351192.31, 10101527.85, 9723641.25, 9643214.018),ncol=2,byrow=FALSE)
Run Code Online (Sandbox Code Playgroud)

有哪些方法可以预测考虑这些异常值的时间序列?

我已经尝试更换下一个最大的异常值(因此,运行数据集10次,用下一个最大值替换异常值,直到第10个数据集替换掉所有异常值).我也试过简单地删除异常值(因此每次再次运行数据集10次删除异常值,直到在第10个数据集中删除所有10个异常值)

我只想指出,删除这些大订单并不会完全删除数据点,因为该季度还会发生其他交易

我的代码通过多个预测模型测试数据(ARIMA加权样本,ARIMA加权样本,ARIMA加权,ARIMA,加性Holt-winters加权和Multiplcative Holt-winters加权)所以它需要是可以的适应这些多种模式.

以下是我使用的几个数据集,但我没有这些系列的异常值

data <- matrix(c("08Q1","08Q2","08Q3","08Q4","09Q1","09Q2","09Q3","09Q4","10Q1","10Q2","10Q3","10Q4","11Q1","11Q2","11Q3","11Q4","12Q1","12Q2","12Q3","12Q4","13Q1","13Q2","13Q3","13Q4","14Q1","14Q2","14Q3", 26393.99306, 13820.5037, 23115.82432,    25894.41036,    14926.12574,    15855.8857, 21565.19002,    49373.89675,    27629.10141,    43248.9778, 34231.73851,    83379.26027,    54883.33752,    62863.47728,    47215.92508,    107819.9903,    53239.10602,    71853.5,    59912.7624, 168416.2995,    64565.6211, 94698.38748,    80229.9716, 169205.0023, …
Run Code Online (Sandbox Code Playgroud)

r time-series outliers forecasting

22
推荐指数
1
解决办法
1322
查看次数

如何使用隔离森林

我试图检测我的数据集的异常值,我找到了sklearn的隔离森林.我无法理解如何使用它.我将训练数据放入其中,它给了我一个带-1和1值的向量.

任何人都可以向我解释它是如何工作的并提供一个例子吗?

我怎么知道异常值是"真正的"异常值?

调整参数?

这是我的代码:

clf = IsolationForest(max_samples=10000, random_state=10)
clf.fit(x_train)
y_pred_train = clf.predict(x_train)
y_pred_test = clf.predict(x_test)

[1 1 1 ..., -1 1 1]
Run Code Online (Sandbox Code Playgroud)

python machine-learning outliers scikit-learn

17
推荐指数
2
解决办法
2万
查看次数

如何在R代码中使用异常值测试

作为我的数据分析工作流程的一部分,我想测试异常值,然后使用和不使用这些异常值进行进一步的计算.

我找到了异常包,它有各种测试,但我不确定如何最好地将它们用于我的工作流程.

statistics r outliers

16
推荐指数
4
解决办法
4万
查看次数

快速找到远离牛群的动物的算法

我正在开发一个模拟程序.有成群的动物(角马),在那群中,我需要找到一只远离牛群的动物.

在下图中,绿点远离牛群.我希望能够快速找到这些要点.

绿点远离牛群

当然,有一个简单的算法来解决这个问题.计算每个点附近的点数,然后如果该邻域是空的(其中0点),那么我们知道这一点远离牛群.

问题是这个算法根本没有效率.我有一百万点,并且在每百万点上应用这个算法非常慢.

有什么东西会更快吗?也许用树木?

编辑@amit:我们想避免这种情况.A组在左上角绿点会被选择,即使他们应该不是,因为它不是一个单一的动物是从牛群离开,这是一组动物.我们只是寻找远离牛群的一只动物(不是一群人).

一群远离牛群的绿点

algorithm geometry machine-learning outliers spatial-index

15
推荐指数
3
解决办法
508
查看次数

删除时间序列中异常值的有效方法

我正在寻找有效的方法来删除数据中的异常值。我尝试了在 StackOverflow 和其他地方找到的几种解决方案,但没有一个对我有用(应该在样本数据中检测并删除 1993 年 6 月、1994 年 8 月和 1995 年 3 月的 4 个高值 21637、19590、21659 和 200000发布在这篇文章的末尾)。任何建议将不胜感激!

这是我到目前为止测试过的:

数据概览

  1. 如何从数据集中删除异常值

3 个异常值仍然存在,并且时间序列末尾的许多合法高值已被删除。

y <- dat$Value
y_filter <- y[!y %in% boxplot.stats(y)$out]
plot(y_filter)
Run Code Online (Sandbox Code Playgroud)

  1. 计算 R 中的异常值

与第一种方法类似的问题

FindOutliers <- function(data) {
  data <- data[!is.na(data)]
  lowerq = quantile(data)[2]
  upperq = quantile(data)[4]
  iqr = upperq - lowerq #Or use IQR(data)
  # we identify extreme outliers
  extreme.threshold.upper = (iqr * 1.5) + upperq
  extreme.threshold.lower = lowerq - (iqr * 1.5)
  result <- which(data …
Run Code Online (Sandbox Code Playgroud)

r time-series outliers data-science

13
推荐指数
3
解决办法
1622
查看次数