You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python异常值剔除:如何移除绿色点区域上方的蓝色异常点?

针对xy相关场景的异常点过滤思路

点击查看图片

可尝试的实现方案

  • 局部加权回归残差过滤:基于x和y的相关关系拟合LOWESS/LOESS局部回归模型,得到每个蓝色点的y预测值,计算真实y和预测值的残差,对残差使用四分位距规则过滤:残差大于`Q3+1.5倍四分位距的点即为待移除的上方异常蓝色点。相比全局残差法该方案对非线性相关的局部异常点识别精度更高,完全适配当前场景中y值远高于局部趋势的异常点识别需求。
  • 分箱阈值过滤:将x轴按等宽或等样本量切分为多个区间箱,每个箱内单独统计对应绿色点的y值分布,将同箱内蓝色点y值超过绿色点95分位值的点直接移除。该方案实现逻辑简单,在x轴分布均匀的场景下稳定性极强。
  • 加权异常检测算法:使用孤立森林或DBSCAN算法进行离群点识别时,调高y轴特征的权重,放大异常点y值偏高的特征差异,提升目标异常点的识别精准度。

参考实现代码(Python)

import numpy as np
import statsmodels.api as sm

# 输入数据:blue_points为蓝色点数组,x_blue = blue_points[:,0], y_blue=blue_points[:,1]
# 拟合局部加权回归模型
lowess_fit = sm.nonparametric.lowess(y_blue, x_blue, frac=0.3)
y_pred = lowess_fit[:, 1]
# 计算残差并计算过滤阈值
residual = y_blue - y_pred
q1, q3 = np.percentile(residual, [25, 75])
iqr = q3 - q1
upper_limit = q3 + 1.5 * iqr
# 过滤后保留的蓝色点
filtered_blue_points = blue_points[residual < upper_limit]

内容的提问来源于stack exchange,提问作者krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:18:03