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. Als u deze afhankelijkheden begrijpt, kunt u patronen en relaties in uw gegevens ontdekken, wat op zijn beurt kan helpen bij 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
Haal een Microsoft Fabric-abonnement op. Of meld u aan voor een gratis proefversie van Microsoft Fabric.
Meld u aan bij Microsoft Fabric.
Gebruik de ervaringswisselaar aan de linkerkant van de startpagina om over te schakelen naar Fabric.
- 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, voert u deze opdracht uit:
%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()
De find_dependencies
functie retourneert een FabricDataFrame met gedetecteerde afhankelijkheden tussen kolommen.
Een lijst vertegenwoordigt kolommen met een toewijzing van 1:1. De functie verwijdert ook transitieve randen om te proberen de potentiële afhankelijkheden te verwijderen.
Wanneer u de dropna=True
optie opgeeft, worden rijen met een NaN-waarde in beide kolommen verwijderd uit evaluatie. Dit kan leiden tot niet-transitieve afhankelijkheden, zoals wordt weergegeven in dit 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 dit voorbeeld:
A | B | E |
---|---|---|
1 | 1 | Geen getal |
2 | 1 | Geen getal |
Geen getal | 1 | 1 |
Geen getal | 2 | 1 |
1 | Geen getal | 1 |
1 | Geen getal | 2 |
Afhankelijkheden in gegevens visualiseren
Nadat u functionele afhankelijkheden in een gegevensset hebt gevonden (met behulp find_dependencies
van), kunt u de afhankelijkheden visualiseren met 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.
Dit Python-codefragment laat zien hoe u het volgende 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.
Problemen met gegevenskwaliteit identificeren
Problemen met gegevenskwaliteit kunnen verschillende vormen hebben, bijvoorbeeld ontbrekende waarden, inconsistenties of onnauwkeurigheden. Het identificeren en oplossen van deze problemen is belangrijk om de betrouwbaarheid en geldigheid van een analyse of model op basis van de gegevens te waarborgen. 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 helpen bij het identificeren van schendingen van functionele afhankelijkheden tussen gegevenssetkolommen. 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 helpen bij het inspecteren van geschatte afhankelijkheden en het identificeren van problemen met de gegevenskwaliteit.
In dit codefragment ziet u hoe u de list_dependency_violations
functie gebruikt:
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 gaat de functie uit van een functionele afhankelijkheid tussen de kolommen ZIP (determinant) en CITY (afhankelijk). Als de gegevensset problemen heeft met de kwaliteit van gegevens, bijvoorbeeld dezelfde postcode die aan meerdere steden is toegewezen, voert de functie de gegevens uit met de problemen:
ZIP | CITY | aantal |
---|---|---|
12345 | Boston | 2 |
12345 | Seattle | 1 |
Deze uitvoer geeft aan dat twee verschillende steden (Boston en Seattle) dezelfde postcodewaarde hebben (12345). Dit duidt op een probleem met de gegevenskwaliteit in de gegevensset.
De list_dependency_violations
functie biedt meer opties waarmee ontbrekende waarden kunnen worden verwerkt, waarden worden weergegeven die zijn toegewezen aan inbreukmakende waarden, het aantal geretourneerde schendingen beperken en de resultaten sorteren op aantal of determinant kolom.
De list_dependency_violations
uitvoer kan helpen bij het identificeren van problemen met de gegevenskwaliteit van gegevenssets. U moet de resultaten echter zorgvuldig onderzoeken en rekening houden met de context van uw gegevens, om de meest geschikte manier van actie te bepalen om de geïdentificeerde problemen op te lossen. Deze benadering kan betrekking hebben op meer 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 de betrouwbaarheid en geldigheid van een analyse of model op basis van die gegevens beschadigen. Het identificeren en oplossen van deze problemen is belangrijk om de nauwkeurigheid van uw resultaten te garanderen. Als u problemen met de kwaliteit van gegevens wilt detecteren, kunt u schendingen van functionele afhankelijkheden tussen kolommen in een gegevensset onderzoeken. Het visualiseren van deze schendingen kan de problemen duidelijker weergeven en u helpen ze 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, zodat u gemakkelijker inzicht krijgt in de aard en omvang van de problemen met de gegevenskwaliteit.
In dit codefragment ziet u hoe u de plot_dependency_violations
functie gebruikt:
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 gaat de functie uit van een bestaande functionele afhankelijkheid tussen de kolommen ZIP (determinant) en CITY (afhankelijk). Als de gegevensset problemen heeft met de kwaliteit van gegevens, bijvoorbeeld dezelfde postcode die aan meerdere steden is toegewezen, genereert de functie een grafiek van de schendende waarden.
De plot_dependency_violations
functie biedt meer opties waarmee ontbrekende waarden kunnen worden verwerkt, waarden worden weergegeven die zijn toegewezen aan inbreukmakende waarden, het aantal geretourneerde schendingen beperken en de resultaten sorteren op aantal of determinant kolom.
Met de plot_dependency_violations
functie wordt een visualisatie gegenereerd waarmee problemen met de kwaliteit van gegevenssets kunnen worden geïdentificeerd. U moet de resultaten echter zorgvuldig onderzoeken en rekening houden met de context van uw gegevens, om de meest geschikte manier van actie te bepalen om de geïdentificeerde problemen op te lossen. Deze benadering kan betrekking hebben op meer gegevens opschonen, valideren of verkennen om de betrouwbaarheid en geldigheid van uw analyse of model te garanderen.
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. Het afdwingen van functionele beperkingen tussen kolommen in een gegevensset kan helpen de gegevenskwaliteit te verbeteren. Functionele beperkingen kunnen ervoor zorgen dat de relaties tussen kolommen nauwkeurigheid en consistentie hebben, wat kan leiden tot nauwkeurigere analyse- of modelresultaten.
De drop_dependency_violations
functie kan helpen bij het afdwingen van functionele beperkingen tussen kolommen in een gegevensset. Het verwijdert rijen 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 dit codefragment ziet u hoe u de drop_dependency_violations
functie gebruikt:
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 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. Op basis van deze gegevensset wordt de rij met CITY=Seattle bijvoorbeeld verwijderd en wordt de functionele afhankelijkheid ZIP -> CITY in de uitvoer opgeslagen:
ZIP | CITY |
---|---|
12345 | Seattle |
12345 | Boston |
12345 | Boston |
98765 | Baltimore |
00000 | San Francisco |
De drop_dependency_violations
functie biedt de verbose
mogelijkheid om de uitbreiding van de uitvoer te beheren. Als u dit instelt verbose=1
, ziet u het aantal verwijderde rijen. Een verbose=2
waarde toont de volledige rijinhoud van de verwijderde rijen.
De drop_dependency_violations
functie kan 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. U moet echter zorgvuldig rekening houden met de context van uw gegevens en de functionele beperkingen die u wilt afdwingen, om ervoor te zorgen dat u niet per ongeluk waardevolle informatie uit uw gegevensset verwijdert.