Commit Graph

16 Commits

Author SHA1 Message Date
40f12b569e fix: 部署导出 _feat_cols_ 解包适配新4元组(name,ftype,ia,ib) 2026-07-29 10:42:17 +08:00
58bad4081e 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 显式按特征值降序排列
2026-07-29 10:37:09 +08:00
495857913d refactor: RandomizedSearchCV → GridSearchCV — SVR 超参全量穷举
- SVR 参数网格仅 216 种组合(4×6×3×3),全量搜索 ~2s 完成
- 之前 n_iter=10 只抽样 4.6%,靠运气撞最优参数
- 删除 n_iter 和 random_state 参数(GridSearchCV 不需要)
- 保留 RandomizedSearchCV import 供其他模型(参数空间大的)使用
2026-07-29 10:28:17 +08:00
6aaaea5abd fix: inf→NaN 清洗兼容 ndarray(spxy/ks 返回 ndarray 无 .replace) 2026-07-29 10:22:47 +08:00
80189a9f44 fix: 补充 BaseEstimator/TransformerMixin 导入 2026-07-29 10:20:57 +08:00
12866f12b0 fix: Pipeline 安全网 — preproc 与 model 间插入 _SafeFiniteTransformer
- 新增 _SafeFiniteTransformer: np.nan_to_num + clip(±1e15)
- 放在 Pipeline preproc→model 之间,无论 MNF 数值溢出还是
  PhysicalFeatureExtractor 除零,SVR 收不到 inf/NaN
- X_train/X_test 入口先 replace(inf→NaN),SimpleImputer 接力填充
2026-07-29 10:20:00 +08:00
09f8d89b56 fix: PhysicalFeatureExtractor 修复 ndarray 输入时波长丢失问题
- SimpleImputer 把 DataFrame → ndarray,PhysicalFeatureExtractor.fit()
  收不到列名导致 ValueError: 必须在 __init__ 中提供 wavelengths
- get_preprocessing_transformer 新增 wavelengths 可选参数
- train_single_model 在 DualStream_MNF 时提取 X_raw 波长列表传入工厂
- PhysicalFeatureExtractor 已有 ndarray + wavelengths 参数的处理分支
2026-07-29 10:11:01 +08:00
4347988ab2 feat: 训练框架适配 DualStream_MNF + 部署矩阵 .npz 导出
modeling_batch.py:
- preprocessing_methods 新增 DualStream_MNF
- save_model 新增 C++/Rust 部署导出逻辑:
  自动检测 Pipeline 中的 MNFTransformer + SVR,
  提取 mean_/W_mnf_/dual_coef_/support_vectors_/
  intercept_/gamma/kernel 等纯量矩阵,
  保存为 *_deploy.npz 文件
- 新增 _find_mnf_in_pipeline / _find_svr_in_pipeline /
  _find_physical_extractor_in_pipeline 辅助方法,
  支持 FeatureUnion 嵌套递归查找
2026-07-29 10:02:37 +08:00
89b67fbd34 fix: ML Pipeline 缺失值填充 + 推理端外部模型 dict 兼容
- modeling_batch: Pipeline 首步新增 SimpleImputer(median) 填充 NaN
- inference_batch: 外部模型支持完整 dict(含 metadata/train_wavelengths),
  兼容旧版裸 Pipeline 对象
- step9_ml_predict_panel: 模型加载保留完整 dict 而非仅 model 对象,
  确保推理端可从 train_wavelengths 做光谱重采样
2026-07-28 14:59:11 +08:00
92e8c90370 feat: ML模型波长记忆 + 跨传感器光谱重采样 + 数据加载规范化
训练端 (modeling_batch.py):
- _extract_train_wavelengths() 从列名提取训练波长写入 metadata
- load_data_batch/load_data_single 改为基于列名语义智能提取特征
- 废除 feature_start_column 硬编码位置索引

推理端 (inference_batch.py):
- preprocess_spectra() 分支A: train_wavelengths存在→np.interp精确重采样
- preprocess_spectra() 分支B: 无波长元数据→解析列名→np.interp到400-800nm标准网格
- 废除暴力截断和零值填充
2026-07-27 14:52:30 +08:00
DXC
e337f01312 全局修正 2026-06-29 16:16:55 +08:00
DXC
d6c003a211 fix: Step7 UI坍塌修复+EventBus打通 + DRY抽离spxy/ks + GridSearchCV→RandomizedSearchCV + smoke test死链修复 2026-06-18 11:18:27 +08:00
DXC
91881d564a fix: 修复 Step8 模型生成路径错误及特征分离未过滤坐标列导致的 0 模型 Bug
- view 层 Step8View.update_work_directory 不再生成 <work_dir>/indices/<basename>_indices.csv,改为生成标准的 <work_dir>/8_Modeling/ 模型存放目录;FileSelectWidget 标签与文件过滤器同步调整为目录语义(输出模型目录 / All Files (*.*)),消除'保存目录被存成 csv 文件'导致的 train_models 跳过判定。
2026-06-17 14:15:34 +08:00
DXC
170d347e21 内容部分修改 2026-05-11 17:38:29 +08:00
8025869b76 调整缩放、多核运行、图标显示 2026-04-09 17:25:52 +08:00
91e36407ae Initial commit of WQ_GUI 2026-04-08 15:25:08 +08:00