investormlops-api / src /evaluate_models.py
Mayur-cinderace
Move Docker app to repo root for Hugging Face Spaces
0a6956c
raw
history blame contribute delete
931 Bytes
import os
import json
import numpy as np
import pandas as pd
import joblib
from sklearn.metrics import mean_squared_error
def main():
os.makedirs("metrics", exist_ok=True) # ✅ ADD THIS LINE
df = pd.read_csv("data/processed/merged_features.csv")
results = {}
for ticker in df["Ticker"].unique():
df_t = df[df["Ticker"] == ticker].copy()
if len(df_t) < 50:
continue
X = df_t[["return_lag1","volume_lag1","sentiment_lag1"]].values
y = df_t["Return"].shift(-1).dropna().values
X = X[:-1]
model = joblib.load(f"models/{ticker}/rf.joblib")
preds = model.predict(X)
rmse = float(np.sqrt(mean_squared_error(y, preds)))
results[ticker] = {"rmse": rmse}
with open("metrics/evaluation.json", "w") as f:
json.dump(results, f, indent=4)
print("Saved metrics/evaluation.json")
if __name__ == "__main__":
main()