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 做光谱重采样
This commit is contained in:
duxin
2026-07-28 14:59:11 +08:00
parent 02592cc181
commit 89b67fbd34
3 changed files with 15 additions and 6 deletions

View File

@ -253,13 +253,14 @@ class Step9MlPredictPanel(QWidget):
try:
loaded = joblib.load(joblib_path)
if isinstance(loaded, dict) and "model" in loaded:
model_obj = loaded["model"]
# ★ 保留完整 dict含 metadata / train_wavelengths
# 推理端需要 train_wavelengths 做光谱重采样
models_found[subdir_name] = loaded
elif hasattr(loaded, "predict"):
model_obj = loaded
models_found[subdir_name] = loaded
else:
errors.append(f"{subdir_name}: 无法识别的格式 {type(loaded).__name__}")
continue
models_found[subdir_name] = model_obj
except Exception as e:
errors.append(f"{subdir_name}: {type(e).__name__}: {e}")