异常值识别和处理

1.识别异常值

1.1业务法

根据你对业务的理解,然后对每一个指标设定一个合理的范围,一旦超过这个范围,则认为是异常值。比如收入,一般来说都是正数,如果出现小于0,则认为是异常值;再比如年龄,正常的年龄可能在100以内,如果出现年龄是好几百的,那么也认为是异常值。

1.23σ原则

3σ原则中的σ是代表标准差,3σ也就是标准差,如果数据与均值之间的绝对距离大于3倍标准差,即下图中[-∞,μ-3σ]和[μ+3σ,+∞]部分,我们把这一部分值称为是异常值。
在这里插入图片描述

在用3σ原则时,数据要尽可能的服从正态分布,因为只有满足正态分布时,才认为出现3倍标准差以外数据的可能性很小,所以才会把这一部分当作异常值。

1.3箱形图

箱形图就是如下图所示,会展示数据的上下界、上下四分位数、中位数、均值,我们把超过上下界的值称为异常值。分位数大家应该都知道怎么算,但是上下界怎么算出来的呢?

上界 =上四分位数 + k(上四分位数 - 下四分位数)
下界 =下四分位数 - k(上四分位数 - 下四分位数)
当k=1.5时表示中度异常;当k=3时表示高度异常。箱形图中默认k=1.5。

在这里插入图片描述
2.异常值处理

通过上面识别异常值的方法我们就可以把数据中的异常值找出来,那找出异常值以后该怎么办呢?常规的异常值处理有如下几种方法:

将异常值删除,比如一个人的年龄是异常值,那么就把这个人从数据中删除;
将异常值当作缺失值进行替换,用0或者平均值进行替换

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码来识别处理异常值: #include <stdio.h> #include <stdlib.h> void handle_exception(int value) { if (value < 0 || value > 100) { printf("Error: Invalid value %d\n", value); exit(1); } else { printf("Value %d is valid\n", value); } } int main() { int value = 110; handle_exception(value); return 0; } 这个函数可以检查一个是否在0到100之间,如果不是,就会输出一个错误信息并退出程序。如果在范围内,就会输出一个确认信息。 ### 回答2: C语言编写异常值识别处理函数可以通过以下方式实现: 首先,定义一个函数来检测异常值,函数可以接收一个数组作为参数,并返回一个布尔来表示该数组是否存在异常值。函数内部可以使用循环遍历数组中的每个元素,通过一定的条件判断是否满足异常值的条件。例如,可以检查数组中的元素是否超出了某个特定范围,或者是否满足某种模式。如果存在异常值,则返回true,否则返回false。 其次,可以定义一个处理异常值的函数,该函数可以接收一个数组作为参数,并对异常值进行处理处理方式可以根据实际需求而定,例如可以将异常值替换为指定的默认,或者将其忽略掉。函数内部也可以使用循环遍历数组中的每个元素,并根据异常值的条件进行相应的处理操作。 最后,可以在主函数中调用这两个函数来完成异常值识别处理工作。首先调用检测异常值的函数,如果返回true,则调用处理异常值的函数进行处理。否则,继续执行其他的程序逻辑。 需要注意的是,异常值的定义与处理方式应根据具体的应用场景进行确定。在实际编写代码时,还需要考虑异常值检测与处理函数的输入参数、返回以及异常值的定义条件等方面的设计。 ### 回答3: 在C语言中,异常值识别处理可以通过编写特定的函数来实现。以下是一个简单的函数示例: ```c #include<stdio.h> // 异常值识别处理函数 void handleException(int value) { if(value < 0) { printf("发现负数异常值:%d\n", value); // 处理负数异常值的逻辑 } else if (value > 100) { printf("发现超过100的异常值:%d\n", value); // 处理超过100的异常值的逻辑 } else { printf("正常:%d\n", value); // 处理正常的逻辑 } } // 主函数 int main() { int num = -10; handleException(num); num = 200; handleException(num); num = 50; handleException(num); return 0; } ``` 在上述代码中,我们定义了一个名为`handleException`的函数,它的参数`value`代表需要进行异常值处理。函数内部通过一系列的条件判断,对不同的异常情况进行处理。当`value`小于0时,我们输出"发现负数异常值:"并打印具体的异常值;当`value`大于100时,我们相应地输出"发现超过100的异常值:"并打印具体的异常值;其他情况被视为正常,并输出"正常:"并打印具体的。 在`main`函数中,我们分别测试了一个负数异常值(-10)、一个超过100的异常值(200)以及一个正常(50),通过调用`handleException`函数来进行异常值识别处理。 需要注意的是,这只是一个简单示例,实际应用中的异常值识别处理函数会更加复杂,具体逻辑需要根据实际需求进行设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值