Freigeben über


Erkennen, Untersuchen und Überprüfen funktionaler Abhängigkeiten in Ihren Daten mithilfe semantischer Verknüpfung

Funktionale Abhängigkeiten sind Beziehungen zwischen Spalten in einer Tabelle, wobei die Werte in einer Spalte die Werte in einer anderen Spalte bestimmen. Wenn Sie diese Abhängigkeiten verstehen, können Sie Muster und Beziehungen in Ihren Daten aufdecken. Dieses Verständnis kann bei Feature-Engineering-, Datenreinigungs- und Modellerstellungsaufgaben helfen. Funktionale Abhängigkeiten dienen als effektive Invariante, die Ihnen hilft, Probleme mit der Datenqualität zu finden und zu beheben, die möglicherweise schwer zu erkennen sind.

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 von funktionalen Einschränkungen zwischen Spalten in einem Datensatz

Voraussetzungen

  • Wechseln Sie zur Data Science-Erfahrung in Microsoft Fabric.
  • Erstellen Sie ein neues Notizbuch , 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.

Semantischer Link ist in der standardmäßigen Fabric-Laufzeit verfügbar. Führen Sie den folgenden Befehl aus, um auf die neueste Version der semantischen Verknüpfung zu aktualisieren:

%pip install -U semantic-link

Suchen funktionaler Abhängigkeiten in Daten

Die SemPy-Funktion find_dependencies erkennt funktionale Abhängigkeiten zwischen den Spalten eines FabricDataFrame. Die Funktion verwendet einen Schwellenwert für die bedingte Entropie, um ungefähre funktionale Abhängigkeiten zu ermitteln, wobei niedrige bedingte Entropie eine starke Abhängigkeit zwischen Spalten angibt. Um die Funktion selektiver zu gestalten, legen Sie einen niedrigeren Schwellenwert für die find_dependencies bedingte Entropie fest. Der niedrigere Schwellenwert bedeutet, dass nur stärkere Abhängigkeiten erkannt werden.

Dieser Python Codeausschnitt veranschaulicht die Verwendung von 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()

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 dropna=True Option angeben, beseitigt die Funktion Zeilen, die in beiden Spalten einen NaN-Wert aufweisen, aus der Auswertung. Diese Beseitigung kann zu nichttransitiven Abhängigkeiten führen, wie im folgenden Beispiel gezeigt:

A 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 dropna=True Option angeben, wie im folgenden Beispiel gezeigt:

A 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 funktionale Abhängigkeiten in einem Dataset mithilfe 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 plot_dependencies verwendet wird:

from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
from sempy.samples import download_synthea
import pandas as pd

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 die Funktion keine geeigneten Kandidaten findet, wird ein leeres FabricDataFrame-Objekt zurückgegeben. Screenshot der Ausgabe der plot_dependencies-Funktion.

Screenshot der Ausgabe der plot_dependencies-Funktion.

Identifizieren von Problemen mit der Datenqualität

Datenqualitätsprobleme können viele Formen annehmen , z. B. fehlende Werte, Inkonsistenzen oder Ungenauigkeiten. Um die Zuverlässigkeit und Gültigkeit von Analysen oder Modellen zu gewährleisten, die auf den Daten basieren, ist es wichtig, diese Probleme zu identifizieren und zu beheben. Eine Möglichkeit zum Erkennen von Problemen mit der Datenqualität besteht darin, Verletzungen funktionaler Abhängigkeiten zwischen Spalten in einem Dataset zu untersuchen.

Die list_dependency_violations Funktion kann Ihnen helfen, Verstöße gegen funktionsbezogene Abhängigkeiten zwischen Datasetspalten zu finden. Wenn Sie eine Determinantenspalte und eine abhängige Spalte angeben, zeigt die Funktion Werte an, die gegen die funktionale Abhängigkeit verstoßen, sowie die Anzahl ihrer jeweiligen Vorkommen. Diese Informationen können Ihnen helfen, ungefähre Abhängigkeiten zu überprüfen und Probleme mit der Datenqualität zu identifizieren.

Der folgende Codeausschnitt zeigt, wie die list_dependency_violations Funktion verwendet wird:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

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 PLZ-Spalte (Determinante) und der CITY-Spalte (abhängig) 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:

Reißverschluss / Postleitzahl / ZIP-Datei STADT zählen
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. Dieses Ergebnis schlägt ein Datenqualitätsproblem innerhalb des Datasets vor.

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 Ihnen helfen, Probleme mit der Datenqualität des Datasets zu identifizieren. Sie sollten die Ergebnisse jedoch sorgfältig untersuchen und den Kontext Ihrer Daten berücksichtigen, um den am besten geeigneten Handlungsverlauf zu ermitteln, um die identifizierten Probleme zu beheben. 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 mit der Datenqualität können die Zuverlässigkeit und Gültigkeit von Analysen oder Modellen, die auf diesen Daten basieren, beschädigen. Das Identifizieren und Beheben dieser Probleme ist wichtig, um die Genauigkeit Ihrer Ergebnisse sicherzustellen. Um Probleme mit der Datenqualität zu erkennen, untersuchen Sie Verletzungen funktionaler Abhängigkeiten zwischen Spalten in einem Dataset. 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. Angesichts einer Determinantenspalte und einer abhängigen Spalte zeigt diese Funktion die verletzten Werte in einem grafischen Format an, um die Art und den Umfang der Probleme mit der Datenqualität leichter zu verstehen.

Dieser Codeausschnitt zeigt die Verwendung der plot_dependency_violations-Funktion:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

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 hat , z. B. die gleiche Postleitzahl, die mehreren Städten zugewiesen ist, generiert die Funktion ein Diagramm der verletzten Werte.

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 identifiziert werden können. Sie sollten die Ergebnisse jedoch sorgfältig untersuchen und den Kontext Ihrer Daten berücksichtigen, um den am besten geeigneten Handlungsverlauf zu ermitteln, um die identifizierten Probleme zu beheben. Dies er Ansatz kann eine weitere Datenbereinigung, Validierung oder Untersuchung umfassen, um die Zuverlässigkeit und Gültigkeit Ihrer Analyse oder Ihres Modells sicherzustellen.

Screenshot der Ausgabe der plot_dependency_violations-Funktion.

Das 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 stellen sicher, dass die Beziehungen zwischen Spalten Genauigkeit und Konsistenz aufweisen, was zu genaueren Analyse- oder Modellergebnissen führen kann.

Die drop_dependency_violations Funktion erzwingt Funktionseinschränkungen zwischen Spalten in einem Dataset. Es entfernt 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
import pandas as pd

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")

In diesem Beispiel erzwingt die Funktion eine funktionale Einschränkung zwischen den Spalten ZIP (determinante Spalte) und CITY (abhängige Spalte). Für jeden Wert der Determinante wählt die Funktion den am häufigsten verwendeten Wert der abhängigen Spalte aus und legt alle Zeilen mit anderen Werten ab. In diesem Datensatz wird beispielsweise die Zeile mit CITY=Seattle verworfen, und die funktionale Abhängigkeit ZIP -> CITY gilt in der Ausgabe.

Reißverschluss / Postleitzahl / ZIP-Datei STADT
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. Berücksichtigen Sie jedoch sorgfältig den Kontext Ihrer Daten und die funktionalen Einschränkungen, die Sie erzwingen möchten, um sicherzustellen, dass Sie nicht versehentlich wertvolle Informationen aus Ihrem Dataset entfernen.