pull/8/head^2
Enzo 1 year ago
parent f40b3a5631
commit 11adf4814a

@ -1,39 +0,0 @@
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 +0,0 @@
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 walking 20525.4 6770.675 597.8000000000001 3.5130617816091947 143 1300

@ -1,29 +0,0 @@
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,140 +0,0 @@
from sklearn.linear_model import LinearRegression
import pandas as pd
import numpy as np
import requests
from datetime import datetime, time
import time as sleep_time
# --------------- Fonction ----------------- #
def generateJsonModel(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
def generateModele(dataJson:dict[str,str]):
# -- Préparation des données
arrayBpm = []
arrayStartTime = []
arrayTimeOfActivity = []
for data in dataJson["Data"]:
arrayBpm.append(data["BpmAvg"])
arrayTimeOfActivity.append(data["TimeOfActivity"])
arrayStartTime.append(data["StartTime"])
# -- DataFrame
data = pd.DataFrame({
"Bpm": arrayBpm,
"TimeOfActivity": arrayTimeOfActivity
})
# -- Régression linéaire
model = LinearRegression()
model.fit(np.array(arrayStartTime).reshape(-1,1),data)
return model
def getUserWithData(url:str):
response = requests.get(urlGetAllData)
if ( response.status_code != 200):
print('problème lors de l extraction des données avec l api !! -> "getUserWithData" (status_code != 200)')
exit()
return response.json
def sendJsonToApi(url,json):
response = requests.post(url,json)
if ( response.status_code != 200):
print('Problème lors de l envoi des données avec l api !! -> "sendJsonToApi" (status_code != 200)')
exit()
return
# ---------------- Main ------------------- #
#urlGetAllData = "https://codefirst.iut.uca.fr/containers/SmartFit-smartfit_api/xxx"
#jsonBack = { "Users" : []}
dataUser = {
"Users": [
{
"Identifiant": "x",
"Info": [
{"Category": "walking", "Data": [{"StartTime": 1234, "BpmAvg": 100,"TimeOfActivity": 1716.5}, {"StartTime" : 123456789,"BpmAvg":100,"TimeOfActivity": 1716.5}]},
{"Category": "Cycling", "Data": [{"StartTime": 1234, "BpmAvg": 100,"TimeOfActivity": 1716.5}, {"StartTime" : 123456087,"BpmAvg":100,"TimeOfActivity": 1716.5}]},
]
},
{ "Identifiant": "x",
"Info": [
{"Category": "walking", "Data": [{"StartTime": 1234, "BpmAvg": 120,"TimeOfActivity": 1716.5}, {"StartTime" : 123456789,"BpmAvg":120,"TimeOfActivity": 1716.5}]},
{"Category": "Cycling", "Data": [{"StartTime": 1234, "BpmAvg": 120,"TimeOfActivity": 1716.5}, {"StartTime" : 123456087,"BpmAvg":120,"TimeOfActivity": 1716.5}]},
]
}
]
}
'''
# -- Call Api
#dataUser = getUserWithData(url=urlGetAllData)
for user in dataUser["Users"]:
jsonTmp = {}
jsonTmp["Identifiant"] = user["Identifiant"]
jsonTmp["Info"] = []
for category in user["Info"]:
#Mettre la condition longueur ici
model = generateModele(category)
jsonTmp["Info"].append({"Category": category["Category"],"Model" : generateJsonModel(model)})
# Add User
jsonBack["Users"].append(jsonTmp)
print(jsonBack)
# -- Send Data to Api
#sendJsonToApi(urlGetAllData,jsonBack)
'''
urlGetAllData = "https://codefirst.iut.uca.fr/containers/SmartFit-smartfit_api/xxx"
while(True):
print("Boucle")
jsonBack = { "Users" : []}
heure_actuelle = datetime.now().time()
if ( heure_actuelle == time(8, 0)):
# --- Call Api
#dataUser = getUserWithData(url=urlGetAllData)
for user in dataUser["Users"]:
jsonTmp = {}
jsonTmp["Identifiant"] = user["Identifiant"]
jsonTmp["Info"] = []
for category in user["Info"]:
#Mettre la condition longueur ici
model = generateModele(category)
jsonTmp["Info"].append({"Category": category["Category"],"Model" : generateJsonModel(model)})
# Add User
jsonBack["Users"].append(jsonTmp)
# -- Send Api
#sendJsonToApi(urlGetAllData,jsonBack)
else :
print("Sleep")
if (heure_actuelle < time(7,0) and heure_actuelle > time(8,0) ):
sleep_time.sleep(3600) # Pause 1 heure
elif ( heure_actuelle < time(7,55) ):
sleep_time.sleep(300) # Pause de 5 minutes
else :
sleep_time.sleep(30) # Pause de 30 secondes

@ -1,24 +0,0 @@
# IA
## Fonctionnement
Déterminé une activité pour l'utilisateur
### Data
Utiliser les activityInfo (vitesseAvg,BPM,....)
### Raisonnement
L'utilisateur pourra noter son activiter "Facile,moyen,dur" demander une note sur 100
### Calcul
En fonction de la note
Il devra savoir et répondre une séance
-> Vous devrez faire tant de km à x vitesse
-> Vous serez entre x BPM
-> Essayer de faire x denivelé
-> .... etc

@ -1,57 +0,0 @@
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)
Loading…
Cancel
Save