Delen via


Functionele afhankelijkheden in uw gegevens detecteren, verkennen en valideren met behulp van een semantische koppeling

Functionele afhankelijkheden zijn relaties tussen kolommen in een tabel, waarbij de waarden in de ene kolom worden gebruikt om de waarden in een andere kolom te bepalen. Een goed begrip van deze afhankelijkheden kan u helpen bij het ontdekken van patronen en relaties in uw gegevens, wat handig kan zijn voor functie-engineering, het opschonen van gegevens en het bouwen van modellen. Functionele afhankelijkheden fungeren als een effectieve invariant waarmee u problemen met gegevenskwaliteit kunt vinden en oplossen die mogelijk moeilijk te detecteren zijn.

In dit artikel gebruikt u een semantische koppeling om:

  • Afhankelijkheden zoeken tussen kolommen van een FabricDataFrame
  • Afhankelijkheden visualiseren
  • Problemen met gegevenskwaliteit identificeren
  • Problemen met gegevenskwaliteit visualiseren
  • Functionele beperkingen afdwingen tussen kolommen in een gegevensset

Vereisten

  • Ga naar de Datawetenschap ervaring in Microsoft Fabric.
  • Maak een nieuw notitieblok om code in cellen te kopiëren/plakken.
  • Voor Spark 3.4 en hoger is Semantische koppeling beschikbaar in de standaardruntime wanneer u Fabric gebruikt en hoeft u deze niet te installeren. Als u Spark 3.3 of lager gebruikt of als u wilt bijwerken naar de meest recente versie van Semantic Link, kunt u de opdracht uitvoeren: python %pip install -U semantic-link  
  • Voeg een Lakehouse toe aan uw notitieblok. Voor Spark 3.4 en hoger is Semantische koppeling beschikbaar in de standaardruntime wanneer u Fabric gebruikt en hoeft u deze niet te installeren. Als u Spark 3.3 of lager gebruikt of als u wilt bijwerken naar de meest recente versie van Semantic Link, kunt u de opdracht uitvoeren:

python %pip install -U semantic-link  

Functionele afhankelijkheden in gegevens zoeken

De find_dependencies functie in SemPy detecteert functionele afhankelijkheden tussen de kolommen van een FabricDataFrame. De functie gebruikt een drempelwaarde voor voorwaardelijke entropie om geschatte functionele afhankelijkheden te detecteren, waarbij lage voorwaardelijke entropie een sterke afhankelijkheid tussen kolommen aangeeft. Als u de find_dependencies functie selectiever wilt maken, kunt u een lagere drempelwaarde instellen voor voorwaardelijke entropie. De lagere drempelwaarde betekent dat alleen sterkere afhankelijkheden worden gedetecteerd.

Het volgende Python-codefragment laat zien hoe u dit kunt gebruiken 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()

De find_dependencies functie retourneert een FabricDataFrame met gedetecteerde afhankelijkheden tussen kolommen. Kolommen met een toewijzing van 1:1 worden weergegeven als een lijst. De functie probeert ook de potentiële afhankelijkheden te verwijderen door transitieve randen te verwijderen.

Wanneer u de dropna=True optie opgeeft, worden rijen met een NaN-waarde in beide kolommen verwijderd uit evaluatie. Dit kan ertoe leiden dat afhankelijkheden niet-transitief zijn, zoals in het volgende voorbeeld:

A B E
1 1 1
1 1 1
1 Geen getal 9
2 Geen getal 2
2 2 2

In sommige gevallen kan de afhankelijkheidsketen cycli vormen wanneer u de dropna=True optie opgeeft, zoals wordt weergegeven in het volgende voorbeeld:

A B E
1 1 Geen getal
2 1 Geen getal
Geen getal 1 1
Geen getal 2 0
1 Geen getal 1
1 Geen getal 2

Afhankelijkheden in gegevens visualiseren

Nadat u functionele afhankelijkheden in een gegevensset hebt gevonden (met behulp find_dependenciesvan), kunt u de afhankelijkheden visualiseren met behulp van de plot_dependency_metadata functie. Deze functie gebruikt het resulterende FabricDataFrame find_dependencies en maakt een visuele weergave van de afhankelijkheden tussen kolommen en groepen kolommen.

Het volgende Python-codefragment laat zien hoe u dit kunt gebruiken 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)

De plot_dependency_metadata functie genereert een visualisatie waarin de 1:1 groeperingen van kolommen worden weergegeven. Kolommen die tot één groep behoren, worden in één cel geplaatst. Als er geen geschikte kandidaten worden gevonden, wordt een leeg FabricDataFrame geretourneerd.

Schermopname van de uitvoer van de functie plot_dependencies.

Problemen met gegevenskwaliteit identificeren

Problemen met gegevenskwaliteit kunnen zich voordoen in verschillende vormen, zoals ontbrekende waarden, inconsistenties of onnauwkeurigheden. Het identificeren en oplossen van deze problemen is van cruciaal belang voor het waarborgen van de betrouwbaarheid en geldigheid van een analyse of model dat is gebouwd op de gegevens. Een manier om problemen met de kwaliteit van gegevens te detecteren, is door schendingen van functionele afhankelijkheden tussen kolommen in een gegevensset te onderzoeken.

De list_dependency_violations functie kan u helpen bij het identificeren van schendingen van functionele afhankelijkheden tussen kolommen in een gegevensset. Op basis van een determinante kolom en een afhankelijke kolom worden met deze functie waarden weergegeven die de functionele afhankelijkheid schenden, samen met het aantal van hun respectieve exemplaren. Dit kan handig zijn voor het controleren van geschatte afhankelijkheden en het identificeren van problemen met de kwaliteit van gegevens.

In de volgende code ziet u een voorbeeld van het gebruik van de list_dependency_violations functie:

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 dit voorbeeld wordt ervan uitgegaan dat er een functionele afhankelijkheid bestaat tussen de kolommen ZIP (determinant) en CITY (afhankelijk). Als de gegevensset problemen heeft met de kwaliteit van gegevens, zoals dezelfde postcode die aan meerdere steden wordt toegewezen, levert de functie de schendende waarden op:

ZIP CITY aantal
12345 Boston 2
12345 Seattle 1

Deze uitvoer geeft aan dat dezelfde postcode (12345) is gekoppeld aan twee verschillende steden (Boston en Seattle), wat een probleem met de gegevenskwaliteit in de gegevensset voorstelt.

De list_dependency_violations functie biedt meer opties voor het afhandelen van ontbrekende waarden, met waarden die zijn toegewezen aan inbreukmakende waarden, het beperken van het aantal geretourneerde schendingen en het sorteren van de resultaten op aantal of determinante kolom.

De uitvoer van kan helpen bij het identificeren van list_dependency_violations problemen met de gegevenskwaliteit in uw gegevensset. Het is echter essentieel om de resultaten zorgvuldig te onderzoeken en rekening te houden met de context van uw gegevens om de meest geschikte manier van actie te bepalen voor het oplossen van de geïdentificeerde problemen. Deze actie kan betrekking hebben op verdere gegevens opschonen, valideren of verkennen om de betrouwbaarheid en geldigheid van uw analyse of model te garanderen.

Problemen met gegevenskwaliteit visualiseren

Problemen met gegevenskwaliteit kunnen een negatieve invloed hebben op de betrouwbaarheid en geldigheid van een analyse of model dat is gebouwd op de gegevens. Het identificeren en oplossen van deze problemen is van cruciaal belang voor het garanderen van de nauwkeurigheid van uw resultaten. Een manier om problemen met de kwaliteit van gegevens te detecteren, is door schendingen van functionele afhankelijkheden tussen kolommen in een gegevensset te onderzoeken. Het visualiseren van deze schendingen kan een beter inzicht geven in de problemen en u helpen deze effectiever op te lossen.

De plot_dependency_violations functie kan helpen bij het visualiseren van schendingen van functionele afhankelijkheden tussen kolommen in een gegevensset. Gezien een determinante kolom en een afhankelijke kolom toont deze functie de schendende waarden in een grafische indeling, waardoor het gemakkelijker is om inzicht te krijgen in de aard en omvang van de problemen met de gegevenskwaliteit.

In de volgende code ziet u een voorbeeld van het gebruik van de plot_dependency_violations functie:

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 dit voorbeeld wordt ervan uitgegaan dat er een functionele afhankelijkheid bestaat tussen de kolommen ZIP (determinant) en CITY (afhankelijk). Als de gegevensset problemen heeft met de kwaliteit van gegevens, zoals dezelfde postcode die aan meerdere steden wordt toegewezen, genereert de functie een grafiek van de schendende waarden.

De plot_dependency_violations functie biedt meer opties voor het afhandelen van ontbrekende waarden, met waarden die zijn toegewezen aan inbreukmakende waarden, het beperken van het aantal geretourneerde schendingen en het sorteren van de resultaten op aantal of determinante kolom.

De visualisatie die wordt gegenereerd, plot_dependency_violations kan u helpen bij het identificeren van problemen met gegevenskwaliteit in uw gegevensset en inzicht in de aard en omvang ervan. Door de grafiek te onderzoeken, krijgt u inzicht in de relaties tussen determinante en afhankelijke kolommen en kunt u potentiële fouten of inconsistenties in uw gegevens identificeren.

Schermopname van de uitvoer van de functie plot_dependency_violations.

Functionele beperkingen afdwingen

Gegevenskwaliteit is essentieel voor het waarborgen van de betrouwbaarheid en geldigheid van elke analyse of model die is gebouwd op een gegevensset. Een manier om de gegevenskwaliteit te verbeteren, is door functionele beperkingen af te dwingen tussen kolommen in een gegevensset. Functionele beperkingen kunnen ervoor zorgen dat de relaties tussen kolommen consistent en nauwkeurig zijn, wat kan leiden tot nauwkeurigere resultaten in uw analyse of model.

De drop_dependency_violations functie kan helpen bij het afdwingen van functionele beperkingen tussen kolommen in een gegevensset door rijen te verwijderen die een bepaalde beperking schenden. Uitgaande van een determinante kolom en een afhankelijke kolom, verwijdert deze functie rijen met waarden die niet voldoen aan de functionele beperking tussen de twee kolommen.

In de volgende code ziet u een voorbeeld van het gebruik van de drop_dependency_violations functie:

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

In dit voorbeeld dwingt de functie een functionele beperking af tussen de kolommen ZIP (determinant) en CITY (afhankelijk). Voor elke waarde van de determinant wordt de meest voorkomende waarde van de afhankelijke waarde gekozen en worden alle rijen met andere waarden verwijderd. Bijvoorbeeld, op basis van de volgende gegevensset:

ZIP CITY
12345 Seattle
12345 Boston
12345 Boston
98765 Baltimore
00000 San Francisco

De rij met CITY=Seattle wordt verwijderd en de functionele afhankelijkheid ZIP -> CITY bevat de uitvoer.

De drop_dependency_violations functie biedt de optie voor het verbose beheren van de uitgebreidheid van de uitvoer. Door de instelling verbose=1kunt u het aantal verwijderde rijen zien en verbose=2 kunt u de volledige rijinhoud van de verwijderde rijen zien.

Met behulp van de drop_dependency_violations functie kunt u functionele beperkingen afdwingen tussen kolommen in uw gegevensset, waardoor de gegevenskwaliteit kan worden verbeterd en de resultaten in uw analyse of model nauwkeuriger kunnen worden. Het is echter essentieel om zorgvuldig rekening te houden met de context van uw gegevens en de functionele beperkingen die u kiest om ervoor te zorgen dat u niet per ongeluk waardevolle informatie uit uw gegevensset verwijdert.