Erkennen, Untersuchen und Überprüfen funktionaler Abhängigkeiten in Ihren Daten unter Verwendung von Semantic Link
Funktionale Abhängigkeiten sind Beziehungen zwischen Spalten einer Tabelle, wobei die Werte in einer Spalte verwendet werden, um die Werte in einer anderen zu bestimmen. Das Verständnis dieser Abhängigkeiten kann Ihnen helfen, Muster und Beziehungen in Ihren Daten aufzudecken, was wiederum beim Feature Engineering, der Datenreinigung und bei Modellerstellungsaufgaben helfen kann. Funktionale Abhängigkeiten fungieren als effektive Invariante, mit deren Hilfe Sie Probleme mit der Datenqualität entdecken und beheben können, die anders möglicherweise schwer zu erkennen wären.
In diesem Artikel verwenden Sie den semantischen Link für folgendes:
- Suchen von Abhängigkeiten zwischen Spalten einer FabricDataFrame-Datenstruktur
- Visualisieren von Abhängigkeiten
- Identifizieren von Problemen mit der Datenqualität
- Visualisieren von Problemen mit der Datenqualität
- Erzwingen funktionaler Einschränkungen zwischen Spalten in einem Dataset
Voraussetzungen
Erwerben Sie ein Microsoft Fabric-Abonnement. Registrieren Sie sich alternativ für eine kostenlose Microsoft Fabric-Testversion.
Melden Sie sich bei Microsoft Fabric an.
Wechseln Sie zur Synapse-Data Science-Benutzeroberfläche, indem Sie den Umschalter für die Benutzeroberfläche auf der linken Seite Ihrer Homepage verwenden.
- Navigieren Sie zur Data Science-Benutzeroberfläche in Microsoft Fabric.
- Erstellen Sie ein neues Notebook, um Code in Zellen zu kopieren und einzufügen.
- Für Spark 3.4 und höher ist Semantic Link bei Verwendung von Fabric in der Standardlaufzeit verfügbar und muss nicht installiert werden. Wenn Sie Spark 3.3 oder darunter verwenden oder auf die neueste Version von Semantic Link aktualisieren möchten, können Sie den Befehl ausführen:
python %pip install -U semantic-link
- Fügen Sie ein Lakehouse zum Notebook hinzu.
Für Spark 3.4 und höher ist Semantic Link bei Verwendung von Fabric in der Standardlaufzeit verfügbar und muss nicht installiert werden. Wenn Sie Spark 3.3 oder niedriger verwenden oder auf die neueste Version von Semantic Link aktualisieren möchten, führen Sie den folgenden Befehl aus:
%pip install -U semantic-link
```
## Find functional dependencies in data
The SemPy `find_dependencies` function detects functional dependencies between the columns of a FabricDataFrame. The function uses a threshold on conditional entropy to discover approximate functional dependencies, where low conditional entropy indicates strong dependence between columns. To make the `find_dependencies` function more selective, you can set a lower threshold on conditional entropy. The lower threshold means that only stronger dependencies will be detected.
This Python code snippet demonstrates how to use `find_dependencies`:
```python
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()
Die find_dependencies
-Funktion gibt eine FabricDataFrame-Datenstruktur mit erkannten Abhängigkeiten zwischen Spalten zurück.
Eine Liste stellt Spalten dar, die eine 1:1-Zuordnung aufweisen. Die Funktion entfernt auch transitive Kanten, um zu versuchen, die potenziellen Abhängigkeiten zu löschen.
Wenn Sie die Option dropna=True
angeben, werden Zeilen mit einem NaN-Wert in beiden Spalten aus der Auswertung entfernt. Dies kann zu nichttransitiven Abhängigkeiten führen, wie in diesem Beispiel gezeigt:
H | B | C |
---|---|---|
1 | 1 | 1 |
1 | 1 | 1 |
1 | NaN | 9 |
2 | NaN | 2 |
2 | 2 | 2 |
In einigen Fällen kann die Abhängigkeitskette Zyklen bilden, wenn Sie die Option dropna=True
angeben, wie das dieses Beispiel zeigt:
H | B | C |
---|---|---|
1 | 1 | NaN |
2 | 1 | NaN |
NaN | 1 | 1 |
NaN | 2 | 1 |
1 | NaN | 1 |
1 | NaN | 2 |
Visualisieren von Abhängigkeiten in Daten
Nachdem Sie funktionsbezogene Abhängigkeiten in einem Dataset (mithilfe von find_dependencies
) gefunden haben, können Sie die Abhängigkeiten mithilfe der plot_dependency_metadata
-Funktion visualisieren. Diese Funktion verwendet die aus find_dependencies
resultierende FabricDataFrame-Datenstruktur und erstellt eine visuelle Darstellung der Abhängigkeiten zwischen Spalten und Spaltengruppen.
Dieser Python-Codeausschnitt zeigt, wie Sie plot_dependencies
verwenden:
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)
Die plot_dependency_metadata
-Funktion generiert eine Visualisierung, die die 1:1-Gruppierungen von Spalten anzeigt.
Spalten, die zu einer einzelnen Gruppe gehören, werden in eine einzelne Zelle platziert. Wenn keine geeigneten Kandidaten gefunden werden, wird eine leere FabricDataFrame-Datenstruktur zurückgegeben.
Identifizieren von Problemen mit der Datenqualität
Probleme mit der Datenqualität können verschiedene Formen aufweisen, z. B. fehlende Werte, Inkonsistenzen oder Ungenauigkeiten. Die Identifizierung und Behebung solcher Probleme ist wichtig, um die Zuverlässigkeit und Gültigkeit von Analysen oder Modellen zu gewährleisten, die auf diesen Daten basieren. Eine Möglichkeit zum Erkennen von Problemen mit der Datenqualität besteht darin, Verstöße gegen funktionale Abhängigkeiten zwischen Spalten in einem Dataset zu untersuchen.
Die Funktion list_dependency_violations
kann dabei helfen, Verletzungen funktionaler Abhängigkeiten zwischen Datasetspalten zu identifizieren. Diese Funktion zeigt auf Basis einer Determinanten- und einer abhängigen Spalte Werte an, die gegen die funktionale Abhängigkeit verstoßen, und gibt außerdem die Häufigkeit des jeweiligen Auftretens an. Dies kann dazu beitragen, ungefähre Abhängigkeiten zu überprüfen und Probleme mit der Datenqualität zu identifizieren.
Dieser Codeausschnitt zeigt die Verwendung der list_dependency_violations
-Funktion:
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")
In diesem Beispiel wird davon ausgegangen, dass es eine funktionale Abhängigkeit zwischen der ZIP-Spalte (Determinante) und der (abhängigen) CITY-Spalte gibt. Wenn das Dataset Probleme mit der Datenqualität hat, z. B. die gleiche Postleitzahl, die mehreren Städten zugewiesen ist, gibt die Funktion die Daten mit den Problemen aus:
ZIP | CITY | count |
---|---|---|
12345 | Boston | 2 |
12345 | Seattle | 1 |
Diese Ausgabe gibt an, dass zwei verschiedene Städte (Boston und Seattle) denselben Wert für die Postleitzahl (12345) aufweisen. Dies weist auf ein Problem mit der Datenqualität innerhalb des Datasets hin.
Die list_dependency_violations
-Funktion bietet weitere Optionen für die Behandlung fehlender Werte, das Anzeigen von Werten, die einem Verstoß gegen Werte zugeordnet sind, das Begrenzen der Anzahl der zurückgegebenen Verstöße und das Sortieren der Ergebnisse nach Anzahl oder Determinantenspalte.
Die list_dependency_violations
-Ausgabe kann helfen, Probleme mit der Datenqualität des Datasets zu identifizieren. Sie sollten die Ergebnisse sorgfältig untersuchen und den Kontext Ihrer Daten berücksichtigen, um diejenigen Maßnahmen zu ermitteln, die für die Behandlung der identifizierten Probleme am besten geeignet sind. Dies er Ansatz kann eine weitere Datenbereinigung, Validierung oder Untersuchung umfassen, um die Zuverlässigkeit und Gültigkeit Ihrer Analyse oder Ihres Modells sicherzustellen.
Visualisieren von Problemen mit der Datenqualität
Probleme bei der Datenqualität können der Zuverlässigkeit und Gültigkeit einer auf den Daten basierenden Analyse oder eines Modells schaden. Das Identifizieren und Beheben dieser Probleme ist wichtig, um die Genauigkeit Ihrer Ergebnisse sicherzustellen. Um Probleme bei der Datenqualität zu erkennen, können Sie Verletzungen funktionaler Abhängigkeiten zwischen Spalten in einem Dataset untersuchen. Die Visualisierung dieser Verstöße kann die Probleme deutlicher zeigen und Ihnen helfen, sie effektiver zu beheben.
Die plot_dependency_violations
-Funktion kann Ihnen helfen, Verstöße gegen funktionsbezogene Abhängigkeiten zwischen Spalten in einem Dataset zu visualisieren. Diese Funktion zeigt auf Basis einer Determinantenspalte und einer abhängigen Spalte die verstoßenden Werte in einem grafischen Format an, wodurch die Art und das Ausmaß der Probleme mit der Datenqualität leichter zu verstehen sind.
Dieser Codeausschnitt zeigt die Verwendung der plot_dependency_violations
-Funktion:
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")
In diesem Beispiel wird davon ausgegangen, dass es eine existierende funktionale Abhängigkeit zwischen der ZIP-Spalte (Determinante) und der (abhängigen) CITY-Spalte gibt. Wenn das Dataset Probleme mit der Datenqualität aufweist, z. B. derselbe ZIP-Code (Postleitzahl) mehreren Städten zugewiesen wird, erstellt die Funktion aus den verstoßenden Werte ein Diagramm.
Die plot_dependency_violations
-Funktion bietet weitere Optionen für die Behandlung fehlender Werte, das Anzeigen von Werten, die einem Verstoß gegen Werte zugeordnet sind, das Begrenzen der Anzahl der zurückgegebenen Verstöße und das Sortieren der Ergebnisse nach Anzahl oder Determinantenspalte.
Die plot_dependency_violations
-Funktion generiert eine Visualisierung, mit der Datenqualitätsprobleme im Dataset identifiziert werden können. Sie sollten die Ergebnisse sorgfältig untersuchen und den Kontext Ihrer Daten berücksichtigen, um diejenigen Maßnahmen zu ermitteln, die für die Behandlung der identifizierten Probleme am besten geeignet sind. Dies er Ansatz kann eine weitere Datenbereinigung, Validierung oder Untersuchung umfassen, um die Zuverlässigkeit und Gültigkeit Ihrer Analyse oder Ihres Modells sicherzustellen.
Erzwingen funktionaler Einschränkungen
Datenqualität ist ein entscheidender Faktor, um die Zuverlässigkeit und Gültigkeit von Analysen oder Modellen zu gewährleisten, die auf einem Dataset basieren. Die Durchsetzung funktionaler Einschränkungen zwischen Spalten in einem Dataset kann dazu beitragen, die Datenqualität zu verbessern. Funktionale Einschränkungen können sicherstellen, dass die Beziehungen zwischen Spalten Genauigkeit und Konsistenz aufweisen, was zu genaueren Analyse- oder Modellergebnissen führen kann.
Die drop_dependency_violations
-Funktion kann dazu beitragen, funktionale Einschränkungen zwischen Spalten in einem Dataset zu erzwingen. Es sind Zeilen, die gegen eine bestimmte Einschränkung verstoßen. Diese Funktion entfernt auf Basis einer Determinantenspalte und einer abhängigen Spalte Zeilen mit Werten, die nicht die funktionale Einschränkung zwischen den beiden Spalten einhalten.
Dieser Codeausschnitt zeigt die Verwendung der drop_dependency_violations
-Funktion:
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")
Hier erzwingt die Funktion eine funktionale Einschränkung zwischen der ZIP-Spalte (Determinante) und der (abhängigen) CITY-Spalte. Für jeden Wert der Determinante wird der am häufigsten verwendete Wert des abhängigen Werts ausgewählt, und alle Zeilen mit anderen Werten werden verworfen. Bei diesem Dataset würde beispielsweise die Zeile mit CITY=Seattle gelöscht, und die funktionale Abhängigkeit ZIP -> CITY bleibt in der Ausgabe erhalten:
ZIP | CITY |
---|---|
12345 | Seattle |
12345 | Boston |
12345 | Boston |
98765 | Baltimore |
00000 | San Francisco |
Die drop_dependency_violations
-Funktion bietet die verbose
-Option, die Ausführlichkeit der Ausgabe zu steuern. Durch Festlegen von verbose=1
können Sie die Anzahl der verworfenen Zeilen sehen. Ein verbose=2
-Wert zeigt den gesamten Zeileninhalt der verworfenen Zeilen an.
Die drop_dependency_violations
-Funktion kann funktionale Einschränkungen zwischen Spalten in Ihrem Dataset erzwingen, wodurch die Datenqualität verbessert wird und Sie bessere Ergebnisse in Ihrer Analyse oder mit Ihrem Modell erreichen können. Sie müssen jedoch sorgfältig den Kontext Ihrer Daten und die funktionalen Einschränkungen berücksichtigen, die Sie erzwingen möchten, um sicherzustellen, dass Sie nicht versehentlich wertvolle Informationen aus Ihrem Dataset entfernen.