首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >发现数据集中的离群值

发现数据集中的离群值
EN

Stack Overflow用户
提问于 2011-01-06 00:09:44
回答 4查看 17.6K关注 0票数 17

我有一个python脚本,它创建服务器正常运行时间和性能数据的列表,其中每个子列表(或“行”)包含特定集群的统计数据。例如,格式很好的它看起来像这样:

-------  -------------  ------------  ----------  -------------------
Cluster  %Availability  Requests/Sec  Errors/Sec  %Memory_Utilization
-------  -------------  ------------  ----------  -------------------
ams-a    98.099          1012         678          91
bos-a    98.099          1111         12           91
bos-b    55.123          1513         576          22
lax-a    99.110          988          10           89
pdx-a    98.123          1121         11           90
ord-b    75.005          1301         123          100
sjc-a    99.020          1000         10           88
...(so on)...

因此,在列表形式中,它可能如下所示:

[[ams-a,98.099,1012,678,91],[bos-a,98.099,1111,12,91],...]

我的问题是:确定每列中的异常值的最佳方法是什么?或者,异常值不一定是解决发现“坏”问题的最好方法?在上面的数据中,我肯定想知道bos-b和ord b,以及ams a,因为它的错误率很高,但其他的可以丢弃。根据列的不同,由于更高不一定更差,也不一定更低,我正在尝试找出最有效的方法来做到这一点。似乎numpy在这类事情上经常被提及,但甚至不确定从哪里开始(遗憾的是,我更像是系统管理员而不是统计学家……)。

提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-06 04:23:34

你声明的“发现坏处”的目标意味着你要寻找的不是异常值,而是高于或低于某个阈值的观察结果,我假设随着时间的推移,该阈值将保持不变。

例如,如果您的所有服务器都有98±0.1 %的可用性,那么100%可用性的服务器就是异常值,97.6%可用性的服务器也是异常值。但这些可能在您想要的范围内。

另一方面,无论是否有一个或多个服务器低于此阈值,都可能有充分的理由先验地希望收到任何可用性低于95%的服务器的通知。

因此,搜索异常值可能不会提供您感兴趣的信息。阈值可以基于历史数据在统计上确定,例如,通过将错误率建模为泊松或将可用性百分比建模为beta变量。在应用的设置中,这些阈值可能是基于性能要求确定的。

票数 7
EN

Stack Overflow用户

发布于 2011-01-06 06:18:31

直观地识别异常值的一个好方法是绘制箱线图(或盒子和胡须图),它将显示中位数、中位数上下的几个四分位数,以及离这个盒子“很远”的点(请参阅维基百科条目http://en.wikipedia.org/wiki/Box_plot)。在R中,有一个boxplot函数可以做到这一点。

以编程方式丢弃/识别离群值的一种方法是使用MAD或Median Absolute Deviation。与标准差不同,MAD对异常值不敏感。有时我会使用经验法则来考虑所有偏离中值超过5*MAD的点,都是异常值。

票数 8
EN

Stack Overflow用户

发布于 2011-01-06 00:30:27

我认为最好的办法是研究一下scipyscoreatpercentile函数,例如,你可以尝试排除所有大于第99个百分位数的值。

如果你没有正态分布,均值和标准差是不好的。

一般来说,对数据的外观有一个大致的视觉概念是很好的。有一个matplotlib;我建议您在决定计划之前用它绘制一些数据图。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4606288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档