This repository was archived by the owner on Oct 11, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAPIHelperFunctions.py
More file actions
80 lines (68 loc) · 3.07 KB
/
Copy pathAPIHelperFunctions.py
File metadata and controls
80 lines (68 loc) · 3.07 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from KNN import knn
from MLP import mlp
from RandomForest import rf
from SVM import svm
from savedfiles import load_features_motor_dataset
from joblib import dump
from flask import jsonify
import numpy as np
def choose_model_by_name(model_name, subject):
features, labels, n_outputs = load_features_motor_dataset('features.motor_dataset/data_features'
+ subject + '.npy',
'features.motor_dataset/data_labels'
+ subject + '.npy',
'features.motor_dataset/data_set_labels'
+ subject + '.npy')
if model_name == 'KNN':
model, accuracy, error = knn(features, labels, n_outputs)
dump(model, 'models.cla/' + subject + '-KNN.joblib')
return jsonify({
'Success': 'Made model ' + model_name + ' for subject ' + subject,
'Accuracy': str(accuracy),
'Loss': str(error)
})
elif model_name == 'RF':
model, accuracy, error = rf(features, labels)
dump(model, 'models.cla/' + subject + '-RF.joblib')
return jsonify({
'Success': 'Made model ' + model_name + ' for subject ' + subject,
'Accuracy': str(accuracy),
'Loss': str(error)
})
elif model_name == 'SVM':
model, accuracy, error = svm(features, labels)
dump(model, 'models.cla/' + subject + '-SVM.joblib')
return jsonify({
'Success': 'Made model ' + model_name + ' for subject ' + subject,
'Accuracy': str(accuracy),
'Loss': str(error)
})
elif model_name == 'MLP':
model, accuracy, error = mlp(features, labels)
dump(model, 'models.cla/' + subject + '-MLP.joblib')
return jsonify({
'Success': 'Made model ' + model_name + ' for subject ' + subject,
'Accuracy': str(accuracy),
'Loss': str(error)
})
else:
return jsonify({
'Error': 'Model not available'
})
def get_data(subject):
features, labels, n_outputs = load_features_motor_dataset('features.motor_dataset/data_features'
+ subject + '.npy',
'features.motor_dataset/data_labels'
+ subject + '.npy',
'features.motor_dataset/data_set_labels'
+ subject + '.npy')
return features, labels, n_outputs
def rmse(y_hat, y):
error = 0
percentage = 0
for i in range(len(y_hat)):
error = error + ((y_hat[i] - y[i])**2)
percentage = percentage + (1.0 if y_hat[i] == y[i] else 0.0)
percentage = percentage / len(y_hat)
error = np.sqrt(error)
return percentage, error