TIF_E41211128/svm_api.py

39 lines
1.1 KiB
Python

from flask import Flask, request, jsonify
import joblib
import numpy as np
app = Flask(__name__)
# Load model dan scaler
scaler = joblib.load('svm_model/scaler.joblib')
model = joblib.load('svm_model/model_svm_bestacc.joblib')
@app.route('/predict', methods=['POST'])
def predict():
try:
data = request.get_json()
features = [data['kd'], data['win_ratio'], data['accuracy'], data['headshot_rate']]
scaled = scaler.transform([features])
pred = model.predict(scaled)
hasil = "Layak" if pred[0] == 0 else "Tidak Layak"
confidence = None
if hasattr(model, "predict_proba"):
try:
proba = model.predict_proba(scaled)[0]
print("Probabilities:", proba) # 🔍 Cek output proba
confidence = float(max(proba))
except Exception as e:
print("Error saat predict_proba:", e)
return jsonify({
'hasil': hasil,
'confidence': confidence
})
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(port=5000, debug=True)