ahmedmbutt's picture
Add application file
27f9342
raw
history blame
1.16 kB
from fastapi import FastAPI
from pydantic import BaseModel
import pandas as pd
from scipy.stats import boxcox
from joblib import load
app = FastAPI()
class HeartModel(BaseModel):
age: int
sex: int
trestbps: int
chol: int
fbs: int
thalach: int
exang: int
oldpeak: float
slope: int
ca: int
cp_1: bool
cp_2: bool
cp_3: bool
restecg_1: bool
restecg_2: bool
thal_1: bool
thal_2: bool
thal_3: bool
@app.get("/")
def read_root():
return {"Heart": "Prediction"}
@app.post("/predict")
def read_item(data: HeartModel):
lambdas = {
"age": 1.1884623210915386,
"trestbps": -0.566961719937906,
"chol": -0.12552647234590764,
"thalach": 2.4454557922261086,
"oldpeak": 0.17759774936241574,
}
with open("svm.pkl", "rb") as f:
clf = load(f)
data = data.dict()
data["oldpeak"] = data["oldpeak"] + 0.001
for col in lambdas.keys():
if data[col] > 0:
data[col] = boxcox(data[col], lmbda=lambdas[col])
data = pd.DataFrame([data])
target = clf.predict(data)
return {"target": target[0].item()}