Spaces:
Sleeping
Sleeping
| # inspect_model.py | |
| import joblib, pprint, importlib, sys | |
| p = "best_overall_XGBoost.joblib" | |
| print("Python:", sys.version) | |
| try: | |
| obj = joblib.load(p) | |
| except Exception as e: | |
| import traceback | |
| traceback.print_exc() | |
| raise SystemExit(1) | |
| print("Top-level object type:", type(obj)) | |
| # If it's a sklearn pipeline, list steps | |
| try: | |
| from sklearn.pipeline import Pipeline | |
| if isinstance(obj, Pipeline): | |
| print("Detected sklearn Pipeline with steps:") | |
| for name, step in obj.steps: | |
| print(" -", name, ":", type(step)) | |
| else: | |
| # try to detect XGBClassifier inside | |
| attrs = dir(obj) | |
| print("Top-level attrs preview:", attrs[:40]) | |
| # print some attr types if present | |
| for candidate in ("estimator_", "steps", "named_steps", "booster", "get_booster", "classes_"): | |
| if hasattr(obj, candidate): | |
| val = getattr(obj, candidate) | |
| print(f"Has {candidate}: type = {type(val)}") | |
| except Exception: | |
| pass | |
| # versions | |
| def ver(name): | |
| try: | |
| m = importlib.import_module(name) | |
| return getattr(m, "__version__", "unknown") | |
| except Exception: | |
| return "not installed" | |
| for mod in ("xgboost", "sklearn", "numpy", "pandas"): | |
| print(f"{mod}:", ver(mod)) | |
| # If pipeline, inspect nested steps types | |
| try: | |
| if hasattr(obj, "named_steps"): | |
| print("named_steps detail:") | |
| for k,v in obj.named_steps.items(): | |
| print(k, "->", type(v)) | |
| except Exception: | |
| pass | |
| pprint.pprint(obj.__dict__ if hasattr(obj, "__dict__") else {}) | |