add date to volume

pull/4/head^2
Enzo 1 year ago
parent 48ac81bea0
commit c216ae5bb0

@ -0,0 +1,39 @@
import pandas as pd
import numpy as np
from sklearn.calibration import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# Load data from CSV
df = pd.read_csv("data\\data_emple.csv")
category = df.iloc[0:len(df),0].values
otherData = df.iloc[0:len(df),1:6].values
print(otherData)
# Encode the categorical target variable
label_encoder = LabelEncoder()
category_encoded = label_encoder.fit_transform(category)
model = LinearRegression()
model.fit(otherData,category_encoded)
new_data = np.array([224.0,228.49,346.6000000000000,1.1007253886010361,101]).reshape(1, -1)
# Faites une prédiction avec le modèle entraîné
prediction = model.predict(new_data)
# Affichez la prédiction
print("Prédiction:", prediction)
# Supposons que label_encoder soit l'objet LabelEncoder que vous avez utilisé lors de l'entraînement
inverse_prediction = label_encoder.inverse_transform(prediction.astype(int))
# Affichez la prédiction sous forme de chaîne de caractères
print("Prédiction (en chaîne de caractères):", inverse_prediction)

@ -1,6 +1,6 @@
category,noteUser,distance,timeOfActivity,denivelePositif,speedAvg,bpmAvg
walking,80,2147.0,1716.5,471.5999999999999,1.2740575455079353,114
walking,90,1013.0,933.24,393.2000000000004,1.2849015317286667,122
walking,95,225.0,228.49,346.6000000000006,1.1007253886010366,99
cycling,50,20525.4,6770.675,597.8000000000001,3.5130617816091947,143
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

1 category noteUser distance timeOfActivity denivelePositif speedAvg bpmAvg
2 walking 80 2147.0 1716.5 471.5999999999999 1.2740575455079353 114
3 walking 90 1013.0 933.24 393.2000000000004 1.2849015317286667 122
4 walking 95 225.0 228.49 346.6000000000006 1.1007253886010366 99
5 cycling 50 20525.4 6770.675 597.8000000000001 3.5130617816091947 143
6

@ -0,0 +1,29 @@
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
df = pd.read_csv("data\\data_emple.csv")
distance = df.iloc[0:len(df),1].values.reshape(-1, 1)
time = df.iloc[0:len(df),2].values.reshape(-1, 1)
model = LinearRegression()
# Entrainement
model.fit(time,distance)
# Afficher les coefficients du modèle
print("Coefficients :", model.coef_)
print("Intercept :", model.intercept_)
# Supposons que vous avez de nouvelles données pour lesquelles vous voulez faire des prédictions
new_time_data = np.array([1000]).reshape(1,-1) # Exemple de nouvelles données pour 'time'
# Faire des prédictions sur les nouvelles données
predicted_distance = model.predict(new_time_data)
# Afficher les prédictions
print("Prédictions de distance :", predicted_distance[0])

@ -1,36 +0,0 @@
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.preprocessing import LabelEncoder
# Charger les données
data = pd.read_csv('data\\data_emple.csv')
# Encoder les catégories 'category' et 'noteUser'
label_encoder = LabelEncoder()
data['category'] = label_encoder.fit_transform(data['category'])
data['noteUser'] = label_encoder.fit_transform(data['noteUser'])
# Sélectionner les caractéristiques pour l'entraînement du modèle
features = ['category', 'noteUser', 'distance', 'timeOfActivity', 'denivelePositif', 'speedAvg', 'bpmAvg']
# Diviser les données en ensembles d'entraînement et de test
train_data, test_data = train_test_split(data[features], test_size=0.2, random_state=42)
# Séparer les caractéristiques (X) de la cible (y)
X_train, y_train = train_data.drop('noteUser', axis=1), train_data['noteUser']
X_test, y_test = test_data.drop('noteUser', axis=1), test_data['noteUser']
# Créer et entraîner le modèle de régression linéaire
model = LinearRegression()
model.fit(X_train, y_train)
# Faire des prédictions sur l'ensemble de test
predictions = model.predict(X_test)
print(predictions)
# Évaluer le modèle
mse = mean_squared_error(y_test, predictions)
print(f'Mean Squared Error on Test Data: {mse}')

@ -18,7 +18,7 @@ class ActivityOfUser {
ActivityInfo get activityInfo => _activityInfo;
Map<String, int> get enteteCSV => _enteteCSV;
// -- Getter/Setter -- Ancien //
// -- Getter/Setter -- //
List<List<dynamic>> get contentActivity => _contentActivity;
set contentActivity(List<List<dynamic>> content) {
_contentActivity = content;
@ -39,7 +39,7 @@ class ActivityOfUser {
}
}
// -------------------------- FIN Localisation ---------------------- //
// -------------------------- ToMap ---------------------- //
Map<String, dynamic> toMapGeneric() {
Map<String, dynamic> map = {

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/convertisseur.dart';
import 'package:smartfit_app_mobile/modele/manager_selected_activity.dart';
class User extends ChangeNotifier {

@ -21,6 +21,7 @@ class _VolumesViews extends State<VolumesView> {
Widget build(BuildContext context) {
var media = MediaQuery.of(context).size;
User user = context.watch<User>();
DateTime date = DateTime.now();
Map<String, dynamic> volume7Days =
user.getVolumeWhithDuration(const Duration(days: 7));
@ -47,7 +48,7 @@ class _VolumesViews extends State<VolumesView> {
height: media.width * 0.05,
),
Text(
"Derniere semaine",
"Derniere semaine : ${date.day}/${date.month}/${date.year} - ${date.subtract(const Duration(days: 7)).day}/${date.subtract(const Duration(days: 7)).month}/${date.subtract(const Duration(days: 7)).year}",
style: TextStyle(
color: TColor.black,
fontSize: 16,
@ -61,7 +62,7 @@ class _VolumesViews extends State<VolumesView> {
height: media.width * 0.03,
),
Text(
"Dernier Mois",
"Dernier Mois : ${date.day}/${date.month}/${date.year} - ${date.subtract(const Duration(days: 30)).day}/${date.subtract(const Duration(days: 30)).month}/${date.subtract(const Duration(days: 30)).year}",
style: TextStyle(
color: TColor.black,
fontSize: 16,
@ -72,7 +73,7 @@ class _VolumesViews extends State<VolumesView> {
height: media.width * 0.03,
),
Text(
"Dernière année",
"Dernière année : ${date.day}/${date.month}/${date.year} - ${date.subtract(const Duration(days: 366)).day}/${date.subtract(const Duration(days: 366)).month}/${date.subtract(const Duration(days: 366)).year}",
style: TextStyle(
color: TColor.black,
fontSize: 16,

Loading…
Cancel
Save