fix: MLXFilter self._mean/std 저장 전 nan_to_num 적용 — 전체-NaN 컬럼 predict_proba 오염 차단

Made-with: Cursor
This commit is contained in:
21in7
2026-03-02 00:31:08 +09:00
parent bcc717776d
commit 7fdd8bff94

View File

@@ -142,8 +142,10 @@ class MLXFilter:
# nan-safe 정규화: nanmean/nanstd로 통계 계산 후 nan → 0.0 대치 # nan-safe 정규화: nanmean/nanstd로 통계 계산 후 nan → 0.0 대치
# (z-score 후 0.0 = 평균값, 신경망에 줄 수 있는 가장 무난한 결측 대치값) # (z-score 후 0.0 = 평균값, 신경망에 줄 수 있는 가장 무난한 결측 대치값)
self._mean = np.nanmean(X_np, axis=0) mean_vals = np.nanmean(X_np, axis=0)
self._std = np.nanstd(X_np, axis=0) + 1e-8 self._mean = np.nan_to_num(mean_vals, nan=0.0) # 전체-NaN 컬럼 → 평균 0.0
std_vals = np.nanstd(X_np, axis=0)
self._std = np.nan_to_num(std_vals, nan=1.0) + 1e-8 # 전체-NaN 컬럼 → std 1.0
X_np = (X_np - self._mean) / self._std X_np = (X_np - self._mean) / self._std
X_np = np.nan_to_num(X_np, nan=0.0) X_np = np.nan_to_num(X_np, nan=0.0)