thinkingEverytime/QuantOracle
1
1"""Tiny ridge regression (no sklearn)."""2 3from __future__ import annotations4 5import numpy as np6 7 8def fit_ridge(X: np.ndarray, y: np.ndarray, alpha: float = 1.0) -> np.ndarray:9 # Closed-form ridge: (X'X + aI)^-1 X'y10 X = np.asarray(X, dtype=float)11 y = np.asarray(y, dtype=float)12 n_features = X.shape[1]13 A = X.T @ X + alpha * np.eye(n_features)14 b = X.T @ y15 return np.linalg.solve(A, b)16 17 18def predict(X: np.ndarray, w: np.ndarray) -> np.ndarray:19 return np.asarray(X, dtype=float) @ np.asarray(w, dtype=float)20 21 22def zscore_fit(X: np.ndarray):23 X = np.asarray(X, dtype=float)24 mu = X.mean(axis=0)25 sig = X.std(axis=0)26 sig[sig == 0] = 1.027 return mu, sig28 29 30def zscore_apply(X: np.ndarray, mu: np.ndarray, sig: np.ndarray) -> np.ndarray:31 return (np.asarray(X, dtype=float) - mu) / sig32 33 