modelfoxdotdev / modelfox

ModelFox makes it easy to train, deploy, and monitor machine learning models.
Other
1.46k stars 63 forks source link

Prediction server #58

Closed deciduously closed 2 years ago

deciduously commented 2 years ago

Closes #17. Usage:

$ tangram serve --model heart_disease.tangram
$ curl -X POST 127.0.0.1:8080/predict -H 'Content-Type: application/json' -d '{ "inputs": [{"age": 63.0,"gender": "male","chest_pain": "typical angina","resting_blood_pressure": 145.0,"cholesterol": 233.0,"fasting_blood_sugar_greater_than_120": "true","resting_ecg_result": "probable or definite left ventricular hypertrophy","exercise_max_heart_rate": 150.0,"exercise_induced_angina": "no","exercise_st_depression": 2.3,"exercise_st_slope": "downsloping","fluoroscopy_vessels_colored": "0","thallium_stress_test": "fixed defect"}]}'
[{"type":"binary_classification","class_name":"Positive","probability":0.560434,"feature_contributions":null}]

To try with options:

$ curl -X POST 127.0.0.1:8080/predict -H 'Content-Type: application/json' -d '{ "inputs": [{"age": 63.0,"gender": "male","chest_pain": "typical angina","resting_blood_pressure": 145.0,"cholesterol": 233.0,"fasting_blood_sugar_greater_than_120": "true","resting_ecg_result": "probable or definite left ventricular hypertrophy","exercise_max_heart_rate": 150.0,"exercise_induced_angina": "no","exercise_st_depression": 2.3,"exercise_st_slope": "downsloping","fluoroscopy_vessels_colored": "0","thallium_stress_test": "fixed defect"}], "options": {"threshold": 0.4,"compute_feature_contributions": true}}'
[{"type":"binary_classification","class_name":"Positive","probability":0.560434,"feature_contributions":{"baseline_value":0.20128278,"output_value":0.24292351,"entries":[{"type":"normalized","column_name":"age","feature_value":0.9329086,"feature_contribution_value":0.12275841},{"type":"one_hot_encoded","column_name":"gender","variant":null,"feature_value":false,"feature_contribution_value":0.0},{"type":"one_hot_encoded","column_name":"gender","variant":"female","feature_value":false,"feature_contribution_value":0.12700649},{"type":"one_hot_encoded","column_name":"gender","variant":"male","feature_value":true,"feature_contribution_value":0.119262576},{"type":"one_hot_encoded","column_name":"chest_pain","variant":null,"feature_value":false,"feature_contribution_value":0.0},{"type":"one_hot_encoded","column_name":"chest_pain","variant":"asymptomatic","feature_value":false,"feature_contribution_value":-0.3736595},{"type":"one_hot_encoded","column_name":"chest_pain","variant":"atypical angina","feature_value":false,"feature_contribution_value":0.0072757024},{"type":"one_hot_encoded","column_name":"chest_pain","variant":"non-angina pain","feature_value":false,"feature_contribution_value":0.10761015},{"type":"one_hot_encoded","column_name":"chest_pain","variant":"typical angina","feature_value":true,"feature_contribution_value":-0.19594865},{"type":"normalized","column_name":"resting_blood_pressure","feature_value":0.82200927,"feature_contribution_value":0.115394905},{"type":"normalized","column_name":"cholesterol","feature_value":-0.23350535,"feature_contribution_value":-0.035092965},{"type":"one_hot_encoded","column_name":"fasting_blood_sugar_greater_than_120","variant":null,"feature_value":false,"feature_contribution_value":0.0},{"type":"one_hot_encoded","column_name":"fasting_blood_sugar_greater_than_120","variant":"false","feature_value":false,"feature_contribution_value":-0.052730173},{"type":"one_hot_encoded","column_name":"fasting_blood_sugar_greater_than_120","variant":"true","feature_value":true,"feature_contribution_value":-0.074512005},{"type":"one_hot_encoded","column_name":"resting_ecg_result","variant":null,"feature_value":false,"feature_contribution_value":0.0},{"type":"one_hot_encoded","column_name":"resting_ecg_result","variant":"ST-T wave abnormality","feature_value":false,"feature_contribution_value":-0.00006990708},{"type":"one_hot_encoded","column_name":"resting_ecg_result","variant":"normal","feature_value":false,"feature_contribution_value":0.07310219},{"type":"one_hot_encoded","column_name":"resting_ecg_result","variant":"probable or definite left ventricular hypertrophy","feature_value":true,"feature_contribution_value":0.05366865},{"type":"normalized","column_name":"exercise_max_heart_rate","feature_value":0.03279825,"feature_contribution_value":-0.01721257},{"type":"one_hot_encoded","column_name":"exercise_induced_angina","variant":null,"feature_value":false,"feature_contribution_value":0.0},{"type":"one_hot_encoded","column_name":"exercise_induced_angina","variant":"no","feature_value":true,"feature_contribution_value":-0.079578854},{"type":"one_hot_encoded","column_name":"exercise_induced_angina","variant":"yes","feature_value":false,"feature_contribution_value":-0.070175245},{"type":"normalized","column_name":"exercise_st_depression","feature_value":1.1320461,"feature_contribution_value":0.54184896},{"type":"one_hot_encoded","column_name":"exercise_st_slope","variant":null,"feature_value":false,"feature_contribution_value":0.0},{"type":"one_hot_encoded","column_name":"exercise_st_slope","variant":"downsloping","feature_value":true,"feature_contribution_value":0.060956795},{"type":"one_hot_encoded","column_name":"exercise_st_slope","variant":"flat","feature_value":false,"feature_contribution_value":-0.10917909},{"type":"one_hot_encoded","column_name":"exercise_st_slope","variant":"upsloping","feature_value":false,"feature_contribution_value":0.1394263},{"type":"normalized","column_name":"fluoroscopy_vessels_colored","feature_value":-0.7464805,"feature_contribution_value":-0.56697065},{"type":"one_hot_encoded","column_name":"thallium_stress_test","variant":null,"feature_value":false,"feature_contribution_value":-0.00017653508},{"type":"one_hot_encoded","column_name":"thallium_stress_test","variant":"fixed defect","feature_value":true,"feature_contribution_value":0.0515052},{"type":"one_hot_encoded","column_name":"thallium_stress_test","variant":"normal","feature_value":false,"feature_contribution_value":0.34776008},{"type":"one_hot_encoded","column_name":"thallium_stress_test","variant":"reversible defect","feature_value":false,"feature_contribution_value":-0.25062957}]}}]