Spaces:
Running
Running
| import joblib | |
| import numpy as np | |
| import pandas as pd | |
| from typing import List | |
| class SecondaryModel: | |
| def __init__(self): | |
| self.scaler = joblib.load("scalers/secondary_scaler.joblib") | |
| self.model = joblib.load("models/secondary_weights.joblib") | |
| self.secondary_model_features = [ | |
| "machine_probability", "backspace_count_normalized", | |
| "letter_discrepancy_normalized", "cosine_sim_gpt4o" | |
| ] | |
| def preprocess_input(self, secondary_model_features: List[float]) -> pd.DataFrame: | |
| features_df = pd.DataFrame( | |
| [secondary_model_features], columns=self.secondary_model_features) | |
| features_df[self.secondary_model_features] = self.scaler.transform( | |
| features_df[self.secondary_model_features]) | |
| return features_df | |
| def predict(self, secondary_model_features: List[float]) -> float: | |
| return self.model.predict_proba(self.preprocess_input(secondary_model_features))[:, -1][0] | |