Bladeren bron

nutikodu-web: CCM — ridge-regulaarsus (8x8 sobitus oli haige; alpha=1e-5 LOO-jargi)

- ilma regulaarsuseta maatriks overfitis (punane ei tulnud valja); ridge stabiliseerib
ardo 1 week geleden
bovenliggende
commit
a83c80fcbc
1 gewijzigde bestanden met toevoegingen van 7 en 1 verwijderingen
  1. 7 1
      dev/nutikodu-web/app.py

+ 7 - 1
dev/nutikodu-web/app.py

@@ -682,7 +682,13 @@ async def varv_ccm_fit() -> dict:
          for r in rows],
         dtype=float,
     )
-    M, *_ = np.linalg.lstsq(C, T, rcond=None)  # (8,3)
+    # Ridge-regulaarsus: 8x8 süsteem on tinglikult haige (cond ~1e7) — ilma
+    # regulaarsuseta maatriks overfitib ja uued mõõtmised annavad rämpsu.
+    # alpha=1e-5 valitud leave-one-out testiga.
+    CtC = C.T @ C
+    CtT = C.T @ T
+    lam = 1e-5 * float(np.trace(CtC)) / len(VARV_BANDS)
+    M = np.linalg.solve(CtC + lam * np.eye(len(VARV_BANDS)), CtT)  # (8,3)
     matrix = M.T.tolist()  # (3,8)
     resp = requests.post(
         f"{CH_URL}/",