# -*- coding: utf-8 -*-
"""
Created on Wed Jul 17 08:11:20 2024

@author: Chris
"""

import numpy as np
import pandas as pd
from datetime import datetime, timedelta
import random
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix

# Question 2 : Configuration de base


# Question 3: Dates


# Données des capteurs pour les vaches
np.random.seed(0)
temperature_vaches = np.random.normal(loc=38.5, scale=0.5, size=(num_jours, num_vaches))
activite_vaches = np.random.normal(loc=5, scale=1, size=(num_jours, num_vaches))
production_lait = np.random.normal(loc=25, scale=2, size=(num_jours, num_vaches))

# Données de transport
temperature_transport = np.random.normal(loc=5, scale=0.5, size=(num_jours, temps_de_transport))
humidite_transport = np.random.normal(loc=85, scale=5, size=(num_jours, temps_de_transport))

# Données de l'usine
ph_lait = np.random.normal(loc=6.8, scale=0.1, size=num_jours)
niveau_bacteries = np.random.normal(loc=800, scale=100, size=num_jours)

# Création de DataFrames
df_vaches = pd.DataFrame({
    'Date': np.repeat(dates, num_vaches),
    'ID_Vache': np.tile(range(1, num_vaches + 1), num_jours),
    'Temperature': temperature_vaches.flatten(),
    'Activite': activite_vaches.flatten(),
    'Production_Lait': production_lait.flatten()
})

df_transport = pd.DataFrame({
    'Date': np.repeat(dates, temps_de_transport),
    'Heure': np.tile(range(1, temps_de_transport + 1), num_jours),
    'Temperature_Transport': temperature_transport.flatten(),
    'Humidite_Transport': humidite_transport.flatten()
})

# Question 4 : création de la base de données df_usine
df_usine = 

# Question 5 : Affichage des premières lignes de chaque DataFrame


"""
# Visualisation des données
plt.figure(figsize=(15, 5))

# Température des vaches
plt.subplot(1, 3, 1)
plt.plot(df_vaches['Date'], df_vaches['Temperature'], 'o', alpha=0.1)
plt.title('Température des Vaches')
plt.xlabel('Date')
plt.ylabel('Température (°C)')

# Température de transport
plt.subplot(1, 3, 2)
plt.plot(df_transport['Date'], df_transport['Temperature_Transport'], 'o', alpha=0.5)
plt.title('Température de Transport')
plt.xlabel('Date')
plt.ylabel('Température (°C)')

# pH du lait en usine
plt.subplot(1, 3, 3)
plt.plot(df_usine['Date'], df_usine['PH_Lait'], 'o')
plt.title('pH du Lait en Usine')
plt.xlabel('Date')
plt.ylabel('pH')

plt.tight_layout()
plt.show()
"""
"""
# Question 7 : fonction valeurs moyennes : température vaches.

# Question 8 : fonction variabilite : température vaches

# Sélection des caractéristiques pertinentes

# Question 9 : Création de la base de données features

# Question 10 : Détection d'incident par la variable target

# Question 11: Division des données en ensembles d'entraînement et de test
X_train, X_test, y_train, y_test = 

# Entraînement du modèle
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# Question 12 : Prédictions
y_pred = model.predict(X_test)

# Question 13 : Création de la base de données reel

# Question 14 : Affichage de la série de résultats

# Question 15 : Création de la nase de données prediction

# Question: 16 : Affichage de la série de résultats


# Question 17 Évaluation
matrice = confusion_matrix(y_test, y_pred)
classification = classification_report(y_test, y_pred)
print("Confusion Matrix:\n", confusion_matrix(y_test, y_pred))
print("\nClassification Report:\n", classification_report(y_test, y_pred))

"""