Spaces:
Running
Running
import joblib | |
import numpy as np | |
import pandas as pd | |
from typing import List | |
class RandomForestModel: | |
def __init__(self): | |
self.scaler = joblib.load("scalers/rf_scaler.joblib") | |
self.model = joblib.load("models/random_forest.joblib") | |
self.secondary_model_features = [ | |
"machine_probability", "backspace_count_normalized", "typing_duration_normalized", "letter_discrepancy_normalized" | |
] | |
def preprocess_input(self, secondary_model_features: List[float]) -> np.ndarray: | |
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.values.astype(np.float32).reshape(1, -1) | |
def predict(self, secondary_model_features: List[float]): | |
return int(self.model.predict(self.preprocess_input(secondary_model_features))[0]) | |