| | """ |
| | FastAPI script for Sepssis and model prediction |
| | Author: Equity |
| | Date: May.30th 2023 |
| | """ |
| |
|
| |
|
| | |
| | from fastapi import FastAPI |
| | import pickle |
| | import uvicorn |
| | from pydantic import BaseModel |
| | import pandas as pd |
| |
|
| |
|
| |
|
| | |
| | class model_input(BaseModel): |
| | |
| | PRG: int |
| | PL: int |
| | PR: int |
| | SK: int |
| | TS: int |
| | M11: float |
| | BD2: float |
| | Age: int |
| | Insurance:int |
| |
|
| |
|
| | app = FastAPI(title = 'Sepssis API', |
| | description = 'An API that takes input and display the predictions', |
| | version = '0.1.0') |
| |
|
| | |
| | toolkit = "P6_toolkit" |
| |
|
| | def load_toolkit(filepath = toolkit): |
| | with open(toolkit, "rb") as file: |
| | loaded_toolkit = pickle.load(file) |
| | return loaded_toolkit |
| |
|
| | toolkit = load_toolkit() |
| | scaler = toolkit["scaler"] |
| | model = toolkit["model"] |
| |
|
| |
|
| | @app.get("/") |
| | async def hello(): |
| | return "Welcome to our model API" |
| |
|
| |
|
| |
|
| | @app.post("/Sepssis") |
| | async def prediction(input:model_input): |
| | data = { |
| | 'PRG': input.PRG, |
| | 'PL': input.PL, |
| | 'PR': input.PR, |
| | 'SK': input.SK, |
| | 'TS': input.TS, |
| | 'M11': input.M11, |
| | 'BD2': input.BD2, |
| | 'Age': input.Age, |
| | 'Insurance': input.Insurance, |
| | } |
| | |
| | |
| | df = pd.DataFrame(data, index=[0]) |
| |
|
| |
|
| | |
| | numeric_columns = [ 'PRG', 'PL', 'PR', 'SK', 'TS', 'M11', 'BD2', 'Age','Insurance'] |
| | |
| | |
| | Scaler = scaler.transform(df[numeric_columns]) |
| | Scaled = pd.DataFrame(Scaler) |
| | prediction = model.predict(Scaled).tolist() |
| | probability = model.predict_proba(Scaled) |
| |
|
| |
|
| | |
| | if (prediction[0] < 0.5): |
| | prediction = "Negative. This person has no Sepssis" |
| | else: |
| | prediction = "Positive. This person has Sepssis" |
| | data['prediction'] = prediction |
| | return data |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | if __name__ == "__main__": |
| | uvicorn.run("API_app:app",host = '127.0.0.1', port = 7860) |