Cours de Fouille de Données PDF - 2ème année Génie Informatique
Document Details
Uploaded by NimbleUnakite
IIT - Institut International de Technologie
2025
Taoufik Ben Abdallah
Tags
Summary
This document is a course booklet for the second year of Computer Science Engineering at the Institut International Technologie (IIT) for the first semester of 2024-2025. The course is about Data Mining and covers general introduction to data mining, and data preprocessing. It also explains various techniques of data mining and data applications.
Full Transcript
FASCICULE DE COURS FOUILLE DE DONNÉES 2ème année Génie Informatique Semestre 1 DR. TAOUFIK BEN ABDALLAH MAÎTRE-ASSISTANT À LA FS-BIZERTE UNIVERSITÉ DE CARTHAGE taoufik....
FASCICULE DE COURS FOUILLE DE DONNÉES 2ème année Génie Informatique Semestre 1 DR. TAOUFIK BEN ABDALLAH MAÎTRE-ASSISTANT À LA FS-BIZERTE UNIVERSITÉ DE CARTHAGE [email protected] 2024-2025 ⚫ Objectifs du cours Sensibiliser les étudiants à l’importance du Data Mining en tant que nouvel domaine technologique Positionner le Data Mining dans le processus d’Extraction des Connaissances à partir des Données (ECD) Maîtriser les principes théoriques et pratiques de quelques techniques du Data Mining IIT-Sfax Taoufik Ben Abdallah 2 Organisation du cours RÉPARTITION APPROXIMATIVE DU CHARGE HORAIRE=42H COURS+TD TRAVAUX PRATIQUES 26H 16H EVALUATION 20% DS 25% Projet 55% Examen IIT-Sfax Taoufik Ben Abdallah 3 PLAN DU COURS Plan du cours 1 Aperçu général sur le processus ECD 2 EDA & Prétraitement de données 3 DM descriptif : Découverte des règles d’association 4 DM prédictif : Classification & Régression IIT-Sfax Taoufik Ben Abdallah 5 Plan du cours (4- Classification & Régression) A- Echantillonnage & Estimation des performances B- Arbres de décision C- Techniques ensemblistes D- Régression linéaire & logistique IIT-Sfax Taoufik Ben Abdallah 6 VOLET PRATIQUE Calcul Scientifique avec Exploration des données avec Visualisation graphique avec & Prétraitement de Données, Échantillonnage, Apprentissage Automatique et Évaluation des Performances avec IIT-Sfax Taoufik Ben Abdallah 7 INTRODUCTION GÉNÉRALE Génie Indus 3 8 L’ère des données! Masse de données souvent non-exploitée Beaucoup de données mais peu de connaissances Comment exploiter les données Solution: Extraction des Connaissances à partir des Données (ECD) IIT-Sfax Taoufik Ben Abdallah 9 Extraction des Connaissances à partir des Données Informations significatives Connaissances Data Mining Sens Produire des connaissances en faisant Informations Données parler les données ! extraites préparées Contexte Données IIT-Sfax Taoufik Ben Abdallah 10 Domaines d’application! Recommandation Industrie Agriculture Loisir Éducation Finance Santé Transport IIT-Sfax Taoufik Ben Abdallah 11 Quelques applications en DM Traitement du langage naturel (NLP) Vision par ordinateur Système de recommandations Détection des maladies Détection Fraude bancaires Analyse des avis des internautes Détection objets en mouvements IIT-Sfax Taoufik Ben Abdallah 12 Data Mining vs Machine Learning Data Mining= Découverte de Data Science connaissances à partir de données Statistics Machine Learning= La façon d’écrire des programmes qui peuvent apprendre Data Machine DL IA Mining Learning Data Mining implique ECD l’utilisation de ML IA : Intelligence Artificielle DL : Deep Learning IIT-Sfax Taoufik Ben Abdallah 13 Données! Données structurées Données semi-structurées Données non-structurées Données Tabulaire! Data Mining / Machine Learning IIT-Sfax Taoufik Ben Abdallah 14 CHAPITRE 1 APERÇU GÉNÉRAL SUR LE PROCESSUS ECD Génie Indus 3 15 Processus ECD Trois phases majeurs! Préparation des données Data Mining : étape centrale de l’ECD Interprétation & Validation des modèles IIT-Sfax Taoufik Ben Abdallah 16 Processus ECD Trois phases majeurs! Données Données I-Préparation des données Informations Espace de descripteurs II-Data Mining Connaissances Modèles III-Validation Modèle retenu IIT-Sfax Taoufik Ben Abdallah 17 PhaseI: Préparation des données 1. Détection des descripteurs ❑ Construction de l’espace des données qui va être exploré ❑ Espace des données= Jeu de donnée= Espace de descripteurs (Feature space) ❑ Collection d’observations ou objets + leurs attributs ❑ Une collection d’attributs décrivent un objet ❑ Un objet est également appelé échantillon=entité = instance Client Salaire S. Familiale Ville 1 Moyen Divorcé Tunis Descripteurs = Attributs = 2 Elevé Célibataire Tunis 3 variables =caractéristiques Faible Célibataire Sfax ⋮ ⋮ ⋮ ⋮ = Information Observations IIT-Sfax Taoufik Ben Abdallah 18 PhaseI: Préparation des données 1. Détection des descripteurs ⚫ Type de valeurs des descripteurs A. Discret : chaine de caractères (nominal & ordinal) Nominal ≠ Ordinal Aucune relation existe entre les valeurs Les valeurs ont un ordre significatif N’est pas possible de calculer des distances ex. Noir/ Rouge/ Blanc ex. Chaud>Moyen>Froid IIT-Sfax Taoufik Ben Abdallah 19 PhaseI: Préparation des données 1. Détection des descripteurs ⚫ Type de valeurs des descripteurs B. Binaire : Seulement deux valeurs (vrai, faux / 0,1) Symétrique ≠ Asymétrique Les deux résultats sont d’importance égale Les résultats n’ont pas la même importance ex. sexe H/F ex. Test médical P/N C. Continue : Nombres entier ou réels =valeurs quantitatifs IIT-Sfax Taoufik Ben Abdallah 20 PhaseI: Préparation des données 2. Prétraitement Data preprocessing Nettoyage de données Remplacer les valeurs manquantes Transformation des données Supprimer les valeurs aberrantes Normaliser les données Détecter les anomalies (outliers detection) Discrétisation des données Réduction des données Convertir les attributs continus en attributs discrets Réduire des données ou des descripteurs IIT-Sfax Taoufik Ben Abdallah 21 PhaseII : Data Mining Tâches Appliquer de méthodes intelligentes pour extraire des modèles de données ⧫ Data Mining descriptif Mettre en évidence des informations présentes mais cachées par le volume de données ⧫ Data Mining prédictif Extrapoler de nouvelles informations à partir des informations présentes IIT-Sfax Taoufik Ben Abdallah 22 PhaseII : Data Mining DM descriptif Statistique descriptive: Résumé des données qui soit le plus intelligible → Représentation graphique Découverte des règles d’association : Découvrir des relations entre des produits (secteur de Marketing) IIT-Sfax Taoufik Ben Abdallah 23 PhaseII : Data Mining DM descriptif Apprentissage non-supervisé Clustering → Organisation des données en groupes → Les données similaires soient dans le même groupe Client Salaire S. Familiale Ville Classe Pas de cible 1 Moyen Divorcé Tunis (pas de label) 2 Elevé Célibataire Tunis ? non 3 Faible Célibataire Sfax ? non ⋮ ⋮ ⋮ ⋮ ?⋮ IIT-Sfax Taoufik Ben Abdallah 24 PhaseII : Data Mining DM prédictif Apprentissage supervisé classification/ Régression → Extrapoler des nouvelles informations à partir de données existantes → Prédire la classe de nouvelles données observées) Rembourse Classe Client Salaire S. Familiale Ville son crédit 1 Moyen Divorcé Tunis ? oui Très 2 Elevé Célibataire Tunis ? non 3 Faible Célibataire Sfax ? non couteux ⋮ ⋮ ⋮ ⋮ ?⋮ à avoir !!! IIT-Sfax Taoufik Ben Abdallah 25 Apprentissage supervisé Classification : Prédire des valeurs discrets ⚫ Sera-t-il froid ou chaud demain? Froid (A)/ chaud (B) Régression : Prédire des valeurs continues ⚫ Quelle est la température demain? IIT-Sfax Taoufik Ben Abdallah 26 Apprentissage supervisé ⚫ Techniques souvent utilisées Arbres de décision ✓ Réseau de neurones ✓ Régression logistique/ linéaire ✓ Support Vector Machine (SVM) ✓ Gradient Boosting/ XGBoost/CatBoost ✓ Random Forest ✓ IIT-Sfax Taoufik Ben Abdallah 27 PhaseIII: Validation Les modèles extraits ne peuvent être utilisés directement en toute fiabilité! Validation= évaluer les performances d’un modèle DM descriptif= Visualisation + Interprétation DM prédictif= Échantillonnage+Calcul d’erreur IIT-Sfax Taoufik Ben Abdallah 28 Quelques outils de Data Mining Open Source Licensed IIT-Sfax Taoufik Ben Abdallah 29 Librairies & Framework IIT-Sfax Taoufik Ben Abdallah 30 Quiz 1. L’étape de préparation de données consiste principalement à (seule réponse) Donner un contexte aux données Donner un sens aux informations Évaluer et interpréter la fiabilité des données Répartir les données 2. L’espace de descripteurs est une représentation matricielle (plusieurs réponses) De connaissances D’informations Où les colonnes sont les descripteurs et les lignes sont les échantillons Où les colonnes sont les échantillons et les lignes sont les descripteurs 3. L’apprentissage supervisé (seule réponse) Est appliqué pour constituer des groupes d’objets homogènes et différenciés Consiste à utiliser des données pour dégager des informations Est appliqué principalement pour le regroupement Nécessite des échantillons étiquetés par un ou plusieurs classes IIT-Sfax Taoufik Ben Abdallah 31 CHAPITRE 2 EDA & PRÉTRAITEMENT DE DONNÉES Génie Indus 3 32 Exemple du dataset (avec anomalies!) Attribut date Outliers!! Attributs discrets # Id Nom Date. N Sexe A1 A2 A3 A4 1 111 John 31/12/1990 M 767 0 Ireland Dublin 2 222 Mery 15/10/1978 F 22 0.5 Iceland NAN 3 333 Alice 19/04/2000 F 60 300 Spain Madrid Lignes dupliquées 4 789 Alex 15/03/2000 A 35 23 Germany Berlin 5 789 Alex 15/03/2000 A 15 23 Germany Berlin 6 555 Peter 1983-12-01 M NAN 10 Italy Rome 7 777 Calvin 05/05/1995 M 32 0.13 Italy Rome 8 888 Roxane 03/08/1948 F 44 0.8 Portugal Lisbon 9 999 Anne 05/09/1992 F 986 5 Switzerland Geneva 10 101010 Paul 14/11/1992 M 24 26 Ytali Rome valeurs uniques Valeurs variées IIT-Sfax Taoufik Ben Abdallah 33 EDA & Prétraitement de données EXPLORATORY DATA ANALYSIS (EDA) DATA PREPROCESSING ANALYSE EXPLORATOIRE DES DONNÉES PRÉTRAITEMENT DES DONNÉES Analyse les données pour obtenir des Prépare et transforme les données afin informations initiales et comprendre qu’elles soient prêtes pour l’entraînement leurs caractéristiques des modèles EDA & Prétraitement de données sont complémentaires EDA permet de mieux comprendre les données, ce qui peut orienter les décisions à prendre lors du prétraitement des données IIT-Sfax Taoufik Ben Abdallah 34 EDA & Prétraitement de données (//) EXPLORATORY DATA ANALYSIS (EDA) DATA PREPROCESSING ANALYSE EXPLORATOIRE DES DONNÉES PRÉTRAITEMENT DES DONNÉES Exploration initiale : Identification des variables et les types de données ⚫ Nettoyage des données Statistique descriptives: Aperçu initial de la distribution de données ⚫ Transformation de données Identification des valeurs manquantes/ outliers et duplicata ⚫ Discrétisation des données Visualisation des distributions ⚫ Réduction des données Etude de relation entre les attributs : Analyse de corrélation IIT-Sfax Taoufik Ben Abdallah 35 Exploration initiale DataFrame df= Identification des types de colonnes df.info() Age, Height & Weight comportent des valeurs manquantes! 271116 rows × 7 columns IIT-Sfax Taoufik Ben Abdallah 36 Statistique descriptives df.describe(include="all") Discrets!! Plus fréquente Continus!! IIT-Sfax Taoufik Ben Abdallah 37 Identification des valeurs manquantes NaN Valeurs manquante df= df.isnull().sum() Équivalent à df.isna().sum() Nombre total de valeurs manquantes df.isnull().sum().sum() #9474+60171+62875=132520 IIT-Sfax Taoufik Ben Abdallah 38 Nettoyage des données : Traitement des NaN Suppression des instances/ colonnes Remplissage des valeurs ayant des valeurs manquantes manquantes dropna Par une valeur Par l’élément le plus fréquent/ fictive moyenne/médiane fillna SimpleImputer bfill ffill IIT-Sfax Taoufik Ben Abdallah 39 Traitement des NaN Suppression df.dropna(subset=["Height","Weight"], df= axis=0 , inplace=True, Valeur par défaut ignore_index=True) df.dropna(subset="Age",axis=1, inplace=True) Conserver uniquement les lignes/colonnes avec au moins 2 valeurs non manquantes! df.dropna(thresh=2, how="any", inplace=True) df.dropna(thresh=2, how="any", inplace=True) ▪ "any" : Supprimer la ligne ou la colonne si au moins une valeur est NaN ▪ "all" : Supprimer la ligne ou la colonne uniquement si toutes les valeurs sont NaN IIT-Sfax Taoufik Ben Abdallah 40 Traitement des NaN Remplissage (1/2) Par une valeur fictive df= Nombre de NAN total à remplir! df['Age'].fillna(0, inplace=True),limit=2) df['Age'].fillna(df[['Height', 'Weight']].apply( lambda x: 40 if (x >= 170 and x >= 80) else 25, axis=1), inplace=True) Remplissage ffill bfill df['Age'].ffill(inplace=True) vers l’avant df['Age'].fillna(method='ffill', inplace=True) Remplissage df['Age’].bfill(inplace=True) vers l’arrière df['Age'].fillna(method='bfill', inplace=True) Il est recommandé de trier les données! IIT-Sfax Taoufik Ben Abdallah 41 Traitement des NaN Remplissage (2/2) Par l’élément le plus fréquent/ moyenne/médiane from sklearn.impute import SimpleImputer mf_imputer = SimpleImputer(missing_values=np.nan, 24 24.0 strategy='most_frequent') 24 'most_ 24.0 frequent' arr=mf_imputer.fit_transform(df.loc[:,['Age']]) NaN 24.0 ndarray 25 25.0 Il faut avoir un DataFrame pd.DataFrame(arr,columns=['Age']) ou ndarry 2D! 30 30.0 strategy='mean' / strategy='median' Toutes les valeurs des attributs doivent être de type continue IIT-Sfax Taoufik Ben Abdallah 42 Identification des valeurs aberrantes Identifier les instances ayant un comportement non conforme Méthode des valeurs extrêmes (Extreme Value Analysis) Méthode de la règle des 𝐤-voisins les plus proches Boîtes à moustaches (Boxplot) Méthodes basées sur des seuils Méthode de la fréquence Isolation Forest IIT-Sfax Taoufik Ben Abdallah 43 Identification des valeurs aberrantes Boxplot Premier quartile Q1= 25e percentile= 25% des Outliers ⋮ upper limit données sont inférieures au valeur de Q1 Deuxième quartile Q3= 75e percentile= 75% des données sont inférieures au valeur de Q3 Quartile Q3 Médiane = Q2= 50e percentile IQR box médiane Q2 Interquartile range (IQR)=Q3-Q1 Quartile Q1 lower limit= max(min, Q1−1.5 × IQR) upper limit= min(max, Q3+1.5 × IQR) lower limit Outliers ⋮ IIT-Sfax Taoufik Ben Abdallah 44 Boxplot Q1, Q3 ? Soit la distribution de données T suivante : 𝐍=8 observations Valeur 10 15 20 25 30 35 40 45 Position 0 1 2 3 4 5 6 7 Q1, Q3= np.percentile(T, [25,75]) 𝟐𝟓 Index_Q1=( ) × (𝐍-1)=1.75 𝟏𝟎𝟎 𝟕𝟓 Index_Q3=( ) × (𝐍-1)=5.25 𝟏𝟎𝟎 Q1 =15+(20-15)× partie décimale(Index_Q1)= 15+(20-15)×0.75=18.75 Q3 =35+(40-35)× partie décimale(Index_Q3)= 35+(40-35)×0.25=36.25 IIT-Sfax Taoufik Ben Abdallah 45 Nettoyage des données : Traitement des outliers sns.boxplot(data=df,x="Height") Q1,Q3=np.percentile(df["Height"], [25,75]) IQR=Q3-Q1 upper_limit=Q3+1.5*IQR lower_limit=Q1-1.5*IQR outliers=df["Height"][(df["Height"]>upper_limit)| (df["Height"]=upper_limit, upper_limit, np.where(df['Height'] 𝟏 : Présence de 𝐱 augmente la probabilité de présence de 𝐲=association positive entre 𝐱 et 𝐲 = Règle intéressante lift R < 𝟏 : Présence de 𝐱 dimunie la probabilité de présence de 𝐲=association négative entre 𝐱 et 𝐲 = Règle non intéressante lift R = 𝟏 : indépendance= Règle non intéressante IIT-Sfax Taoufik Ben Abdallah 92 Activité2 Supposons que l’on dispose des données représentant 6000 transactions. Étant donnée le nombre de transactions qui supportent 𝐏𝐚𝐢𝐧(𝐏) et 𝐄𝐚𝐮 𝐄 = 3000; 𝐬𝐮𝐩𝐩(𝐏)=1 et 𝐬𝐮𝐩𝐩(𝐄)=0.5 avec Confmin=40% 1/ Calculer la confiance de la règle d’association 𝐏 → 𝐄 3000 𝐬𝐮𝐩𝐩(𝐏𝐄) 6000 𝐜𝐨𝐧𝐟(𝐏 → 𝐄) = = = 0.5 ≥ 0.4 →Règle pertinente 𝐬𝐮𝐩𝐩(𝐏) 1 50% des clients qui achètent du pain achètent également de l’eau 2/ Est-ce que la règle d’association 𝐏 → 𝐄 est intéressante ? 𝐜𝐨𝐧𝐟(𝐏→𝐄) 𝟎.5 𝐥𝐢𝐟𝐭(𝐏 → 𝐄) = = = 1 → Règle non intéressante= indépendance 𝐬𝐮𝐩𝐩(𝐄) 0.5 3/ Quelle est la conclusion que l’on peut tirer à partir des résultats précédents ? Une règle pertinente n’est pas nécessairement intéressante! IIT-Sfax Taoufik Ben Abdallah 93 Quiz 1. Étant donnée les deux transactions 𝐭 𝟏 = 𝐂𝐕𝐊𝐁 et 𝐭 𝟐 = 𝐊𝐉𝐄 (plusieurs réponses) Le nombre de descripteurs est égal à 6 Le nombre de transactions comportant deux descripteurs est égal à 15 Le nombre de transactions comportant trois descripteurs est égal à 20 supp 𝐊𝐉 = 0.5 2. Soit conf(𝐲 → 𝐱)=1, supp(𝐲𝐳) > 𝐬 et conf(𝐲 → 𝐳) > 𝐜, donc (seule réponse) supp(𝐲𝐱) = supp(𝐲) conf(𝐱 → 𝐳) = conf(𝐱𝐳) supp(𝐱 → 𝐳) >s conf(𝐱 → 𝐳) >c 3. Étant donnée Confmin=0.6 et conf(R)=0.8, alors R est nécessairement intéressante (seule réponse) Faux Vrai IIT-Sfax Taoufik Ben Abdallah 94 𝐥𝐞𝐯𝐞𝐫𝐚𝐠𝐞 Étant donnée R : 𝐱 → 𝐲 co-occurrence attendue 𝐥𝐞𝐯𝐞𝐫𝐚𝐠𝐞 R = 𝐬𝐮𝐩𝐩(R)-𝐬𝐮𝐩𝐩(𝐱) × 𝐬𝐮𝐩𝐩(𝐲) [−𝟏, 𝟏] co-occurrence réelle Mesure la différence entre la fréquence réelle d’apparition conjointe de deux items (co-occurrence réelle) et la fréquence attendue si ces items étaient indépendants (co-occurrence attendue) leverage R > 𝟎 : 𝐱 et 𝐲 apparaissent ensemble plus souvent que ce que l’on attendrait s’ils étaient indépendants (association entre 𝐱 et 𝐲 est forte) leverage R < 𝟎 : 𝐱 et 𝐲 apparaissent ensemble moins souvent que prévu (la présence de 𝐱 est associée à l’absence de 𝐲 ou vice versa leverage R = 𝟎 : pas de relation entre 𝐱 et 𝐲 IIT-Sfax Taoufik Ben Abdallah 95 𝐜𝐨𝐧𝐯𝐢𝐜𝐭𝐢𝐨𝐧 Étant donnée R : 𝐱 → 𝐲 𝟏−𝐬𝐮𝐩𝐩(𝐲) 𝐜𝐨𝐧𝐯𝐢𝐜𝐭𝐢𝐨𝐧 R = 𝟏−𝐜𝐨𝐧𝐟(R) [0, ∞[ Mesure la force d’une relation entre deux items en prenant en compte non seulement la co-occurrence, mais aussi la probabilité que la conséquence de la règle soit absente lorsque l’antécédent est présent conviction R > 𝟏 : la présence de 𝐱 augmente la probabilité que 𝐲 soit également présent= Forte dépendance directionnelle de 𝐲 par rapport à 𝐱 =Règle fiable conviction R < 𝟏 : la présence de 𝐱 réduit la probabilité de la présence de 𝐲 = il y a plus de chances que la conséquence 𝐲 soit absente même si l’antécédent 𝐱 est présent = Règle non fiable conviction R = 𝟏 : indique que 𝐱 et 𝐲 sont indépendants =Règle non fiable conviction R = 𝐢𝐧𝐟 : se produit lorsqu’une règle est "parfaite"=chaque fois que 𝐱 est présent, 𝐲 est également présent, sans exception IIT-Sfax Taoufik Ben Abdallah 96 𝐳𝐡𝐚𝐧𝐠𝐬_𝐦𝐞𝐭𝐫𝐢𝐜 Étant donnée R : 𝐱 → 𝐲 (𝐬𝐮𝐩𝐩(R)−𝐬𝐮𝐩𝐩(𝐱) × 𝐬𝐮𝐩𝐩(𝐲)) 𝐙𝐡𝐚𝐧𝐠_𝐦𝐞𝐭𝐫𝐢𝐜 R = [−𝟏, 𝟏] 𝐦𝐚𝐱(𝐬𝐮𝐩𝐩 𝐱 × (𝟏 − 𝐬𝐮𝐩𝐩 𝐲 ), 𝟏 − 𝐬𝐮𝐩𝐩(𝐱) × 𝐬𝐮𝐩𝐩(𝐲)) Mesure la force ou la dépendance entre des items dans une règle d’association tout en minimisant l’influence de la fréquence d’occurrence des items Zhang_metric R > 𝟎 : association positive entre les items 𝐱 et 𝐲 Zhang_metric R < 𝟎 : association négative (répulsion)= les items 𝐱 et 𝐲 apparaissent ensemble moins souvent que prévu Zhang_metric(R) = 𝟎 : pas de dépendance notable entre 𝐱 et 𝐲 IIT-Sfax Taoufik Ben Abdallah 97 Inconvénients des règles d’association Coût de la méthode : la méthode d’extraction des règles est très couteuse en temps de calcul Le choix des articles : il est difficile de fixer le bon niveau (support) des articles Qualité des règles produites : la méthode peut dans certains cas produire des règles triviales ou inutiles Choix de Smin et Confmin dépend de nombre de transactions & reflète sur l’extraction des règles d’association IIT-Sfax Taoufik Ben Abdallah 98 mlextend (1/2) 𝐭 𝟏 = 𝐀𝐃, 𝐭 𝟐 = 𝐀𝐁𝐂, 𝐭 𝟑 = 𝐀𝐄, 𝐭 𝟒 = 𝐀𝐃𝐄, 𝐭 𝟓 = 𝐁𝐃 df= df=df.astype('bool') pip install mlxtend from mlxtend.frequent_patterns import apriori freq_items= apriori(df, min_support=0.4, max_len=3, freq_items use_colnames=True) freq_items['length'] = freq_items['itemsets'].apply( lambda x: len(x))? IIT-Sfax Taoufik Ben Abdallah 99 mlextend (2/2) from mlxtend.frequent_patterns import apriori, association_rules rules= association_rules(freq_items, metric="confidence", min_threshold=0.6) metric="confidence" / metric="lift" / metric="leverage" / metric="conviction" / metric="zhangs_metric" rules IIT-Sfax Taoufik Ben Abdallah 100