utils package

Submodules

utils.cluster_ts module

class utils.cluster_ts.ClusterTs(ss)[source]

Bases : object

Classe disposant des methodes de transformations et de manipulations des donnees a des fins de partitionnements

classe mere de:
  • kmean
  • kshape
Parameters:
  • ss : SeriesSupp
    instance du manager de series temporelles
Variables:
  • ts: Array[[[float]]]
    les series temporelle au format desiree pour le clustering
  • ts_clust: Array[int]
    Chaque entier est selon son index le cluster auquel appartient l’index referant de ts
  • ts_name: Array[String]
    Nom de la serie temporelle, du capteur a sa granularite (annee, mois, semaine)
  • ss: SeriesSupp
    instance du manager de series temporelles
  • sampler: int
    Taille du sampling sampler()
  • ploter: :class:Plot
    Instance d’un objet d’affichage
  • n: int
    Nombre de cluster
  • capteurs_names: Array[String]
    Nom de la serie temporelle, du capteur a sa granularite (annee, mois, semaine) Bientot supprime
  • from_save: Bool
    True si les infos sont recuperees d’un cluster sauvegarde
  • proto: Array[[[float]]]
    Prototype de chaque cluster
  • last_readed: {Dict}
    Informations recuperer depuis le fichier “Pickle” sauvegarde du cluster etudier
  • store_path: String
    Chemin vers le dossier de stockage des sauvegardes. N’est plus utilise depuis l’implementation d’une boite de dialogue pour la recherche de fichier de sauvegarde
  • name_file: String
    Chemin absolue vers fichier “Pickle”
  • clust_name: String
    Nom de la technique de clustering de l’instance
  • metric: String
    Nom de la technique de clacul de distance de l’instance
  • geo: :class:Geo
    Instance Geo
  • cluster_by_name: {Dict}
    Clustering des series temporelles uniquement par le nom des capteurs sans redondance
  • cluster_by_fullname: {Dict}
    Clustering des series temporelles uniquement par le nom des capteurs et leurs granularite
  • size_min: int
    Taille minimale d’une serie pour etre garde lors du preprocessing
  • nb_capteur: {Dict}
    Clustering des series temporelles uniquement par le nom des capteurs redondance
  • nb_week: {Dict}
    Lors d’un decoupage en semaine, represente la redondance par capteur des semaines
Example:
See: Cluster_engine.ipynb
Notes:
Dependencies:
  • tslearn
  • pandas
  • Pickle
aff_color()[source]

Affiche les couleurs utilise dans le clustering

capteur_parser()[source]

Parser des noms de capteurs, pour pouvoir garder en memoire les nom des capteur et leur extension de date selon la TS

Parameters:
NA
Returns:
NA
check_equal(iterator)[source]

Verifie si la TS reste tout le temps sur la meme valeur

Parameters:
  • iterator: iterator
    la TS
Returns:
Bool
clust_hoverview(n)[source]

Affiche les TS d’un cluster n donnee

Parameters:
  • n: int
    cluster selectionne
Returns:
NA
clust_hoverview_rng(n)[source]

DEPRECATED: Tire une TS random d’un cluster n pour se donner une idee des membres de ce dernier

Parameters:
  • n: int
    Le cluster numero n
Returns:
NA
get_captor_distribution_in_cluster()[source]

Retourne le nombre d’occurance des cpateur dans chacun des clusters

Parameters:
NA
Returns:
unnamed: DataFrame
Tableau d’occurance
get_clust_part_for_captor(cpt)[source]

recupere les cluster pour capteur cpt donne et leur distribution au sein des cluster

Parameters:
  • cpt: String
    Capteur target
Returns:
res: String
Seulement les noms des date pour chacun des clusters
get_cluster_n(n)[source]

Retourne les TS d’un cluster n

Parameters:
  • n: int
    Numero de cluster souhaite
Returns:
res: Array[float]
Ensemble des TS du cluster
get_part_of_ts(data, elmt)[source]

Selon les Parameters d’elmt retrouve une partie des donnes depuis data

Parameters:
  • data: {Dict}
    Donnee depuis les quelles on souhaite recuperer une partie precise
  • elmt: {Dict}
    Information liee a la demande (date)
Returns:
res_ts: Array[float]
TS souhaitee
get_ts_by_captor(cpt)[source]

recupere les TS pour capteur cpt donne et leur distribution au sein des cluster

Parameters:
  • cpt: String
    Capteur target
Returns:
res: tuple(String, {Dict})
String represente le capteur et le dictionnaires la distribution des sous TS dans chaque clusters (key = cluster)
highlight_max(s)[source]

Parametre d’affichage surligne les max par ligne de DataFrame

Parameters:
  • s: pandas
    Ligne du tableau
Returns:
unnamed: pands.style
Affichage des max
parse_capteur_split(elmt)[source]

Recupere les information d’une TS depuis son nom comme le nom de son capteur et la date

Parameters:
  • elmt: String
    Nom du capteur avec info
Returns:
res: {Dict}
Les infos decoupes et range dans un dico
read_cluster(path='')[source]

Ouvre et recupere toutes les informations d’un fichier pickle(sauvegarde d’un clustering) et update les variable de l’instance pour correspondre

Parameters:
  • path: String
    Chemin d’acces au fichier
Returns:
NA
set_size_min(size)[source]

Set taille minimale d’une TS pour etre gardee

Parameters:
  • size: int
    Taille minimale
Returns:
NA
show_info()[source]

Affiche les informations recuperees depuis le txt d’info de la sauvegarde cluster lie a l’instance

Parameters:
NA
Returns:
NA
store_cluster(name)[source]

Sauvegarde sur forme de fichier pickle associe a un txt d’information la partitionnement actuelle de l’instance

Parameters:
  • name: String
    Nom du fichier, represente les parametre principaux de la partitionnement
Returns:
NA
style_df(opt, t)[source]
tslearn_format_export(other_data=None)[source]

Export la variable data vers le format utilise par tslearn pour la partitionnements

Parameters:
NA
Returns::
NA

utils.data_factory module

class utils.data_factory.DataFactory(cwd)[source]

Bases : object

Factory fournis et importe les donnees en gerant le nombre d’intances

Parameters:
  • cwd: String
    chemin d’acces ou le main est excecute
Variables:
  • path_RG24: String
    Chemin pour recuperer les donnees RG24
  • path_RG1: String
    Chemin pour recuperer les donnees RG1
  • path_GW: String
    Chemin pour recuperer les donnees GW
  • RG24: {Dict}
    Les donnees RG24
  • RG1: {Dict}
    Les donnees RG1
  • GW: {Dict}
    Les donnees GW
Notes:
  • RG24: Rain gauge, precipitation de pluie journaliere
  • RG1: Rain gauge, precipitation de pluie horaire
  • GW: Grand Water, donnees piezometriques
get_GW()[source]

Retourne un [DICT] en guise de dataset instancie une seule fois le dataset

get_RG1()[source]

Retourne un [DICT] en guise de dataset instancie une seule fois le dataset

get_RG24()[source]

Retourne un [DICT] en guise de dataset instancie une seule fois le dataset

get_data(name)[source]

Dirige l’importation vers la bonne methode selon le parametre

Parameters:
  • name: String
    Nom du type de donnees a recuperer
Returns:
None
get_dataset(source)[source]

Recupere et retourne un Dictionnaire de Dataframe importe de multiple fichiers csv

Parameters:
  • source: String
    Chemin vers les fichiers csv
Returns:
dataset: {Dict}
Dictionnaire des donnees par capteurs
path_GW = 'csv_prepro\\GW'
path_RG1 = 'csv_prepro\\RG\\precipitation_1h_RG'
path_RG24 = 'csv_prepro\\RG\\precipiation_RG'

utils.file_dialog module

utils.geo module

class utils.geo.Geo(cwd)[source]

Bases : object

Classe entierement dedie a l’affichage des capteur dans l’espace les donnees sont normees suivant un type de geolocalisation geologique propre a la NC, la classe dispose de plusieurs type d’affichage

Parameters:
  • cwd: String
    Chemin vers le main
Variables:
  • path_geo_RG: String
    Chemin pour recuperer les donnees RG
  • path_geo_GW: String
    Chemin pour recuperer les donnees GW
  • geo_RG: {Dict}
    Les donnees geo_RG
  • geo_GW: {Dict}
    Les donnees geo_GW
  • dist_mat: pandas.DataFrame
    Matrice des distances entre les pluviometre et des piezometres
Notes:
  • RG: Rain gauge, precipitation de pluie journaliere
  • GW: Grand Water, donnees piezometric
distance_dict()[source]
distance_matrix()[source]

Retourne une dataframe representant les distances entre piezo et pluvio ainsi que les distances les plus courte

Parameters:
NA
Returns:
gdist_style: pandas.style
Matrice stylise des distances
get_geo_data(source)[source]

Recupere les donnees geographique

Parameters:
  • source: String
    location ou recuperer ces donnees
Returns:
data: pandas.DataFrame
Donnees sous forme de tableau
get_minrange_rg(cpt)[source]
highlight_min(s)[source]

Parametre d’affichage surligne les min par ligne de DataFrame

Parameters:
  • s: pandas
    Ligne du tableau
Returns:
unnamed: pands.style
Affichage des min
plot_2D()[source]
plot_3D()[source]

Afficha 3D des geolocalisations des ouvrages

Parameters:
NA
Returns:
NA
plot_3D_for_all_cluster(names)[source]
plot_3D_for_one_cluster(names)[source]
plotly_3D(names)[source]

Afficha 3D des geolocalisations des ouvrages avec plotly cette fois Plus utilise que le premier

Parameters:
names: String
Nom des capteurs pour les afficher au survol
Returns:
NA

utils.k_mean module

class utils.k_mean.Kmean(ss)[source]

Bases : utils.cluster_ts.ClusterTs

Classe de partitionnement des donnees avec l’algorithm K-mean

Parameters:
  • ss : SeriesSupp
    instance du manager de series temporelles
Variables:
  • seed: int
    Valeur d’initialisation de l’algo, random.
  • counter: Counter
    repartition des objets au sein des clusters
  • km: TimeSeriesKMeans
    Instance de l’algo
  • clust_name: String
    Nom de l’algo(affichage des plots)
  • metric: String
    Choix du metrics utilise, principalement softdtw ici car tres efficace et rapide
cluster_counter()[source]

Compte les objets au sein des clusters

Parameters:
NA
Returns:
NA
k_fit()[source]

Effectue le partitionnement

Parameters:
NA
Returns:
NA
k_init(v=True)[source]

initialisation de l’instance de l’algorithm avec les parametres actuels

Parameters:
  • v: boolean
    Verbose, affiche les info lie au partitionnement
Returns:
NA

utils.k_shape module

class utils.k_shape.Kshape(ss)[source]

Bases : utils.cluster_ts.ClusterTs

Classe de partitionnement des donnees avec l’algorithm K-shape

Parameters:
  • ss : SeriesSupp
    instance du manager de series temporelles
Variables:
  • seed: int
    Valeur d’initialisation de l’algo, random.
  • counter: Counter
    repartition des objets au sein des clusters
  • km: TimeSeriesKMeans
    Instance de l’algo
  • clust_name: String
    Nom de l’algo(affichage des plots)
  • metric: String
    Choix du metrics utilise, principalement softdtw ici car tres efficace et rapide
cluster_counter()[source]

Compte les objets au sein des clusters

Parameters:
NA
Returns:
NA
k_fit()[source]

Effectue le partitionnement

Parameters:
NA
Returns:
NA
k_init(v=True)[source]

initialisation de l’instance de l’algorithm avec les parametres actuels

Parameters:
  • v: boolean
    Verbose, affiche les info lie au partitionnement
Returns:
NA

utils.parser module

class utils.parser.Parser[source]

Bases : object

Transforme les donnees d’un format a un autre a l’aide de methodes de transformations

sax_to_spmf(data, separator=False)[source]

Du format SAX au format SPMF(un soft de data mining avec son propre format)

Parameters:
  • data: SAX
Returns:
res_str: String

utils.plot module

class utils.plot.Plot(cluster)[source]

Bases : object

Classe permetant l’affichage sous forme de graph de donnees

Parameters:
  • cluster: ClusterTs
    instance de partitionnement
Variables:
  • mode: String
    Type d’affichage des graphes
  • colors: {Dict}
    Dictionnaire de couleur pour les plots
change_mode(m)[source]
Change le type d’affichage:
  • 1: Markers
  • 2: Lines
  • 3: Lines+Markers
Parameters:
  • m: int [1:3]
    L’entier qui determiner le mode actuel, si en dehors de [1:3] reste au meme mode qu’avant l’appel
Returns:
NA
plot_captor_cluster_cover(data)[source]
plot_cluster()[source]

Methode d’affichage graphique des clusters formes par l’instance ClusterTs Affiche chaque groupe avec une difference de couleur pour le prototype

plot_cluster_light()[source]

Version legere d’affichage pour limiter la consommation de puissance d’un affichage dynamique

plot_histo(n)[source]

Affcihe par cluster le nombre d’occurence des Capteurs de et la granularite maximale

plot_histo_2(n)[source]
plot_prefixspan(l)[source]
plot_scatter(data)[source]

Affiche des donnees avant cluster, permet de visualiser les donnees decoupe par exemple data: [DICT] les donnees key: Capteur value: Dataframe

plot_scatter_by_capteur(data, capteur)[source]
plot_scatter_by_capteur_color_cluster(data, dict_clust, rg=None)[source]

Affiche un capteur et colorise selon l’appartenance au cluster

plot_scatter_light(data)[source]

Encore une version plus legere de la methode de base data: [DICT] les donnees key: Capteur value: Dataframe

plot_simple_TS(ts)[source]

Plot une liste de valeur

Parameters:
  • ts: Array[int]
    Liste de valeur a afficher
Returns:
NA
plot_simple_list(list)[source]

utils.prefix_span module

class utils.prefix_span.PrefixSpanManager(sax_engine, export=True)[source]

Bases : object

Classe d’outil a l’utilisation de prefixspan

Parameters:
  • sax_engine: SaxEngine
    Instance de preprocessing SAX
  • export: Boolean
    Si oui ou non les donnees sont deja exportees au bon format
Variables:
  • se_instance: SaxEngine
    L’instance de class SAX
  • data: Array[]
    Les donnees au format SAX
export_format()[source]

Modifie le format pour correspondre au besoin de l’instance de PrefixSpan

frequent(n)[source]

Retourne les frequent de support n

Parameters:
  • n: int
    Support minimal
Returns:
Liste des motifs de support minimal n
plot(l)[source]
run()[source]

Creer l’instance PrefixSpan avec les donnees pretraites

topk(n, c=True)[source]

Affiche les motifs les plus frequents(plus grand support) et par defaut les fermes

Parameters:
  • n: int
    Nombre de motifs a afficher
Returns:
Liste de motifs frequent

utils.pygapbide module

class utils.pygapbide.Gapbide(sdb, sup, m, n)[source]

Bases : object

backward_check(pattern, sup, pdb)[source]
forward_check(pattern, sup, pdb)[source]
gen_l1_patterns()[source]

generate length-1 patterns

output(pattern, sup, pdb)[source]

overide this function to output patterns to files.

run()[source]
span(pattern, sup, pdb)[source]
class utils.pygapbide.GapbideManager(gp=None)[source]

Bases : object

Manager d’une instance :class:Gabide

Variables d’Instance:
  • gp: Gapbide
    Instance de l’algo a manager
  • dataset: Array[int]
    Liste des donnees sax les entiers font office de symboles
  • res: Array[[int: X*], int: Y, Z(int: Z1, int: Z2, int: Z3)]
    • X* Pattern d’entiers ex: 244695
    • Y Support du pattern
    • Z( * Z1: Position du patterns, indice de la transaction
      • Z2: Indice au sein de la transaction du debut du patterns
      • Z3: Indice de fin…)
clean_import_db(db)[source]
reset_gp(sup, m, n)[source]
run()[source]

utils.sax_engine module

class utils.sax_engine.SaxEngine(nsy, nse)[source]

Bases : object

Manager SAX(SymbolicAggregateApproximation) pour formater les donnees temporelles vers unhe suites de segments a symboles representatifs

Parameters:
  • nsy : int
    Nombre de symbols
  • nsy : int
    Nombre de segments
Variables:
  • raw_data : ArrayList
    Donnees brutes
  • process_data : ArrayList
    Donnees retravaillees pour correspondre au format fit()
  • sax_data_inv : ArrayList
    Donnees au format SAX mais de meme taille len() que les donnees brutes
  • sax_data : ArrayList
    Donnees au format SAX
Example:
See: Sequential_pattern_mining.ipynb
export_format()[source]
fit(data, export=True)[source]
fit_run(data)[source]
reset()[source]

Reinitialise les variables d’instance

Parameters:
NA
Returns:
NA
run()[source]
set_nb_segment(nb)[source]
set_nb_symbol(nb)[source]
step_run(data)[source]

utils.series_supp module

class utils.series_supp.SeriesSupp(cwd, factory, dataset_name)[source]

Bases : object

Premet d’organiser et de manipuler les données.

Parameters:
  • cwd: String
    chemin d’acces ou le main est excecute
  • factory: Factory
    Instance de la factory
  • dataset_name: String
    Definie le type de donnees a recuperer
Variables:
  • dataset: {Dict}
    Le dataset original sans modification
  • tmp_dataset: {Dict}
    Le dataset actuel avec les modification
  • years: [ARRAY<STRING>]
    Setup de decoupage par annees
  • months: [ARRAY<STRING>]
    Setup de decoupage par mois
  • days: [ARRAY<STRING>]
    Setup de decoupage par annees | [BOOL] decoupage semaines
  • factory: DataFactory
    Instance de la Factory
  • dataset_name: String
    Permet de connaitre la source souhaite e.g import_dataset()
dict_norm()[source]

Normalise un dictionnaire de TS

dict_round()[source]

Normalise un dictionnaire de TS

dict_smooth(wind=24, col='Valeur')[source]

Dictionnaire full smooth

Parameters:
  • wind: int
    Taille de la fenetre 24 pour smooth journalier
  • col: str (DEFAUlT = « Valeur »)
    Colonne cible de l’action
Returns:
NA
dict_stand()[source]

Normalise un dictionnaire de TS

get_data()[source]

Getter du dataset modifie

get_data_from_captor(cpt)[source]

Retourne toutes les series temporelles liees a un nom de capteur

Parameters:
  • cpt: String
    Nom du capteur desire
Returns:
res: {Dict}
Sous dataset du capteur associe, les clefs sont les differente declinaisons en series temporelles du capteur, varie en longueur selon la granularite
import_dataset()[source]

Appel a la factory pour recuperer les donnees

info()[source]

Permet d’avoir une idees des donnees du dataset en prenant une TS au hasard

normalize(data)[source]

Normalisation des TS, moyenne: 0 et ecart type: 1 Data: dataframe

reset_dataset()[source]

Retourne aux donnees importes avant modifications

reset_days()[source]

Par defaut decoupe les TS dans la granularite maximale

reset_months()[source]

Par defaut decoupe les TS dans la granularite maximale

reset_setup()[source]

Full reset des variables de granularites

reset_years()[source]

Par defaut decoupe les TS dans la granularite maximale

smooth(data, wind, col)[source]

Smooth via rolling window

Parameters:
  • data: DataFrame
    La DF a smooth, attention a bien choisir la colonne voulu
  • wind: int
    Taille de fentre
  • col: String
    La colonne de la DF a smooth
Returns:
data: DataFrame
La DF remanie
split_all()[source]
split_data_months()[source]

Decoupage des TS selon la variable de mois

split_data_weeks()[source]

Decoupage des TS selon les semaines

split_data_years()[source]

Decoupage des TS selon la variable d’annees

split_each_steps()[source]
split_year_month_multi_day(dataset, month)[source]
split_year_multi_month()[source]
split_year_multi_month_multi_day()[source]
standardize(data)[source]

Standardize des TS, moyenne: 0 et ecart type: 1 Data: dataframe

utils.statics_func module

utils.statics_func.openfile_dialog()[source]

Boite de dialogue permetant de recuperer les fichers de sauvegarde de partitionnement Pickle

Parameters:
NA
Returns:
fname: String
Chemin vers le fichier selectionne
utils.statics_func.thresholding_algo(y, lag, threshold, influence)[source]

Algorithm de detection de pics dans une TS

Parameters:
  • lag
  • threshold
  • influence
Returns:
unnamed: {Dict}
Informations sortie de l’algo, signals est une liste de meme len que la TS, representant les ppics via une variation boolean

Module contents