Détecter, explorer et valider les dépendances fonctionnelles dans vos données à l’aide du lien sémantique
Les dépendances fonctionnelles sont des relations entre les colonnes d’une table, où les valeurs d’une colonne sont utilisées pour déterminer les valeurs d’une autre colonne. La compréhension de ces dépendances peut vous aider à découvrir des modèles et des relations dans vos données, ce qui peut être utile pour l’ingénierie de caractéristiques, le nettoyage des données et la création de modèles. Les dépendances fonctionnelles agissent comme un invariant efficace qui vous permet de trouver et de résoudre les problèmes de qualité des données qui peuvent être difficiles à détecter autrement.
Dans cet article, vous utiliserez le lien sémantique pour :
- Rechercher des dépendances entre les colonnes d’un FabricDataFrame
- Visualiser les dépendances
- Identifier des problèmes de qualité des données
- Visualiser des problèmes de qualité des données
- Appliquer des contraintes fonctionnelles entre les colonnes d’un jeu de données
Prérequis
Obtenir un abonnement Microsoft Fabric. Ou, inscrivez-vous pour un essai gratuit de Microsoft Fabric.
Connectez-vous à Microsoft Fabric.
Utilisez le sélecteur d’expérience sur le côté gauche de votre page d’accueil pour passer à l’expérience science des données Synapse.
- Accédez à l'expérience Data Science dans Microsoft Fabric.
- Créez un notebook pour copier/coller du code dans des cellules.
- Pour Spark 3.4 et versions ultérieures, le lien sémantique est disponible dans le runtime par défaut lors de l’utilisation de Fabric et il n’est pas nécessaire de l’installer. Si vous utilisez Spark 3.3 ou version inférieure, ou si vous souhaitez effectuer une mise à jour vers la version la plus récente du lien sémantique, vous pouvez exécuter la commande :
python %pip install -U semantic-link
- Ajoutez un Lakehouse à votre notebook. Pour Spark 3.4 et versions ultérieures, le lien sémantique est disponible dans le runtime par défaut lors de l’utilisation de Fabric et il n’est pas nécessaire de l’installer. Si vous utilisez Spark 3.3 ou version inférieure, ou si vous souhaitez effectuer une mise à jour vers la version la plus récente du lien sémantique, vous pouvez exécuter la commande :
python %pip install -U semantic-link
Rechercher des dépendances fonctionnelles dans les données
La fonction find_dependencies
dans SemPy détecte les dépendances fonctionnelles entre les colonnes d’un FabricDataFrame.
La fonction utilise un seuil sur l’entropie conditionnelle pour découvrir des dépendances fonctionnelles approximatives, où l’entropie conditionnelle faible indique une forte dépendance entre les colonnes.
Pour rendre la fonction find_dependencies
plus sélective, vous pouvez définir un seuil inférieur sur l’entropie conditionnelle. Le seuil inférieur signifie que seules les dépendances plus fortes seront détectées.
L’extrait de code Python suivant illustre comment utiliser find_dependencies
.
from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
import pandas as pd
df = FabricDataFrame(pd.read_csv("your_data.csv"))
deps = df.find_dependencies()
La fonction find_dependencies
retourne un FabricDataFrame avec des dépendances détectées entre les colonnes.
Les colonnes qui ont un mappage 1:1 sont représentées sous forme de liste.
La fonction tente également d’élaguer les dépendances potentielles en supprimant les arêtes transitives.
Lorsque vous spécifiez l’option dropna=True
, les lignes qui ont une valeur NaN dans l’une des colonnes sont supprimées de l’évaluation.
Cela peut entraîner des dépendances non transitives, comme dans l’exemple suivant :
A | B | C |
---|---|---|
1 | 1 | 1 |
1 | 1 | 1 |
1 | NaN | 9 |
2 | NaN | 2 |
2 | 2 | 2 |
Dans certains cas, la chaîne de dépendances peut former des cycles lorsque vous spécifiez l’option dropna=True
, comme illustré dans l’exemple suivant :
A | B | C |
---|---|---|
1 | 1 | NaN |
2 | 1 | NaN |
NaN | 1 | 1 |
NaN | 2 | 1 |
1 | NaN | 1 |
1 | NaN | 2 |
Visualiser les dépendances dans les données
Après avoir trouvé des dépendances fonctionnelles dans un jeu de données (à l’aide de find_dependencies
), vous pouvez visualiser les dépendances à l’aide de la fonction plot_dependency_metadata
.
Cette fonction prend le FabricDataFrame résultant de find_dependencies
et crée une représentation visuelle des dépendances entre les colonnes et les groupes de colonnes.
L’extrait de code Python suivant illustre comment utiliser plot_dependencies
.
from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
from sempy.samples import download_synthea
download_synthea(which='small')
df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))
deps = df.find_dependencies()
plot_dependency_metadata(deps)
La fonction plot_dependency_metadata
génère une visualisation qui affiche les regroupements 1:1 de colonnes.
Les colonnes appartenant à un seul groupe sont placées dans une seule cellule. Si aucun candidat approprié n’est trouvé, un FabricDataFrame vide est retourné.
Identifier des problèmes de qualité des données
Les problèmes de qualité des données peuvent apparaître sous différentes formes, comme des valeurs manquantes, des incohérences ou des inexactitudes. L’identification et la résolution de ces problèmes sont essentielles pour garantir la fiabilité et la validité de n’importe quelle analyse ou modèle basé sur les données. Il est possible de détecter les problèmes de qualité des données en examinant les violations des dépendances fonctionnelles entre les colonnes d’un jeu de données.
La fonction list_dependency_violations
peut vous aider à identifier les violations des dépendances fonctionnelles entre les colonnes d’un jeu de données.
En tenant compte d’une colonne déterminante et d’une colonne dépendante, cette fonction affiche les valeurs qui sont contraire à la dépendance fonctionnelle, ainsi qu’au nombre de leurs occurrences respectives.
Cela peut être utile pour inspecter des dépendances approximatives et identifier des problèmes de qualité des données.
Le code suivant montre un exemple d’utilisation de la fonction list_dependency_violations
:
from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
download_synthea(which='small')
df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))
violations = df.list_dependency_violations(determinant_col="ZIP", dependent_col="CITY")
Dans cet exemple, la fonction suppose qu’il existe une dépendance fonctionnelle entre les colonnes CODE POSTAL (déterminante) et VILLE (dépendante). Si le jeu de données présente des problèmes de qualité des données, tels que le même code postal attribué à plusieurs villes, la fonction génère les valeurs en violation suivantes :
ZIP | VILLE | count |
---|---|---|
12345 | Boston | 2 |
12345 | Seattle | 1 |
Cette sortie indique que le même code postal (12345) est attaché à deux villes différentes (Boston et Seattle), ce qui suggère un problème de qualité des données dans le jeu de données.
La fonction list_dependency_violations
fournit davantage d’options permettant de gérer les valeurs manquantes, montrer les valeurs mappées aux valeurs en violation, limiter le nombre de violations retournées et tirer les résultats en fonction du nombre ou de la colonne déterminante. (TODO : lien vers la documentation de l’API)
La sortie de list_dependency_violations
peut aider à identifier les problèmes de qualité des données dans votre jeu de données.
Toutefois, il est essentiel d’examiner attentivement les résultats et de prendre en compte le contexte de vos données afin de déterminer le cours d’action le plus approprié pour résoudre les problèmes identifiés.
Ce plan d’action peut impliquer un nettoyage, une validation ou une exploration des données supplémentaires pour garantir la fiabilité et la validité de votre analyse ou de votre modèle.
Visualiser des problèmes de qualité des données
Les problèmes de qualité des données peuvent avoir un impact négatif sur la fiabilité et la validité de n’importe quelle analyse ou modèle basé sur les données. L’identification et la résolution de ces problèmes sont essentielles pour garantir l’exactitude de vos résultats. Il est possible de détecter les problèmes de qualité des données en examinant les violations des dépendances fonctionnelles entre les colonnes d’un jeu de données. La visualisation de ces violations peut fournir une meilleure compréhension des problèmes et vous aider à les résoudre plus efficacement.
La fonction plot_dependency_violations
peut vous aider à visualiser les violations des dépendances fonctionnelles entre les colonnes d’un jeu de données.
En tenant compte d’une colonne déterminante et d’une colonne dépendante, cette fonction affiche les valeurs en violation dans un format graphique, ce qui facilite la compréhension de la nature et de l’étendue des problèmes de qualité des données.
Le code suivant montre un exemple d’utilisation de la fonction plot_dependency_violations
:
from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_violations
from sempy.samples import download_synthea
download_synthea(which='small')
df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))
df.plot_dependency_violations(determinant_col="ZIP", dependent_col="CITY")
Dans cet exemple, la fonction suppose qu’il existe une dépendance fonctionnelle entre les colonnes CODE POSTAL (déterminante) et VILLE (dépendante). Si le jeu de données présente des problèmes de qualité des données, tels que le même code postal attribué à plusieurs villes, la fonction génère un graphique avec les valeurs en violation.
La fonction plot_dependency_violations
fournit davantage d’options permettant de gérer les valeurs manquantes, montrer les valeurs mappées aux valeurs en violation, limiter le nombre de violations retournées et tirer les résultats en fonction du nombre ou de la colonne déterminante. (TODO : lien vers la documentation de l’API)
La visualisation générée par plot_dependency_violations
peut vous aider à identifier les problèmes de qualité des données de votre jeu de données et à comprendre leur nature et leur étendue.
En examinant le graphique, vous pouvez obtenir des insights sur les relations entre les colonnes déterminantes et dépendantes et identifier les erreurs ou incohérences potentielles dans vos données.
Appliquer des contraintes fonctionnelles
La qualité des données est essentielle pour garantir la fiabilité et la validité de n’importe quelle analyse ou modèle basé sur un jeu de données. Il est possible d’améliorer la qualité des données en appliquant des contraintes fonctionnelles entre les colonnes d’un jeu de données. Les contraintes fonctionnelles peuvent vous aider à garantir que les relations entre les colonnes sont cohérentes et correctes, ce qui peut entraîner des résultats plus exacts dans votre analyse ou votre modèle.
La fonction drop_dependency_violations
peut aider à appliquer des contraintes fonctionnelles entre les colonnes d’un jeu de données en supprimant les lignes qui enfreignent une contrainte donnée.
En tenant compte d’une colonne déterminante et d’une colonne dépendante, cette fonction supprime les lignes avec des valeurs qui ne respectent pas la contrainte fonctionnelle entre les deux colonnes.
Le code suivant montre un exemple d’utilisation de la fonction drop_dependency_violations
:
from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
download_synthea(which='small')
df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))
cleaned_df = df.drop_dependency_violations(determinant_col="ZIP", dependent_col="CITY")
Dans cet exemple, la fonction applique une contrainte fonctionnelle entre les colonnes CODE POSTAL (déterminante) et VILLE (dépendante). Pour chaque valeur de la colonne déterminante, la valeur la plus courante de la colonne dépendante est sélectionnée, et toutes les lignes ayant d’autres valeurs sont supprimées. Par exemple, supposons le jeu de données suivant :
ZIP | VILLE |
---|---|
12345 | Seattle |
12345 | Boston |
12345 | Boston |
98765 | Baltimore |
00000 | San Francisco |
La ligne avec VILLE = Seattle est supprimée et la dépendance fonctionnelle CODE POSTAL -> VILLE contient la sortie.
La fonction drop_dependency_violations
fournit l’option verbose
pour contrôler la verbosité de la sortie. En définissant verbose=1
, vous pouvez voir le nombre de lignes supprimées et verbose=2
vous permet de voir tout le contenu des lignes supprimées.
En utilisant la fonction drop_dependency_violations
, vous pouvez appliquer des contraintes fonctionnelles entre les colonnes de votre jeu de données, ce qui peut améliorer la qualité des données et entraîner des résultats plus exacts dans votre analyse ou votre modèle.
Toutefois, il est essentiel de prendre attentivement en compte le contexte de vos données et les contraintes fonctionnelles que vous choisissez d’appliquer pour vous assurer que vous ne supprimez pas par inadvertance des informations précieuses de votre jeu de données.
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour