cpu-advisor-xgboost / inference.py
EngReem85's picture
Create inference.py
895ba70 verified
Raw
History Blame Contribute Delete
1.37 kB
import pandas as pd
import pickle
import skops.io as sio
# Load Model
model = sio.load("cpu_price_model.skops")
# Load Feature Names
with open("feature_names.pkl", "rb") as f:
feature_names = pickle.load(f)
# Prediction Function
def predict_cpu_price(features: dict) -> float:
"""
Predict CPU price from input features.
Args:
features (dict): Dictionary containing all required features.
Returns:
float: Predicted CPU price.
"""
df = pd.DataFrame([features])
missing_features = set(feature_names) - set(df.columns)
if missing_features:
raise ValueError(
f"Missing features: {missing_features}"
)
df = df[feature_names]
# Make prediction
prediction = model.predict(df)
return float(prediction[0])
# Example Usage
if __name__ == "__main__":
sample_input = {
"tdp": 125,
"cores": 8,
"logicals": 16,
"cpuCount": 1,
"rank": 2500,
"samples": 120,
"extracted_ghz": 3.6,
"speed_ghz": 3.6,
"turbo_ghz": 5.0,
"cost_per_rank_point": 0.12,
"cost_per_core": 45.5,
"brand_encoded": 0,
"category_final_encoded": 1,
"socket_final_encoded": 3
}
predicted_price = predict_cpu_price(sample_input)
print(f"Predicted CPU Price: ${predicted_price:.2f}")