Housing_Price_API / app /model.py
ANL2001's picture
feat: add FastAPI application
222b972
Raw History Blame Contribute Delete
905 Bytes
import os
import numpy as np
import joblib
import pandas as pd
ARTIFACTS_DIR = os.path.join(os.path.dirname(__file__), "..", "ml", "artifacts")
_manual_processor = None
_stack = None
_core_features = None
def load_artifacts():
global _manual_processor, _stack, _core_features
_manual_processor = joblib.load(os.path.join(ARTIFACTS_DIR, "manual_processor.joblib"))
_stack = joblib.load(os.path.join(ARTIFACTS_DIR, "stack.joblib"))
_core_features = joblib.load(os.path.join(ARTIFACTS_DIR, "core_features.joblib"))
print("Model artifacts loaded.")
def predict(input_df: pd.DataFrame) -> float:
if _stack is None:
raise RuntimeError("Model not loaded. Call load_artifacts() first.")
X = input_df[_core_features].copy()
X_processed = _manual_processor.transform(X)
log_pred = _stack.predict(X_processed)
return float(np.expm1(log_pred)[0])