fix: 异常值裁剪 P1/P99 → P2/P98,避免边界垃圾值污染
- P1-P99 对 pH/DO 等参数不够保守:边界像素模型预测 pH=-22 导致 P1=-2.38,裁剪后仍保留物理上不可能的值 - 改为 P2-P98(4% 裁剪),IQR 8.3-8.5 的主体数据完全不受影响 - 两处同步:预测端 _clip_outliers + 插值端 _perform_interpolation
This commit is contained in:
@ -750,8 +750,8 @@ class WaterQualityInference:
|
||||
raise
|
||||
|
||||
@staticmethod
|
||||
def _clip_outliers(predictions: np.ndarray, lower_pct: float = 1.0,
|
||||
upper_pct: float = 99.0) -> np.ndarray:
|
||||
def _clip_outliers(predictions: np.ndarray, lower_pct: float = 2.0,
|
||||
upper_pct: float = 98.0) -> np.ndarray:
|
||||
"""百分位裁剪:将极端异常值裁剪到合理范围。
|
||||
|
||||
水体边界/零值区域的光谱异常会导致模型外推到极端值
|
||||
@ -763,9 +763,9 @@ class WaterQualityInference:
|
||||
predictions : np.ndarray
|
||||
原始预测值
|
||||
lower_pct : float
|
||||
下百分位(默认 1%,低于此分位数的值被裁剪)
|
||||
下百分位(默认 2%,低于此分位数的值被裁剪)
|
||||
upper_pct : float
|
||||
上百分位(默认 99%,高于此分位数的值被裁剪)
|
||||
上百分位(默认 98%,高于此分位数的值被裁剪)
|
||||
|
||||
Returns
|
||||
-------
|
||||
|
||||
Reference in New Issue
Block a user