Python数据分析如何识别异常值_IQR四分位距检测法实战

应统一使用 numpy.quantile 计算 IQR 边界,因其默认线性插值、结果稳定且与 Pandas 一致;标准写法为 q1 = np.quantile(data, 0.25) 和 q3 = np.quantile(data, 0.75),避免混用 np.percentile。怎么用 numpy.quantile 算 IQR 边界才不翻车直接用 np.percentile 有时会因插值方式不同导致边界偏移,尤其在小样本或重复值多时。推荐统一用 np.quantile,它默认采用线性插值,结果更稳定,且与 Pandas 的 quantile() 行为一致。q1 = np.quantile(data, 0.25) 和 q3 = np.quantile(data, 0.75) 是标准写法,别混用 percentile(后者默认 method='linear' 但旧版本行为不一)数据长度 n 时,<code>quantile 仍会返回数值,但 Q1/Q3 估计极不可靠------此时 IQR 法本身失效,应跳过或加警告遇到全相同值(如 [5,5,5,5]),IQR=0,上下界重合,所有非该值都会被误标为异常;需提前检查 iqr == 0 并处理为什么 1.5 * IQR 是默认阈值,而不是 2 或 31.5 不是统计推导出来的"黄金常数",而是图基(Tukey)在大量实验中发现的平衡点:既足够敏感以捕获明显离群点,又不至于把尾部正常波动误判为异常。用 2 倍会漏检温和离群,用 3 倍基本只抓极端值(比如传感器彻底失灵),实际中极少用。业务场景决定倍数:金融风控可能用 1.2 提前预警,IoT 设备日志可放宽到 2.0 减少误报不要对所有字段硬套同一倍数------订单金额和用户停留时长的分布形态差异极大,需分列计算若数据明显右偏(如收入),可考虑对数变换后再算 IQR,比强行调高倍数更合理用 Pandas 处理 DataFrame 时,apply 和逐列循环哪个更安全用 df.apply(lambda x: detect_outliers_iqr(x)) 看似简洁,但一旦某列为非数值型(如字符串、时间戳),就会直接报错 TypeError: ufunc 'subtract' not supported...。不如显式遍历数值列,留出容错空间。先筛选数值列:num_cols = df.select_dtypes(include=np.number).columns对每列单独调用检测函数,捕获异常并记录列名,避免整表中断别依赖 df[col].quantile(0.25) 自动跳过 NaN------它默认 skipna=True,但若整列全是 NaN,会返回 nan,后续计算 iqr 得 nan,边界变成 nan,布尔索引全失效画箱线图时 seaborn.boxplot 显示的异常点,和你代码算出的不一致?不是 bug,是绘图库做了额外处理:seaborn 默认用 whis=1.5,但会把须(whisker)末端限制在实际数据的最小/最大值内,而你的代码如果直接用公式算边界,可能得到理论值(比如下界=-12.3,但数据最小是 1),这时 seaborn 会把须拉到 1,而你的逻辑仍按 -12.3 判定------导致"图上没标异常,代码却标了"。 Ideogram Ideogram是一个全新的文本转图像AI绘画生成平台,擅长于生成带有文本的图像,如LOGO上的字母、数字等。

相关推荐
lzhdim15 分钟前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
瀚高PG实验室1 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题
数据库·瀚高数据库
涛声依旧-底层原理研究所1 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
csdn_aspnet1 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
TDengine (老段)1 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
fantasy_arch1 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
熊猫_豆豆1 小时前
广义相对论水星近日点进动完整详细数学推导
python·天体·广义相对论
web3.08889992 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python
YOU OU2 小时前
Spring IoC&DI
java·数据库·spring
AI算法沐枫2 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归