
v1 다변수 회귀 의 정규방정식 는 가 특이(singular) 하면 폭발. 원인:
분해. Moore-Penrose 유사역행렬:
는 각 에 대해 (충분히 큰 경우) 또는 0 (작은 경우).
tol 미만의 작은 singular value 는 노이즈 로 간주해 0 처리. NumPy 기본 규칙:
( for fp64)
np.linalg.lstsq, np.linalg.pinv 의 내부 로직.함수 fit_linear_svd(X, y, tol=None) 를 완성하세요.
X shape (N, D), y shape (N,).tol: singular value 임계값. None 이면 max(N, D) * eps * max(σ).w shape (D,).U, s, Vt = np.linalg.svd(X, full_matrices=False) → s_inv = np.where(s > tol, 1/s, 0).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (D,) | |
| 2 | full-rank → 정규방정식 해와 일치 | |
| 3 | N < D (언더디터민드) → finite + min-norm | |
| 4 | collinear 특성 → finite | |
| 5 | 상수 열 포함 → finite | |
| 6 | np.linalg.lstsq 와 일치 | |
| 7 | Xw ≈ y residual 최소화 (full-rank) |
코드를 작성하고 Run 을 눌러보세요.