pull/8/head^2
Enzo 1 year ago
parent 0f4a5d5932
commit a4e9ddded6

@ -1,6 +1,6 @@
category,distance,timeOfActivity,denivelePositif,speedAvg,bpmAvg
walking,2147.0,1716.5,471.5999999999999,1.2740575455079353,114
walking,1013.0,933.24,393.2000000000004,1.2849015317286667,122
walking,225.0,228.49,346.6000000000006,1.1007253886010366,99
cycling,20525.4,6770.675,597.8000000000001,3.5130617816091947,143
category,distance,timeOfActivity,denivelePositif,speedAvg,bpmAvg,startTime
walking,2147.0,1716.5,471.5999999999999,1.2740575455079353,114,1234
walking,1013.0,933.24,393.2000000000004,1.2849015317286667,122,1245
walking,225.0,228.49,346.6000000000006,1.1007253886010366,99,1270
walking,20525.4,6770.675,597.8000000000001,3.5130617816091947,143,1300

1 category distance timeOfActivity denivelePositif speedAvg bpmAvg startTime
2 walking 2147.0 1716.5 471.5999999999999 1.2740575455079353 114 1234
3 walking 1013.0 933.24 393.2000000000004 1.2849015317286667 122 1245
4 walking 225.0 228.49 346.6000000000006 1.1007253886010366 99 1270
5 cycling walking 20525.4 6770.675 597.8000000000001 3.5130617816091947 143 1300
6

@ -0,0 +1,57 @@
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import LabelEncoder
import pickle
import sklearn_json as skljson
def generateJson(model:LinearRegression):
listCoef = []
listIntercept = []
for i in range(0,len(model.coef_)):
listCoef.append(model.coef_[i][0])
listIntercept.append(model.intercept_[i])
json = {"coef":listCoef,"intercept":listIntercept}
return json
# Load data from CSV
df = pd.read_csv("data\\data_emple.csv")
startTime = df.iloc[0:len(df),6].values.reshape(-1,1)
category = df.iloc[0:len(df),0].values
#print("Category : ",category)
data = pd.DataFrame({
"Distance": df.iloc[:, 1].values,
"Time": df.iloc[:, 2].values,
"Denivele": df.iloc[:, 3].values,
"Speed": df.iloc[:, 4].values,
"Bpm": df.iloc[:, 5].values
})
model = LinearRegression()
model.fit(startTime,data)
datePredict = np.array([[1271]])
prediction = model.predict(datePredict)
print("Prédiction -> ")
#print(prediction)
print("Distance : ",float(prediction[0][0]))
print("Time : ",float(prediction[0][1]))
print("Denivele : ",float(prediction[0][2]))
print("Speed : ",float(prediction[0][3]))
print("BPM : ",float(prediction[0][4]))
generateJson(model=model)

@ -1,5 +1,8 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart';
import 'package:smartfit_app_mobile/modele/manager_selected_activity.dart';
class User extends ChangeNotifier {
@ -83,4 +86,27 @@ class User extends ChangeNotifier {
map["durationActiviy"] = selected.getTimeAllActivitySelected();
return map;
}
ActivityInfo predictActivity(DateTime date) {
// Appel pour avoir le model
String jsonString =
'{"coef": [270.63861280635473, 74.69699263779908, 1.9946527172333637, 0.03215810401413792, 0.3256805192289063], "intercept": [-335635.9890148213, -91874.0527070619, -2065.450392327813, -38.79838022998388, -291.590235396687]}';
Map<String, dynamic> jsonMap = json.decode(jsonString);
// Transformer la date
int dateMilli = date.millisecondsSinceEpoch;
ActivityInfo activityInfo = ActivityInfo();
activityInfo.distance =
jsonMap["coef"][0] * dateMilli + jsonMap["intercept"][0];
activityInfo.timeOfActivity =
jsonMap["coef"][1] * dateMilli + jsonMap["intercept"][1];
activityInfo.denivelePositif =
jsonMap["coef"][2] * dateMilli + jsonMap["intercept"][2];
activityInfo.vitesseAvg =
jsonMap["coef"][3] * dateMilli + jsonMap["intercept"][3];
activityInfo.bpmAvg =
jsonMap["coef"][4] * dateMilli + jsonMap["intercept"][4];
return activityInfo;
}
}

Loading…
Cancel
Save