road-risk-fastapi / model_predict.py
Sameer-Handsome173's picture
Update model_predict.py
4af561c verified
raw
history blame contribute delete
849 Bytes
from input_schemas import ModelInput
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, LabelEncoder
import joblib # or pickle
# Load your trained Ridge model
model = joblib.load("./ridge_best_model.pkl")
def predict_output(input: ModelInput):
df = pd.DataFrame([input.dict()])
categorical_cols = df.select_dtypes(include=['object']).columns.tolist()
bool_cols = df.select_dtypes(include=['bool']).columns.tolist()
for col in categorical_cols:
le = LabelEncoder()
df[col] = le.fit_transform(df[col])
df[bool_cols] = df[bool_cols].astype(int)
numeric_cols = df.select_dtypes(include=[np.number]).columns
scaler = StandardScaler()
df[numeric_cols] = scaler.fit_transform(df[numeric_cols])
prediction = model.predict(df)
return float(prediction[0])