Tourism-Package / inspect_model.py
sathishaiuse's picture
Create inspect_model.py
3f09e39 verified
# 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 {})