feat: PhysicalFeature 扩展到全部63个水色指数 + MNF成分数自动确定

PhysicalFeatureExtractor:
- 废弃硬编码3指数(NDVI/NDWI/AlgaeRatio),改为调用
  WaterQualityIndexCalculator.calculate_many() 计算全部63个公式
- 涵盖 BGA(25)/Chl(16)/Turb(10)/TSM(3) 等完整指数集

MNFTransformer:
- n_components 支持 float(0~1): 根据累积方差比自动确定成分数
  n_components=0.95 → 保留95%方差的成分
- fit 后保存 n_components_ (实际成分数) 供部署导出使用
- Wp 显式按特征值降序排列
This commit is contained in:
duxin
2026-07-29 10:37:09 +08:00
parent 495857913d
commit 58bad4081e
2 changed files with 41 additions and 60 deletions

View File

@ -774,7 +774,7 @@ class WaterQualityModelingBatch:
_deploy = {
'mnf_mean': np.asarray(_mnf.mean_).ravel(),
'mnf_W': np.asarray(_mnf.W_mnf_),
'mnf_n_components': int(_mnf.n_components),
'mnf_n_components': int(getattr(_mnf, 'n_components_', _mnf.n_components)),
}
# SVR 部署矩阵rbf kernel 需要 support_vectors_
_deploy['svr_dual_coef'] = np.asarray(_svr.dual_coef_)