File size: 1,072 Bytes
d4ee133
aaa453b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34c147f
aaa453b
 
 
 
 
cd4f98e
 
aaa453b
be46641
aaa453b
 
cd4f98e
aaa453b
d4ee133
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

from fastapi import FastAPI
from pydantic import BaseModel
import joblib

app = FastAPI()
loaded_model = joblib.load('model.joblib', mmap_mode='r')


class PredictRequest(BaseModel):
    AG_X: float
    AG_Y: float
    AG_Z: float
    Acc_X: float
    Acc_Y: float
    Acc_Z: float
    Gravity_X: float
    Gravity_Y: float
    Gravity_Z: float
    RR_X: float
    RR_Y: float
    RR_Z: float
    RV_X: float
    RV_Y: float
    RV_Z: float
    cos: float

class PredictResponse(BaseModel):
    activity: str




@app.post('/predict', response_model=PredictResponse)
def predict(data: PredictRequest):
    features = [data.AG_X, data.AG_Y, data.AG_Z, data.Acc_X, data.Acc_Y, data.Acc_Z, data.Gravity_X, data.Gravity_Y,
                data.Gravity_Z, data.RR_X, data.RR_Y, data.RR_Z, data.RV_X, data.RV_Y, data.RV_Z, data.cos]

    predictions = loaded_model.predict([features])[0]
    print(predictions)

    activities = ["Walking", "Sitting", "Standing", "Sitting", "DownStairs", "Upstairs"]
    activity = activities[predictions]

    return {'activity': activity}