39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import pickle
|
|
import numpy as np
|
|
import json
|
|
import sys
|
|
import os
|
|
import xgboost as xgb
|
|
|
|
base_path = os.path.dirname(os.path.abspath(__file__))
|
|
parent_path = os.path.abspath(os.path.join(base_path, '..', '..'))
|
|
model_path = os.path.join(parent_path, 'storage', 'app', 'models', 'Model_SKLearn_XGB_VARK.pkl')
|
|
encoder_path = os.path.join(parent_path, 'storage', 'app', 'models', 'Encoder_Result.pkl')
|
|
|
|
with open(model_path, 'rb') as f:
|
|
model = pickle.load(f)
|
|
|
|
with open(encoder_path, 'rb') as f:
|
|
le_result = pickle.load(f)
|
|
|
|
input_data = json.loads(sys.argv[1])
|
|
visual = input_data['Visual']
|
|
auditory = input_data['Auditory']
|
|
read_write = input_data['Read/Write']
|
|
kinesthetic = input_data['Kinesthetic']
|
|
|
|
X = np.array([visual, auditory, read_write, kinesthetic]).reshape(1, -1)
|
|
feature_names = ['Visual', 'Auditory', 'Read/Write', 'Kinesthetic']
|
|
X_dmatrix = xgb.DMatrix(X, feature_names=feature_names)
|
|
|
|
pred = model.predict(X_dmatrix)
|
|
result = le_result.inverse_transform([int(pred[0])])[0]
|
|
|
|
output = {
|
|
'Result': result,
|
|
'Visual': visual,
|
|
'Auditory': auditory,
|
|
'Read/Write': read_write,
|
|
'Kinesthetic': kinesthetic
|
|
}
|
|
print(json.dumps(output)) |