From 7fdd8bff949df17411749162d32bcb043be3edec Mon Sep 17 00:00:00 2001 From: 21in7 Date: Mon, 2 Mar 2026 00:31:08 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20MLXFilter=20self.=5Fmean/std=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=20=EC=A0=84=20nan=5Fto=5Fnum=20=EC=A0=81=EC=9A=A9=20?= =?UTF-8?q?=E2=80=94=20=EC=A0=84=EC=B2=B4-NaN=20=EC=BB=AC=EB=9F=BC=20predi?= =?UTF-8?q?ct=5Fproba=20=EC=98=A4=EC=97=BC=20=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- src/mlx_filter.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mlx_filter.py b/src/mlx_filter.py index ccf7d04..258869e 100644 --- a/src/mlx_filter.py +++ b/src/mlx_filter.py @@ -142,8 +142,10 @@ class MLXFilter: # nan-safe 정규화: nanmean/nanstd로 통계 계산 후 nan → 0.0 대치 # (z-score 후 0.0 = 평균값, 신경망에 줄 수 있는 가장 무난한 결측 대치값) - self._mean = np.nanmean(X_np, axis=0) - self._std = np.nanstd(X_np, axis=0) + 1e-8 + mean_vals = np.nanmean(X_np, axis=0) + 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 = np.nan_to_num(X_np, nan=0.0)