Insta-AI / scripts /train_engagement_rate.py
Sam Fred
Commit
82aee85
import pandas as pd
from xgboost import XGBRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
import joblib
from utils.preprocessing import preprocess_data
from huggingface_hub import HfApi, login
import os
def train_engagement_rate():
"""Train the engagement rate prediction model."""
# Load data
df = pd.read_json("data/raw/engagement_metrics.json")
df = preprocess_data(df)
# Train engagement rate model
X = df[['caption_length', 'hashtag_count', 'sentiment']]
y = df['engagement_rate']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
engagement_model = XGBRegressor(random_state=42)
engagement_model.fit(X_train, y_train)
y_pred = engagement_model.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
print(f"Engagement Rate Prediction Model - MAE: {mae:.4f}")
# Save the model locally
joblib.dump(engagement_model, "engagement_rate_model.pkl")